diff --git a/.gitignore b/.gitignore index a5f149548..75be5b0c2 100755 --- a/.gitignore +++ b/.gitignore @@ -60,11 +60,13 @@ nbproject/ .idea/ -# composer files (at the moment composer is not officially supported and only used to add SabreDAV, we should add these) -composer.* - -# When we include composer we should exclude vendor/ +## composer +# locally installed composer binary +composer.phar +# vendor/ is managed by composer, no need to include in our repository +# requires new deployment and needs discussion first #vendor/ -# Exclude at least some vendor test files, examples, etc. -vendor/sabre/*/tests/ +# Exclude at least some vendor test files, examples, etc. so far +vendor/**/tests/ +vendor/**/Test/ vendor/sabre/*/examples/ diff --git a/.travis.yml b/.travis.yml index 583b2a1a8..2830d1b9f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,10 +5,6 @@ language: php php: # using major version aliases - # aliased to a recent 5.4.x version - - 5.4 - # aliased to a recent 5.5.x version - - 5.5 # aliased to a recent 5.6.x version - 5.6 # aliased to a recent 7.x version @@ -27,7 +23,6 @@ matrix: # - php: hhvm # env: DB=pgsql # PDO driver for pgsql is unsupported by HHVM (3rd party install for support) allow_failures: - - php: 7.0 - php: hhvm # execute any number of scripts before the test run, custom env's are available as variables @@ -36,11 +31,14 @@ matrix: # - if [[ "$DB" == "pgsql" ]]; then psql -c "create database hello_world_test;" -U postgres; fi # - if [[ "$DB" == "mysql" ]]; then mysql -e "create database IF NOT EXISTS hello_world_test;" -uroot; fi +install: + - composer require phpunit/phpunit + # omitting "script:" will default to phpunit # use the $DB env variable to determine the phpunit.xml to use -script: phpunit tests/*php +script: vendor/bin/phpunit tests/unit/ # configure notifications (email, IRC, campfire etc) notifications: # irc: "irc.freenode.org#yourfavouriteroomfortravis" -# a plugin/script to post to a hubzilla channel would be neat here \ No newline at end of file +# a plugin/script to post to a hubzilla channel would be neat here diff --git a/CHANGELOG b/CHANGELOG index 53d8a0f2e..642506016 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,99 @@ +Hubzilla 2.0 (2016-12-23) + - Deprecate bb_iframe + - Note widget: resize the textarea to reveal full content + - Implement fixed left aside + - Implement lockview for wikilist + - Simplify wikilist widget + - Router error reporting + - Setup changes to check for shell_exec and exec functions + - Extensible permissions upgrade handling for channels with custom permission roles + - Allow plugins to cancel item_store() and item_store_update() + - ZOT version 1.2 provides negotiation of cryptographic algorithms + - Provide a fresh new look and cleaner layout and more relevant information to siteinfo + - Introduce highlight bbcode [hl] + - Implement wiki mimetypes markdown or bbcode + - Doc pages refactoring + - Update webpages and wiki context help + - Make a git commit when a new wiki page is created + - Prev-next navigation for mod_connedit to ease bulk connection edits + - Move the remote user homebutton to the user menu + - Do not render maps/locations for Diaspora destinations + - Provide 'per-page' caching for is_matrix_url() results to reduce duplicate queries + - Don't send notification for posts/comments on old conversations that were refetched after having expired + - Numerous wiki UI improvements + - Move twitter api to addon + - Cleanup and re-organise the voting and attendance buttons + - Reorganise emoticons + - Collapse navbar-collapse-1 if avatar menu is clicked. + - New display setting: static page update as opposed to live update + - Command line administrative channel connect utility + - Modernise chanview + - Implement edit activities to share post/comment edits with protocols which do not support them (e.g. Diaspora) + - Wiki export + - Numerous postgres compatibility fixes + - Remove requirement that imported profile photos be in the profile photos album + - Change event behaviour - share by default. + - Use PDO database driver exclusively (deprecate drivers that are separately maintained) + - Zot API re-write and extended + + Bugfixes + - Fix z_fetch_url() incorrect variable + - Fix SQL error with app categories + - Fix do not show revert buttons if we do not have write perms + - Fix dropdown positions + - Fix do not increase opacity to more than 1 + - Fix clone sync missing for some item delete operations + - Fix embed-image for fullscreen mode + - Fix attach_list_files() + - Fix full screen for embedded videos + - Fix the forum widget for forums with custom perms + - Fix issue #607 parens not recognised inside urls + - Fix pubsites: don't list dead sites + - Fix issue #596 silence headers already sent warning + - Fix missing plugins in zot-info + - Fix notification issue + - Fix issue #594 like of thing appears as profile owner like + - Fix export issue + - Fix checklist bbcode - only turn [] and [x] into checkboxes if it is found inside a checklist + - Fix wiki permissions issues + - Fix public calendar leaks connection information (birthdays) when view_contacts is not allowed + - Fix attach_rename: flaw in duplicate filename detection resulted in filename(1)(1)(1).ext + - Fix a fatal error with incorrect DB object access + - Provide /locs link on settings page if there is more than one hubloc for this channnel *that isn't deleted*. + - Fix issue #577 if connecting to a channel that is already pending, undo the pending and set connect permissions accordingly + - Fix issue #575, when 'nofinish' is set on an event, invalid date was generated/stored + - Fix bbcode event formatting issue + - Fix zot_finger from navbar people search looping + - Fix fromStandalonePermission() + + Plugins + - GNU Social: removed from addons for security reasons - it might be re-implemented once it is properly reviewed + - Diaspora: missing item author when diaspora public comment received from relay + - Superblock: refactoring + - New addon: tripleaes for pro + - Cdav: "if not exists" only supported starting with postgresql v. 9.5 debian stable has 9.4 + - Rendezvous: added markers and members export tool at /rendezvous/[group_id]/export/{markers,members} + - Twitter: move twitter api to addon + - New addon: b2tbtn (back to top button) + - Diaspora: import public diaspora messages to sys if applicable + - Diaspora: try and handle singletons better and simplify the associated notifier decisions + - Rendezvous: add proximity alert feature to members to issue notification when member is within a specified distance. + - New addon: diaspora_reconnect to refriend diaspora/friendica connections from a clone or channel move + - Diaspora: change the logic for deciding between upstream and downstream message flow for notifier plugins + - Rendezvous: prompt member to share their location by activating the GPS control using a tooltip and pulsing visibility + - statistics_json: fix nodeinfo + - Rendezvous: restored the lost gps-icon.png and corrected the OpenStreetMap tile server URL to avoid insecure content warnings + - Rendezvous: use observer name if available + - std_embeds: missing backslash + - Diaspora: postgres fixes issue #31 + - Rendezvous: added marker list with centering buttons and popup open. + - Rendezvous: added control to see list of members sharing their location, with buttons to pan the map to center them + - Diaspora: system level diaspora toggle + - Rendezvous: added control that displays members. + - Diaspora: rename diaspora2bb() to markdown_to_bb() in core + - Hubwall: remove illegal unescaped angle chars + - Rendezvous: Add control to delete member if not updated in over 14 minutes + Hubzilla 1.14 (2016-10-13) - New hook bbcode_filter - Unify the various mail sending instance to enotify::send() and z_mail() diff --git a/Zotlabs/Access/PermissionRoles.php b/Zotlabs/Access/PermissionRoles.php index 8b116adc5..94c49c44f 100644 --- a/Zotlabs/Access/PermissionRoles.php +++ b/Zotlabs/Access/PermissionRoles.php @@ -7,6 +7,9 @@ use Zotlabs\Lib as Zlib; class PermissionRoles { + static public function version() { + return 1; + } static function role_perms($role) { @@ -160,6 +163,7 @@ class PermissionRoles { $ret['limits'] = PermissionLimits::Std_Limits(); break; + case 'custom': default: break; } @@ -174,7 +178,48 @@ class PermissionRoles { return $ret; } + static public function new_custom_perms($uid,$perm,$abooks) { + // set permissionlimits for this permission here, for example: + + // if($perm === 'mynewperm') + // \Zotlabs\Access\PermissionLimits::Set($uid,$perm,1); + + + // set autoperms here if applicable + // choices are to set to 0, 1, or the value of an existing perm + + if(get_pconfig($uid,'system','autoperms')) { + + $c = channelx_by_n($uid); + $value = 0; + + // if($perm === 'mynewperm') + // $value = get_abconfig($uid,$c['channel_hash'],'autoperms','someexistingperm')); + + if($c) { + set_abconfig($uid,$c['channel_hash'],'autoperms',$perm,$value); + } + + + } + + // now set something for all existing connections. + + if($abooks) { + foreach($abooks as $ab) { + switch($perm) { + // case 'mynewperm': + // choices are to set to 1, set to 0, or clone an existing perm + // set_abconfig($uid,$ab['abook_xchan'],'my_perms',$perm, + // get_abconfig($uid,$ab['abook_xchan'],'my_perms','someexistingperm')); + + default: + break; + } + } + } + } static public function roles() { diff --git a/Zotlabs/Access/Permissions.php b/Zotlabs/Access/Permissions.php index 61ea51a48..43baa6cf7 100644 --- a/Zotlabs/Access/Permissions.php +++ b/Zotlabs/Access/Permissions.php @@ -10,9 +10,20 @@ class Permissions { /** * Extensible permissions. * To add new permissions, add to the list of $perms below, with a simple description. + * * Also visit PermissionRoles.php and add to the $ret['perms_connect'] property for any role * if this permission should be granted to new connections. * + * Next look at PermissionRoles::new_custom_perms() and provide a handler for updating custom + * permission roles. You will want to set a default PermissionLimit for each channel and also + * provide a sane default for any existing connections. You may or may not wish to provide a + * default auto permission. If in doubt, leave this alone as custom permissions by definition + * are the responsbility of the channel owner to manage. You just don't want to create any + * suprises or break things so you have an opportunity to provide sane settings. + * + * Update the version here and in PermissionRoles + * + * * Permissions with 'view' in the name are considered read permissions. Anything * else requires authentication. Read permission limits are PERMS_PUBLIC and anything else * is given PERMS_SPECIFIC. @@ -23,6 +34,11 @@ class Permissions { * */ + static public function version() { + // This must match the version in PermissionRoles.php before permission updates can run. + return 1; + } + static public function Perms($filter = '') { diff --git a/Zotlabs/Daemon/Master.php b/Zotlabs/Daemon/Master.php index 56076f612..580df97db 100644 --- a/Zotlabs/Daemon/Master.php +++ b/Zotlabs/Daemon/Master.php @@ -24,8 +24,7 @@ class Master { static public function Release($argc,$argv) { cli_startup(); logger('Master: release: ' . print_r($argv,true), LOGGER_ALL,LOG_DEBUG); - require_once('Zotlabs/Daemon/' . $argv[0] . '.php'); $cls = '\\Zotlabs\\Daemon\\' . $argv[0]; $cls::run($argc,$argv); } -} \ No newline at end of file +} diff --git a/Zotlabs/Daemon/Notifier.php b/Zotlabs/Daemon/Notifier.php index c0997138e..63ced4f56 100644 --- a/Zotlabs/Daemon/Notifier.php +++ b/Zotlabs/Daemon/Notifier.php @@ -4,6 +4,7 @@ namespace Zotlabs\Daemon; require_once('include/queue_fn.php'); require_once('include/html2plain.php'); +require_once('include/conversation.php'); /* * This file was at one time responsible for doing all deliveries, but this caused @@ -120,7 +121,7 @@ class Notifier { $normal_mode = false; $mail = true; $private = true; - $message = q("SELECT * FROM `mail` WHERE `id` = %d LIMIT 1", + $message = q("SELECT * FROM mail WHERE id = %d LIMIT 1", intval($item_id) ); if(! $message) { @@ -371,12 +372,13 @@ class Notifier { if(! $encoded_item['flags']) $encoded_item['flags'] = array(); $encoded_item['flags'][] = 'relay'; + $upstream = true; } else { logger('notifier: normal distribution', LOGGER_DEBUG); if($cmd === 'relay') logger('notifier: owner relay'); - + $upstream = false; // if our parent is a tag_delivery recipient, uplink to the original author causing // a delivery fork. @@ -445,6 +447,7 @@ class Notifier { $narr = array( 'channel' => $channel, + 'upstream' => $upstream, 'env_recips' => $env_recips, 'packet_recips' => $packet_recips, 'recipients' => $recipients, @@ -488,7 +491,7 @@ class Notifier { // Now we have collected recipients (except for external mentions, FIXME) // Let's reduce this to a set of hubs. - $r = q("select * from hubloc where hubloc_hash in (" . implode(',',$recipients) . ") + $r = q("select hubloc.*, site.site_crypto from hubloc left join site on site_url = hubloc_url where hubloc_hash in (" . implode(',',$recipients) . ") and hubloc_error = 0 and hubloc_deleted = 0" ); @@ -546,6 +549,7 @@ class Notifier { $narr = array( 'channel' => $channel, + 'upstream' => $upstream, 'env_recips' => $env_recips, 'packet_recips' => $packet_recips, 'recipients' => $recipients, @@ -599,8 +603,8 @@ class Notifier { $packet = zot_build_packet($channel,$packet_type,(($packet_recips) ? $packet_recips : null)); } elseif($packet_type === 'request') { - $packet = zot_build_packet($channel,$packet_type,$env_recips,$hub['hubloc_sitekey'],$hash, - array('message_id' => $request_message_id) + $packet = zot_build_packet($channel,$packet_type,$env_recips,$hub['hubloc_sitekey'],$hub['site_crypto'], + $hash, array('message_id' => $request_message_id) ); } @@ -614,7 +618,7 @@ class Notifier { )); } else { - $packet = zot_build_packet($channel,'notify',$env_recips,(($private) ? $hub['hubloc_sitekey'] : null),$hash); + $packet = zot_build_packet($channel,'notify',$env_recips,(($private) ? $hub['hubloc_sitekey'] : null), $hub['site_crypto'],$hash); queue_insert(array( 'hash' => $hash, 'account_id' => $target_item['aid'], diff --git a/Zotlabs/Daemon/Ratenotif.php b/Zotlabs/Daemon/Ratenotif.php index 1cba5e26d..a94b89004 100644 --- a/Zotlabs/Daemon/Ratenotif.php +++ b/Zotlabs/Daemon/Ratenotif.php @@ -77,7 +77,7 @@ class Ratenotif { continue; $hash = random_string(); - $n = zot_build_packet($channel,'notify',null,null,$hash); + $n = zot_build_packet($channel,'notify',null,null,'',$hash); queue_insert(array( 'hash' => $hash, diff --git a/Zotlabs/Extend/Hook.php b/Zotlabs/Extend/Hook.php index fc1e95367..fef3ebe9b 100644 --- a/Zotlabs/Extend/Hook.php +++ b/Zotlabs/Extend/Hook.php @@ -10,7 +10,7 @@ class Hook { $function = serialize($function); } - $r = q("SELECT * FROM `hook` WHERE `hook` = '%s' AND `file` = '%s' AND `fn` = '%s' and priority = %d and hook_version = %d LIMIT 1", + $r = q("SELECT * FROM hook WHERE hook = '%s' AND file = '%s' AND fn = '%s' and priority = %d and hook_version = %d LIMIT 1", dbesc($hook), dbesc($file), dbesc($function), @@ -23,13 +23,13 @@ class Hook { // To aid in upgrade and transition, remove old settings for any registered hooks that match in all respects except // for priority or hook_version - $r = q("DELETE FROM `hook` where `hook` = '%s' and `file` = '%s' and `fn` = '%s'", + $r = q("DELETE FROM hook where hook = '%s' and file = '%s' and fn = '%s'", dbesc($hook), dbesc($file), dbesc($function) ); - $r = q("INSERT INTO `hook` (`hook`, `file`, `fn`, `priority`, `hook_version`) VALUES ( '%s', '%s', '%s', %d, %d )", + $r = q("INSERT INTO hook (hook, file, fn, priority, hook_version) VALUES ( '%s', '%s', '%s', %d, %d )", dbesc($hook), dbesc($file), dbesc($function), @@ -44,7 +44,7 @@ class Hook { if(is_array($function)) { $function = serialize($function); } - $r = q("DELETE FROM hook WHERE hook = '%s' AND `file` = '%s' AND `fn` = '%s' and priority = %d and hook_version = %d", + $r = q("DELETE FROM hook WHERE hook = '%s' AND file = '%s' AND fn = '%s' and priority = %d and hook_version = %d", dbesc($hook), dbesc($file), dbesc($function), @@ -60,7 +60,7 @@ class Hook { static public function unregister_by_file($file) { - $r = q("DELETE FROM hook WHERE `file` = '%s' ", + $r = q("DELETE FROM hook WHERE file = '%s' ", dbesc($file) ); diff --git a/Zotlabs/Lib/AConfig.php b/Zotlabs/Lib/AConfig.php index ab8648a18..4e7c5483f 100644 --- a/Zotlabs/Lib/AConfig.php +++ b/Zotlabs/Lib/AConfig.php @@ -10,8 +10,8 @@ class AConfig { return XConfig::Load('a_' . $account_id); } - static public function Get($account_id,$family,$key) { - return XConfig::Get('a_' . $account_id,$family,$key); + static public function Get($account_id,$family,$key,$default = false) { + return XConfig::Get('a_' . $account_id,$family,$key, $default); } static public function Set($account_id,$family,$key,$value) { diff --git a/Zotlabs/Lib/AbConfig.php b/Zotlabs/Lib/AbConfig.php index cb5d96951..dfc9efc6c 100644 --- a/Zotlabs/Lib/AbConfig.php +++ b/Zotlabs/Lib/AbConfig.php @@ -16,7 +16,7 @@ class AbConfig { } - static public function Get($chan,$xhash,$family,$key) { + static public function Get($chan,$xhash,$family,$key, $default = false) { $r = q("select * from abconfig where chan = %d and xchan = '%s' and cat = '%s' and k = '%s' limit 1", intval($chan), dbesc($xhash), @@ -26,7 +26,7 @@ class AbConfig { if($r) { return ((preg_match('|^a:[0-9]+:{.*}$|s', $r[0]['v'])) ? unserialize($r[0]['v']) : $r[0]['v']); } - return false; + return $default; } diff --git a/Zotlabs/Lib/Apps.php b/Zotlabs/Lib/Apps.php index a646d8a30..ac03e11e1 100644 --- a/Zotlabs/Lib/Apps.php +++ b/Zotlabs/Lib/Apps.php @@ -68,7 +68,7 @@ class Apps { if($id !== true) { // if we already installed this app, but it changed, preserve any categories we created $s = ''; - $r = q("select * from term where otype = %d and oid = d", + $r = q("select * from term where otype = %d and oid = %d", intval(TERM_OBJ_APP), intval($id) ); @@ -203,7 +203,7 @@ class Apps { static public function translate_system_apps(&$arr) { $apps = array( 'Site Admin' => t('Site Admin'), - 'Bug Report' => t('Bug Report'), + 'Report Bug' => t('Report Bug'), 'View Bookmarks' => t('View Bookmarks'), 'My Chatrooms' => t('My Chatrooms'), 'Connections' => t('Connections'), @@ -359,7 +359,7 @@ class Apps { if($r) { if(! $r[0]['app_system']) { if($app['categories'] && (! $app['term'])) { - $r[0]['term'] = q("select * from term where otype = %d and oid = d", + $r[0]['term'] = q("select * from term where otype = %d and oid = %d", intval(TERM_OBJ_APP), intval($r[0]['id']) ); diff --git a/Zotlabs/Lib/Config.php b/Zotlabs/Lib/Config.php index d4ee1aeda..5625a3f79 100644 --- a/Zotlabs/Lib/Config.php +++ b/Zotlabs/Lib/Config.php @@ -98,13 +98,13 @@ class Config { * @return mixed Return value or false on error or if not set */ - static public function Get($family,$key) { + static public function Get($family,$key,$default = false) { if((! array_key_exists($family, \App::$config)) || (! array_key_exists('config_loaded', \App::$config[$family]))) self::Load($family); if(array_key_exists('config_loaded', \App::$config[$family])) { if(! array_key_exists($key, \App::$config[$family])) { - return false; + return $default; } return ((! is_array(\App::$config[$family][$key])) && (preg_match('|^a:[0-9]+:{.*}$|s', \App::$config[$family][$key])) ? unserialize(\App::$config[$family][$key]) @@ -112,7 +112,7 @@ class Config { ); } - return false; + return $default; } /** diff --git a/Zotlabs/Lib/Enotify.php b/Zotlabs/Lib/Enotify.php index 9a8628968..257687567 100644 --- a/Zotlabs/Lib/Enotify.php +++ b/Zotlabs/Lib/Enotify.php @@ -78,15 +78,12 @@ class Enotify { $sender_email = get_config('system','from_email'); if(! $sender_email) $sender_email = 'Administrator' . '@' . \App::get_hostname(); - $sender_name = get_config('system','from_email_name'); if(! $sender_name) $sender_name = \Zotlabs\Lib\System::get_site_name(); - - $additional_mail_header = ""; if(array_key_exists('item', $params)) { @@ -105,6 +102,10 @@ class Enotify { $title = $params['item']['title']; $body = $params['item']['body']; } + if($params['item']['created'] < datetime_convert('UTC','UTC','now - 1 month')) { + logger('notification invoked for an old item which may have been refetched.',LOGGER_DEBUG,LOG_INFO); + return; + } } else { $title = $body = ''; @@ -216,6 +217,85 @@ class Enotify { $hsitelink = sprintf( $sitelink, '' . $sitename . ''); } + if ($params['type'] == NOTIFY_LIKE) { +// logger("notification: params = " . print_r($params, true), LOGGER_DEBUG); + + $itemlink = $params['link']; + + // ignore like/unlike activity on posts - they probably require a separate notification preference + + if (array_key_exists('item',$params) && (! activity_match($params['item']['verb'],ACTIVITY_LIKE))) { + logger('notification: not a like activity. Ignoring.'); + pop_lang(); + return; + } + + $parent_mid = $params['parent_mid']; + + // Check to see if there was already a notify for this post. + // If so don't create a second notification + + $p = null; + $p = q("select id from notify where link = '%s' and uid = %d limit 1", + dbesc($params['link']), + intval($recip['channel_id']) + ); + if ($p) { + logger('notification: like already notified'); + pop_lang(); + return; + } + + + // if it's a post figure out who's post it is. + + $p = null; + + if($params['otype'] === 'item' && $parent_mid) { + $p = q("select * from item where mid = '%s' and uid = %d limit 1", + dbesc($parent_mid), + intval($recip['channel_id']) + ); + } + + xchan_query($p); + + + $item_post_type = item_post_type($p[0]); +// $private = $p[0]['item_private']; + $parent_id = $p[0]['id']; + + $parent_item = $p[0]; + + + // "your post" + if($p[0]['owner']['xchan_name'] == $p[0]['author']['xchan_name'] && intval($p[0]['item_wall'])) + $dest_str = sprintf(t('%1$s, %2$s liked [zrl=%3$s]your %4$s[/zrl]'), + $recip['channel_name'], + '[zrl=' . $sender['xchan_url'] . ']' . $sender['xchan_name'] . '[/zrl]', + $itemlink, + $item_post_type); + else { + pop_lang(); + return; + } + + // Some mail softwares relies on subject field for threading. + // So, we cannot have different subjects for notifications of the same thread. + // Before this we have the name of the replier on the subject rendering + // differents subjects for messages on the same thread. + + $subject = sprintf( t('[$Projectname:Notify] Like received to conversation #%1$d by %2$s'), $parent_id, $sender['xchan_name']); + $preamble = sprintf( t('%1$s, %2$s liked an item/conversation you created.'), $recip['channel_name'], $sender['xchan_name']); + $epreamble = $dest_str; + + $sitelink = t('Please visit %s to view and/or reply to the conversation.'); + $tsitelink = sprintf( $sitelink, $siteurl ); + $hsitelink = sprintf( $sitelink, '' . $sitename . ''); + } + + + if($params['type'] == NOTIFY_WALL) { $subject = sprintf( t('[$Projectname:Notify] %s posted to your profile wall') , $sender['xchan_name']); @@ -364,7 +444,7 @@ class Enotify { do { $dups = false; $hash = random_string(); - $r = q("SELECT `id` FROM `notify` WHERE `hash` = '%s' LIMIT 1", + $r = q("SELECT id FROM notify WHERE hash = '%s' LIMIT 1", dbesc($hash)); if ($r) $dups = true; @@ -633,7 +713,7 @@ class Enotify { call_hooks('email_send', $params); if($params['sent']) { - logger("notification: enotify::send (addon) returns " . $params['result'], LOGGER_DEBUG); + logger("notification: enotify::send (addon) returns " . (($params['result']) ? 'success' : 'failure'), LOGGER_DEBUG); return $params['result']; } @@ -676,7 +756,7 @@ class Enotify { $multipartMessageBody, // message body $messageHeader // message headers ); - logger("notification: enotify::send returns " . $res, LOGGER_DEBUG); + logger("notification: enotify::send returns " . (($res) ? 'success' : 'failure'), LOGGER_DEBUG); return $res; } diff --git a/Zotlabs/Lib/IConfig.php b/Zotlabs/Lib/IConfig.php index 28c9ab58e..33d94bd49 100644 --- a/Zotlabs/Lib/IConfig.php +++ b/Zotlabs/Lib/IConfig.php @@ -10,7 +10,7 @@ class IConfig { return; } - static public function Get(&$item, $family, $key) { + static public function Get(&$item, $family, $key, $default = false) { $is_item = false; @@ -28,7 +28,7 @@ class IConfig { $iid = $item; if(! $iid) - return false; + return $default; if(is_array($item) && array_key_exists('iconfig',$item) && is_array($item['iconfig'])) { foreach($item['iconfig'] as $c) { @@ -48,7 +48,7 @@ class IConfig { $item['iconfig'][] = $r[0]; return $r[0]['v']; } - return false; + return $default; } diff --git a/Zotlabs/Lib/PConfig.php b/Zotlabs/Lib/PConfig.php index a481667a5..d70697fbc 100644 --- a/Zotlabs/Lib/PConfig.php +++ b/Zotlabs/Lib/PConfig.php @@ -67,16 +67,16 @@ class PConfig { * @return mixed Stored value or false if it does not exist */ - static public function Get($uid,$family,$key,$instore = false) { + static public function Get($uid,$family,$key,$default = false) { if(is_null($uid) || $uid === false) - return false; + return $default; if(! array_key_exists($uid, \App::$config)) self::Load($uid); if((! array_key_exists($family, \App::$config[$uid])) || (! array_key_exists($key, \App::$config[$uid][$family]))) - return false; + return $default; return ((! is_array(\App::$config[$uid][$family][$key])) && (preg_match('|^a:[0-9]+:{.*}$|s', \App::$config[$uid][$family][$key])) ? unserialize(\App::$config[$uid][$family][$key]) @@ -185,13 +185,17 @@ class PConfig { $ret = false; - if(array_key_exists($key, \App::$config[$uid][$family])) + if(array_key_exists($uid,\App::$config) + && is_array(\App::$config['uid']) + && array_key_exists($family,\App::$config['uid']) + && array_key_exists($key, \App::$config[$uid][$family])) unset(\App::$config[$uid][$family][$key]); - $ret = q("DELETE FROM pconfig WHERE uid = %d AND cat = '%s' AND k = '%s'", - intval($uid), - dbesc($family), - dbesc($key) - ); + + $ret = q("DELETE FROM pconfig WHERE uid = %d AND cat = '%s' AND k = '%s'", + intval($uid), + dbesc($family), + dbesc($key) + ); return $ret; } diff --git a/Zotlabs/Lib/PermissionDescription.php b/Zotlabs/Lib/PermissionDescription.php index b6c6dd29d..51d5f890d 100644 --- a/Zotlabs/Lib/PermissionDescription.php +++ b/Zotlabs/Lib/PermissionDescription.php @@ -12,22 +12,25 @@ require_once("include/text.php"); * permission settings for an item with an empty ACL. * i.e the caption, icon, and tooltip for the no-ACL option in the ACL dialog. */ -class PermissionDescription { +class PermissionDescription { private $global_perm; private $channel_perm; private $fallback_description; - + /** * Constructor is private. - * Use static methods fromGlobalPermission(), fromStandalonePermission(), or fromDescription() - * to create instances. + * Use static methods fromGlobalPermission(), fromStandalonePermission(), + * or fromDescription() to create instances. + * + * @internal + * @param int $global_perm + * @param int $channel_perm + * @param string $description (optional) default empty */ private function __construct($global_perm, $channel_perm, $description = '') { - $this->global_perm = $global_perm; $this->channel_perm = $channel_perm; - $this->fallback_description = ($description == '') ? t('Visible to your default audience') : $description; } @@ -43,23 +46,22 @@ class PermissionDescription { return new PermissionDescription('', 0x80000, $description); } - /** * Use this method only if the interpretation of an empty ACL doesn't fall back to a global * default permission. You should pass one of the constants from boot.php - PERMS_PUBLIC, * PERMS_NETWORK etc. - * + * * @param integer $perm - a single enumerated constant permission - PERMS_PUBLIC, PERMS_NETWORK etc. * @return a new instance of PermissionDescription */ public static function fromStandalonePermission($perm) { $result = new PermissionDescription('', $perm); - - $checkPerm = $this->get_permission_description(); - if ($checkPerm == $this->fallback_description) { + + $checkPerm = $result->get_permission_description(); + if($checkPerm == $result->fallback_description) { $result = null; - logger('null PermissionDescription from unknown standalone permission: ' . $perm ,LOGGER_DEBUG, LOG_ERROR); + logger('null PermissionDescription from unknown standalone permission: ' . $perm, LOGGER_DEBUG, LOG_ERR); } return $result; @@ -67,9 +69,9 @@ class PermissionDescription { /** * This is the preferred way to create a PermissionDescription, as it provides the most details. - * Use this method if you know an empty ACL will result in one of the global default permissions + * Use this method if you know an empty ACL will result in one of the global default permissions * being used, such as channel_r_stream (for which you would pass 'view_stream'). - * + * * @param string $permname - a key for the global perms array from get_perms() in permissions.php, * e.g. 'view_stream', 'view_profile', etc. * @return a new instance of PermissionDescription @@ -80,19 +82,19 @@ class PermissionDescription { $global_perms = \Zotlabs\Access\Permissions::Perms(); - if (array_key_exists($permname, $global_perms)) { + if(array_key_exists($permname, $global_perms)) { - $channelPerm = \Zotlabs\Access\PermissionLimits::Get(\App::$channel['channel_id'],$permname); + $channelPerm = \Zotlabs\Access\PermissionLimits::Get(\App::$channel['channel_id'], $permname); $result = new PermissionDescription('', $channelPerm); } else { // The acl dialog can handle null arguments, but it shouldn't happen - logger('null PermissionDescription from unknown global permission: ' . $permname ,LOGGER_DEBUG, LOG_ERROR); + logger('null PermissionDescription from unknown global permission: ' . $permname, LOGGER_DEBUG, LOG_ERR); } + return $result; } - /** * Gets a localized description of the permission, or a generic message if the permission * is unknown. @@ -101,8 +103,7 @@ class PermissionDescription { */ public function get_permission_description() { - switch($this->channel_perm) { - + switch($this->channel_perm) { case 0: return t('Only me'); case PERMS_PUBLIC: return t('Public'); case PERMS_NETWORK: return t('Anybody in the $Projectname network'); @@ -117,19 +118,18 @@ class PermissionDescription { /** * Returns an icon css class name if an appropriate one is available, e.g. "fa-globe" for Public, - * otherwise returns empty string. + * otherwise returns empty string. * * @return string icon css class name (often FontAwesome) */ public function get_permission_icon() { - switch($this->channel_perm) { - + switch($this->channel_perm) { case 0:/* only me */ return 'fa-eye-slash'; case PERMS_PUBLIC: return 'fa-globe'; case PERMS_NETWORK: return 'fa-share-alt-square'; // fa-share-alt-square is very similiar to the hubzilla logo, but we should create our own logo class to use - case PERMS_SITE: return 'fa-sitemap'; - case PERMS_CONTACTS: return 'fa-group'; + case PERMS_SITE: return 'fa-sitemap'; + case PERMS_CONTACTS: return 'fa-group'; case PERMS_SPECIFIC: return 'fa-list'; case PERMS_AUTHED: return ''; case PERMS_PENDING: return ''; @@ -137,7 +137,6 @@ class PermissionDescription { } } - /** * Returns a localized description of where the permission came from, if this is known. * If it's not know, or if the permission is standalone and didn't come from a default @@ -147,8 +146,7 @@ class PermissionDescription { */ public function get_permission_origin_description() { - switch($this->global_perm) { - + switch($this->global_perm) { case PERMS_R_STREAM: return t('This is your default setting for the audience of your normal stream, and posts.'); case PERMS_R_PROFILE: return t('This is your default setting for who can view your default channel profile'); case PERMS_R_ABOOK: return t('This is your default setting for who can view your connections'); diff --git a/Zotlabs/Lib/System.php b/Zotlabs/Lib/System.php index 6ccfd664c..306c90f4a 100644 --- a/Zotlabs/Lib/System.php +++ b/Zotlabs/Lib/System.php @@ -32,16 +32,30 @@ class System { static public function get_notify_icon() { if(is_array(\App::$config) && is_array(\App::$config['system']) && \App::$config['system']['email_notify_icon_url']) return \App::$config['system']['email_notify_icon_url']; - return z_root() . '/images/hz-white-32.png'; + return z_root() . DEFAULT_NOTIFY_ICON; } static public function get_site_icon() { if(is_array(\App::$config) && is_array(\App::$config['system']) && \App::$config['system']['site_icon_url']) return \App::$config['system']['site_icon_url']; - return z_root() . '/images/hz-32.png'; + return z_root() . DEFAULT_PLATFORM_ICON ; } + static public function get_project_link() { + if(is_array(\App::$config) && is_array(\App::$config['system']) && \App::$config['system']['project_link']) + return \App::$config['system']['project_link']; + return 'https://hubzilla.org'; + } + + static public function get_project_srclink() { + if(is_array(\App::$config) && is_array(\App::$config['system']) && \App::$config['system']['project_srclink']) + return \App::$config['system']['project_srclink']; + return 'https://github.com/redmatrix/hubzilla'; + } + + + static public function get_server_role() { if(is_array(\App::$config) && is_array(\App::$config['system']) && \App::$config['system']['server_role']) return \App::$config['system']['server_role']; @@ -54,5 +68,15 @@ class System { return '0.0.0'; } + static public function compatible_project($p) { + if(get_directory_realm() != DIRECTORY_REALM) + return true; + + foreach(['hubzilla','zap'] as $t) { + if(stristr($p,$t)) + return true; + } + return false; + } } diff --git a/Zotlabs/Lib/Techlevels.php b/Zotlabs/Lib/Techlevels.php new file mode 100644 index 000000000..6a8c36fb3 --- /dev/null +++ b/Zotlabs/Lib/Techlevels.php @@ -0,0 +1,21 @@ + t('Beginner/Basic'), + '1' => t('Novice - not skilled but willing to learn'), + '2' => t('Intermediate - somewhat comfortable'), + '3' => t('Advanced - very comfortable'), + '4' => t('Expert - I can write computer code'), + '5' => t('Wizard - I probably know more than you do') + ]; + return $techlevels; + } + +} + diff --git a/Zotlabs/Lib/ThreadItem.php b/Zotlabs/Lib/ThreadItem.php index a3e871810..a1666e148 100644 --- a/Zotlabs/Lib/ThreadItem.php +++ b/Zotlabs/Lib/ThreadItem.php @@ -44,7 +44,7 @@ class ThreadItem { * Only add those that will be displayed */ - if((! visible_activity($item)) || array_key_exists('author_blocked',$item)) { + if((! visible_activity($item)) || array_key_exists('blocked',$item)) { continue; } @@ -355,6 +355,10 @@ class ThreadItem { 'unverified' => $unverified, 'forged' => $forged, 'location' => $location, + 'attend_label' => t('Attend'), + 'attend_title' => t('Attendance Options'), + 'vote_label' => t('Vote'), + 'vote_title' => t('Voting Options'), 'indent' => $indent, 'owner_url' => $this->get_owner_url(), 'owner_photo' => $this->get_owner_photo(), diff --git a/Zotlabs/Lib/ThreadStream.php b/Zotlabs/Lib/ThreadStream.php index a6d4f8517..beb626f31 100644 --- a/Zotlabs/Lib/ThreadStream.php +++ b/Zotlabs/Lib/ThreadStream.php @@ -58,7 +58,7 @@ class ThreadStream { case 'display': // in this mode we set profile_owner after initialisation (from conversation()) and then // pull some trickery which allows us to re-invoke this function afterward - // it's an ugly hack so FIXME + // it's an ugly hack so @FIXME $this->writable = perm_is_allowed($this->profile_owner,$ob_hash,'post_comments'); break; case 'page': @@ -160,9 +160,9 @@ class ThreadStream { } elseif(($this->observer) && (! $item->is_commentable())) { if((array_key_exists('owner',$item->data)) && intval($item->data['owner']['abook_self'])) - $item->set_commentable(perm_is_allowed($this->profile_owner,$this->observer['xchan_hash'],'post_comments')); + $item->set_commentable(perm_is_allowed($this->profile_owner,$ob_hash,'post_comments')); else - $item->set_commentable(can_comment_on_post($this->observer['xchan_hash'],$item->data)); + $item->set_commentable(can_comment_on_post($ob_hash,$item->data)); } } require_once('include/channel.php'); diff --git a/Zotlabs/Lib/XConfig.php b/Zotlabs/Lib/XConfig.php index 7f3d0f2cd..bf78c360f 100644 --- a/Zotlabs/Lib/XConfig.php +++ b/Zotlabs/Lib/XConfig.php @@ -59,16 +59,16 @@ class XConfig { * @return mixed Stored $value or false if it does not exist */ - static public function Get($xchan, $family, $key) { + static public function Get($xchan, $family, $key, $default = false) { if(! $xchan) - return false; + return $default; if(! array_key_exists($xchan, \App::$config)) load_xconfig($xchan); if((! array_key_exists($family, \App::$config[$xchan])) || (! array_key_exists($key, \App::$config[$xchan][$family]))) - return false; + return $default; return ((! is_array(\App::$config[$xchan][$family][$key])) && (preg_match('|^a:[0-9]+:{.*}$|s', \App::$config[$xchan][$family][$key])) ? unserialize(\App::$config[$xchan][$family][$key]) diff --git a/Zotlabs/Module/Acl.php b/Zotlabs/Module/Acl.php index 1acd8e320..29c1e5280 100644 --- a/Zotlabs/Module/Acl.php +++ b/Zotlabs/Module/Acl.php @@ -77,7 +77,7 @@ class Acl extends \Zotlabs\Web\Controller { if($search) { - $sql_extra = " AND `name` LIKE " . protect_sprintf( "'%" . dbesc($search) . "%'" ) . " "; + $sql_extra = " AND groups.gname LIKE " . protect_sprintf( "'%" . dbesc($search) . "%'" ) . " "; $sql_extra2 = "AND ( xchan_name LIKE " . protect_sprintf( "'%" . dbesc($search) . "%'" ) . " OR xchan_addr LIKE " . protect_sprintf( "'%" . dbesc($search) . ((strpos($search,'@') === false) ? "%@%'" : "%'")) . ") "; // This horrible mess is needed because position also returns 0 if nothing is found. @@ -105,9 +105,9 @@ class Acl extends \Zotlabs\Web\Controller { if($type == '' || $type == 'g') { $r = q("SELECT groups.id, groups.hash, groups.gname - FROM groups,group_member + FROM groups, group_member WHERE groups.deleted = 0 AND groups.uid = %d - AND group_member.gid=groups.id + AND group_member.gid = groups.id $sql_extra GROUP BY groups.id ORDER BY groups.gname diff --git a/Zotlabs/Module/Admin.php b/Zotlabs/Module/Admin.php index e3702992f..536d85dde 100644 --- a/Zotlabs/Module/Admin.php +++ b/Zotlabs/Module/Admin.php @@ -1,21 +1,20 @@ 1) { $this->sm->call('post'); } - + goaway(z_root() . '/admin' ); } - + /** * @return string */ function get() { - + logger('admin_content', LOGGER_DEBUG); - + if(! is_site_admin()) { return login(false); } - - + /* * Page content */ $o = ''; - + if(argc() > 1) { $o = $this->sm->call('get'); if($o === false) { @@ -65,9 +63,9 @@ class Admin extends \Zotlabs\Web\Controller { else { $o = $this->admin_page_summary(); } - + if(is_ajax()) { - echo $o; + echo $o; killme(); return ''; } @@ -75,16 +73,15 @@ class Admin extends \Zotlabs\Web\Controller { return $o; } } - - + + /** * @brief Returns content for Admin Summary Page. * - * @param App &$a * @return string HTML from parsed admin_summary.tpl */ function admin_page_summary() { - + // list total user accounts, expirations etc. $accounts = array(); $r = q("SELECT COUNT(*) AS total, COUNT(CASE WHEN account_expires > %s THEN 1 ELSE NULL END) AS expiring, COUNT(CASE WHEN account_expires < %s AND account_expires > '%s' THEN 1 ELSE NULL END) AS expired, COUNT(CASE WHEN (account_flags & %d)>0 THEN 1 ELSE NULL END) AS blocked FROM account", @@ -99,11 +96,11 @@ class Admin extends \Zotlabs\Web\Controller { $accounts['expired'] = array('label' => t('# expired accounts'), 'val' => $r[0]['expired']); $accounts['expiring'] = array('label' => t('# expiring accounts'), 'val' => $r[0]['expiring']); } - + // pending registrations - $r = q("SELECT COUNT(id) AS `count` FROM `register` WHERE `uid` != '0'"); - $pending = $r[0]['count']; - + $r = q("SELECT COUNT(id) AS rtotal FROM register WHERE uid != '0'"); + $pending = $r[0]['rtotal']; + // available channels, primary and clones $channels = array(); $r = q("SELECT COUNT(*) AS total, COUNT(CASE WHEN channel_primary = 1 THEN 1 ELSE NULL END) AS main, COUNT(CASE WHEN channel_primary = 0 THEN 1 ELSE NULL END) AS clones FROM channel WHERE channel_removed = 0"); @@ -112,15 +109,15 @@ class Admin extends \Zotlabs\Web\Controller { $channels['main'] = array('label' => t('# primary'), 'val' => $r[0]['main']); $channels['clones'] = array('label' => t('# clones'), 'val' => $r[0]['clones']); } - + // We can do better, but this is a quick queue status $r = q("SELECT COUNT(outq_delivered) AS total FROM outq WHERE outq_delivered = 0"); $queue = (($r) ? $r[0]['total'] : 0); $queues = array( 'label' => t('Message queues'), 'queue' => $queue ); - + // If no plugins active return 0, otherwise list of plugin names $plugins = (count(\App::$plugins) == 0) ? count(\App::$plugins) : \App::$plugins; - + // Could be extended to provide also other alerts to the admin $alertmsg = ''; // annoy admin about upcoming unsupported PHP version @@ -135,7 +132,6 @@ class Admin extends \Zotlabs\Web\Controller { $upgrade = ((version_compare(STD_VERSION,$vmaster) < 0) ? t('Your software should be updated') : ''); - $t = get_markup_template('admin_summary.tpl'); return replace_macros($t, array( '$title' => t('Administration'), @@ -150,10 +146,8 @@ class Admin extends \Zotlabs\Web\Controller { '$vmaster' => array( t('Repository version (master)'), $vmaster), '$vdev' => array( t('Repository version (dev)'), $vdev), '$upgrade' => $upgrade, - '$build' => get_config('system', 'db_version') + '$build' => get_config('system', 'db_version') )); } - - - + } diff --git a/Zotlabs/Module/Admin/Account_edit.php b/Zotlabs/Module/Admin/Account_edit.php index ddb7e19f4..6dfadf183 100644 --- a/Zotlabs/Module/Admin/Account_edit.php +++ b/Zotlabs/Module/Admin/Account_edit.php @@ -29,6 +29,22 @@ class Account_edit { info( sprintf( t('Password changed for account %d.'), $account_id). EOL); } + + $service_class = trim($_REQUEST['service_class']); + $account_level = intval(trim($_REQUEST['account_level'])); + $account_language = trim($_REQUEST['account_language']); + + $r = q("update account set account_service_class = '%s', account_level = %d, account_language = '%s' + where account_id = %d", + dbesc($service_class), + intval($account_level), + dbesc($account_language), + intval($account_id) + ); + + if($r) + info( t('Account settings updated.') . EOL); + goaway(z_root() . '/admin/accounts'); } @@ -46,11 +62,15 @@ class Account_edit { return ''; } + $a = replace_macros(get_markup_template('admin_account_edit.tpl'), [ '$account' => $x[0], '$title' => t('Account Edit'), '$pass1' => [ 'pass1', t('New Password'), ' ','' ], '$pass2' => [ 'pass2', t('New Password again'), ' ','' ], + '$account_level' => [ 'account_level', t('Technical skill level'), $x[0]['account_level'], '', \Zotlabs\Lib\Techlevels::levels() ], + '$account_language' => [ 'account_language' , t('Account language (for emails)'), $x[0]['account_language'], '', language_list() ], + '$service_class' => [ 'service_class', t('Service class'), $x[0]['account_service_class'], '' ], '$submit' => t('Submit'), ] ); diff --git a/Zotlabs/Module/Admin/Accounts.php b/Zotlabs/Module/Admin/Accounts.php index 143d00a3b..2043550fc 100644 --- a/Zotlabs/Module/Admin/Accounts.php +++ b/Zotlabs/Module/Admin/Accounts.php @@ -133,10 +133,9 @@ class Accounts { $base = z_root() . '/admin/accounts?f='; $odir = (($dir === 'asc') ? '0' : '1'); - $users = q("SELECT `account_id` , `account_email`, `account_lastlog`, `account_created`, `account_expires`, " . "`account_service_class`, ( account_flags & %d ) > 0 as `blocked`, " . - "(SELECT %s FROM channel as ch " . - "WHERE ch.channel_account_id = ac.account_id and ch.channel_removed = 0 ) as `channels` " . - "FROM account as ac where true $serviceclass order by $key $dir limit %d offset %d ", + $users = q("SELECT account_id , account_email, account_lastlog, account_created, account_expires, account_service_class, ( account_flags & %d ) > 0 as blocked, + (SELECT %s FROM channel as ch WHERE ch.channel_account_id = ac.account_id and ch.channel_removed = 0 ) as channels FROM account as ac + where true $serviceclass order by $key $dir limit %d offset %d ", intval(ACCOUNT_BLOCKED), db_concat('ch.channel_address', ' '), intval(\App::$pager['itemspage']), diff --git a/Zotlabs/Module/Admin/Channels.php b/Zotlabs/Module/Admin/Channels.php index b9b345105..e0f26112d 100644 --- a/Zotlabs/Module/Admin/Channels.php +++ b/Zotlabs/Module/Admin/Channels.php @@ -2,35 +2,36 @@ namespace Zotlabs\Module\Admin; - +/** + * @brief Admin Module for Channels. + * + */ class Channels { - /** - * @brief Channels admin page. + * @brief Handle POST actions on channels admin page. * - * @param App &$a */ function post() { $channels = ( x($_POST, 'channel') ? $_POST['channel'] : Array() ); - + check_form_security_token_redirectOnErr('/admin/channels', 'admin_channels'); - + $xor = db_getfunc('^'); - - if (x($_POST,'page_channels_block')){ - foreach($channels as $uid){ + + if(x($_POST, 'page_channels_block')) { + foreach($channels as $uid) { q("UPDATE channel SET channel_pageflags = ( channel_pageflags $xor %d ) where channel_id = %d", intval(PAGE_CENSORED), intval( $uid ) ); - \Zotlabs\Daemon\Master::Summon(array('Directory',$uid,'nopush')); + \Zotlabs\Daemon\Master::Summon(array('Directory', $uid, 'nopush')); } notice( sprintf( tt("%s channel censored/uncensored", "%s channels censored/uncensored", count($channels)), count($channels)) ); } - if (x($_POST,'page_channels_code')){ - foreach($channels as $uid){ + if(x($_POST, 'page_channels_code')) { + foreach($channels as $uid) { q("UPDATE channel SET channel_pageflags = ( channel_pageflags $xor %d ) where channel_id = %d", intval(PAGE_ALLOWCODE), intval( $uid ) @@ -38,74 +39,71 @@ class Channels { } notice( sprintf( tt("%s channel code allowed/disallowed", "%s channels code allowed/disallowed", count($channels)), count($channels)) ); } - if (x($_POST,'page_channels_delete')){ - foreach($channels as $uid){ - channel_remove($uid,true); + if(x($_POST, 'page_channels_delete')) { + foreach($channels as $uid) { + channel_remove($uid, true); } notice( sprintf( tt("%s channel deleted", "%s channels deleted", count($channels)), count($channels)) ); } - + goaway(z_root() . '/admin/channels' ); } - /** - * @brief + * @brief Generate channels admin page and handle single item operations. * - * @return string + * @return string with parsed HTML */ - function get() { if(argc() > 2) { $uid = argv(3); $channel = q("SELECT * FROM channel WHERE channel_id = %d", intval($uid) ); - + if(! $channel) { notice( t('Channel not found') . EOL); goaway(z_root() . '/admin/channels' ); } - + switch(argv(2)) { case "delete":{ check_form_security_token_redirectOnErr('/admin/channels', 'admin_channels', 't'); // delete channel channel_remove($uid,true); - + notice( sprintf(t("Channel '%s' deleted"), $channel[0]['channel_name']) . EOL); }; break; - + case "block":{ check_form_security_token_redirectOnErr('/admin/channels', 'admin_channels', 't'); - $pflags = $channel[0]['channel_pageflags'] ^ PAGE_CENSORED; + $pflags = $channel[0]['channel_pageflags'] ^ PAGE_CENSORED; q("UPDATE channel SET channel_pageflags = %d where channel_id = %d", intval($pflags), intval( $uid ) ); \Zotlabs\Daemon\Master::Summon(array('Directory',$uid,'nopush')); - + notice( sprintf( (($pflags & PAGE_CENSORED) ? t("Channel '%s' censored"): t("Channel '%s' uncensored")) , $channel[0]['channel_name'] . ' (' . $channel[0]['channel_address'] . ')' ) . EOL); }; break; - + case "code":{ check_form_security_token_redirectOnErr('/admin/channels', 'admin_channels', 't'); - $pflags = $channel[0]['channel_pageflags'] ^ PAGE_ALLOWCODE; + $pflags = $channel[0]['channel_pageflags'] ^ PAGE_ALLOWCODE; q("UPDATE channel SET channel_pageflags = %d where channel_id = %d", intval($pflags), intval( $uid ) ); - + notice( sprintf( (($pflags & PAGE_ALLOWCODE) ? t("Channel '%s' code allowed"): t("Channel '%s' code disallowed")) , $channel[0]['channel_name'] . ' (' . $channel[0]['channel_address'] . ')' ) . EOL); }; break; - - default: + + default: break; } goaway(z_root() . '/admin/channels' ); } - $key = (($_REQUEST['key']) ? dbesc($_REQUEST['key']) : 'channel_id'); $dir = 'asc'; if(array_key_exists('dir',$_REQUEST)) @@ -114,10 +112,8 @@ class Channels { $base = z_root() . '/admin/channels?f='; $odir = (($dir === 'asc') ? '0' : '1'); - - /* get channels */ - + $total = q("SELECT count(*) as total FROM channel where channel_removed = 0 and channel_system = 0"); if($total) { \App::set_pager_total($total[0]['total']); @@ -135,15 +131,15 @@ class Channels { $channels[$x]['blocked'] = true; else $channels[$x]['blocked'] = false; - + if($channels[$x]['channel_pageflags'] & PAGE_ALLOWCODE) $channels[$x]['allowcode'] = true; else $channels[$x]['allowcode'] = false; } } - - $t = get_markup_template("admin_channels.tpl"); + + $t = get_markup_template('admin_channels.tpl'); $o = replace_macros($t, array( // strings // '$title' => t('Administration'), @@ -158,29 +154,23 @@ class Channels { '$h_channels' => t('Channel'), '$base' => $base, '$odir' => $odir, - '$th_channels' => array( + '$th_channels' => array( [ t('UID'), 'channel_id' ], [ t('Name'), 'channel_name' ], [ t('Address'), 'channel_address' ]), - + '$confirm_delete_multi' => t('Selected channels will be deleted!\n\nEverything that was posted in these channels on this site will be permanently deleted!\n\nAre you sure?'), '$confirm_delete' => t('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?'), - - '$form_security_token' => get_form_security_token("admin_channels"), - + + '$form_security_token' => get_form_security_token('admin_channels'), + // values // '$baseurl' => z_root(), '$channels' => $channels, )); $o .= paginate($a); - + return $o; } - - - - - - } \ No newline at end of file diff --git a/Zotlabs/Module/Admin/Dbsync.php b/Zotlabs/Module/Admin/Dbsync.php index 305126c7d..cff8a2484 100644 --- a/Zotlabs/Module/Admin/Dbsync.php +++ b/Zotlabs/Module/Admin/Dbsync.php @@ -42,7 +42,7 @@ class Dbsync { } $failed = array(); - $r = q("select * from config where `cat` = 'database' "); + $r = q("select * from config where cat = 'database' "); if(count($r)) { foreach($r as $rr) { $upd = intval(substr($rr['k'],8)); diff --git a/Zotlabs/Module/Admin/Site.php b/Zotlabs/Module/Admin/Site.php index 8397cabbd..829ca71e4 100644 --- a/Zotlabs/Module/Admin/Site.php +++ b/Zotlabs/Module/Admin/Site.php @@ -5,11 +5,9 @@ namespace Zotlabs\Module\Admin; class Site { - /** * @brief POST handler for Admin Site Page. * - * @param App &$a */ function post(){ if (!x($_POST, 'page_site')) { @@ -17,38 +15,39 @@ class Site { } check_form_security_token_redirectOnErr('/admin/site', 'admin_site'); - + $sitename = ((x($_POST,'sitename')) ? notags(trim($_POST['sitename'])) : ''); $server_role = ((x($_POST,'server_role')) ? notags(trim($_POST['server_role'])) : 'standard'); - $banner = ((x($_POST,'banner')) ? trim($_POST['banner']) : false); + $banner = ((x($_POST,'banner')) ? trim($_POST['banner']) : false); $admininfo = ((x($_POST,'admininfo')) ? trim($_POST['admininfo']) : false); + $siteinfo = ((x($_POST,'siteinfo')) ? trim($_POST['siteinfo']) : ''); $language = ((x($_POST,'language')) ? notags(trim($_POST['language'])) : ''); $theme = ((x($_POST,'theme')) ? notags(trim($_POST['theme'])) : ''); $theme_mobile = ((x($_POST,'theme_mobile')) ? notags(trim($_POST['theme_mobile'])) : ''); - // $site_channel = ((x($_POST,'site_channel')) ? notags(trim($_POST['site_channel'])) : ''); +// $site_channel = ((x($_POST,'site_channel')) ? notags(trim($_POST['site_channel'])) : ''); $maximagesize = ((x($_POST,'maximagesize')) ? intval(trim($_POST['maximagesize'])) : 0); - + $register_policy = ((x($_POST,'register_policy')) ? intval(trim($_POST['register_policy'])) : 0); - + $access_policy = ((x($_POST,'access_policy')) ? intval(trim($_POST['access_policy'])) : 0); - $invite_only = ((x($_POST,'invite_only')) ? True : False); - $abandon_days = ((x($_POST,'abandon_days')) ? intval(trim($_POST['abandon_days'])) : 0); - + $invite_only = ((x($_POST,'invite_only')) ? True : False); + $abandon_days = ((x($_POST,'abandon_days')) ? intval(trim($_POST['abandon_days'])) : 0); + $register_text = ((x($_POST,'register_text')) ? notags(trim($_POST['register_text'])) : ''); - $frontpage = ((x($_POST,'frontpage')) ? notags(trim($_POST['frontpage'])) : ''); - $mirror_frontpage = ((x($_POST,'mirror_frontpage')) ? intval(trim($_POST['mirror_frontpage'])) : 0); - $directory_server = ((x($_POST,'directory_server')) ? trim($_POST['directory_server']) : ''); - $allowed_sites = ((x($_POST,'allowed_sites')) ? notags(trim($_POST['allowed_sites'])) : ''); - $force_publish = ((x($_POST,'publish_all')) ? True : False); - $disable_discover_tab = ((x($_POST,'disable_discover_tab')) ? False : True); - $login_on_homepage = ((x($_POST,'login_on_homepage')) ? True : False); - $enable_context_help = ((x($_POST,'enable_context_help')) ? True : False); + $frontpage = ((x($_POST,'frontpage')) ? notags(trim($_POST['frontpage'])) : ''); + $mirror_frontpage = ((x($_POST,'mirror_frontpage')) ? intval(trim($_POST['mirror_frontpage'])) : 0); + $directory_server = ((x($_POST,'directory_server')) ? trim($_POST['directory_server']) : ''); + $allowed_sites = ((x($_POST,'allowed_sites')) ? notags(trim($_POST['allowed_sites'])) : ''); + $force_publish = ((x($_POST,'publish_all')) ? True : False); + $disable_discover_tab = ((x($_POST,'disable_discover_tab')) ? False : True); + $login_on_homepage = ((x($_POST,'login_on_homepage')) ? True : False); + $enable_context_help = ((x($_POST,'enable_context_help')) ? True : False); $global_directory = ((x($_POST,'directory_submit_url')) ? notags(trim($_POST['directory_submit_url'])) : ''); $no_community_page = !((x($_POST,'no_community_page')) ? True : False); $default_expire_days = ((array_key_exists('default_expire_days',$_POST)) ? intval($_POST['default_expire_days']) : 0); - + $verifyssl = ((x($_POST,'verifyssl')) ? True : False); $proxyuser = ((x($_POST,'proxyuser')) ? notags(trim($_POST['proxyuser'])) : ''); $proxy = ((x($_POST,'proxy')) ? notags(trim($_POST['proxy'])) : ''); @@ -62,11 +61,9 @@ class Site { $techlevel_lock = ((x($_POST,'techlock')) ? intval($_POST['techlock']) : 0); $techlevel = null; - if(array_key_exists('techlevel',$_POST)) + if(array_key_exists('techlevel', $_POST)) $techlevel = intval($_POST['techlevel']); - - set_config('system', 'server_role', $server_role); set_config('system', 'feed_contacts', $feed_contacts); set_config('system', 'delivery_interval', $delivery_interval); @@ -84,16 +81,16 @@ class Site { if(! is_null($techlevel)) set_config('system', 'techlevel', $techlevel); - + if($directory_server) set_config('system','directory_server',$directory_server); - + if ($banner == '') { del_config('system', 'banner'); } else { set_config('system', 'banner', $banner); } - + if ($admininfo == ''){ del_config('system', 'admininfo'); } else { @@ -101,6 +98,7 @@ class Site { linkify_tags($a, $admininfo, local_channel()); set_config('system', 'admininfo', $admininfo); } + set_config('system','siteinfo',$siteinfo); set_config('system', 'language', $language); set_config('system', 'theme', $theme); if ( $theme_mobile === '---' ) { @@ -110,9 +108,9 @@ class Site { } // set_config('system','site_channel', $site_channel); set_config('system','maximagesize', $maximagesize); - + set_config('system','register_policy', $register_policy); - set_config('system','invitation_only', $invite_only); + set_config('system','invitation_only', $invite_only); set_config('system','access_policy', $access_policy); set_config('system','account_abandon_days', $abandon_days); set_config('system','register_text', $register_text); @@ -124,14 +122,14 @@ class Site { } else { set_config('system', 'directory_submit_url', $global_directory); } - + set_config('system','no_community_page', $no_community_page); set_config('system','no_utf', $no_utf); set_config('system','verifyssl', $verifyssl); set_config('system','proxyuser', $proxyuser); set_config('system','proxy', $proxy); set_config('system','curl_timeout', $timeout); - + info( t('Site settings updated.') . EOL); goaway(z_root() . '/admin/site' ); } @@ -139,15 +137,14 @@ class Site { /** * @brief Admin page site. * - * @return string + * @return string with HTML */ - function get() { - + /* Installed langs */ $lang_choices = array(); $langs = glob('view/*/hstrings.php'); - + if(is_array($langs) && count($langs)) { if(! in_array('view/en/hstrings.php',$langs)) $langs[] = 'view/en/'; @@ -157,7 +154,7 @@ class Site { $lang_choices[$t[1]] = $t[1]; } } - + /* Installed themes */ $theme_choices_mobile["---"] = t("Default"); $theme_choices = array(); @@ -184,13 +181,13 @@ class Site { } } } - + $dir_choices = null; $dirmode = get_config('system','directory_mode'); $realm = get_directory_realm(); - + // directory server should not be set or settable unless we are a directory client - + if($dirmode == DIRECTORY_MODE_NORMAL) { $x = q("select site_url from site where site_flags in (%d,%d) and site_realm = '%s'", intval(DIRECTORY_MODE_SECONDARY), @@ -204,25 +201,25 @@ class Site { } } } - + /* Banner */ - + $banner = get_config('system', 'banner'); - if($banner === false) + if($banner === false) $banner = get_config('system','sitename'); - + $banner = htmlspecialchars($banner); - + /* Admin Info */ $admininfo = get_config('system', 'admininfo'); - + /* Register policy */ $register_choices = Array( REGISTER_CLOSED => t("No"), REGISTER_APPROVE => t("Yes - with approval"), REGISTER_OPEN => t("Yes") ); - + /* Acess policy */ $access_choices = Array( ACCESS_PRIVATE => t("My site is not a public server"), @@ -230,36 +227,32 @@ class Site { ACCESS_FREE => t("My site has free access only"), ACCESS_TIERED => t("My site offers free accounts with optional paid upgrades") ); - + $discover_tab = get_config('system','disable_discover_tab'); // $disable public streams by default if($discover_tab === false) $discover_tab = 1; // now invert the logic for the setting. $discover_tab = (1 - $discover_tab); - + $server_roles = [ 'basic' => t('Basic/Minimal Social Networking'), 'standard' => t('Standard Configuration (default)'), 'pro' => t('Professional') ]; - $techlevels = [ '0' => t('Beginner/Basic'), '1' => t('Novice - not skilled but willing to learn'), '2' => t('Intermediate - somewhat comfortable'), '3' => t('Advanced - very comfortable'), - '4' => t('Expert - I can write computer code'), + '4' => t('Expert - I can write computer code'), '5' => t('Wizard - I probably know more than you do') ]; - - - $homelogin = get_config('system','login_on_homepage'); $enable_context_help = get_config('system','enable_context_help'); - + $t = get_markup_template("admin_site.tpl"); return replace_macros($t, array( '$title' => t('Administration'), @@ -269,7 +262,7 @@ class Site { '$upload' => t('File upload'), '$corporate' => t('Policies'), '$advanced' => t('Advanced'), - + '$baseurl' => z_root(), // name, label, value, help string, extra data... '$sitename' => array('sitename', t("Site name"), htmlspecialchars(get_config('system','sitename'), ENT_QUOTES, 'UTF-8'),''), @@ -280,14 +273,14 @@ class Site { '$techlock' => [ 'techlock', t('Lock the technical skill level setting'), get_config('system','techlevel_lock'), t('Members can set their own technical comfort level by default') ], - '$banner' => array('banner', t("Banner/Logo"), $banner, ""), '$admininfo' => array('admininfo', t("Administrator Information"), $admininfo, t("Contact information for site administrators. Displayed on siteinfo page. BBCode can be used here")), + '$siteinfo' => array('siteinfo', t('Site Information'), get_config('system','siteinfo'), t("Publicly visible description of this site. Displayed on siteinfo page. BBCode can be used here")), '$language' => array('language', t("System language"), get_config('system','language'), "", $lang_choices), '$theme' => array('theme', t("System theme"), get_config('system','theme'), t("Default system theme - may be over-ridden by user profiles - change theme settings"), $theme_choices), '$theme_mobile' => array('theme_mobile', t("Mobile system theme"), get_config('system','mobile_theme'), t("Theme for mobile devices"), $theme_choices_mobile), - // '$site_channel' => array('site_channel', t("Channel to use for this website's static pages"), get_config('system','site_channel'), t("Site Channel")), - '$feed_contacts' => array('feed_contacts', t('Allow Feeds as Connections'),get_config('system','feed_contacts'),t('(Heavy system resource usage)')), +// '$site_channel' => array('site_channel', t("Channel to use for this website's static pages"), get_config('system','site_channel'), t("Site Channel")), + '$feed_contacts' => array('feed_contacts', t('Allow Feeds as Connections'),get_config('system','feed_contacts'),t('(Heavy system resource usage)')), '$maximagesize' => array('maximagesize', t("Maximum image size"), intval(get_config('system','maximagesize')), t("Maximum size in bytes of uploaded images. Default is 0, which means no limits.")), '$register_policy' => array('register_policy', t("Does this site allow new member registration?"), get_config('system','register_policy'), "", $register_choices), '$invite_only' => array('invite_only', t("Invitation only"), get_config('system','invitation_only'), t("Only allow new member registrations with an invitation code. Above register policy must be set to Yes.")), @@ -302,9 +295,9 @@ class Site { '$disable_discover_tab' => array('disable_discover_tab', t('Import Public Streams'), $discover_tab, t('Import and allow access to public content pulled from other sites. Warning: this content is unmoderated.')), '$login_on_homepage' => array('login_on_homepage', t("Login on Homepage"),((intval($homelogin) || $homelogin === false) ? 1 : '') , t("Present a login box to visitors on the home page if no other content has been configured.")), '$enable_context_help' => array('enable_context_help', t("Enable context help"),((intval($enable_context_help) === 1 || $enable_context_help === false) ? 1 : 0) , t("Display contextual help for the current page when the help button is pressed.")), - + '$directory_server' => (($dir_choices) ? array('directory_server', t("Directory Server URL"), get_config('system','directory_server'), t("Default directory server"), $dir_choices) : null), - + '$proxyuser' => array('proxyuser', t("Proxy user"), get_config('system','proxyuser'), ""), '$proxy' => array('proxy', t("Proxy URL"), get_config('system','proxy'), ""), '$timeout' => array('timeout', t("Network timeout"), (x(get_config('system','curl_timeout'))?get_config('system','curl_timeout'):60), t("Value is in seconds. Set to 0 for unlimited (not recommended).")), @@ -316,8 +309,5 @@ class Site { '$form_security_token' => get_form_security_token("admin_site"), )); } - - - } \ No newline at end of file diff --git a/Zotlabs/Module/Api.php b/Zotlabs/Module/Api.php index 4fd59acc4..a2a1aac1d 100644 --- a/Zotlabs/Module/Api.php +++ b/Zotlabs/Module/Api.php @@ -3,10 +3,22 @@ namespace Zotlabs\Module; require_once('include/api.php'); - - class Api extends \Zotlabs\Web\Controller { + + function init() { + zot_api_init(); + + api_register_func('api/client/register', 'api_client_register', false); + api_register_func('api/oauth/request_token', 'api_oauth_request_token', false); + api_register_func('api/oauth/access_token', 'api_oauth_access_token', false); + + $args = []; + call_hooks('api_register',$args); + + return; + } + function post() { if(! local_channel()) { notice( t('Permission denied.') . EOL); @@ -17,13 +29,13 @@ class Api extends \Zotlabs\Web\Controller { function get() { - if(\App::$cmd=='api/oauth/authorize'){ + if(\App::$cmd === 'api/oauth/authorize'){ /* * api/oauth/authorize interact with the user. return a standard page */ - \App::$page['template'] = "minimal"; + \App::$page['template'] = 'minimal'; // get consumer/client from request token try { @@ -42,8 +54,8 @@ class Api extends \Zotlabs\Web\Controller { $consumer = new OAuth1Consumer($app['client_id'], $app['pw'], $app['redirect_uri']); - $verifier = md5($app['secret'].local_channel()); - set_config("oauth", $verifier, local_channel()); + $verifier = md5($app['secret'] . local_channel()); + set_config('oauth', $verifier, local_channel()); if($consumer->callback_url != null) { @@ -78,11 +90,11 @@ class Api extends \Zotlabs\Web\Controller { $tpl = get_markup_template('oauth_authorize.tpl'); $o = replace_macros($tpl, array( - '$title' => t('Authorize application connection'), - '$app' => $app, + '$title' => t('Authorize application connection'), + '$app' => $app, '$authorize' => t('Do you want to authorize this application to access your posts and contacts, and/or create new posts for you?'), - '$yes' => t('Yes'), - '$no' => t('No'), + '$yes' => t('Yes'), + '$no' => t('No'), )); //echo "
"; var_dump($app); killme();
diff --git a/Zotlabs/Module/Cal.php b/Zotlabs/Module/Cal.php
index b2e1c9235..1279a51b1 100644
--- a/Zotlabs/Module/Cal.php
+++ b/Zotlabs/Module/Cal.php
@@ -109,7 +109,7 @@ class Cal extends \Zotlabs\Web\Controller {
 	
 			/* edit/create form */
 			if($event_id) {
-				$r = q("SELECT * FROM `event` WHERE event_hash = '%s' AND `uid` = %d LIMIT 1",
+				$r = q("SELECT * FROM event WHERE event_hash = '%s' AND uid = %d LIMIT 1",
 					dbesc($event_id),
 					intval($channel['channel_id'])
 				);
@@ -228,7 +228,7 @@ class Cal extends \Zotlabs\Web\Controller {
 	
 				$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 
+					where resource_type = 'event' and event.uid = %d and event.uid = item.uid $ignored 
 					AND (( adjust = 0 AND ( dtend >= '%s' or nofinish = 1 ) AND dtstart <= '%s' ) 
 					OR  (  adjust = 1 AND ( dtend >= '%s' or nofinish = 1 ) AND dtstart <= '%s' )) $sql_extra ",
 					intval($channel['channel_id']),
diff --git a/Zotlabs/Module/Channel.php b/Zotlabs/Module/Channel.php
index 209d86236..45da92184 100644
--- a/Zotlabs/Module/Channel.php
+++ b/Zotlabs/Module/Channel.php
@@ -1,6 +1,6 @@
  2) && (argv(2) === 'view')) {
 			$which = $channel['channel_address'];
-			$profile = argv(1);		
+			$profile = argv(1);
 		}
 
 		\App::$page['htmlhead'] .= '' . "\r\n" ;
@@ -48,12 +52,10 @@ class Channel extends \Zotlabs\Web\Controller {
 		// we start loading content
 
 		profile_load($which,$profile);
-
 	}
 
 	function get($update = 0, $load = false) {
 
-
 		if($load)
 			$_SESSION['loadtime'] = datetime_convert();
 
@@ -66,12 +68,13 @@ class Channel extends \Zotlabs\Web\Controller {
 		$datequery = ((x($_GET,'dend') && is_a_date_arg($_GET['dend'])) ? notags($_GET['dend']) : '');
 		$datequery2 = ((x($_GET,'dbegin') && is_a_date_arg($_GET['dbegin'])) ? notags($_GET['dbegin']) : '');
 
-		if(observer_prohibited(true)) {			
+		if(observer_prohibited(true)) {
 			return login();
 		}
 
 		$category = ((x($_REQUEST,'cat')) ? $_REQUEST['cat'] : '');
 		$hashtags = ((x($_REQUEST,'tag')) ? $_REQUEST['tag'] : '');
+		$static   = ((array_key_exists('static',$_REQUEST)) ? intval($_REQUEST['static']) : 0);
 
 		$groups = array();
 
@@ -108,15 +111,17 @@ class Channel extends \Zotlabs\Web\Controller {
 
 		if(! $update) {
 
+			$static = channel_manual_conv_update(\App::$profile['profile_uid']);
+
 			$o .= profile_tabs($a, $is_owner, \App::$profile['channel_address']);
 
 			$o .= common_friends_visitor_widget(\App::$profile['profile_uid']);
 
 			if($channel && $is_owner) {
 				$channel_acl = array(
-					'allow_cid' => $channel['channel_allow_cid'], 
-					'allow_gid' => $channel['channel_allow_gid'], 
-					'deny_cid' => $channel['channel_deny_cid'], 
+					'allow_cid' => $channel['channel_allow_cid'],
+					'allow_gid' => $channel['channel_allow_gid'],
+					'deny_cid' => $channel['channel_deny_cid'],
 					'deny_gid' => $channel['channel_deny_gid']
 				);
 			}
@@ -143,9 +148,9 @@ class Channel extends \Zotlabs\Web\Controller {
 					'bbco_autocomplete' => 'bbcode',
 					'bbcode' => true,
 					'jotnets' => true
-        		);
+				);
 
-        		$o .= status_editor($a,$x);
+				$o .= status_editor($a,$x);
 			}
 
 		}
@@ -168,12 +173,15 @@ class Channel extends \Zotlabs\Web\Controller {
 		$simple_update = (($update) ? " AND item_unseen = 1 " : '');
 
 		\App::$page['htmlhead'] .= "\r\n" . '' . "\r\n";
-		
+
 		if($update && $_SESSION['loadtime'])
 			$simple_update = " AND (( item_unseen = 1 AND item.changed > '" . datetime_convert('UTC','UTC',$_SESSION['loadtime']) . "' )  OR item.changed > '" . datetime_convert('UTC','UTC',$_SESSION['loadtime']) . "' ) ";
 		if($load)
 			$simple_update = '';
 
+		if($static && $simple_update)
+			$simple_update .= " and item_thread_top = 0 and author_xchan = '" . protect_sprintf(get_observer_hash()) . "' ";
+
 		if(($update) && (! $load)) {
 
 			if($mid) {
@@ -183,9 +191,9 @@ class Channel extends \Zotlabs\Web\Controller {
 					intval(\App::$profile['profile_uid'])
 				);
 				$_SESSION['loadtime'] = datetime_convert();
-			} 
+			}
 			else {
-				$r = q("SELECT distinct parent AS `item_id`, created from item
+				$r = q("SELECT distinct parent AS item_id, created from item
 					left join abook on ( item.owner_xchan = abook.abook_xchan $abook_uids )
 					WHERE uid = %d $item_normal
 					AND item_wall = 1 $simple_update
@@ -201,10 +209,10 @@ class Channel extends \Zotlabs\Web\Controller {
 		else {
 
 			if(x($category)) {
-			        $sql_extra .= protect_sprintf(term_query('item', $category, TERM_CATEGORY));
+				$sql_extra .= protect_sprintf(term_query('item', $category, TERM_CATEGORY));
 			}
 			if(x($hashtags)) {
-			        $sql_extra .= protect_sprintf(term_query('item', $hashtags, TERM_HASHTAG, TERM_COMMUNITYTAG));
+				$sql_extra .= protect_sprintf(term_query('item', $hashtags, TERM_HASHTAG, TERM_COMMUNITYTAG));
 			}
 
 			if($datequery) {
@@ -228,10 +236,9 @@ class Channel extends \Zotlabs\Web\Controller {
 					if (! $r) {
 						notice( t('Permission denied.') . EOL);
 					}
-
-				} 
+				}
 				else {
-					$r = q("SELECT distinct id AS item_id, created FROM item 
+					$r = q("SELECT distinct id AS item_id, created FROM item
 						left join abook on item.author_xchan = abook.abook_xchan
 						WHERE uid = %d $item_normal
 						AND item_wall = 1 and item_thread_top = 1
@@ -250,11 +257,11 @@ class Channel extends \Zotlabs\Web\Controller {
 		if($r) {
 
 			$parents_str = ids_to_querystr($r,'item_id');
- 
-			$items = q("SELECT `item`.*, `item`.`id` AS `item_id` 
-				FROM `item`
-				WHERE `item`.`uid` = %d $item_normal
-				AND `item`.`parent` IN ( %s )
+
+			$items = q("SELECT item.*, item.id AS item_id
+				FROM item
+				WHERE item.uid = %d $item_normal
+				AND item.parent IN ( %s )
 				$sql_extra ",
 				intval(\App::$profile['profile_uid']),
 				dbesc($parents_str)
@@ -270,8 +277,7 @@ class Channel extends \Zotlabs\Web\Controller {
 				notice( t('Permission denied.') . EOL);
 			}
 
-		} 
-		else {
+		} else {
 			$items = array();
 		}
 
@@ -285,7 +291,7 @@ class Channel extends \Zotlabs\Web\Controller {
 				$maxheight = 400;
 
 			$o .= '
' . "\r\n"; - $o .= "\r\n"; @@ -304,6 +310,7 @@ class Channel extends \Zotlabs\Web\Controller { '$nouveau' => '0', '$wall' => '1', '$fh' => '0', + '$static' => $static, '$page' => ((\App::$pager['page'] != 1) ? \App::$pager['page'] : 1), '$search' => '', '$order' => '', @@ -317,7 +324,6 @@ class Channel extends \Zotlabs\Web\Controller { '$dbegin' => $datequery2 )); - } $update_unseen = ''; @@ -325,10 +331,10 @@ class Channel extends \Zotlabs\Web\Controller { if($page_mode === 'list') { /** - * in "list mode", only mark the parent item and any like activities as "seen". + * in "list mode", only mark the parent item and any like activities as "seen". * We won't distinguish between comment likes and post likes. The important thing * is that the number of unseen comments will be accurate. The SQL to separate the - * comment likes could also get somewhat hairy. + * comment likes could also get somewhat hairy. */ if($parents_str) { @@ -351,7 +357,7 @@ class Channel extends \Zotlabs\Web\Controller { if($checkjs->disabled()) { $o .= conversation($a,$items,'channel',$update,'traditional'); - } + } else { $o .= conversation($a,$items,'channel',$update,$page_mode); } @@ -362,7 +368,7 @@ class Channel extends \Zotlabs\Web\Controller { \App::$page['title'] = $items[0]['title'] . " - " . \App::$page['title']; } - if($mid) + if($mid) $o .= '
'; return $o; diff --git a/Zotlabs/Module/Chanview.php b/Zotlabs/Module/Chanview.php index c6dd07eb7..01ee74d5a 100644 --- a/Zotlabs/Module/Chanview.php +++ b/Zotlabs/Module/Chanview.php @@ -58,7 +58,9 @@ class Chanview extends \Zotlabs\Web\Controller { } logger('mod_chanview: constructed address ' . print_r($matches,true)); } - + + $r = null; + if($_REQUEST['address']) { $j = \Zotlabs\Zot\Finger::run($_REQUEST['address'],null); if($j['success']) { @@ -66,40 +68,74 @@ class Chanview extends \Zotlabs\Web\Controller { $r = q("select * from xchan where xchan_addr = '%s' limit 1", dbesc($_REQUEST['address']) ); - if($r) + if($r) { \App::$poi = $r[0]; + } + } + if(! $r) { + if(discover_by_webbie($_REQUEST['address'])) { + $r = q("select * from xchan where xchan_addr = '%s' limit 1", + dbesc($_REQUEST['address']) + ); + if($r) { + \App::$poi = $r[0]; + } + } } } } if(! \App::$poi) { - // We don't know who this is, and we can't figure it out from the URL - // On the plus side, there's a good chance we know somebody else at that - // hub so sending them there with a Zid will probably work anyway. + + // We don't know who this is, and we can't figure it out from the URL + // On the plus side, there's a good chance we know somebody else at that + // hub so sending them there with a Zid will probably work anyway. + $url = ($_REQUEST['url']); + if(! $url) { + notice( t('Channel not found.') . EOL); + return; + } if($observer) $url = zid($url); + } + + $is_zot = false; if (\App::$poi) { - $url = \App::$poi['xchan_url']; - if($observer) - $url = zid($url); + $url = \App::$poi['xchan_url']; + if(\App::$poi['xchan_network'] === 'zot') { + $is_zot = true; + } } - // let somebody over-ride the iframed viewport presentation - // or let's just declare this a failed experiment. + + // We will load the chanview template if it's a foreign network, + // just so that we can provide a connect button along with a profile + // photo. Chances are we can't load the remote profile into an iframe + // because of cross-domain security headers. So provide a link to + // the remote profile. + + // Zot channels will usually have a connect link. + // If it isn't zot, 'pro' members won't be able to use the connect + // button as it is a foreign network so just send them to the remote + // profile. + - // if((! local_channel()) || (get_pconfig(local_channel(),'system','chanview_full'))) - - goaway($url); - - // $o = replace_macros(get_markup_template('chanview.tpl'),array( - // '$url' => $url, - // '$full' => t('toggle full screen mode') - // )); - - // return $o; + if($is_zot || \Zotlabs\Lib\System::get_server_role() === 'pro') { + if($is_zot && $observer) { + $url = zid($url); + } + goaway($url); + } + else { + $o = replace_macros(get_markup_template('chanview.tpl'),array( + '$url' => $url, + '$full' => t('toggle full screen mode') + )); + return $o; + } } } diff --git a/Zotlabs/Module/Cloud.php b/Zotlabs/Module/Cloud.php index 68d84e070..1fda8e32b 100644 --- a/Zotlabs/Module/Cloud.php +++ b/Zotlabs/Module/Cloud.php @@ -1,7 +1,7 @@ 1) $which = argv(1); - + $profile = 0; - + \App::$page['htmlhead'] .= '' . "\r\n"; - + if ($which) profile_load( $which, $profile); - + $auth = new \Zotlabs\Storage\BasicAuth(); - + $ob_hash = get_observer_hash(); - + if ($ob_hash) { if (local_channel()) { $channel = \App::get_channel(); @@ -57,40 +58,40 @@ class Cloud extends \Zotlabs\Web\Controller { } $auth->observer = $ob_hash; } - + if ($_GET['davguest']) $_SESSION['davguest'] = true; - + $_SERVER['QUERY_STRING'] = str_replace(array('?f=', '&f='), array('', ''), $_SERVER['QUERY_STRING']); $_SERVER['QUERY_STRING'] = strip_zids($_SERVER['QUERY_STRING']); $_SERVER['QUERY_STRING'] = preg_replace('/[\?&]davguest=(.*?)([\?&]|$)/ism', '', $_SERVER['QUERY_STRING']); - + $_SERVER['REQUEST_URI'] = str_replace(array('?f=', '&f='), array('', ''), $_SERVER['REQUEST_URI']); $_SERVER['REQUEST_URI'] = strip_zids($_SERVER['REQUEST_URI']); $_SERVER['REQUEST_URI'] = preg_replace('/[\?&]davguest=(.*?)([\?&]|$)/ism', '', $_SERVER['REQUEST_URI']); - + $rootDirectory = new \Zotlabs\Storage\Directory('/', $auth); - + // A SabreDAV server-object $server = new SDAV\Server($rootDirectory); // prevent overwriting changes each other with a lock backend $lockBackend = new SDAV\Locks\Backend\File('store/[data]/locks'); $lockPlugin = new SDAV\Locks\Plugin($lockBackend); - + $server->addPlugin($lockPlugin); - + $is_readable = false; - + // provide a directory view for the cloud in Hubzilla $browser = new \Zotlabs\Storage\Browser($auth); $auth->setBrowserPlugin($browser); - + $server->addPlugin($browser); - + // Experimental QuotaPlugin // require_once('\Zotlabs\Storage/QuotaPlugin.php'); // $server->addPlugin(new \Zotlabs\Storage\\QuotaPlugin($auth)); - + ob_start(); // All we need to do now, is to fire up the server $server->exec(); @@ -99,5 +100,5 @@ class Cloud extends \Zotlabs\Web\Controller { killme(); } - + } diff --git a/Zotlabs/Module/Connect.php b/Zotlabs/Module/Connect.php index dec375104..cd43ea290 100644 --- a/Zotlabs/Module/Connect.php +++ b/Zotlabs/Module/Connect.php @@ -29,7 +29,7 @@ class Connect extends \Zotlabs\Web\Controller { profile_load($which,''); } - function post() { + function post() { if(! array_key_exists('channel', \App::$data)) return; @@ -78,7 +78,7 @@ class Connect extends \Zotlabs\Web\Controller { - function get() { + function get() { $edit = ((local_channel() && (local_channel() == \App::$data['channel']['channel_id'])) ? true : false); diff --git a/Zotlabs/Module/Connedit.php b/Zotlabs/Module/Connedit.php index 43feac189..5968ccde6 100644 --- a/Zotlabs/Module/Connedit.php +++ b/Zotlabs/Module/Connedit.php @@ -41,11 +41,13 @@ class Connedit extends \Zotlabs\Web\Controller { } } + $channel = \App::get_channel(); if($channel) head_set_icon($channel['xchan_photo_s']); } + /* @brief Evaluate posted values and set changes * @@ -96,7 +98,7 @@ class Connedit extends \Zotlabs\Web\Controller { $profile_id = $_POST['profile_assign']; if($profile_id) { - $r = q("SELECT profile_guid FROM profile WHERE profile_guid = '%s' AND `uid` = %d LIMIT 1", + $r = q("SELECT profile_guid FROM profile WHERE profile_guid = '%s' AND uid = %d LIMIT 1", dbesc($profile_id), intval(local_channel()) ); @@ -396,6 +398,7 @@ class Connedit extends \Zotlabs\Web\Controller { return login(); } + $section = ((array_key_exists('section',$_REQUEST)) ? $_REQUEST['section'] : ''); $channel = \App::get_channel(); $my_perms = get_channel_default_perms(local_channel()); $role = get_pconfig(local_channel(),'system','permissions_role'); @@ -448,7 +451,7 @@ class Connedit extends \Zotlabs\Web\Controller { } if($cmd === 'resetphoto') { - q("update xchan set xchan_photo_date = '2001-01-01 00:00:00' where xchan_hash = '%s' limit 1", + q("update xchan set xchan_photo_date = '2001-01-01 00:00:00' where xchan_hash = '%s'", dbesc($orig_record[0]['xchan_hash']) ); $cmd = 'refresh'; @@ -521,11 +524,12 @@ class Connedit extends \Zotlabs\Web\Controller { if($cmd === 'drop') { - // FIXME - // We need to send either a purge or a refresh packet to the other side (the channel being unfriended). - // The issue is that the abook DB record _may_ get destroyed when we call contact_remove. As the notifier runs - // in the background there could be a race condition preventing this packet from being sent in all cases. - // PLACEHOLDER + // @FIXME + // We need to send either a purge or a refresh packet to the other side (the channel being unfriended). + // The issue is that the abook DB record _may_ get destroyed when we call contact_remove. As the notifier + // runs in the background there could be a race condition preventing this packet from being sent in all + // cases. + // PLACEHOLDER contact_remove(local_channel(), $orig_record[0]['abook_id']); build_sync_packet(0 /* use the current local_channel */, @@ -545,9 +549,33 @@ class Connedit extends \Zotlabs\Web\Controller { if(\App::$poi) { + $abook_prev = 0; + $abook_next = 0; + $contact_id = \App::$poi['abook_id']; $contact = \App::$poi; - + + $cn = q("SELECT abook_id, xchan_name from abook left join xchan on abook_xchan = xchan_hash where abook_channel = %d and abook_self = 0 order by xchan_name", + intval(local_channel()) + ); + + if($cn) { + $pntotal = count($cn); + + for($x = 0; $x < $pntotal; $x ++) { + if($cn[$x]['abook_id'] == $contact_id) { + if($x === 0) + $abook_prev = 0; + else + $abook_prev = $cn[$x - 1]['abook_id']; + if($x === $pntotal) + $abook_next = 0; + else + $abook_next = $cn[$x +1]['abook_id']; + } + } + } + $tools = array( 'view' => array( @@ -614,8 +642,10 @@ class Connedit extends \Zotlabs\Web\Controller { $self = false; - if(intval($contact['abook_self'])) + if(intval($contact['abook_self'])) { $self = true; + $abook_prev = $abook_next = 0; + } $tpl = get_markup_template("abook_edit.tpl"); @@ -750,6 +780,7 @@ class Connedit extends \Zotlabs\Web\Controller { '$header' => (($self) ? t('Connection Default Permissions') : sprintf( t('Connection: %s'),$contact['xchan_name'])), '$autoperms' => array('autoperms',t('Apply these permissions automatically'), ((get_pconfig(local_channel(),'system','autoperms')) ? 1 : 0), t('Connection requests will be approved without your interaction'), $yes_no), '$addr' => $contact['xchan_addr'], + '$section' => $section, '$addr_text' => t('This connection\'s primary address is'), '$loc_text' => t('Available locations:'), '$locstr' => $locstr, @@ -791,7 +822,8 @@ class Connedit extends \Zotlabs\Web\Controller { '$multiprofs' => $multiprofs, '$contact_id' => $contact['abook_id'], '$name' => $contact['xchan_name'], - + '$abook_prev' => $abook_prev, + '$abook_next' => $abook_next )); $arr = array('contact' => $contact,'output' => $o); @@ -800,9 +832,6 @@ class Connedit extends \Zotlabs\Web\Controller { return $arr['output']; - } - - + } } - } diff --git a/Zotlabs/Module/Contactgroup.php b/Zotlabs/Module/Contactgroup.php index bbe56b4ad..2ba53517f 100644 --- a/Zotlabs/Module/Contactgroup.php +++ b/Zotlabs/Module/Contactgroup.php @@ -23,7 +23,7 @@ class Contactgroup extends \Zotlabs\Web\Controller { if((argc() > 1) && (intval(argv(1)))) { - $r = q("SELECT * FROM `groups` WHERE `id` = %d AND `uid` = %d AND `deleted` = 0 LIMIT 1", + $r = q("SELECT * FROM groups WHERE id = %d AND uid = %d AND deleted = 0 LIMIT 1", intval(argv(1)), intval(local_channel()) ); diff --git a/Zotlabs/Module/Cover_photo.php b/Zotlabs/Module/Cover_photo.php index 886958b37..72ec1020d 100644 --- a/Zotlabs/Module/Cover_photo.php +++ b/Zotlabs/Module/Cover_photo.php @@ -88,7 +88,7 @@ class Cover_photo extends \Zotlabs\Web\Controller { if($r) { $base_image = $r[0]; - $base_image['content'] = (($r[0]['os_storage']) ? @file_get_contents($base_image['content']) : dbunescbin($base_image['content'])); + $base_image['content'] = (($r[0]['os_storage']) ? @file_get_contents(dbunescbin($base_image['content'])) : dbunescbin($base_image['content'])); $im = photo_factory($base_image['content'], $base_image['mimetype']); if($im->is_valid()) { @@ -309,7 +309,7 @@ class Cover_photo extends \Zotlabs\Web\Controller { $havescale = true; } - $r = q("SELECT `content`, `mimetype`, resource_id, os_storage FROM photo WHERE id = %d and uid = %d limit 1", + $r = q("SELECT content, mimetype, resource_id, os_storage FROM photo WHERE id = %d and uid = %d limit 1", intval($r[0]['id']), intval(local_channel()) @@ -320,7 +320,7 @@ class Cover_photo extends \Zotlabs\Web\Controller { } if(intval($r[0]['os_storage'])) - $data = @file_get_contents($r[0]['content']); + $data = @file_get_contents(dbunescbin($r[0]['content'])); else $data = dbunescbin($r[0]['content']); diff --git a/Zotlabs/Module/Dav.php b/Zotlabs/Module/Dav.php index aaf69844c..8ae2e8991 100644 --- a/Zotlabs/Module/Dav.php +++ b/Zotlabs/Module/Dav.php @@ -1,31 +1,26 @@ 1) profile_load(argv(1),0); - + $auth = new \Zotlabs\Storage\BasicAuth(); $auth->setRealm(ucfirst(\Zotlabs\Lib\System::get_platform_name()) . ' ' . 'WebDAV'); $rootDirectory = new \Zotlabs\Storage\Directory('/', $auth); - + // A SabreDAV server-object $server = new SDAV\Server($rootDirectory); @@ -68,21 +63,20 @@ class Dav extends \Zotlabs\Web\Controller { // prevent overwriting changes each other with a lock backend $lockBackend = new SDAV\Locks\Backend\File('store/[data]/locks'); $lockPlugin = new SDAV\Locks\Plugin($lockBackend); - + $server->addPlugin($lockPlugin); - + // provide a directory view for the cloud in Hubzilla $browser = new \Zotlabs\Storage\Browser($auth); $auth->setBrowserPlugin($browser); - + // Experimental QuotaPlugin - // require_once('Zotlabs/Storage/QuotaPlugin.php'); // $server->addPlugin(new \Zotlabs\Storage\QuotaPlugin($auth)); - + // All we need to do now, is to fire up the server $server->exec(); - + killme(); } - + } diff --git a/Zotlabs/Module/Directory.php b/Zotlabs/Module/Directory.php index e1068223b..da9bb146f 100644 --- a/Zotlabs/Module/Directory.php +++ b/Zotlabs/Module/Directory.php @@ -1,4 +1,5 @@ false); @@ -185,7 +185,7 @@ class Dirsearch extends \Zotlabs\Web\Controller { else { $qlimit = " LIMIT " . intval($perpage) . " OFFSET " . intval($startrec); if($return_total) { - $r = q("SELECT COUNT(xchan_hash) AS `total` FROM xchan left join xprof on xchan_hash = xprof_hash where $logic $sql_extra and xchan_network = 'zot' and xchan_hidden = 0 and xchan_orphan = 0 and xchan_deleted = 0 $safesql "); + $r = q("SELECT COUNT(xchan_hash) AS total FROM xchan left join xprof on xchan_hash = xprof_hash where $logic $sql_extra and xchan_network = 'zot' and xchan_hidden = 0 and xchan_orphan = 0 and xchan_deleted = 0 $safesql "); if($r) { $ret['total_items'] = $r[0]['total']; } @@ -457,6 +457,6 @@ class Dirsearch extends \Zotlabs\Web\Controller { } } return $ret; - } - + } + } diff --git a/Zotlabs/Module/Display.php b/Zotlabs/Module/Display.php index e9441bbdf..42f6dd4ac 100644 --- a/Zotlabs/Module/Display.php +++ b/Zotlabs/Module/Display.php @@ -121,6 +121,8 @@ class Display extends \Zotlabs\Web\Controller { return ''; } } + + $static = ((array_key_exists('static',$_REQUEST)) ? intval($_REQUEST['static']) : 0); $simple_update = (($update) ? " AND item_unseen = 1 " : ''); @@ -130,10 +132,13 @@ class Display extends \Zotlabs\Web\Controller { if($load) $simple_update = ''; - + if($static && $simple_update) + $simple_update .= " and item_thread_top = 0 and author_xchan = '" . protect_sprintf(get_observer_hash()) . "' "; if((! $update) && (! $load)) { + + $static = ((local_channel()) ? channel_manual_conv_update(local_channel()) : 0); $o .= '
' . "\r\n"; $o .= " diff --git a/doc/tutorials/assets/0965ace945f0c95ae38aa5bfedd230d2a7233d3915ac15d629f9dd845854.png b/doc/tutorials/assets/0965ace945f0c95ae38aa5bfedd230d2a7233d3915ac15d629f9dd845854.png new file mode 100644 index 000000000..d5cf1093f Binary files /dev/null and b/doc/tutorials/assets/0965ace945f0c95ae38aa5bfedd230d2a7233d3915ac15d629f9dd845854.png differ diff --git a/doc/tutorials/assets/1ebe02c205962dd25035c441631745d16acdb7a44e50d148256c8ad26a67.png b/doc/tutorials/assets/1ebe02c205962dd25035c441631745d16acdb7a44e50d148256c8ad26a67.png new file mode 100644 index 000000000..d613925aa Binary files /dev/null and b/doc/tutorials/assets/1ebe02c205962dd25035c441631745d16acdb7a44e50d148256c8ad26a67.png differ diff --git a/doc/tutorials/assets/2243e48ccea25bd907cce3dbd6fc9f7cd832a4c91a4c5dd294b7b219e7d8.png b/doc/tutorials/assets/2243e48ccea25bd907cce3dbd6fc9f7cd832a4c91a4c5dd294b7b219e7d8.png new file mode 100644 index 000000000..c403bf806 Binary files /dev/null and b/doc/tutorials/assets/2243e48ccea25bd907cce3dbd6fc9f7cd832a4c91a4c5dd294b7b219e7d8.png differ diff --git a/doc/tutorials/assets/25eaad2435200f72a1dd3a00ba17a76ca6db4c246b3c4fa286b390cae7c8.png b/doc/tutorials/assets/25eaad2435200f72a1dd3a00ba17a76ca6db4c246b3c4fa286b390cae7c8.png new file mode 100644 index 000000000..ca8ba6fb9 Binary files /dev/null and b/doc/tutorials/assets/25eaad2435200f72a1dd3a00ba17a76ca6db4c246b3c4fa286b390cae7c8.png differ diff --git a/doc/tutorials/assets/2b539d5a8474d6ec6dc91155b628d9be5f99ab04a78108ec404f53ec7bb5.png b/doc/tutorials/assets/2b539d5a8474d6ec6dc91155b628d9be5f99ab04a78108ec404f53ec7bb5.png new file mode 100644 index 000000000..0da2d96e2 Binary files /dev/null and b/doc/tutorials/assets/2b539d5a8474d6ec6dc91155b628d9be5f99ab04a78108ec404f53ec7bb5.png differ diff --git a/doc/tutorials/assets/31f42a02bdbae095e0329db6c3814e2975979aff12f873f43d81724c5e61.png b/doc/tutorials/assets/31f42a02bdbae095e0329db6c3814e2975979aff12f873f43d81724c5e61.png new file mode 100644 index 000000000..2a209b2be Binary files /dev/null and b/doc/tutorials/assets/31f42a02bdbae095e0329db6c3814e2975979aff12f873f43d81724c5e61.png differ diff --git a/doc/tutorials/assets/324247680b605fd214fd61aecd8f216fa8f5dfa0f16a04c8e968fdbc43d0.png b/doc/tutorials/assets/324247680b605fd214fd61aecd8f216fa8f5dfa0f16a04c8e968fdbc43d0.png new file mode 100644 index 000000000..f992672b0 Binary files /dev/null and b/doc/tutorials/assets/324247680b605fd214fd61aecd8f216fa8f5dfa0f16a04c8e968fdbc43d0.png differ diff --git a/doc/tutorials/assets/3656a67dce40a1fc2515e9089217f2e136d4fcf8babe77bac00ecaad43ce.png b/doc/tutorials/assets/3656a67dce40a1fc2515e9089217f2e136d4fcf8babe77bac00ecaad43ce.png new file mode 100644 index 000000000..b656192dc Binary files /dev/null and b/doc/tutorials/assets/3656a67dce40a1fc2515e9089217f2e136d4fcf8babe77bac00ecaad43ce.png differ diff --git a/doc/tutorials/assets/458a842c2ea0fbe3b7869bb14dfffe1e5be098d1cd6e590bbead25b4cc05.png b/doc/tutorials/assets/458a842c2ea0fbe3b7869bb14dfffe1e5be098d1cd6e590bbead25b4cc05.png new file mode 100644 index 000000000..6129195b6 Binary files /dev/null and b/doc/tutorials/assets/458a842c2ea0fbe3b7869bb14dfffe1e5be098d1cd6e590bbead25b4cc05.png differ diff --git a/doc/tutorials/assets/4aaaf1e124514c8d6999a5fe1d07be5af460cda4ba6cde9106ebc1564bb0.png b/doc/tutorials/assets/4aaaf1e124514c8d6999a5fe1d07be5af460cda4ba6cde9106ebc1564bb0.png new file mode 100644 index 000000000..923403fe9 Binary files /dev/null and b/doc/tutorials/assets/4aaaf1e124514c8d6999a5fe1d07be5af460cda4ba6cde9106ebc1564bb0.png differ diff --git a/doc/tutorials/assets/4cf326152797a8ecdf5630e921756f825ee00f8ee464d3ef9fed971d2852.png b/doc/tutorials/assets/4cf326152797a8ecdf5630e921756f825ee00f8ee464d3ef9fed971d2852.png new file mode 100644 index 000000000..f158ad5d9 Binary files /dev/null and b/doc/tutorials/assets/4cf326152797a8ecdf5630e921756f825ee00f8ee464d3ef9fed971d2852.png differ diff --git a/doc/tutorials/assets/75d2927b7ad0d2043d4d3b6ba1364fac8ead173edd39340adaf78be11c9d.png b/doc/tutorials/assets/75d2927b7ad0d2043d4d3b6ba1364fac8ead173edd39340adaf78be11c9d.png new file mode 100644 index 000000000..edc8b01cc Binary files /dev/null and b/doc/tutorials/assets/75d2927b7ad0d2043d4d3b6ba1364fac8ead173edd39340adaf78be11c9d.png differ diff --git a/doc/tutorials/assets/7c976a06662a1357b3da8ed0680d1a721c85f2ae2bdd5739a8def466010e.png b/doc/tutorials/assets/7c976a06662a1357b3da8ed0680d1a721c85f2ae2bdd5739a8def466010e.png new file mode 100644 index 000000000..5b259058b Binary files /dev/null and b/doc/tutorials/assets/7c976a06662a1357b3da8ed0680d1a721c85f2ae2bdd5739a8def466010e.png differ diff --git a/doc/tutorials/assets/99a6efda4df631dfb2d2a849412044cc6a0f8aebeac289d28786f2649d24.png b/doc/tutorials/assets/99a6efda4df631dfb2d2a849412044cc6a0f8aebeac289d28786f2649d24.png new file mode 100644 index 000000000..c03ffd18d Binary files /dev/null and b/doc/tutorials/assets/99a6efda4df631dfb2d2a849412044cc6a0f8aebeac289d28786f2649d24.png differ diff --git a/doc/tutorials/assets/9eae9fad774a4cd29e665961d35affbd053368056f562c58200fb41027b0.png b/doc/tutorials/assets/9eae9fad774a4cd29e665961d35affbd053368056f562c58200fb41027b0.png new file mode 100644 index 000000000..65d4c5f0a Binary files /dev/null and b/doc/tutorials/assets/9eae9fad774a4cd29e665961d35affbd053368056f562c58200fb41027b0.png differ diff --git a/doc/tutorials/assets/b0bfdf02aef3710a37bb6092c3240b291eca8afa73133b3ac03b86f3302d.png b/doc/tutorials/assets/b0bfdf02aef3710a37bb6092c3240b291eca8afa73133b3ac03b86f3302d.png new file mode 100644 index 000000000..45609a7bb Binary files /dev/null and b/doc/tutorials/assets/b0bfdf02aef3710a37bb6092c3240b291eca8afa73133b3ac03b86f3302d.png differ diff --git a/doc/tutorials/assets/b334915c03a665493915598c69c17a87c910a39db2cd3b5292e4623ea4c4.png b/doc/tutorials/assets/b334915c03a665493915598c69c17a87c910a39db2cd3b5292e4623ea4c4.png new file mode 100644 index 000000000..d239d6965 Binary files /dev/null and b/doc/tutorials/assets/b334915c03a665493915598c69c17a87c910a39db2cd3b5292e4623ea4c4.png differ diff --git a/doc/tutorials/assets/b3eece28e8db67f1024af42055f0f24ed5e81ba622aca8cac576ccf5930e.png b/doc/tutorials/assets/b3eece28e8db67f1024af42055f0f24ed5e81ba622aca8cac576ccf5930e.png new file mode 100644 index 000000000..45ed64d00 Binary files /dev/null and b/doc/tutorials/assets/b3eece28e8db67f1024af42055f0f24ed5e81ba622aca8cac576ccf5930e.png differ diff --git a/doc/tutorials/assets/bdbcf0ffd9004657237f6b7b7863da5a8e39a5bc17d2c67fa160efef2056.png b/doc/tutorials/assets/bdbcf0ffd9004657237f6b7b7863da5a8e39a5bc17d2c67fa160efef2056.png new file mode 100644 index 000000000..fcaed8bef Binary files /dev/null and b/doc/tutorials/assets/bdbcf0ffd9004657237f6b7b7863da5a8e39a5bc17d2c67fa160efef2056.png differ diff --git a/doc/tutorials/assets/c4cad3e4c356dd2a227df79bd4dc6d47edf1b66ea243f005b6b452ec366b.png b/doc/tutorials/assets/c4cad3e4c356dd2a227df79bd4dc6d47edf1b66ea243f005b6b452ec366b.png new file mode 100644 index 000000000..0ccfc8995 Binary files /dev/null and b/doc/tutorials/assets/c4cad3e4c356dd2a227df79bd4dc6d47edf1b66ea243f005b6b452ec366b.png differ diff --git a/doc/tutorials/assets/c9a880cc82ffa1f7c2f460397bb083bf7dc2a2b8f065e64da598b45b4a2b.png b/doc/tutorials/assets/c9a880cc82ffa1f7c2f460397bb083bf7dc2a2b8f065e64da598b45b4a2b.png new file mode 100644 index 000000000..1cb4d2d22 Binary files /dev/null and b/doc/tutorials/assets/c9a880cc82ffa1f7c2f460397bb083bf7dc2a2b8f065e64da598b45b4a2b.png differ diff --git a/doc/tutorials/assets/d080e92d797af5e863fa39b2084c16a8410de1f7a6559633435817444aef.png b/doc/tutorials/assets/d080e92d797af5e863fa39b2084c16a8410de1f7a6559633435817444aef.png new file mode 100644 index 000000000..22e4cb5d5 Binary files /dev/null and b/doc/tutorials/assets/d080e92d797af5e863fa39b2084c16a8410de1f7a6559633435817444aef.png differ diff --git a/doc/tutorials/assets/e05248fdc5688d6d24bde52432fdc7b39692a094559aa504de99352940b1.png b/doc/tutorials/assets/e05248fdc5688d6d24bde52432fdc7b39692a094559aa504de99352940b1.png new file mode 100644 index 000000000..5674f5207 Binary files /dev/null and b/doc/tutorials/assets/e05248fdc5688d6d24bde52432fdc7b39692a094559aa504de99352940b1.png differ diff --git a/doc/tutorials/assets/e5d5674a34e848e2cce90a60fc416415271d9c51b81ad2a950fb0157222a.png b/doc/tutorials/assets/e5d5674a34e848e2cce90a60fc416415271d9c51b81ad2a950fb0157222a.png new file mode 100644 index 000000000..e6b4a9974 Binary files /dev/null and b/doc/tutorials/assets/e5d5674a34e848e2cce90a60fc416415271d9c51b81ad2a950fb0157222a.png differ diff --git a/doc/tutorials/assets/ef78bc6aa3fafebd46f353514c907b3fdfe019918fc5553bb3f31388a36f.png b/doc/tutorials/assets/ef78bc6aa3fafebd46f353514c907b3fdfe019918fc5553bb3f31388a36f.png new file mode 100644 index 000000000..8de042ae4 Binary files /dev/null and b/doc/tutorials/assets/ef78bc6aa3fafebd46f353514c907b3fdfe019918fc5553bb3f31388a36f.png differ diff --git a/doc/tutorials/assets/facb0bdfdecb4c779de9048cd14b417c0d76de17af476be5f296b78d70e9.png b/doc/tutorials/assets/facb0bdfdecb4c779de9048cd14b417c0d76de17af476be5f296b78d70e9.png new file mode 100644 index 000000000..cec391fb4 Binary files /dev/null and b/doc/tutorials/assets/facb0bdfdecb4c779de9048cd14b417c0d76de17af476be5f296b78d70e9.png differ diff --git a/doc/tutorials/personal_channel.html b/doc/tutorials/personal_channel.html new file mode 100644 index 000000000..f2ad87077 --- /dev/null +++ b/doc/tutorials/personal_channel.html @@ -0,0 +1,163 @@ + +

This tutorial is intended to be followed in sequence as if you were setting up a +channel for the first time. It introduces some of the tools and features related +to a personal channel in a natural way.

+ +

Create a new channel

+ +

When you log in for the first time after registering, you must create a channel. +(Alternatively you can load https://grid.reticu.li/new_channel)

+ +

image

+ +

Enter your name and a nickname for the channel address, and select a "role". +Typically if this is a personal channel that represents you, select a Social role +with a level of default privacy that you are comfortable with. If you are unsure, +select Social - Restricted.

+ +

Configure your channel features

+ +

When your new channel is created you are directed to the channel settings page. +Take the time to look around at all the settings pages to familiarize yourself with +your options, even if you don't understand everything you see right now.

+ +

Navigate to the Additional Features settings and follow the screenshots below to +enable various features. Remember to press the Submit button when you are done with +your selections.

+ +

imageimageimageimage

+ +

Add a profile photo

+ +

Navigate to your channel home by clicking the "Home" icon on the left side of the +navbar, and then select the About tab to view your profile.

+ +

Press the Edit button on the right to edit your profile information.

+ +

image

+ +

From the Profile Tools dropdown menu, select the Change profile photo

+ +

image

+ +

Upload your photo and size as necessary using the image editor.

+ +

image

+ +

When you press Submit you will be redirected back to the profile editor. +(You might need to clear your browser cache if you have trouble seeing the new photo.)

+ +

image

+ +

Returning to your channel home page you will see that a post notifying others of your new +profile pic has been automatically posted.

+ +

image

+ +

Compose a post

+ +

Go to your channel home and open the post editor by pressing the Share textbox +at the top of the channel "wall". Enter a message, and then drag-and-drop an image +file into the post editor text area (alternatively you can use the Attach file +tool at the bottom).

+ +

image

+ +

Your image file will be automatically uploaded and stored in your cloud files, and +a link will appear in the post window. Pressing the post preview button will allow you to preview your post before publishing it.

+ +

image

+ +

Pressing the lock button near the Submit button will open the Access Control List +so you can specify exactly who can access this post.

+ +

image

+ +

Use an uploaded image as a channel cover photo

+ +

One way to add some pizzazz your channel is to add a cover photo that visitors will +see when they load your channel page. Hubzilla's integrated cloud file system +allows you to choose an existing photo for this purpose.

+ +

Visit your photos in the Photos app

+ +

image

+ +

Select the photo you wish to use and select Use as cover photo from the Photo Tools +dropdown menu.

+ +

image

+ +

Crop the image using the photo editor and save your changes.

+ +

image

+ +

When you load your channel home page, you will first see the cover photo, and your +channel page will fade in as you scroll down.

+ +

image

+ +

Make a connection

+ +

Making connections between channels to share things is what Hubzilla is all about. +Making a connection is simple. If you do not already know how to reach a channel's home +page, you might try a directory search by opening the Directory link on the right +side of the top navbar.

+ +

image

+ +

You can connect directly from the directory entry using the Connect button there, +or you can open the channel page first and press the Connect button below the +profile photo.

+ +

image

+ +

After you connect you are immediately taken to the connection editor page, where +you make some important decisions about what you plan to share with this channel.

+ +

image

+ +

The two important settings are

+ +

The individual permissions are mostly straightforward, but they can be slightly +unclear at first. For example, Can view my file storage and photos does not +mean that the connected channel will be able to view all of your photos and files! +It means that you will have the option to share photos and files with that +channel. It is perfectly possible for you to allow someone to read your posts but +disallow them from seeing photos in that post. This kind of unusual situation is, +as they say, not a bug; it is a feature.

+ +

Privacy groups allow you to conveniently share items with groups of people. You can +create whatever groups fit your needs by opening the Add privacy group link.

+ +

image

+ +

In this editor, you can switch between the existing privacy groups and see at a +glance what channels are and are not members of the group. Selecting the icon of +a channel in either box will move it to the in or out of the group.

+ +

image

+ +

When editing an individual channel's settings, you can set their privacy group +membership using the widget on the left:

+ +

image

+ +

Connections are a mutual engagement. The channel you connect can choose to approve your +connection. They will receive a notification that you connected

+ +

image

+ +

which takes them to their Connections editor page where +they can choose to approve the connection or not.

+ +

image

+ +

After you approve a connection, it is a good idea to open the individual connection +editor by pressing the edit button beside the Delete button.

+ +

image

+ + \ No newline at end of file diff --git a/images/beer_mug.gif b/images/emoticons/beer_mug.gif similarity index 100% rename from images/beer_mug.gif rename to images/emoticons/beer_mug.gif diff --git a/images/coffee.gif b/images/emoticons/coffee.gif similarity index 100% rename from images/coffee.gif rename to images/emoticons/coffee.gif diff --git a/images/dislike.gif b/images/emoticons/dislike.gif similarity index 100% rename from images/dislike.gif rename to images/emoticons/dislike.gif diff --git a/images/like.gif b/images/emoticons/like.gif similarity index 100% rename from images/like.gif rename to images/emoticons/like.gif diff --git a/images/smiley-Oo.gif b/images/emoticons/smiley-Oo.gif similarity index 100% rename from images/smiley-Oo.gif rename to images/emoticons/smiley-Oo.gif diff --git a/images/smiley-bangheaddesk.gif b/images/emoticons/smiley-bangheaddesk.gif similarity index 100% rename from images/smiley-bangheaddesk.gif rename to images/emoticons/smiley-bangheaddesk.gif diff --git a/images/smiley-beard.png b/images/emoticons/smiley-beard.png similarity index 100% rename from images/smiley-beard.png rename to images/emoticons/smiley-beard.png diff --git a/images/smiley-brokenheart.gif b/images/emoticons/smiley-brokenheart.gif similarity index 100% rename from images/smiley-brokenheart.gif rename to images/emoticons/smiley-brokenheart.gif diff --git a/images/smiley-cool.gif b/images/emoticons/smiley-cool.gif similarity index 100% rename from images/smiley-cool.gif rename to images/emoticons/smiley-cool.gif diff --git a/images/smiley-cry.gif b/images/emoticons/smiley-cry.gif similarity index 100% rename from images/smiley-cry.gif rename to images/emoticons/smiley-cry.gif diff --git a/images/smiley-embarassed.gif b/images/emoticons/smiley-embarassed.gif similarity index 100% rename from images/smiley-embarassed.gif rename to images/emoticons/smiley-embarassed.gif diff --git a/images/smiley-facepalm.gif b/images/emoticons/smiley-facepalm.gif similarity index 100% rename from images/smiley-facepalm.gif rename to images/emoticons/smiley-facepalm.gif diff --git a/images/smiley-foot-in-mouth.gif b/images/emoticons/smiley-foot-in-mouth.gif similarity index 100% rename from images/smiley-foot-in-mouth.gif rename to images/emoticons/smiley-foot-in-mouth.gif diff --git a/images/smiley-frown.gif b/images/emoticons/smiley-frown.gif similarity index 100% rename from images/smiley-frown.gif rename to images/emoticons/smiley-frown.gif diff --git a/images/smiley-heart.gif b/images/emoticons/smiley-heart.gif similarity index 100% rename from images/smiley-heart.gif rename to images/emoticons/smiley-heart.gif diff --git a/images/smiley-innocent.gif b/images/emoticons/smiley-innocent.gif similarity index 100% rename from images/smiley-innocent.gif rename to images/emoticons/smiley-innocent.gif diff --git a/images/smiley-kiss.gif b/images/emoticons/smiley-kiss.gif similarity index 100% rename from images/smiley-kiss.gif rename to images/emoticons/smiley-kiss.gif diff --git a/images/smiley-laughing.gif b/images/emoticons/smiley-laughing.gif similarity index 100% rename from images/smiley-laughing.gif rename to images/emoticons/smiley-laughing.gif diff --git a/images/smiley-money-mouth.gif b/images/emoticons/smiley-money-mouth.gif similarity index 100% rename from images/smiley-money-mouth.gif rename to images/emoticons/smiley-money-mouth.gif diff --git a/images/smiley-sealed.gif b/images/emoticons/smiley-sealed.gif similarity index 100% rename from images/smiley-sealed.gif rename to images/emoticons/smiley-sealed.gif diff --git a/images/smiley-shaka.gif b/images/emoticons/smiley-shaka.gif similarity index 100% rename from images/smiley-shaka.gif rename to images/emoticons/smiley-shaka.gif diff --git a/images/smiley-smile.gif b/images/emoticons/smiley-smile.gif similarity index 100% rename from images/smiley-smile.gif rename to images/emoticons/smiley-smile.gif diff --git a/images/smiley-surprised.gif b/images/emoticons/smiley-surprised.gif similarity index 100% rename from images/smiley-surprised.gif rename to images/emoticons/smiley-surprised.gif diff --git a/images/smiley-thumbsup.gif b/images/emoticons/smiley-thumbsup.gif similarity index 100% rename from images/smiley-thumbsup.gif rename to images/emoticons/smiley-thumbsup.gif diff --git a/images/smiley-tongue-out.gif b/images/emoticons/smiley-tongue-out.gif similarity index 100% rename from images/smiley-tongue-out.gif rename to images/emoticons/smiley-tongue-out.gif diff --git a/images/smiley-undecided.gif b/images/emoticons/smiley-undecided.gif similarity index 100% rename from images/smiley-undecided.gif rename to images/emoticons/smiley-undecided.gif diff --git a/images/smiley-whitebeard.png b/images/emoticons/smiley-whitebeard.png similarity index 100% rename from images/smiley-whitebeard.png rename to images/emoticons/smiley-whitebeard.png diff --git a/images/smiley-wink.gif b/images/emoticons/smiley-wink.gif similarity index 100% rename from images/smiley-wink.gif rename to images/emoticons/smiley-wink.gif diff --git a/images/smiley-yell.gif b/images/emoticons/smiley-yell.gif similarity index 100% rename from images/smiley-yell.gif rename to images/emoticons/smiley-yell.gif diff --git a/include/Import/Importer.php b/include/Import/Importer.php index cddfac7b5..1fa677db0 100644 --- a/include/Import/Importer.php +++ b/include/Import/Importer.php @@ -5,7 +5,6 @@ namespace Hubzilla\Import; /** * @brief Class Import * - * @package Hubzilla\Import */ class Import { diff --git a/include/Import/import_diaspora.php b/include/Import/import_diaspora.php index b664badf1..c6dae0117 100644 --- a/include/Import/import_diaspora.php +++ b/include/Import/import_diaspora.php @@ -89,7 +89,7 @@ function import_diaspora($data) { } $gender = escape_tags($data['user']['profile']['gender']); - $about = diaspora2bb($data['user']['profile']['bio']); + $about = markdown_to_bb($data['user']['profile']['bio']); $publish = intval($data['user']['profile']['searchable']); if($data['user']['profile']['birthday']) $dob = datetime_convert('UTC','UTC',$data['user']['profile']['birthday'],'Y-m-d'); diff --git a/include/account.php b/include/account.php index b78c3e56d..5e57d53a8 100644 --- a/include/account.php +++ b/include/account.php @@ -74,7 +74,7 @@ function check_account_invite($invite_code) { if(! $invite_code) { $result['message'] .= t('An invitation is required.') . EOL; } - $r = q("select * from register where `hash` = '%s' limit 1", dbesc($invite_code)); + $r = q("select * from register where hash = '%s' limit 1", dbesc($invite_code)); if(! $r) { $result['message'] .= t('Invitation could not be verified.') . EOL; } @@ -373,7 +373,7 @@ function account_allow($hash) { $ret = array('success' => false); - $register = q("SELECT * FROM `register` WHERE `hash` = '%s' LIMIT 1", + $register = q("SELECT * FROM register WHERE hash = '%s' LIMIT 1", dbesc($hash) ); @@ -465,7 +465,7 @@ function account_deny($hash) { intval($register[0]['uid']) ); - $r = q("DELETE FROM `register` WHERE id = %d", + $r = q("DELETE FROM register WHERE id = %d", dbesc($register[0]['id']) ); notice( sprintf(t('Registration revoked for %s'), $account[0]['account_email']) . EOL); @@ -482,7 +482,7 @@ function account_approve($hash) { // Note: when the password in the register table is 'verify', the uid actually contains the account_id - $register = q("SELECT * FROM `register` WHERE `hash` = '%s' and password = 'verify' LIMIT 1", + $register = q("SELECT * FROM register WHERE hash = '%s' and password = 'verify' LIMIT 1", dbesc($hash) ); diff --git a/include/acl_selectors.php b/include/acl_selectors.php index 63867823f..dcf0fe9a2 100644 --- a/include/acl_selectors.php +++ b/include/acl_selectors.php @@ -1,17 +1,24 @@ -\r\n"; + $o .= "\r\n"; call_hooks(App::$module . '_post_' . $selname, $o); - return $o; } function contact_select($selname, $selclass, $preselected = false, $size = 4, $privmail = false, $celeb = false, $privatenet = false, $tabindex = null) { - $o = ''; // When used for private messages, we limit correspondence to mutual DFRN/Friendica friends and the selector @@ -54,17 +59,17 @@ function contact_select($selname, $selclass, $preselected = false, $size = 4, $p $sql_extra = ''; - $tabindex = ($tabindex > 0 ? "tabindex=\"$tabindex\"" : ""); + $tabindex = ($tabindex > 0 ? 'tabindex="$tabindex"' : ''); if($privmail) $o .= "\r\n"; + else + $o .= "\r\n"; @@ -98,13 +102,13 @@ function contact_select($selname, $selclass, $preselected = false, $size = 4, $p function fixacl(&$item) { - $item = str_replace(array('<','>'),array('',''),$item); + $item = str_replace(array('<', '>'), array('', ''), $item); } /** * Builds a modal dialog for editing permissions, using acl_selector.tpl as the template. * -* @param array $default Optional access control list for the initial state of the dialog. +* @param array $defaults Optional access control list for the initial state of the dialog. * @param boolean $show_jotnets Whether plugins for federated networks should be included in the permissions dialog * @param PermissionDescription $emptyACL_description - An optional description for the permission implied by selecting an empty ACL. Preferably an instance of PermissionDescription. * @param string $dialog_description Optional message to include at the top of the dialog. E.g. "Warning: Post permissions cannot be changed once sent". @@ -118,16 +122,15 @@ function populate_acl($defaults = null,$show_jotnets = true, $emptyACL_descripti $allow_cid = $allow_gid = $deny_cid = $deny_gid = false; $showall_origin = ''; $showall_icon = 'fa-globe'; - $role = get_pconfig(local_channel(),'system','permissions_role'); + $role = get_pconfig(local_channel(), 'system', 'permissions_role'); if(! $emptyACL_description) { $showall_caption = t('Visible to your default audience'); - } else if (is_a($emptyACL_description, '\\Zotlabs\\Lib\\PermissionDescription')) { + } else if(is_a($emptyACL_description, '\\Zotlabs\\Lib\\PermissionDescription')) { $showall_caption = $emptyACL_description->get_permission_description(); $showall_origin = (($role === 'custom') ? $emptyACL_description->get_permission_origin_description() : ''); $showall_icon = $emptyACL_description->get_permission_icon(); - } else { // For backwards compatibility we still accept a string... for now! $showall_caption = $emptyACL_description; @@ -135,7 +138,7 @@ function populate_acl($defaults = null,$show_jotnets = true, $emptyACL_descripti if(is_array($defaults)) { - $allow_cid = ((strlen($defaults['allow_cid'])) + $allow_cid = ((strlen($defaults['allow_cid'])) ? explode('><', $defaults['allow_cid']) : array() ); $allow_gid = ((strlen($defaults['allow_gid'])) ? explode('><', $defaults['allow_gid']) : array() ); @@ -195,9 +198,9 @@ function populate_acl($defaults = null,$show_jotnets = true, $emptyACL_descripti '$select_label' => t('Who can see this?'), '$custom' => t('Custom selection'), '$showlimitedDesc' => t('Select "Show" to allow viewing. "Don\'t show" lets you override and limit the scope of "Show".'), - '$show' => t("Show"), + '$show' => t('Show'), '$hide' => t("Don't show"), - '$search' => t("Search"), + '$search' => t('Search'), '$allowcid' => json_encode($allow_cid), '$allowgid' => json_encode($allow_gid), '$denycid' => json_encode($deny_cid), @@ -209,20 +212,19 @@ function populate_acl($defaults = null,$show_jotnets = true, $emptyACL_descripti )); return $o; - } /** -* Returns a string that's suitable for passing as the $dialog_description argument to a -* populate_acl() call for wall posts or network posts. -* -* This string is needed in 3 different files, and our .po translation system currently -* cannot be used as a string table (because the value is always the key in english) so -* I've centralized the value here (making this function name the "key") until we have a -* better way. -* -* @return string Description to present to user in modal permissions dialog -*/ + * Returns a string that's suitable for passing as the $dialog_description argument to a + * populate_acl() call for wall posts or network posts. + * + * This string is needed in 3 different files, and our .po translation system currently + * cannot be used as a string table (because the value is always the key in english) so + * I've centralized the value here (making this function name the "key") until we have a + * better way. + * + * @return string Description to present to user in modal permissions dialog + */ function get_post_aclDialogDescription() { // I'm trying to make two points in this description text - warn about finality of wall @@ -238,4 +240,3 @@ function get_post_aclDialogDescription() { return sprintf($description, $emphasisOpen, $emphasisClose); } - diff --git a/include/api.php b/include/api.php index 692baf563..693967696 100644 --- a/include/api.php +++ b/include/api.php @@ -10,25 +10,22 @@ require_once('include/photos.php'); require_once('include/items.php'); require_once('include/attach.php'); require_once('include/api_auth.php'); +require_once('include/api_zot.php'); /* * - * Hubzilla API. Loosely based on and possibly compatible with Twitter-Like (v1.0) API but all similarities end there. + * Hubzilla API. * */ - /** - ** TWITTER API - */ - $API = array(); $called_api = Null; // All commands which require authentication accept a "channel" parameter // which is the left hand side of the channel address/nickname. - // If provided, the desired channel is selected before caarying out the command. + // If provided, the desired channel is selected before carrying out the command. // If not provided, the default channel associated with the account is used. // If channel selection fails, the API command requiring login will fail. @@ -49,7 +46,7 @@ require_once('include/api_auth.php'); return false; } } - if ($_SESSION["allow_api"]) + if ($_SESSION['allow_api']) return local_channel(); return false; } @@ -57,11 +54,11 @@ require_once('include/api_auth.php'); function api_date($str){ //Wed May 23 06:01:13 +0000 2007 - return datetime_convert('UTC', 'UTC', $str, "D M d H:i:s +0000 Y" ); + return datetime_convert('UTC', 'UTC', $str, 'D M d H:i:s +0000 Y' ); } - function api_register_func($path, $func, $auth=false) { + function api_register_func($path, $func, $auth = false) { \Zotlabs\Lib\Api_router::register($path,$func,$auth); } @@ -90,7 +87,12 @@ require_once('include/api_auth.php'); $info = \Zotlabs\Lib\Api_router::find($p); - logger('info: ' . $p . ' type: ' . $type . ' ' . print_r($info,true)); + if(in_array($type, [ 'rss', 'atom', 'as' ])) { + // These types no longer supported. + $info = false; + } + + logger('API info: ' . $p . ' type: ' . $type . ' ' . print_r($info,true), LOGGER_DEBUG,LOG_INFO); if($info) { @@ -111,247 +113,73 @@ require_once('include/api_auth.php'); return; switch($type) { - case "xml": - $r = mb_convert_encoding($r, "UTF-8",mb_detect_encoding($r)); - header ("Content-Type: text/xml"); - return ''."\n".$r; + case 'xml': + header ('Content-Type: text/xml'); + return $r; break; - case "json": - header ("Content-Type: application/json"); - if($r) { - foreach($r as $rv) { - $json = json_encode($rv); - } - } + case 'json': + header ('Content-Type: application/json'); // Lookup JSONP to understand these lines. They provide cross-domain AJAX ability. if ($_GET['callback']) - $json = $_GET['callback'] . '(' . $json . ')' ; - return $json; + $r = $_GET['callback'] . '(' . $r . ')' ; + return $r; break; - case "rss": - header ("Content-Type: application/rss+xml"); - return ''."\n".$r; - break; - case "atom": - header ("Content-Type: application/atom+xml"); - return ''."\n".$r; - break; - case "as": - if($r) { - foreach($r as $rv) { - $json = json_encode($rv); - } - } - return $json; - break; - } } - header("HTTP/1.1 404 Not Found"); + header('HTTP/1.1 404 Not Found'); logger('API call not implemented: ' . App::$query_string . ' - ' . print_r($_REQUEST,true)); $r = 'not implemented'; switch($type){ - case "xml": - header ("Content-Type: text/xml"); - return ''."\n".$r; + case 'xml': + header ('Content-Type: text/xml'); + return '' . "\n" . $r; break; case "json": - header ("Content-Type: application/json"); + header ('Content-Type: application/json'); return json_encode(array('error' => 'not implemented')); break; case "rss": - header ("Content-Type: application/rss+xml"); - return ''."\n".$r; + header ('Content-Type: application/rss+xml'); + return '' . "\n" . $r; break; case "atom": - header ("Content-Type: application/atom+xml"); - return ''."\n".$r; + header ('Content-Type: application/atom+xml'); + return '' . "\n" . $r; break; } } /** - * RSS extra info + * load api $templatename for $type and replace $data array */ - function api_rss_extra( $arr, $user_info){ - if (is_null($user_info)) $user_info = api_get_user($a); - $arr['$user'] = $user_info; - $arr['$rss'] = array( - 'alternate' => $user_info['url'], - 'self' => z_root(). "/". App::$query_string, - 'base' => z_root(), - 'updated' => api_date(null), - 'atom_updated' => datetime_convert('UTC','UTC','now',ATOM_TIME), - 'language' => $user_info['language'], - 'logo' => z_root()."/images/rm-64.png", - ); - - return $arr; - } - - /** - * Returns user info array. - */ + function api_apply_template($templatename, $type, $data){ - function api_get_user( $contact_id = null, $contact_xchan = null){ - - $user = null; - $extra_query = ""; - - - if(! is_null($contact_xchan)) { - $user = local_channel(); - $extra_query = " and abook_xchan = '" . dbesc($contact_xchan) . "' "; + switch($type){ + case 'xml': + if($data) { + foreach($data as $k => $v) + $ret = arrtoxml(str_replace('$','',$k),$v); + } + break; + case 'json': + default: + if($data) { + foreach($data as $rv) { + $ret = json_encode($rv); + } + } + break; } - else { - if(!is_null($contact_id)){ - $user=$contact_id; - $extra_query = " AND abook_id = %d "; - } - - if(is_null($user) && x($_GET, 'user_id')) { - $user = intval($_GET['user_id']); - $extra_query = " AND abook_id = %d "; - } - if(is_null($user) && x($_GET, 'screen_name')) { - $user = dbesc($_GET['screen_name']); - $extra_query = " AND xchan_addr like '%s@%%' "; - if (api_user()!==false) - $extra_query .= " AND abook_channel = ".intval(api_user()); - } - } - - if (! $user) { - if (api_user() === false) { - api_login($a); - return false; - } else { - $user = local_channel(); - $extra_query = " AND abook_channel = %d AND abook_self = 1 "; - } - - } - - logger('api_user: ' . $extra_query . ', user: ' . $user, LOGGER_DATA, LOG_INFO); - - // user info - - $uinfo = q("SELECT * from abook left join xchan on abook_xchan = xchan_hash - WHERE 1 - $extra_query", - $user - ); - - if (count($uinfo)==0) { - return False; - } - $following = false; - - if(intval($uinfo[0]['abook_self'])) { - $usr = q("select * from channel where channel_id = %d limit 1", - intval(api_user()) - ); - $profile = q("select * from profile where uid = %d and `is_default` = 1 limit 1", - intval(api_user()) - ); - - $item_normal = item_normal(); - - // count public wall messages - $r = q("SELECT COUNT(`id`) as `count` FROM `item` - WHERE `uid` = %d - AND item_wall = 1 $item_normal - AND `allow_cid`='' AND `allow_gid`='' AND `deny_cid`='' AND `deny_gid`='' - AND item_private = 0 ", - intval($usr[0]['channel_id']) - ); - $countitms = $r[0]['count']; - $following = true; - } - else { - $r = q("SELECT COUNT(`id`) as `count` FROM `item` - WHERE author_xchan = '%s' - AND `allow_cid`='' AND `allow_gid`='' AND `deny_cid`='' AND `deny_gid`='' - AND item_private = 0 ", - intval($uinfo[0]['xchan_hash']) - ); - $countitms = $r[0]['count']; - - $following = ((get_abconfig($uinfo[0]['abook_channel'],$uinfo[0]['abook_xchan'],'my_perms','view_stream')) ? true : false ); - } - - - // count friends - if($usr) { - $r = q("SELECT COUNT(abook_id) as `count` FROM abook - WHERE abook_channel = %d AND abook_self = 0 ", - intval($usr[0]['channel_id']) - ); - $countfriends = $r[0]['count']; - $countfollowers = $r[0]['count']; - } - - $r = q("SELECT count(`id`) as `count` FROM item where item_starred = 1 and uid = %d " . item_normal(), - intval($uinfo[0]['channel_id']) - ); - $starred = $r[0]['count']; - - - if(! intval($uinfo[0]['abook_self'])) { - $countfriends = 0; - $countfollowers = 0; - $starred = 0; - } - - $ret = Array( - 'id' => intval($uinfo[0]['abook_id']), - 'self' => (intval($uinfo[0]['abook_self']) ? 1 : 0), - 'uid' => intval($uinfo[0]['abook_channel']), - 'guid' => $uinfo[0]['xchan_hash'], - 'name' => (($uinfo[0]['xchan_name']) ? $uinfo[0]['xchan_name'] : substr($uinfo[0]['xchan_addr'],0,strpos($uinfo[0]['xchan_addr'],'@'))), - 'screen_name' => substr($uinfo[0]['xchan_addr'],0,strpos($uinfo[0]['xchan_addr'],'@')), - 'location' => ($usr) ? $usr[0]['channel_location'] : '', - 'profile_image_url' => $uinfo[0]['xchan_photo_l'], - 'url' => $uinfo[0]['xchan_url'], - 'contact_url' => z_root() . "/connections/".$uinfo[0]['abook_id'], - 'protected' => false, - 'friends_count' => intval($countfriends), - 'created_at' => api_date($uinfo[0]['abook_created']), - 'utc_offset' => "+00:00", - 'time_zone' => 'UTC', //$uinfo[0]['timezone'], - 'geo_enabled' => false, - 'statuses_count' => intval($countitms), //#XXX: fix me - 'lang' => App::$language, - 'description' => (($profile) ? $profile[0]['pdesc'] : ''), - 'followers_count' => intval($countfollowers), - 'favourites_count' => intval($starred), - 'contributors_enabled' => false, - 'follow_request_sent' => true, - 'profile_background_color' => 'cfe8f6', - 'profile_text_color' => '000000', - 'profile_link_color' => 'FF8500', - 'profile_sidebar_fill_color' =>'AD0066', - 'profile_sidebar_border_color' => 'AD0066', - 'profile_background_image_url' => '', - 'profile_background_tile' => false, - 'profile_use_background_image' => false, - 'notifications' => false, - 'following' => $following, - 'verified' => true // #XXX: fix me - ); - - $x = api_get_status($uinfo[0]['xchan_hash']); - if($x) - $ret['status'] = $x; -// logger('api_get_user: ' . print_r($ret,true)); return $ret; - } + + + function api_client_register($type) { @@ -382,1969 +210,6 @@ require_once('include/api_auth.php'); json_return_and_die($ret); } - api_register_func('api/client/register','api_client_register', false); - - - - function api_item_get_user( $item) { - - // The author is our direct contact, in a conversation with us. - - if($item['author']['abook_id']) { - return api_get_user($item['author']['abook_id']); - } - - // We don't know this person directly. - - $nick = substr($item['author']['xchan_addr'],0,strpos($item['author']['xchan_addr'],'@')); - $name = $item['author']['xchan_name']; - - // Generating a random ID - if (! $nick) - $nick = mt_rand(2000000, 2100000); - - $ret = array( - 'id' => $nick, - 'name' => $name, - 'screen_name' => $nick, - 'location' => '', //$uinfo[0]['default-location'], - 'description' => '', - 'profile_image_url' => $item['author']['xchan_photo_m'], - 'url' => $item['author']['xchan_url'], - 'protected' => false, - 'followers_count' => 0, - 'friends_count' => 0, - 'created_at' => '', - 'favourites_count' => 0, - 'utc_offset' => 0, // #XXX: fix me - 'time_zone' => '', //$uinfo[0]['timezone'], - 'statuses_count' => 0, - 'following' => false, - 'statusnet_blocking' => false, - 'notifications' => false, - 'uid' => 0, - 'contact_url' => 0, - 'geo_enabled' => false, - 'lang' => 'en', // #XXX: fix me - 'contributors_enabled' => false, - 'follow_request_sent' => false, - 'profile_background_color' => 'cfe8f6', - 'profile_text_color' => '000000', - 'profile_link_color' => 'FF8500', - 'profile_sidebar_fill_color' =>'AD0066', - 'profile_sidebar_border_color' => 'AD0066', - 'profile_background_image_url' => '', - 'profile_background_tile' => false, - 'profile_use_background_image' => false, - 'verified' => true, // #XXX: fix me - 'followers' => '' // #XXX: fix me - ); - - return $ret; - } - - - /** - * load api $templatename for $type and replace $data array - */ - function api_apply_template($templatename, $type, $data){ - - switch($type){ - case "atom": - case "rss": - case "xml": - $data = array_xmlify($data); - $tpl = get_markup_template("api_".$templatename."_".$type.".tpl"); - $ret = replace_macros($tpl, $data); - break; - case "json": - default: - $ret = $data; - break; - } - - return $ret; - } - - - /** - * Returns an HTTP 200 OK response code and a representation of the requesting user if authentication was successful; - * returns a 401 status code and an error message if not. - * http://developer.twitter.com/doc/get/account/verify_credentials - */ - function api_account_verify_credentials( $type){ - if (api_user()===false) return false; - $user_info = api_get_user($a); - return api_apply_template("user", $type, array('$user' => $user_info)); - - } - api_register_func('api/account/verify_credentials','api_account_verify_credentials', true); - - - function api_account_logout( $type){ - require_once('include/auth.php'); - App::$session->nuke(); - return api_apply_template("user", $type, array('$user' => null)); - - } - api_register_func('api/account/logout','api_account_logout', false); - - - - /** - * get data from $_REQUEST ( e.g. $_POST or $_GET ) - */ - function requestdata($k) { - if(array_key_exists($k,$_REQUEST)) - return $_REQUEST[$k]; - return null; - } - - - /* - * Red basic channel export - */ - - function api_export_basic( $type) { - if(api_user() === false) { - logger('api_export_basic: no user'); - return false; - } - - require_once('include/channel.php'); - - json_return_and_die(identity_basic_export(api_user(),(($_REQUEST['posts']) ? intval($_REQUEST['posts']) : 0 ))); - } - api_register_func('api/export/basic','api_export_basic', true); - api_register_func('api/red/channel/export/basic','api_export_basic', true); - api_register_func('api/hz/1.0/channel/export/basic','api_export_basic', true); - - - function api_channel_stream( $type) { - if(api_user() === false) { - logger('api_channel_stream: no user'); - return false; - } - - if($_SERVER['REQUEST_METHOD'] == 'POST') { - json_return_and_die(post_activity_item($_REQUEST)); - } - else { - // fetch stream - - } - } - api_register_func('api/red/channel/stream','api_channel_stream', true); - api_register_func('api/hz/1.0/channel/stream','api_channel_stream', true); - - function api_attach_list($type) { - logger('api_user: ' . api_user()); - json_return_and_die(attach_list_files(api_user(),get_observer_hash(),'','','','created asc')); - } - api_register_func('api/red/files','api_attach_list', true); - api_register_func('api/hz/1.0/files','api_attach_list', true); - - - - - - function api_file_meta($type) { - if (api_user()===false) return false; - if(! $_REQUEST['file_id']) return false; - $r = q("select * from attach where uid = %d and hash = '%s' limit 1", - intval(api_user()), - dbesc($_REQUEST['file_id']) - ); - if($r) { - unset($r[0]['content']); - $ret = array('attach' => $r[0]); - json_return_and_die($ret); - } - killme(); - } - - api_register_func('api/red/filemeta', 'api_file_meta', true); - api_register_func('api/hz/1.0/filemeta', 'api_file_meta', true); - - - function api_file_data($type) { - if (api_user()===false) return false; - if(! $_REQUEST['file_id']) return false; - $start = (($_REQUEST['start']) ? intval($_REQUEST['start']) : 0); - $length = (($_REQUEST['length']) ? intval($_REQUEST['length']) : 0); - - $r = q("select * from attach where uid = %d and hash = '%s' limit 1", - intval(api_user()), - dbesc($_REQUEST['file_id']) - ); - if($r) { - $ptr = $r[0]; - if($length === 0) - $length = intval($ptr['filesize']); - - if($ptr['is_dir']) - $ptr['content'] = ''; - elseif(! intval($r[0]['os_storage'])) { - $ptr['start'] = $start; - $x = substr(dbunescbin($ptr['content'],$start,$length)); - $ptr['length'] = strlen($x); - $ptr['content'] = base64_encode($x); - } - else { - $fp = fopen(dbunescbin($ptr['content']),'r'); - if($fp) { - $seek = fseek($fp,$start,SEEK_SET); - $x = fread($fp,$length); - $ptr['start'] = $start; - $ptr['length'] = strlen($x); - $ptr['content'] = base64_encode($x); - } - } - - $ret = array('attach' => $ptr); - json_return_and_die($ret); - } - killme(); - } - - api_register_func('api/red/filedata', 'api_file_data', true); - api_register_func('api/hz/1.0/filedata', 'api_file_data', true); - - - - function api_file_detail($type) { - if (api_user()===false) return false; - if(! $_REQUEST['file_id']) return false; - $r = q("select * from attach where uid = %d and hash = '%s' limit 1", - intval(api_user()), - dbesc($_REQUEST['file_id']) - ); - if($r) { - if($r[0]['is_dir']) - $r[0]['content'] = ''; - elseif(intval($r[0]['os_storage'])) - $r[0]['content'] = base64_encode(file_get_contents(dbunescbin($r[0]['content']))); - else - $r[0]['content'] = base64_encode(dbunescbin($r[0]['content'])); - - $ret = array('attach' => $r[0]); - json_return_and_die($ret); - } - killme(); - } - - api_register_func('api/red/file', 'api_file_detail', true); - api_register_func('api/hz/1.0/file', 'api_file_detail', true); - - - function api_albums($type) { - json_return_and_die(photos_albums_list(App::get_channel(),App::get_observer())); - } - api_register_func('api/red/albums','api_albums', true); - api_register_func('api/hz/1.0/albums','api_albums', true); - - function api_photos($type) { - $album = $_REQUEST['album']; - json_return_and_die(photos_list_photos(App::get_channel(),App::get_observer(),$album)); - } - api_register_func('api/red/photos','api_photos', true); - api_register_func('api/hz/1.0/photos','api_photos', true); - - function api_photo_detail($type) { - if (api_user()===false) return false; - if(! $_REQUEST['photo_id']) return false; - $scale = ((array_key_exists('scale',$_REQUEST)) ? intval($_REQUEST['scale']) : 0); - $r = q("select * from photo where uid = %d and resource_id = '%s' and imgscale = %d limit 1", - intval(local_channel()), - dbesc($_REQUEST['photo_id']), - intval($scale) - ); - if($r) { - $data = dbunescbin($r[0]['content']); - if(array_key_exists('os_storage',$r[0]) && intval($r[0]['os_storage'])) - $data = file_get_contents($data); - $r[0]['content'] = base64_encode($data); - $ret = array('photo' => $r[0]); - $i = q("select id from item where uid = %d and resource_type = 'photo' and resource_id = '%s' limit 1", - intval(local_channel()), - dbesc($_REQUEST['photo_id']) - ); - if($i) { - $ii = q("select * from item where parent = %d order by id", - intval($i[0]['id']) - ); - if($ii) { - xchan_query($ii,true,0); - $ii = fetch_post_tags($ii,true); - if($ii) { - $ret['item'] = array(); - foreach($ii as $iii) - $ret['item'][] = encode_item($iii,true); - } - } - } - - json_return_and_die($ret); - } - killme(); - } - - api_register_func('api/red/photo', 'api_photo_detail', true); - api_register_func('api/hz/1.0/photo', 'api_photo_detail', true); - - - function api_group_members($type) { - if(api_user() === false) - return false; - - if($_REQUEST['group_id']) { - $r = q("select * from groups where uid = %d and id = %d limit 1", - intval(api_user()), - intval($_REQUEST['group_id']) - ); - if($r) { - $x = q("select * from group_member left join xchan on group_member.xchan = xchan.xchan_hash - left join abook on abook_xchan = xchan_hash where gid = %d", - intval($_REQUEST['group_id']) - ); - json_return_and_die($x); - } - } - } - - api_register_func('api/red/group_members','api_group_members', true); - api_register_func('api/hz/1.0/group_members','api_group_members', true); - - - - - function api_group($type) { - if(api_user() === false) - return false; - - $r = q("select * from groups where uid = %d", - intval(api_user()) - ); - json_return_and_die($r); - } - api_register_func('api/red/group','api_group', true); - api_register_func('api/hz/1.0/group','api_group', true); - - - function api_red_xchan($type) { - logger('api_xchan'); - - if(api_user() === false) - return false; - logger('api_xchan'); - require_once('include/hubloc.php'); - - if($_SERVER['REQUEST_METHOD'] === 'POST') { - $r = xchan_store($_REQUEST); - } - $r = xchan_fetch($_REQUEST); - json_return_and_die($r); - }; - - api_register_func('api/red/xchan','api_red_xchan',true); - api_register_func('api/hz/1.0/xchan','api_red_xchan',true); - - - function api_statuses_mediap( $type) { - if (api_user() === false) { - logger('api_statuses_update: no user'); - return false; - } - $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; - - $txt = requestdata('status'); - - require_once('library/HTMLPurifier.auto.php'); - require_once('include/html2bbcode.php'); - - if((strpos($txt,'<') !== false) || (strpos($txt,'>') !== false)) { - $txt = html2bb_video($txt); - $config = HTMLPurifier_Config::createDefault(); - $config->set('Cache.DefinitionImpl', null); - $purifier = new HTMLPurifier($config); - $txt = $purifier->purify($txt); - } - $txt = html2bbcode($txt); - - App::$argv[1] = $user_info['screen_name']; - - $_REQUEST['silent']='1'; //tell wall_upload function to return img info instead of echo - $_FILES['userfile'] = $_FILES['media']; - - $mod = new Zotlabs\Module\Wall_attach(); - $mod->post(); - - - $_REQUEST['body']=$txt."\n\n".$posted; - - $mod = new Zotlabs\Module\Item(); - $mod->post(); - - // this should output the last post (the one we just posted). - return api_status_show($type); - } - api_register_func('api/statuses/mediap','api_statuses_mediap', true); - - function api_statuses_update( $type) { - if (api_user() === false) { - logger('api_statuses_update: no user'); - return false; - } - - logger('api_statuses_update: REQUEST ' . print_r($_REQUEST,true)); - logger('api_statuses_update: FILES ' . print_r($_FILES,true)); - - - // set this so that the item_post() function is quiet and doesn't redirect or emit json - - $_REQUEST['api_source'] = true; - - - $user_info = api_get_user($a); - - // convert $_POST array items to the form we use for web posts. - - // logger('api_post: ' . print_r($_POST,true)); - - if(requestdata('htmlstatus')) { - require_once('library/HTMLPurifier.auto.php'); - require_once('include/html2bbcode.php'); - - $txt = requestdata('htmlstatus'); - - if((strpos($txt,'<') !== false) || (strpos($txt,'>') !== false)) { - - $txt = html2bb_video($txt); - - $config = HTMLPurifier_Config::createDefault(); - $config->set('Cache.DefinitionImpl', null); - - - $purifier = new HTMLPurifier($config); - $txt = $purifier->purify($txt); - - } - - $_REQUEST['body'] = html2bbcode($txt); - - } - else - $_REQUEST['body'] = requestdata('status'); - - $parent = requestdata('in_reply_to_status_id'); - - if(ctype_digit($parent)) - $_REQUEST['parent'] = $parent; - else - $_REQUEST['parent_mid'] = $parent; - - if($_REQUEST['namespace'] && $parent) { - $x = q("select iid from iconfig where cat = 'system' and k = '%s' and v = '%s' limit 1", - dbesc($_REQUEST['namespace']), - dbesc($parent) - ); - if($x) { - $_REQUEST['parent'] = $x[0]['iid']; - } - } - - if(requestdata('lat') && requestdata('long')) - $_REQUEST['coord'] = sprintf("%s %s",requestdata('lat'),requestdata('long')); - - $_REQUEST['profile_uid'] = api_user(); - - if($parent) - $_REQUEST['type'] = 'net-comment'; - else { - $_REQUEST['type'] = 'wall'; - - if(x($_FILES,'media')) { - if(is_array($_FILES['media']['name'])) { - $num_uploads = count($_FILES['media']['name']); - for($x = 0; $x < $num_uploads; $x ++) { - $_FILES['userfile'] = array(); - $_FILES['userfile']['name'] = $_FILES['media']['name'][$x]; - $_FILES['userfile']['type'] = $_FILES['media']['type'][$x]; - $_FILES['userfile']['tmp_name'] = $_FILES['media']['tmp_name'][$x]; - $_FILES['userfile']['error'] = $_FILES['media']['error'][$x]; - $_FILES['userfile']['size'] = $_FILES['media']['size'][$x]; - - // upload each image if we have any - $_REQUEST['silent']='1'; //tell wall_upload function to return img info instead of echo - $mod = new Zotlabs\Module\Wall_attach(); - App::$data['api_info'] = $user_info; - $media = $mod->post(); - - if(strlen($media)>0) - $_REQUEST['body'] .= "\n\n" . $media; - } - } - else { - // AndStatus doesn't present media as an array - $_FILES['userfile'] = $_FILES['media']; - // upload each image if we have any - $_REQUEST['silent']='1'; //tell wall_upload function to return img info instead of echo - $mod = new Zotlabs\Module\Wall_attach(); - App::$data['api_info'] = $user_info; - $media = $mod->post(); - - if(strlen($media)>0) - $_REQUEST['body'] .= "\n\n" . $media; - } - } - } - - // call out normal post function - - $mod = new Zotlabs\Module\Item(); - $mod->post(); - - // this should output the last post (the one we just posted). - return api_status_show($type); - } - api_register_func('api/statuses/update_with_media','api_statuses_update', true); - api_register_func('api/statuses/update','api_statuses_update', true); - - - function red_item_new( $type) { - - if (api_user() === false) { - logger('api_red_item_new: no user'); - return false; - } - - logger('api_red_item_new: REQUEST ' . print_r($_REQUEST,true)); - logger('api_red_item_new: FILES ' . print_r($_FILES,true)); - - - // set this so that the item_post() function is quiet and doesn't redirect or emit json - - $_REQUEST['api_source'] = true; - $_REQUEST['profile_uid'] = api_user(); - - if(x($_FILES,'media')) { - $_FILES['userfile'] = $_FILES['media']; - // upload the image if we have one - $_REQUEST['silent']='1'; //tell wall_upload function to return img info instead of echo - $mod = new Zotlabs\Module\Wall_upload(); - $media = $mod->post(); - if(strlen($media)>0) - $_REQUEST['body'] .= "\n\n".$media; - } - - $mod = new Zotlabs\Module\Item(); - $x = $mod->post(); - json_return_and_die($x); - } - - api_register_func('api/red/item/new','red_item_new', true); - api_register_func('api/hz/1.0/item/new','red_item_new', true); - - - function red_item( $type) { - - if (api_user() === false) { - logger('api_red_item_full: no user'); - return false; - } - - if($_REQUEST['mid']) { - $arr = array('mid' => $_REQUEST['mid']); - } - elseif($_REQUEST['item_id']) { - $arr = array('item_id' => $_REQUEST['item_id']); - } - else - json_return_and_die(array()); - - $arr['start'] = 0; - $arr['records'] = 999999; - $arr['item_type'] = '*'; - - $i = items_fetch($arr,App::get_channel(),get_observer_hash()); - - if(! $i) - json_return_and_die(array()); - - $ret = array(); - $tmp = array(); - foreach($i as $ii) { - $tmp[] = encode_item($ii,true); - } - $ret['item'] = $tmp; - - json_return_and_die($ret); - } - - api_register_func('api/red/item/full','red_item', true); - api_register_func('api/hz/1.0/item/full','red_item', true); - - - - function api_get_status($xchan_hash) { - require_once('include/security.php'); - - $item_normal = item_normal(); - - $lastwall = q("SELECT * from item where - item_private = 0 $item_normal - and author_xchan = '%s' - and allow_cid = '' and allow_gid = '' and deny_cid = '' and deny_gid = '' - and verb = '%s' - order by created desc limit 1", - dbesc($xchan_hash), - dbesc(ACTIVITY_POST) - ); - - if($lastwall){ - $lastwall = $lastwall[0]; - - $in_reply_to_status_id = ''; - $in_reply_to_user_id = ''; - $in_reply_to_screen_name = ''; - - if($lastwall['author_xchan'] != $lastwall['owner_xchan']) { - $w = q("select * from abook left join xchan on abook_xchan = xchan_hash where - xchan_hash = '%s' limit 1", - dbesc($lastwall['owner_xchan']) - ); - if($w) { - $in_reply_to_user_id = $w[0]['abook_id']; - $in_reply_to_screen_name = substr($w[0]['xchan_addr'],0,strpos($w[0]['xchan_addr'],'@')); - } - } - - if ($lastwall['parent']!=$lastwall['id']) { - $in_reply_to_status_id=$lastwall['thr_parent']; - if(! $in_reply_to_user_id) { - $in_reply_to_user_id = $user_info['id']; - $in_reply_to_screen_name = $user_info['screen_name']; - } - } - unobscure($lastwall); - $status_info = array( - 'text' => html2plain(prepare_text($lastwall['body'],$lastwall['mimetype']), 0), - 'truncated' => false, - 'created_at' => api_date($lastwall['created']), - 'in_reply_to_status_id' => $in_reply_to_status_id, - 'source' => (($lastwall['app']) ? $lastwall['app'] : 'web'), - 'id' => ($lastwall['id']), - 'in_reply_to_user_id' => $in_reply_to_user_id, - 'in_reply_to_screen_name' => $in_reply_to_screen_name, - 'geo' => '', - 'favorited' => false, - 'coordinates' => $lastwall['coord'], - 'place' => $lastwall['location'], - 'contributors' => '' - ); - - } - - return $status_info; - } - - function api_status_show( $type){ - $user_info = api_get_user($a); - - // get last public message - - require_once('include/security.php'); - $item_normal = item_normal(); - - $lastwall = q("SELECT * from item where - item_private = 0 $item_normal - and author_xchan = '%s' - and allow_cid = '' and allow_gid = '' and deny_cid = '' and deny_gid = '' - and verb = '%s' - order by created desc limit 1", - dbesc($user_info['guid']), - dbesc(ACTIVITY_POST) - ); - - if($lastwall){ - $lastwall = $lastwall[0]; - - $in_reply_to_status_id = ''; - $in_reply_to_user_id = ''; - $in_reply_to_screen_name = ''; - - if($lastwall['author_xchan'] != $lastwall['owner_xchan']) { - $w = q("select * from abook left join xchan on abook_xchan = xchan_hash where - xchan_hash = '%s' limit 1", - dbesc($lastwall['owner_xchan']) - ); - if($w) { - $in_reply_to_user_id = $w[0]['abook_id']; - $in_reply_to_screen_name = substr($w[0]['xchan_addr'],0,strpos($w[0]['xchan_addr'],'@')); - } - } - - if ($lastwall['parent']!=$lastwall['id']) { - $in_reply_to_status_id=$lastwall['thr_parent']; - if(! $in_reply_to_user_id) { - $in_reply_to_user_id = $user_info['id']; - $in_reply_to_screen_name = $user_info['screen_name']; - } - } - unobscure($lastwall); - $status_info = array( - 'text' => html2plain(prepare_text($lastwall['body'],$lastwall['mimetype']), 0), - 'truncated' => false, - 'created_at' => api_date($lastwall['created']), - 'in_reply_to_status_id' => $in_reply_to_status_id, - 'source' => (($lastwall['app']) ? $lastwall['app'] : 'web'), - 'id' => ($lastwall['id']), - 'in_reply_to_user_id' => $in_reply_to_user_id, - 'in_reply_to_screen_name' => $in_reply_to_screen_name, - 'geo' => '', - 'favorited' => false, - 'coordinates' => $lastwall['coord'], - 'place' => $lastwall['location'], - 'contributors' => '' - ); - $status_info['user'] = $user_info; - if(array_key_exists('status',$status_info['user'])) - unset($status_info['user']['status']); - } - - return api_apply_template("status", $type, array('$status' => $status_info)); - - } - - - /** - * Returns extended information of a given user, specified by ID or screen name as per the required id parameter. - * The author's most recent status will be returned inline. - * http://developer.twitter.com/doc/get/users/show - */ - -// FIXME - this is essentially the same as api_status_show except for the template formatting at the end. Consolidate. - - - function api_users_show( $type){ - $user_info = api_get_user($a); - - require_once('include/security.php'); - $item_normal = item_normal(); - - $lastwall = q("SELECT * from item where 1 - and item_private != 0 $item_normal - and author_xchan = '%s' - and allow_cid = '' and allow_gid = '' and deny_cid = '' and deny_gid = '' - and verb = '%s' - order by created desc limit 1", - dbesc($user_info['guid']), - dbesc(ACTIVITY_POST) - ); - - if($lastwall){ - $lastwall = $lastwall[0]; - - $in_reply_to_status_id = ''; - $in_reply_to_user_id = ''; - $in_reply_to_screen_name = ''; - - if($lastwall['author_xchan'] != $lastwall['owner_xchan']) { - $w = q("select * from abook left join xchan on abook_xchan = xchan_hash where - xchan_hash = '%s' limit 1", - dbesc($lastwall['owner_xchan']) - ); - if($w) { - $in_reply_to_user_id = $w[0]['abook_id']; - $in_reply_to_screen_name = substr($w[0]['xchan_addr'],0,strpos($w[0]['xchan_addr'],'@')); - } - } - - if ($lastwall['parent']!=$lastwall['id']) { - $in_reply_to_status_id=$lastwall['thr_parent']; - if(! $in_reply_to_user_id) { - $in_reply_to_user_id = $user_info['id']; - $in_reply_to_screen_name = $user_info['screen_name']; - } - } - unobscure($lastwall); - $user_info['status'] = array( - 'text' => html2plain(prepare_text($lastwall['body'],$lastwall['mimetype']), 0), - 'truncated' => false, - 'created_at' => api_date($lastwall['created']), - 'in_reply_to_status_id' => $in_reply_to_status_id, - 'source' => (($lastwall['app']) ? $lastwall['app'] : 'web'), - 'id' => (($w) ? $w[0]['abook_id'] : $user_info['id']), - 'in_reply_to_user_id' => $in_reply_to_user_id, - 'in_reply_to_screen_name' => $in_reply_to_screen_name, - 'geo' => '', - 'favorited' => false, - 'coordinates' => $lastwall['coord'], - 'place' => $lastwall['location'], - 'contributors' => '' - ); - - } - return api_apply_template("user", $type, array('$user' => $user_info)); - - } - api_register_func('api/users/show','api_users_show'); - - /** - * - * http://developer.twitter.com/doc/get/statuses/home_timeline - * - * TODO: Optional parameters - * TODO: Add reply info - */ - - function api_statuses_home_timeline( $type){ - if (api_user() === false) - return false; - - $user_info = api_get_user($a); - // get last network messages - - - // params - $count = (x($_REQUEST,'count')?$_REQUEST['count']:20); - $page = (x($_REQUEST,'page')?$_REQUEST['page']-1:0); - if($page < 0) - $page = 0; - $since_id = (x($_REQUEST,'since_id')?$_REQUEST['since_id']:0); - $max_id = (x($_REQUEST,'max_id')?$_REQUEST['max_id']:0); - $exclude_replies = (x($_REQUEST,'exclude_replies')?1:0); - //$since_id = 0;//$since_id = (x($_REQUEST,'since_id')?$_REQUEST['since_id']:0); - - $start = $page*$count; - - //$include_entities = (x($_REQUEST,'include_entities')?$_REQUEST['include_entities']:false); - - $sql_extra = ''; - if ($max_id > 0) - $sql_extra .= ' AND `item`.`id` <= '.intval($max_id); - if ($exclude_replies > 0) - $sql_extra .= ' AND `item`.`parent` = `item`.`id`'; - - if (api_user() != $user_info['uid']) { - $observer = App::get_observer(); - require_once('include/permissions.php'); - if(! perm_is_allowed($user_info['uid'],(($observer) ? $observer['xchan_hash'] : ''),'view_stream')) - return ''; - $sql_extra .= " and item_private = 0 "; - } - - $item_normal = item_normal(); - - $r = q("SELECT * from item WHERE uid = %d $item_normal - $sql_extra - AND id > %d - ORDER BY received DESC LIMIT %d ,%d ", - intval($user_info['uid']), - intval($since_id), - intval($start), - intval($count) - ); - - xchan_query($r,true); - - $ret = api_format_items($r,$user_info); - - // We aren't going to try to figure out at the item, group, and page - // level which items you've seen and which you haven't. If you're looking - // at the network timeline just mark everything seen. - - if (api_user() == $user_info['uid']) { - $r = q("UPDATE item SET item_unseen = 0 WHERE item_unseen = 1 and uid = %d", - intval($user_info['uid']) - ); - } - - - $data = array('$statuses' => $ret); - switch($type){ - case "atom": - case "rss": - $data = api_rss_extra( $data, $user_info); - break; - case "as": - $as = api_format_as( $ret, $user_info); - $as['title'] = App::$config['sitename']." Home Timeline"; - $as['link']['url'] = z_root()."/".$user_info["screen_name"]."/all"; - return($as); - break; - } - - return api_apply_template("timeline", $type, $data); - } - api_register_func('api/statuses/home_timeline','api_statuses_home_timeline', true); - api_register_func('api/statuses/friends_timeline','api_statuses_home_timeline', true); - - function api_statuses_public_timeline( $type){ - if (api_user()===false) return false; - - $user_info = api_get_user($a); - - $sys = get_sys_channel(); - - // params - $count = (x($_REQUEST,'count')?$_REQUEST['count']:20); - $page = (x($_REQUEST,'page')?$_REQUEST['page']-1:0); - if ($page<0) $page=0; - $since_id = (x($_REQUEST,'since_id')?$_REQUEST['since_id']:0); - $max_id = (x($_REQUEST,'max_id')?$_REQUEST['max_id']:0); - //$since_id = 0;//$since_id = (x($_REQUEST,'since_id')?$_REQUEST['since_id']:0); - - $start = $page*$count; - - //$include_entities = (x($_REQUEST,'include_entities')?$_REQUEST['include_entities']:false); - - if ($max_id > 0) - $sql_extra = 'AND `item`.`id` <= '.intval($max_id); - require_once('include/security.php'); - $item_normal = item_normal(); - - $r = q("select * from item where allow_cid = '' and allow_gid = '' - and deny_cid = '' and deny_gid = '' - and item_private = 0 - $item_normal - and uid = " . $sys['channel_id'] . " - $sql_extra - AND id > %d group by mid - order by received desc LIMIT %d OFFSET %d ", - intval($since_id), - intval($count), - intval($start) - ); - - xchan_query($r,true); - - $ret = api_format_items($r,$user_info); - - - $data = array('$statuses' => $ret); - switch($type){ - case "atom": - case "rss": - $data = api_rss_extra( $data, $user_info); - break; - case "as": - $as = api_format_as( $ret, $user_info); - $as['title'] = App::$config['sitename']. " " . t('Public Timeline'); - $as['link']['url'] = z_root()."/"; - return($as); - break; - } - - return api_apply_template("timeline", $type, $data); - } - api_register_func('api/statuses/public_timeline','api_statuses_public_timeline', true); - - /** - * - - */ - function api_statuses_show( $type){ - if (api_user()===false) return false; - - $user_info = api_get_user($a); - - // params - $id = intval(argv(3)); - if(! $id) - $id = $_REQUEST['id']; - - logger('API: api_statuses_show: '.$id); - - //$include_entities = (x($_REQUEST,'include_entities')?$_REQUEST['include_entities']:false); - $conversation = (x($_REQUEST,'conversation')?1:0); - - $sql_extra = ''; - if ($conversation) - $sql_extra .= " AND `item`.`parent` = %d ORDER BY `received` ASC "; - else - $sql_extra .= " AND `item`.`id` = %d"; - - $item_normal = item_normal(); - $r = q("select * from item where true $item_normal $sql_extra", - intval($id) - ); - - xchan_query($r,true); - - $ret = api_format_items($r,$user_info); - - - if ($conversation) { - $data = array('$statuses' => $ret); - return api_apply_template("timeline", $type, $data); - } else { - $data = array('$status' => $ret[0]); - /*switch($type){ - case "atom": - case "rss": - $data = api_rss_extra( $data, $user_info); - }*/ - return api_apply_template("status", $type, $data); - } - } - api_register_func('api/statuses/show','api_statuses_show', true); - - - /** - * - */ - function api_statuses_repeat( $type){ - if (api_user()===false) return false; - - $user_info = api_get_user($a); - - // params - $id = intval(argv(3)); - - logger('API: api_statuses_repeat: '.$id); - - //$include_entities = (x($_REQUEST,'include_entities')?$_REQUEST['include_entities']:false); - - $observer = App::get_observer(); - - $item_normal = item_normal(); - - $r = q("SELECT * from item where and id = %d $item_normal limit 1", - intval($id) - ); - - if(perm_is_allowed($r[0]['uid'],$observer['xchan_hash'],'view_stream')) { - if ($r[0]['body'] != "") { - $_REQUEST['body'] = html_entity_decode("♲ ", ENT_QUOTES, 'UTF-8')."[zrl=".$r[0]['reply_url']."]".$r[0]['reply_author']."[/zrl] \n".$r[0]['body']; - $_REQUEST['profile_uid'] = api_user(); - $_REQUEST['type'] = 'wall'; - $_REQUEST['api_source'] = true; - $mod = new Zotlabs\Module\Item(); - $mod->post(); - } - } - else - return false; - - if ($type == 'xml') - $ok = "true"; - else - $ok = "ok"; - - return api_apply_template('test', $type, array('$ok' => $ok)); - } - api_register_func('api/statuses/retweet','api_statuses_repeat', true); - - /** - * - */ - - function api_statuses_destroy( $type){ - if (api_user()===false) return false; - - $user_info = api_get_user($a); - - // params - $id = intval(argv(3)); - if($id) { - // first prove that we own the item - - $r = q("select * from item where id = %d and uid = %d limit 1", - intval($id), - intval($user_info['uid']) - ); - if(! $r) - return false; - } - else { - if($_REQUEST['namespace'] && $_REQUEST['remote_id']) { - $r = q("select * from iconfig left join item on iconfig.iid = item.id - where cat = 'system' and k = '%s' and v = '%s' and item.uid = %d limit 1", - dbesc($_REQUEST['namespace']), - dbesc($_REQUEST['remote_id']), - intval($user_info['uid']) - ); - if(! $r) - return false; - $id = $r[0]['iid']; - } - if($_REQUEST['namespace'] && $_REQUEST['comment_id']) { - $r = q("select * from iconfig left join item on item.id = iconfig.iid where cat = 'system' and k = '%s' and v = '%s' and uid = %d and item.id != item.parent limit 1", - dbesc($_REQUEST['namespace']), - dbesc($_REQUEST['comment_id']), - intval($user_info['uid']) - ); - if(! $r) - return false; - $id = $r[0]['iid']; - } - } - if(! $id) - return false; - - logger('API: api_statuses_destroy: '.$id); - require_once('include/items.php'); - drop_item($id, false); - - - if ($type == 'xml') - $ok = "true"; - else - $ok = "ok"; - - return api_apply_template('test', $type, array('$ok' => $ok)); - } - api_register_func('api/statuses/destroy','api_statuses_destroy', true); - - /** - * - * http://developer.twitter.com/doc/get/statuses/mentions - * - */ - - - function api_statuses_mentions( $type){ - if (api_user()===false) return false; - - $user_info = api_get_user($a); - // get last network messages - - - // params - $count = (x($_REQUEST,'count')?$_REQUEST['count']:20); - $page = (x($_REQUEST,'page')?$_REQUEST['page']-1:0); - if ($page<0) $page=0; - $since_id = (x($_REQUEST,'since_id')?$_REQUEST['since_id']:0); - $max_id = (x($_REQUEST,'max_id')?$_REQUEST['max_id']:0); - //$since_id = 0;//$since_id = (x($_REQUEST,'since_id')?$_REQUEST['since_id']:0); - - $start = $page*$count; - - //$include_entities = (x($_REQUEST,'include_entities')?$_REQUEST['include_entities']:false); - - $myurl = z_root() . '/channel/'. App::$user['nickname']; - $myurl = substr($myurl,strpos($myurl,'://')+3); - $myurl = str_replace(array('www.','.'),array('','\\.'),$myurl); - $diasp_url = str_replace('/channel/','/u/',$myurl); - - $sql_extra .= " AND item_mentionsme = 1 "; - if ($max_id > 0) - $sql_extra .= " AND item.id <= " . intval($max_id) . " "; - - require_once('include/security.php'); - $item_normal = item_normal(); - - $r = q("select * from item where uid = " . intval(api_user()) . " - $item_normal $sql_extra - AND id > %d group by mid - order by received desc LIMIT %d OFFSET %d ", - intval($since_id), - intval($count), - intval($start) - ); - - xchan_query($r,true); - - - $ret = api_format_items($r,$user_info); - - - $data = array('$statuses' => $ret); - switch($type){ - case "atom": - case "rss": - $data = api_rss_extra( $data, $user_info); - break; - case "as": - $as = api_format_as( $ret, $user_info); - $as["title"] = App::$config['sitename']." Mentions"; - $as['link']['url'] = z_root()."/"; - return($as); - break; - } - - return api_apply_template("timeline", $type, $data); - } - api_register_func('api/statuses/mentions','api_statuses_mentions', true); - // FIXME?? I don't think mentions and replies are congruent in this case - api_register_func('api/statuses/replies','api_statuses_mentions', true); - - - function api_statuses_user_timeline( $type){ - if (api_user()===false) return false; - - $user_info = api_get_user($a); - // get last network messages - - - logger("api_statuses_user_timeline: api_user: ". api_user() . - "\nuser_info: ".print_r($user_info, true) . - "\n_REQUEST: ".print_r($_REQUEST, true), - LOGGER_DEBUG); - - // params - $count = (x($_REQUEST,'count')?$_REQUEST['count']:20); - $page = (x($_REQUEST,'page')?$_REQUEST['page']-1:0); - if ($page<0) $page=0; - $since_id = (x($_REQUEST,'since_id')?$_REQUEST['since_id']:0); - $exclude_replies = (x($_REQUEST,'exclude_replies')?1:0); - //$since_id = 0;//$since_id = (x($_REQUEST,'since_id')?$_REQUEST['since_id']:0); - - $start = $page*$count; - - $sql_extra = ''; - if ($user_info['self']==1) $sql_extra .= " AND `item`.`wall` = 1 "; - -//FIXME - this isn't yet implemented - if ($exclude_replies > 0) $sql_extra .= ' AND `item`.`parent` = `item`.`id`'; - -// $r = q("SELECT `item`.*, `item`.`id` AS `item_id`, -// `contact`.`name`, `contact`.`photo`, `contact`.`url`, `contact`.`rel`, -// `contact`.`network`, `contact`.`thumb`, `contact`.`dfrn_id`, `contact`.`self`, -// `contact`.`id` AS `cid`, `contact`.`uid` AS `contact-uid` -// FROM `item`, `contact` -// WHERE `item`.`uid` = %d -// AND `item`.`contact-id` = %d -// AND `item`.`visible` = 1 and `item`.`moderated` = 0 AND `item`.`deleted` = 0 -// AND `contact`.`id` = `item`.`contact-id` -// AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0 -// $sql_extra -// AND `item`.`id`>%d -// ORDER BY `item`.`received` DESC LIMIT %d ,%d ", -// intval(api_user()), -// intval($user_info['id']), -// intval($since_id), -// intval($start), intval($count) -// ); - - $arr = array( - 'uid' => api_user(), - 'since_id' => $since_id, - 'start' => $start, - 'records' => $count); - - if ($user_info['self']==1) - $arr['wall'] = 1; - else - $arr['cid'] = $user_info['id']; - - - $r = items_fetch($arr,App::get_channel(),get_observer_hash()); - - $ret = api_format_items($r,$user_info); - - - $data = array('$statuses' => $ret); - switch($type){ - case "atom": - case "rss": - $data = api_rss_extra( $data, $user_info); - } - - return api_apply_template("timeline", $type, $data); - } - - api_register_func('api/statuses/user_timeline','api_statuses_user_timeline', true); - - - - /** - * Star/unstar an item - * param: id : id of the item - * - * api v1 : https://web.archive.org/web/20131019055350/https://dev.twitter.com/docs/api/1/post/favorites/create/%3Aid - */ - function api_favorites_create_destroy( $type){ - - logger('favorites_create_destroy'); - - if (api_user()===false) - return false; - - $action = str_replace(".".$type,"",argv(2)); - if (argc() > 3) { - $itemid = intval(argv(3)); - } else { - $itemid = intval($_REQUEST['id']); - } - - $item = q("SELECT * FROM item WHERE id = %d AND uid = %d", - intval($itemid), - intval(api_user()) - ); - - if (! $item) - return false; - - switch($action){ - case "create": - $flags = $item[0]['item_starred'] = 1; - break; - case "destroy": - $flags = $item[0]['item_starred'] = 0; - break; - default: - return false; - } - - $r = q("UPDATE item SET item_starred = %d where id = %d and uid = %d", - intval($flags), - intval($itemid), - intval(api_user()) - ); - if(! $r) - return false; - - $item = q("SELECT * FROM item WHERE id = %d AND uid = %d", - intval($itemid), - intval(api_user()) - ); - - xchan_query($item,true); - - - $user_info = api_get_user($a); - $rets = api_format_items($item,$user_info); - $ret = $rets[0]; - - $data = array('$status' => $ret); - switch($type){ - case "atom": - case "rss": - $data = api_rss_extra( $data, $user_info); - } - - return api_apply_template("status", $type, $data); - } - - api_register_func('api/favorites/create', 'api_favorites_create_destroy', true); - api_register_func('api/favorites/destroy', 'api_favorites_create_destroy', true); - - - - function api_favorites( $type){ - if (api_user()===false) - return false; - - $user_info = api_get_user($a); - - // params - $count = (x($_REQUEST,'count')?$_REQUEST['count']:20); - $page = (x($_REQUEST,'page')?$_REQUEST['page']-1:0); - if($page < 0) - $page = 0; - $since_id = (x($_REQUEST,'since_id')?$_REQUEST['since_id']:0); - $max_id = (x($_REQUEST,'max_id')?$_REQUEST['max_id']:0); - $exclude_replies = (x($_REQUEST,'exclude_replies')?1:0); - - $start = $page*$count; - - //$include_entities = (x($_REQUEST,'include_entities')?$_REQUEST['include_entities']:false); - - $sql_extra = ''; - if ($max_id > 0) - $sql_extra .= ' AND `item`.`id` <= '.intval($max_id); - if ($exclude_replies > 0) - $sql_extra .= ' AND `item`.`parent` = `item`.`id`'; - - if (api_user() != $user_info['uid']) { - $observer = App::get_observer(); - require_once('include/permissions.php'); - if(! perm_is_allowed($user_info['uid'],(($observer) ? $observer['xchan_hash'] : ''),'view_stream')) - return ''; - $sql_extra .= " and item_private = 0 "; - } - - $item_normal = item_normal(); - - $r = q("SELECT * from item WHERE uid = %d $item_normal - and item_starred = 1 $sql_extra - AND id > %d - ORDER BY received DESC LIMIT %d ,%d ", - intval($user_info['uid']), - intval($since_id), - intval($start), - intval($count) - ); - - xchan_query($r,true); - - $ret = api_format_items($r,$user_info); - - $data = array('$statuses' => $ret); - switch($type){ - case "atom": - case "rss": - $data = api_rss_extra( $data, $user_info); - break; - case "as": - $as = api_format_as( $ret, $user_info); - $as['title'] = App::$config['sitename']." Home Timeline"; - $as['link']['url'] = z_root()."/".$user_info["screen_name"]."/all"; - return($as); - break; - } - - return api_apply_template("timeline", $type, $data); - - } - - api_register_func('api/favorites','api_favorites', true); - - - - - function api_format_as( $ret, $user_info) { - - $as = array(); - $as['title'] = App::$config['sitename']." Public Timeline"; - $items = array(); - foreach ($ret as $item) { - $singleitem["actor"]["displayName"] = $item["user"]["name"]; - $singleitem["actor"]["id"] = $item["user"]["contact_url"]; - $avatar[0]["url"] = $item["user"]["profile_image_url"]; - $avatar[0]["rel"] = "avatar"; - $avatar[0]["type"] = ""; - $avatar[0]["width"] = 96; - $avatar[0]["height"] = 96; - $avatar[1]["url"] = $item["user"]["profile_image_url"]; - $avatar[1]["rel"] = "avatar"; - $avatar[1]["type"] = ""; - $avatar[1]["width"] = 48; - $avatar[1]["height"] = 48; - $avatar[2]["url"] = $item["user"]["profile_image_url"]; - $avatar[2]["rel"] = "avatar"; - $avatar[2]["type"] = ""; - $avatar[2]["width"] = 24; - $avatar[2]["height"] = 24; - $singleitem["actor"]["avatarLinks"] = $avatar; - - $singleitem["actor"]["image"]["url"] = $item["user"]["profile_image_url"]; - $singleitem["actor"]["image"]["rel"] = "avatar"; - $singleitem["actor"]["image"]["type"] = ""; - $singleitem["actor"]["image"]["width"] = 96; - $singleitem["actor"]["image"]["height"] = 96; - $singleitem["actor"]["type"] = "person"; - $singleitem["actor"]["url"] = $item["person"]["contact_url"]; - $singleitem["actor"]["statusnet:profile_info"]["local_id"] = $item["user"]["id"]; - $singleitem["actor"]["statusnet:profile_info"]["following"] = $item["user"]["following"] ? "true" : "false"; - $singleitem["actor"]["statusnet:profile_info"]["blocking"] = "false"; - $singleitem["actor"]["contact"]["preferredUsername"] = $item["user"]["screen_name"]; - $singleitem["actor"]["contact"]["displayName"] = $item["user"]["name"]; - $singleitem["actor"]["contact"]["addresses"] = ""; - - $singleitem["body"] = $item["text"]; - $singleitem["object"]["displayName"] = $item["text"]; - $singleitem["object"]["id"] = $item["url"]; - $singleitem["object"]["type"] = "note"; - $singleitem["object"]["url"] = $item["url"]; - //$singleitem["context"] =; - $singleitem["postedTime"] = date("c", strtotime($item["published"])); - $singleitem["provider"]["objectType"] = "service"; - $singleitem["provider"]["displayName"] = "Test"; - $singleitem["provider"]["url"] = "http://test.tld"; - $singleitem["title"] = $item["text"]; - $singleitem["verb"] = "post"; - $singleitem["statusnet:notice_info"]["local_id"] = $item["id"]; - $singleitem["statusnet:notice_info"]["source"] = $item["source"]; - $singleitem["statusnet:notice_info"]["favorite"] = "false"; - $singleitem["statusnet:notice_info"]["repeated"] = "false"; - //$singleitem["original"] = $item; - $items[] = $singleitem; - } - $as['items'] = $items; - $as['link']['url'] = z_root()."/".$user_info["screen_name"]."/all"; - $as['link']['rel'] = "alternate"; - $as['link']['type'] = "text/html"; - return($as); - } - - function api_format_message($item, $recipient, $sender) { - // standard meta information - $ret = array( - 'id' => $item['id'], - 'created_at' => api_date($item['created']), - 'sender_id' => $sender['id'] , - 'sender_screen_name' => $sender['screen_name'], - 'sender' => $sender, - 'recipient_id' => $recipient['id'], - 'recipient_screen_name' => $recipient['screen_name'], - 'recipient' => $recipient, - ); - unobscure_mail($item); - //don't send title to regular StatusNET requests to avoid confusing these apps - if (x($_GET, 'getText')) { - $ret['title'] = $item['title'] ; - if ($_GET["getText"] == "html") { - $ret['text'] = prepare_text($item['body'],$item['mimetype']); - } - elseif ($_GET["getText"] == "plain") { - $ret['text'] = html2plain(prepare_text($item['body'],$item['mimetype']), 0); - } - } - else { - $ret['text'] = $item['title']."\n".html2plain(prepare_text($item['body'],$item['mimetype']), 0); - } - if (isset($_GET["getUserObjects"]) && $_GET["getUserObjects"] == "false") { - unset($ret['sender']); - unset($ret['recipient']); - } - - return $ret; - } - - function api_format_items($r,$user_info) { - - //logger('api_format_items: ' . print_r($r,true)); - - //logger('api_format_items: ' . print_r($user_info,true)); - - $ret = array(); - - $x = array('items' => $r,'api_user' => api_user(),'user_info' => $user_info); - call_hooks('api_format_items',$x); - $r = $x['items']; - - if(! $r) - return $ret; - - foreach($r as $item) { - - localize_item($item); - - $status_user = (($item['author_xchan']==$user_info['guid'])?$user_info: api_item_get_user($item)); - if(array_key_exists('status',$status_user)) - unset($status_user['status']); - - if($item['parent'] != $item['id']) { - $r = q("select id from item where parent= %d and id < %d order by id desc limit 1", - intval($item['parent']), - intval($item['id']) - ); - if ($r) - $in_reply_to_status_id = $r[0]['id']; - else - $in_reply_to_status_id = $item['parent']; - - xchan_query($r,true); - - $in_reply_to_screen_name = $r[0]['author']['xchan_name']; - $in_reply_to_user_id = $r[0]['author']['abook_id']; - - } else { - $in_reply_to_screen_name = ''; - $in_reply_to_user_id = 0; - $in_reply_to_status_id = 0; - } - unobscure($item); - // Workaround for ostatus messages where the title is identically to the body - $statusbody = trim(html2plain(prepare_text($item['body'],$item['mimetype']), 0)); - $statustitle = trim($item['title']); - - if (($statustitle != '') and (strpos($statusbody, $statustitle) !== false)) - $statustext = trim($statusbody); - else - $statustext = trim($statustitle."\n\n".$statusbody); - - - $status = array( - 'text' => $statustext, - 'truncated' => False, - 'created_at' => api_date($item['created']), - 'in_reply_to_status_id' => $in_reply_to_status_id, - 'source' => (($item['app']) ? $item['app'] : 'web'), - 'id' => intval($item['id']), - 'in_reply_to_user_id' => $in_reply_to_user_id, - 'in_reply_to_screen_name' => $in_reply_to_screen_name, - 'geo' => '', - 'favorited' => (intval($item['item_starred']) ? true : false), - 'user' => $status_user , - 'statusnet_html' => trim(prepare_text($item['body'],$item['mimetype'])), - - 'statusnet_conversation_id' => $item['parent'], - ); - - // Seesmic doesn't like the following content - if ($_SERVER['HTTP_USER_AGENT'] != 'Seesmic') { - $status2 = array( - 'updated' => api_date($item['edited']), - 'published' => api_date($item['created']), - 'message_id' => $item['mid'], - 'url' => $item['plink'], - 'coordinates' => $item['coord'], - 'place' => $item['location'], - 'contributors' => '', - 'annotations' => '', - 'entities' => '', - 'objecttype' => (($item['obj_type']) ? $item['obj_type'] : ACTIVITY_OBJ_NOTE), - 'verb' => (($item['verb']) ? $item['verb'] : ACTIVITY_POST), - 'self' => z_root()."/api/statuses/show/".$item['id'].".".$type, - 'edit' => z_root()."/api/statuses/show/".$item['id'].".".$type, - ); - - $status = array_merge($status, $status2); - } - - $ret[]=$status; - }; - return $ret; - } - - - function api_account_rate_limit_status($type) { - - $hash = array( - 'reset_time_in_seconds' => strtotime('now + 1 hour'), - 'remaining_hits' => (string) 150, - 'hourly_limit' => (string) 150, - 'reset_time' => datetime_convert('UTC','UTC','now + 1 hour',ATOM_TIME), - ); - if ($type == "xml") - $hash['resettime_in_seconds'] = $hash['reset_time_in_seconds']; - - return api_apply_template('ratelimit', $type, array('$hash' => $hash)); - - } - api_register_func('api/account/rate_limit_status','api_account_rate_limit_status',true); - - function api_help_test($type) { - - if ($type == 'xml') - $ok = "true"; - else - $ok = "ok"; - - return api_apply_template('test', $type, array('$ok' => $ok)); - - } - api_register_func('api/help/test','api_help_test',false); - - /** - * https://dev.twitter.com/docs/api/1/get/statuses/friends - * This function is deprecated by Twitter - * returns: json, xml - **/ - function api_statuses_f( $type, $qtype) { - if (api_user()===false) return false; - $user_info = api_get_user($a); - - - // friends and followers only for self - if ($user_info['self']==0){ - return false; - } - - if (x($_GET,'cursor') && $_GET['cursor']=='undefined'){ - /* this is to stop Hotot to load friends multiple times - * I'm not sure if I'm missing return something or - * is a bug in hotot. Workaround, meantime - */ - - /*$ret=Array(); - return array('$users' => $ret);*/ - return false; - } - -// @fixme - update for hubzilla extensible perms using abconfig or find a better way to do it - // For Red, the closest thing we can do to figure out if you're friends is if both of you are sending each other your streams. - // This won't work if either of you send your stream to everybody on the network - if($qtype == 'friends') - $sql_extra = sprintf(" AND ( abook_their_perms & %d )>0 and ( abook_my_perms & %d )>0 ", intval(PERMS_W_STREAM), intval(PERMS_W_STREAM)); - if($qtype == 'followers') - $sql_extra = sprintf(" AND ( abook_my_perms & %d )>0 and not ( abook_their_perms & %d )>0 ", intval(PERMS_W_STREAM), intval(PERMS_W_STREAM)); - - $r = q("SELECT abook_id FROM abook where abook_self = 0 and abook_channel = %d $sql_extra", - intval(api_user()) - ); - - $ret = array(); - foreach($r as $cid){ - $ret[] = api_get_user( $cid['abook_id']); - } - - - return array('$users' => $ret); - - } - function api_statuses_friends( $type){ - $data = api_statuses_f($type,"friends"); - if ($data===false) return false; - return api_apply_template("friends", $type, $data); - } - function api_statuses_followers( $type){ - $data = api_statuses_f($type,"followers"); - if ($data===false) return false; - return api_apply_template("friends", $type, $data); - } - api_register_func('api/statuses/friends','api_statuses_friends',true); - api_register_func('api/statuses/followers','api_statuses_followers',true); - - - - - - - function api_statusnet_config($type) { - - load_config('system'); - - $name = get_config('system','sitename'); - $server = App::get_hostname(); - $logo = z_root() . '/images/rm-64.png'; - $email = get_config('system','admin_email'); - $closed = ((get_config('system','register_policy') == REGISTER_CLOSED) ? 'true' : 'false'); - $private = ((get_config('system','block_public')) ? 'true' : 'false'); - $textlimit = (string) ((get_config('system','max_import_size')) ? get_config('system','max_import_size') : 200000); - if(get_config('system','api_import_size')) - $texlimit = string(get_config('system','api_import_size')); - $ssl = ((get_config('system','have_ssl')) ? 'true' : 'false'); - $sslserver = (($ssl === 'true') ? str_replace('http:','https:',z_root()) : ''); - - $config = array( - 'site' => array('name' => $name,'server' => $server, 'theme' => 'default', 'path' => '', - 'logo' => $logo, 'fancy' => 'true', 'language' => 'en', 'email' => $email, 'broughtby' => '', - 'broughtbyurl' => '', 'timezone' => 'UTC', 'closed' => $closed, 'inviteonly' => 'false', - 'private' => $private, 'textlimit' => $textlimit, 'sslserver' => $sslserver, 'ssl' => $ssl, - 'shorturllength' => '30', - 'hubzilla' => array( - 'PLATFORM_NAME' => Zotlabs\Lib\System::get_platform_name(), - 'STD_VERSION' => Zotlabs\Lib\System::get_project_version(), - 'ZOT_REVISION' => ZOT_REVISION, - 'DB_UPDATE_VERSION' => Zotlabs\Lib\System::get_update_version() - ) - )); - - return api_apply_template('config', $type, array('$config' => $config)); - - } - api_register_func('api/statusnet/config','api_statusnet_config',false); - api_register_func('api/friendica/config','api_statusnet_config',false); - api_register_func('api/red/config','api_statusnet_config',false); - api_register_func('api/hz/1.0/config','api_statusnet_config',false); - - function api_statusnet_version($type) { - - // liar - - if($type === 'xml') { - header("Content-type: application/xml"); - echo '' . "\r\n" . '0.9.7' . "\r\n"; - killme(); - } - elseif($type === 'json') { - header("Content-type: application/json"); - echo '"0.9.7"'; - killme(); - } - } - api_register_func('api/statusnet/version','api_statusnet_version',false); - - - function api_friendica_version($type) { - - if($type === 'xml') { - header("Content-type: application/xml"); - echo '' . "\r\n" . '' . Zotlabs\Lib\System::get_project_version() . '' . "\r\n"; - killme(); - } - elseif($type === 'json') { - header("Content-type: application/json"); - echo '"' . Zotlabs\Lib\System::get_project_version() . '"'; - killme(); - } - } - api_register_func('api/friendica/version','api_friendica_version',false); - api_register_func('api/red/version','api_friendica_version',false); - api_register_func('api/hz/1.0/version','api_friendica_version',false); - - - function api_ff_ids($type,$qtype) { - if(! api_user()) - return false; - - - // For Red, the closest thing we can do to figure out if you're friends is if both of you are sending each other your streams. - // This won't work if either of you send your stream to everybody on the network - - if($qtype == 'friends') - $sql_extra = sprintf(" AND ( abook_their_perms & %d )>0 and ( abook_my_perms & %d )>0 ", intval(PERMS_W_STREAM), intval(PERMS_W_STREAM)); - if($qtype == 'followers') - $sql_extra = sprintf(" AND ( abook_my_perms & %d )>0 and not ( abook_their_perms & %d )>0 ", intval(PERMS_W_STREAM), intval(PERMS_W_STREAM)); - - $r = q("SELECT abook_id FROM abook where abook_self = 0 and abook_channel = %d $sql_extra", - intval(api_user()) - ); - - if(is_array($r)) { - if($type === 'xml') { - header("Content-type: application/xml"); - echo '' . "\r\n" . '' . "\r\n"; - foreach($r as $rr) - echo '' . $rr['abook_id'] . '' . "\r\n"; - echo '' . "\r\n"; - killme(); - } - elseif($type === 'json') { - $ret = array(); - header("Content-type: application/json"); - foreach($r as $rr) $ret[] = $rr['abook_id']; - echo json_encode($ret); - killme(); - } - } - } - - function api_friends_ids($type) { - api_ff_ids($type,'friends'); - } - function api_followers_ids($type) { - api_ff_ids($type,'followers'); - } - api_register_func('api/friends/ids','api_friends_ids',true); - api_register_func('api/followers/ids','api_followers_ids',true); - - - function api_direct_messages_new( $type) { - if (api_user()===false) return false; - - if (!x($_POST, "text") || !x($_POST,"screen_name")) return; - - $sender = api_get_user($a); - - require_once("include/message.php"); - - // in a decentralised world the screen name is ambiguous - - $r = q("SELECT `abook_id` FROM `abook` left join xchan on abook_xchan = xchan_hash WHERE `abook_channel`=%d and xchan_addr like '%s'", - intval(api_user()), - dbesc($_POST['screen_name'] . '@%') - ); - - $recipient = api_get_user( $r[0]['abook_id']); - $replyto = ''; - $sub = ''; - if (x($_REQUEST,'replyto')) { - $r = q('SELECT `parent_mid`, `title` FROM `mail` WHERE `uid`=%d AND `id`=%d', - intval(api_user()), - intval($_REQUEST['replyto'])); - $replyto = $r[0]['parent_mid']; - $sub = $r[0]['title']; - } - else { - if (x($_REQUEST,'title')) { - $sub = $_REQUEST['title']; - } - else { - $sub = ((strlen($_POST['text'])>10)?substr($_POST['text'],0,10)."...":$_POST['text']); - } - } - - $id = send_message(api_user(),$recipient['guid'], $_POST['text'], $sub, $replyto); - - if ($id>-1) { - $r = q("SELECT * FROM `mail` WHERE id=%d", intval($id)); - $ret = api_format_message($r[0], $recipient, $sender); - - } else { - $ret = array("error"=>$id); - } - - $data = Array('$messages'=>$ret); - - switch($type){ - case "atom": - case "rss": - $data = api_rss_extra( $data, $user_info); - } - - return api_apply_template("direct_messages", $type, $data); - - } - api_register_func('api/direct_messages/new','api_direct_messages_new',true); - - function api_direct_messages_box( $type, $box) { - if (api_user()===false) return false; - - $user_info = api_get_user($a); - - // params - $count = (x($_GET,'count')?$_GET['count']:20); - $page = (x($_REQUEST,'page')?$_REQUEST['page']-1:0); - if ($page<0) $page=0; - - $start = $page*$count; - $channel = App::get_channel(); - - $profile_url = z_root() . '/channel/' . $channel['channel_address']; - if ($box=="sentbox") { - $sql_extra = "`from_xchan`='".dbesc( $channel['channel_hash'] )."'"; - } - elseif ($box=="conversation") { - $sql_extra = "`parent_mid`='".dbesc( $_GET["uri"] ) ."'"; - } - elseif ($box=="all") { - $sql_extra = "true"; - } - elseif ($box=="inbox") { - $sql_extra = "`from_xchan`!='".dbesc( $channel['channel_hash'] )."'"; - } - - $r = q("SELECT * FROM `mail` WHERE channel_id = %d AND $sql_extra ORDER BY created DESC LIMIT %d OFFSET %d", - intval(api_user()), - intval($count), intval($start) - ); - - $ret = Array(); - if($r) { - foreach($r as $item) { - if ($item['from_xchan'] == $channel['channel_hash']) { - $sender = $user_info; - $recipient = api_get_user( null, $item['to_xchan']); - } - else { - $sender = api_get_user( null, $item['from_xchan']); - $recipient = $user_info; - } - - $ret[]=api_format_message($item, $recipient, $sender); - } - } - - - $data = array('$messages' => $ret); - switch($type){ - case "atom": - case "rss": - $data = api_rss_extra( $data, $user_info); - } - - return api_apply_template("direct_messages", $type, $data); - - } - - function api_direct_messages_sentbox( $type){ - return api_direct_messages_box( $type, "sentbox"); - } - function api_direct_messages_inbox( $type){ - return api_direct_messages_box( $type, "inbox"); - } - function api_direct_messages_all( $type){ - return api_direct_messages_box( $type, "all"); - } - function api_direct_messages_conversation( $type){ - return api_direct_messages_box( $type, "conversation"); - } - api_register_func('api/direct_messages/conversation','api_direct_messages_conversation',true); - api_register_func('api/direct_messages/all','api_direct_messages_all',true); - api_register_func('api/direct_messages/sent','api_direct_messages_sentbox',true); - api_register_func('api/direct_messages','api_direct_messages_inbox',true); function api_oauth_request_token( $type){ @@ -2355,7 +220,7 @@ require_once('include/api_auth.php'); $r = $oauth->fetch_request_token($req); }catch(Exception $e){ logger('oauth_exception: ' . print_r($e->getMessage(),true)); - echo "error=". OAuth1Util::urlencode_rfc3986($e->getMessage()); + echo 'error=' . OAuth1Util::urlencode_rfc3986($e->getMessage()); killme(); } echo $r; @@ -2365,42 +230,15 @@ require_once('include/api_auth.php'); function api_oauth_access_token( $type){ try{ $oauth = new ZotOAuth1(); - $req = OAuth1Request::from_request(); - $r = $oauth->fetch_access_token($req); - }catch(Exception $e){ - echo "error=". OAuth1Util::urlencode_rfc3986($e->getMessage()); killme(); + $req = OAuth1Request::from_request(); + $r = $oauth->fetch_access_token($req); + } + catch(Exception $e) { + echo 'error=' . OAuth1Util::urlencode_rfc3986($e->getMessage()); + killme(); } echo $r; killme(); } - api_register_func('api/oauth/request_token', 'api_oauth_request_token', false); - api_register_func('api/oauth/access_token', 'api_oauth_access_token', false); - - -/* -Not implemented by now: -statuses/retweets_of_me -friendships/create -friendships/destroy -friendships/exists -friendships/show -account/update_location -account/update_profile_background_image -account/update_profile_image -blocks/create -blocks/destroy - -Not implemented in status.net: -statuses/retweeted_to_me -statuses/retweeted_by_me -direct_messages/destroy -account/end_session -account/update_delivery_device -notifications/follow -notifications/leave -blocks/exists -blocks/blocking -lists -*/ diff --git a/include/api_zot.php b/include/api_zot.php new file mode 100644 index 000000000..d1979c3ae --- /dev/null +++ b/include/api_zot.php @@ -0,0 +1,481 @@ + $mindate ])); + } + } + + function api_attach_list($type) { + if(api_user() === false) + return false; + + logger('api_user: ' . api_user()); + $hash = ((array_key_exists('filehash',$_REQUEST)) ? $_REQUEST['filehash'] : ''); + $filename = ((array_key_exists('filename',$_REQUEST)) ? $_REQUEST['filename'] : ''); + $filetype = ((array_key_exists('filetype',$_REQUEST)) ? $_REQUEST['filetype'] : ''); + $start = ((array_key_exists('start',$_REQUEST)) ? intval($_REQUEST['start']) : 0); + $records = ((array_key_exists('records',$_REQUEST)) ? intval($_REQUEST['records']) : 0); + + $x = attach_list_files(api_user(),get_observer_hash(),$hash,$filename,$filetype,'created asc',$start,$records); + if($start || $records) { + $x['start'] = $start; + $x['records'] = count($x['results']); + } + + json_return_and_die($x); + } + + + function api_file_meta($type) { + if(api_user() === false) + return false; + if(! $_REQUEST['file_id']) return false; + $r = q("select * from attach where uid = %d and hash = '%s' limit 1", + intval(api_user()), + dbesc($_REQUEST['file_id']) + ); + if($r) { + unset($r[0]['content']); + $ret = array('attach' => $r[0]); + json_return_and_die($ret); + } + killme(); + } + + + + function api_file_data($type) { + if(api_user() === false) + return false; + if(! $_REQUEST['file_id']) return false; + $start = (($_REQUEST['start']) ? intval($_REQUEST['start']) : 0); + $length = (($_REQUEST['length']) ? intval($_REQUEST['length']) : 0); + + $r = q("select * from attach where uid = %d and hash like '%s' limit 1", + intval(api_user()), + dbesc($_REQUEST['file_id'] . '%') + ); + if($r) { + $ptr = $r[0]; + if($length === 0) + $length = intval($ptr['filesize']); + + if($ptr['is_dir']) + $ptr['content'] = ''; + elseif(! intval($r[0]['os_storage'])) { + $ptr['start'] = $start; + $x = substr(dbunescbin($ptr['content']),$start,$length); + $ptr['length'] = strlen($x); + $ptr['content'] = base64_encode($x); + } + else { + $fp = fopen(dbunescbin($ptr['content']),'r'); + if($fp) { + $seek = fseek($fp,$start,SEEK_SET); + $x = fread($fp,$length); + $ptr['start'] = $start; + $ptr['length'] = strlen($x); + $ptr['content'] = base64_encode($x); + } + } + + $ret = array('attach' => $ptr); + json_return_and_die($ret); + } + killme(); + } + + + function api_file_export($type) { + if(api_user() === false) + return false; + if(! $_REQUEST['file_id']) + return false; + + $ret = attach_export_data(api_user(),$_REQUEST['file_id']); + if($ret) { + json_return_and_die($ret); + } + killme(); + } + + + function api_file_detail($type) { + if(api_user() === false) + return false; + if(! $_REQUEST['file_id']) return false; + $r = q("select * from attach where uid = %d and hash = '%s' limit 1", + intval(api_user()), + dbesc($_REQUEST['file_id']) + ); + if($r) { + if($r[0]['is_dir']) + $r[0]['content'] = ''; + elseif(intval($r[0]['os_storage'])) + $r[0]['content'] = base64_encode(file_get_contents(dbunescbin($r[0]['content']))); + else + $r[0]['content'] = base64_encode(dbunescbin($r[0]['content'])); + + $ret = array('attach' => $r[0]); + json_return_and_die($ret); + } + killme(); + } + + + + function api_albums($type) { + if(api_user() === false) + return false; + json_return_and_die(photos_albums_list(App::get_channel(),App::get_observer())); + } + + function api_photos($type) { + if(api_user() === false) + return false; + $album = $_REQUEST['album']; + json_return_and_die(photos_list_photos(App::get_channel(),App::get_observer(),$album)); + } + + function api_photo_detail($type) { + if(api_user() === false) + return false; + if(! $_REQUEST['photo_id']) return false; + $scale = ((array_key_exists('scale',$_REQUEST)) ? intval($_REQUEST['scale']) : 0); + $r = q("select * from photo where uid = %d and resource_id = '%s' and imgscale = %d limit 1", + intval(local_channel()), + dbesc($_REQUEST['photo_id']), + intval($scale) + ); + if($r) { + $data = dbunescbin($r[0]['content']); + if(array_key_exists('os_storage',$r[0]) && intval($r[0]['os_storage'])) + $data = file_get_contents($data); + $r[0]['content'] = base64_encode($data); + $ret = array('photo' => $r[0]); + $i = q("select id from item where uid = %d and resource_type = 'photo' and resource_id = '%s' limit 1", + intval(local_channel()), + dbesc($_REQUEST['photo_id']) + ); + if($i) { + $ii = q("select * from item where parent = %d order by id", + intval($i[0]['id']) + ); + if($ii) { + xchan_query($ii,true,0); + $ii = fetch_post_tags($ii,true); + if($ii) { + $ret['item'] = array(); + foreach($ii as $iii) + $ret['item'][] = encode_item($iii,true); + } + } + } + + json_return_and_die($ret); + } + killme(); + } + + function api_group_members($type) { + if(api_user() === false) + return false; + + $r = null; + + if($_REQUEST['group_id']) { + $r = q("select * from groups where uid = %d and id = %d limit 1", + intval(api_user()), + intval($_REQUEST['group_id']) + ); + } + elseif($_REQUEST['group_name']) { + $r = q("select * from groups where uid = %d and gname = '%s' limit 1", + intval(api_user()), + dbesc($_REQUEST['group_name']) + ); + } + + if($r) { + $x = q("select * from group_member left join abook on abook_xchan = xchan and abook_channel = group_member.uid left join xchan on group_member.xchan = xchan.xchan_hash + where gid = %d", + intval($r[0]['id']) + ); + json_return_and_die($x); + } + + } + + function api_group($type) { + if(api_user() === false) + return false; + + $r = q("select * from groups where uid = %d", + intval(api_user()) + ); + json_return_and_die($r); + } + + + function api_red_xchan($type) { + if(api_user() === false) + return false; + logger('api_xchan'); + require_once('include/hubloc.php'); + + if($_SERVER['REQUEST_METHOD'] === 'POST') { + // $r = xchan_store($_REQUEST); + } + $r = xchan_fetch($_REQUEST); + json_return_and_die($r); + }; + + function api_zot_abook_xchan($type) { + logger('api_abook_xchan'); + + if(api_user() === false) + return false; + + $sql_extra = ((array_key_exists('abook_id',$_REQUEST) && intval($_REQUEST['abook_id'])) ? ' and abook_id = ' . intval($_REQUEST['abook_id']) . ' ' : ''); + if($_SERVER['REQUEST_METHOD'] === 'POST') { + // update + } + $r = q("select * from abook left join xchan on abook_xchan = xchan_hash where abook_channel = %d $sql_extra ", + intval(api_user()) + ); + + json_return_and_die($r); + }; + + function api_zot_abconfig($type) { + + if(api_user() === false) + return false; + + $sql_extra = ((array_key_exists('abook_id',$_REQUEST) && intval($_REQUEST['abook_id'])) ? ' and abook_id = ' . intval($_REQUEST['abook_id']) . ' ' : ''); + if($_SERVER['REQUEST_METHOD'] === 'POST') { + // update + } + $r = q("select abconfig.* from abconfig left join abook on abook_xchan = abconfig.xchan and abook_channel = abconfig.chan where abconfig.chan = %d $sql_extra ", + intval(api_user()) + ); + + json_return_and_die($r); + + } + + function api_zot_perm_allowed($type) { + if(api_user() === false) + return false; + + $perm = ((array_key_exists('perm',$_REQUEST)) ? $_REQUEST['perm'] : ''); + + if(array_key_exists('abook_id',$_REQUEST) && intval($_REQUEST['abook_id'])) { + $r = q("select abook_xchan as hash from abook where abook_id = %d and abook_channel = %d limit 1", + intval($_REQUEST['abook_id']), + intval(api_user()) + ); + } + else { + $r = xchan_fetch($_REQUEST); + } + + $x = false; + + if($r) { + if($perm) + $x = [ [ 'perm' => $perm, 'allowed' => perm_is_allowed(api_user(), $r[0]['hash'], $perm)] ]; + else { + $x = []; + $p = get_all_perms(api_user(),$r[0]['hash']); + if($p) { + foreach($p as $k => $v) + $x[] = [ 'perm' => $k, 'allowed' => $v ]; + } + } + } + + json_return_and_die($x); + + } + + function zot_item_update($type) { + + if (api_user() === false) { + logger('api_red_item_store: no user'); + return false; + } + + logger('api_red_item_store: REQUEST ' . print_r($_REQUEST,true)); + logger('api_red_item_store: FILES ' . print_r($_FILES,true)); + + + // set this so that the item_post() function is quiet and doesn't redirect or emit json + + $_REQUEST['api_source'] = true; + $_REQUEST['profile_uid'] = api_user(); + + if(x($_FILES,'media')) { + $_FILES['userfile'] = $_FILES['media']; + // upload the image if we have one + $mod = new Zotlabs\Module\Wall_attach(); + $media = $mod->post(); + if($media) + $_REQUEST['body'] .= "\n\n" . $media; + } + + $mod = new Zotlabs\Module\Item(); + $x = $mod->post(); + json_return_and_die($x); + } + + + + function red_item($type) { + + if (api_user() === false) { + logger('api_red_item_full: no user'); + return false; + } + + if($_REQUEST['mid']) { + $arr = array('mid' => $_REQUEST['mid']); + } + elseif($_REQUEST['item_id']) { + $arr = array('item_id' => $_REQUEST['item_id']); + } + else + json_return_and_die(array()); + + $arr['start'] = 0; + $arr['records'] = 999999; + $arr['item_type'] = '*'; + + $i = items_fetch($arr,App::get_channel(),get_observer_hash()); + + if(! $i) + json_return_and_die(array()); + + $ret = array(); + $tmp = array(); + foreach($i as $ii) { + $tmp[] = encode_item($ii,true); + } + $ret['item'] = $tmp; + + json_return_and_die($ret); + } + + + diff --git a/include/attach.php b/include/attach.php index b5c334d3e..ba2f60a90 100644 --- a/include/attach.php +++ b/include/attach.php @@ -159,7 +159,6 @@ function attach_count_files($channel_id, $observer, $hash = '', $filename = '', intval($channel_id) ); - $ret['success'] = ((is_array($r)) ? true : false); $ret['results'] = ((is_array($r)) ? count($r) : false); @@ -198,13 +197,13 @@ function attach_list_files($channel_id, $observer, $hash = '', $filename = '', $ $sql_extra .= protect_sprintf(" and hash = '" . dbesc($hash) . "' "); if($filename) - $sql_extra .= protect_sprintf(" and filename like '@" . dbesc($filename) . "@' "); + $sql_extra .= protect_sprintf(" and filename like '%" . dbesc($filename) . "%' "); if($filetype) - $sql_extra .= protect_sprintf(" and filetype like '@" . dbesc($filetype) . "@' "); + $sql_extra .= protect_sprintf(" and filetype like '%" . dbesc($filetype) . "%' "); if($entries) - $limit = " limit " . intval($start) . ", " . intval(entries) . " "; + $limit = " limit " . intval($start) . ", " . intval($entries) . " "; // Retrieve all columns except 'data' @@ -226,7 +225,8 @@ function attach_list_files($channel_id, $observer, $hash = '', $filename = '', $ * This could exhaust memory so most useful only when immediately sending the data. * * @param string $hash - * @param int $rev Revision + * @param string $observer_hash + * @param int $rev (optional) Revision default 0 * @return array */ function attach_by_hash($hash, $observer_hash, $rev = 0) { @@ -285,7 +285,7 @@ function attach_by_hash($hash, $observer_hash, $rev = 0) { function attach_can_view_folder($uid,$ob_hash,$folder_hash) { $sql_extra = permissions_sql($uid,$ob_hash); - $hash = $folder_hash; + $hash = $folder_hash; $result = false; do { @@ -295,9 +295,10 @@ function attach_can_view_folder($uid,$ob_hash,$folder_hash) { ); if(! $r) return false; + $hash = $r[0]['folder']; - } - while($hash); + } while($hash); + return true; } @@ -308,8 +309,9 @@ function attach_can_view_folder($uid,$ob_hash,$folder_hash) { * Returns the entire attach structure excluding data. * * @see attach_by_hash() - * @param $hash - * @param $rev revision default 0 + * @param string $hash + * @param string $observer_hash + * @param int $rev (optional) revision default 0 * @return associative array with everything except data * * \e boolean \b success boolean true or false * * \e string \b message (optional) only when success is false @@ -335,12 +337,12 @@ function attach_by_hash_nodata($hash, $observer_hash, $rev = 0) { return $ret; } - if(! perm_is_allowed($r[0]['uid'],$observer_hash,'view_storage')) { + if(! perm_is_allowed($r[0]['uid'], $observer_hash, 'view_storage')) { $ret['message'] = t('Permission denied.'); return $ret; } - $sql_extra = permissions_sql($r[0]['uid'],$observer_hash); + $sql_extra = permissions_sql($r[0]['uid'], $observer_hash); // Now we'll see if we can access the attachment @@ -355,14 +357,13 @@ function attach_by_hash_nodata($hash, $observer_hash, $rev = 0) { } if($r[0]['folder']) { - $x = attach_can_view_folder($r[0]['uid'],$observer_hash,$r[0]['folder']); + $x = attach_can_view_folder($r[0]['uid'], $observer_hash, $r[0]['folder']); if(! $x) { $ret['message'] = t('Permission denied.'); return $ret; } } - $ret['success'] = true; $ret['data'] = $r[0]; @@ -378,25 +379,18 @@ function attach_by_hash_nodata($hash, $observer_hash, $rev = 0) { * @note Requires an input field \e userfile and does not accept multiple files * in one request. * - * @param array $channel channel array of owner - * @param string $observer_hash hash of current observer - * @param string $options (optional) one of update, replace, revision - * @param array $arr (optional) associative array - */ - -/** - * A lot going on in this function, and some of it is old cruft and some is new cruft + * @note A lot going on in this function, and some of it is old cruft and some is new cruft * and the entire thing probably needs to be refactored. It started out just storing - * files, before we had DAV. It was made extensible to do extra stuff like edit an + * files, before we had DAV. It was made extensible to do extra stuff like edit an * existing file or optionally store a separate revision using $options to choose between different * storage models. Along the way we moved from - * DB data storage to file system storage. - * Then DAV came along and used different upload methods depending on whether the - * file was stored as a DAV directory object or updated as a file object. One of these + * DB data storage to file system storage. + * Then DAV came along and used different upload methods depending on whether the + * file was stored as a DAV directory object or updated as a file object. One of these * is essentially an update and the other is basically an upload, but doesn't use the traditional PHP - * upload workflow. + * upload workflow. * Then came hubzilla and we tried to merge photo functionality with the file storage. Most of - * that integration occurs within this function. + * that integration occurs within this function. * This required overlap with the old photo_upload stuff and photo albums were * completely different concepts from directories which needed to be reconciled somehow. * The old revision stuff is kind of orphaned currently. There's new revision stuff for photos @@ -404,13 +398,18 @@ function attach_by_hash_nodata($hash, $observer_hash, $rev = 0) { * That's where it sits currently. I repeat it needs to be refactored, and this note is here * for future explorers and those who may be doing that work to understand where it came * from and got to be the monstrosity of tangled unrelated code that it currently is. + * + * @param array $channel channel array of owner + * @param string $observer_hash hash of current observer + * @param string $options (optional) one of update, replace, revision + * @param array $arr (optional) associative array + * @return void|array */ - function attach_store($channel, $observer_hash, $options = '', $arr = null) { require_once('include/photos.php'); - call_hooks('photo_upload_begin',$arr); + call_hooks('photo_upload_begin', $arr); $ret = array('success' => false); $channel_id = $channel['channel_id']; @@ -441,7 +440,7 @@ function attach_store($channel, $observer_hash, $options = '', $arr = null) { return $ret; } - $str_group_allow = perms2str($arr['group_allow']); + $str_group_allow = perms2str($arr['group_allow']); $str_contact_allow = perms2str($arr['contact_allow']); $str_group_deny = perms2str($arr['group_deny']); $str_contact_deny = perms2str($arr['contact_deny']); @@ -458,7 +457,7 @@ function attach_store($channel, $observer_hash, $options = '', $arr = null) { $remove_when_processed = true; - if($options === 'import') { + if($options === 'import') { $src = $arr['src']; $filename = $arr['filename']; $filesize = @filesize($src); @@ -485,17 +484,15 @@ function attach_store($channel, $observer_hash, $options = '', $arr = null) { elseif($options !== 'update') { $f = array('src' => '', 'filename' => '', 'filesize' => 0, 'type' => ''); - call_hooks('photo_upload_file',$f); + call_hooks('photo_upload_file',$f); call_hooks('attach_upload_file',$f); - if (x($f,'src') && x($f,'filesize')) { - $src = $f['src']; - $filename = $f['filename']; - $filesize = $f['filesize']; - $type = $f['type']; - - } else { - + if (x($f,'src') && x($f,'filesize')) { + $src = $f['src']; + $filename = $f['filename']; + $filesize = $f['filesize']; + $type = $f['type']; + } else { if(! x($_FILES,'userfile')) { $ret['message'] = t('No source file.'); return $ret; @@ -543,12 +540,10 @@ function attach_store($channel, $observer_hash, $options = '', $arr = null) { $hash = $x[0]['hash']; } - - $def_extension = ''; $is_photo = 0; $gis = @getimagesize($src); - logger('getimagesize: ' . print_r($gis,true), LOGGER_DATA); + logger('getimagesize: ' . print_r($gis,true), LOGGER_DATA); if(($gis) && ($gis[2] === IMAGETYPE_GIF || $gis[2] === IMAGETYPE_JPEG || $gis[2] === IMAGETYPE_PNG)) { $is_photo = 1; if($gis[2] === IMAGETYPE_GIF) @@ -557,7 +552,6 @@ function attach_store($channel, $observer_hash, $options = '', $arr = null) { $def_extension = '.jpg'; if($gis[2] === IMAGETYPE_PNG) $def_extension = '.png'; - } $pathname = ''; @@ -607,7 +601,7 @@ function attach_store($channel, $observer_hash, $options = '', $arr = null) { } else { $folder_hash = ((($arr) && array_key_exists('folder',$arr)) ? $arr['folder'] : ''); - } + } if((! $options) || ($options === 'import')) { @@ -654,8 +648,7 @@ function attach_store($channel, $observer_hash, $options = '', $arr = null) { } if($found) $x++; - } - while($found); + } while($found); $filename = $basename . '(' . $x . ')' . $ext; } else @@ -702,7 +695,7 @@ function attach_store($channel, $observer_hash, $options = '', $arr = null) { if($folder_hash) { $curr = find_folder_hash_by_attach_hash($channel_id,$folder_hash,true); - if($curr) + if($curr) $os_relpath .= $curr . '/'; $os_relpath .= $folder_hash . '/'; } @@ -711,6 +704,7 @@ function attach_store($channel, $observer_hash, $options = '', $arr = null) { // not yet used $os_path = ''; + $display_path = ''; if($src) @file_put_contents($os_basepath . $os_relpath,@file_get_contents($src)); @@ -726,23 +720,24 @@ function attach_store($channel, $observer_hash, $options = '', $arr = null) { $edited = $created; if($options === 'replace') { - $r = q("update attach set filename = '%s', filetype = '%s', folder = '%s', filesize = %d, os_storage = %d, is_photo = %d, content = '%s', edited = '%s', os_path = '%s' where id = %d and uid = %d", + $r = q("update attach set filename = '%s', filetype = '%s', folder = '%s', filesize = %d, os_storage = %d, is_photo = %d, content = '%s', edited = '%s', os_path = '%s', display_path = '%s' where id = %d and uid = %d", dbesc($filename), dbesc($mimetype), dbesc($folder_hash), intval($filesize), intval(1), intval($is_photo), - dbesc($os_basepath . $os_relpath), + dbescbin($os_basepath . $os_relpath), dbesc($created), dbesc($os_path), + dbesc($display_path), intval($existing_id), intval($channel_id) ); } elseif($options === 'revise') { - $r = q("insert into attach ( aid, uid, hash, creator, filename, filetype, folder, filesize, revision, os_storage, is_photo, content, created, edited, os_path, allow_cid, allow_gid, deny_cid, deny_gid ) - VALUES ( %d, %d, '%s', '%s', '%s', '%s', '%s', %d, %d, %d, %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s' ) ", + $r = q("insert into attach ( aid, uid, hash, creator, filename, filetype, folder, filesize, revision, os_storage, is_photo, content, created, edited, os_path, display_path, allow_cid, allow_gid, deny_cid, deny_gid ) + VALUES ( %d, %d, '%s', '%s', '%s', '%s', '%s', %d, %d, %d, %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s' ) ", intval($x[0]['aid']), intval($channel_id), dbesc($x[0]['hash']), @@ -754,10 +749,11 @@ function attach_store($channel, $observer_hash, $options = '', $arr = null) { intval($x[0]['revision'] + 1), intval(1), intval($is_photo), - dbesc($os_basepath . $os_relpath), + dbescbin($os_basepath . $os_relpath), dbesc($created), dbesc($created), dbesc($os_path), + dbesc($display_path), dbesc($x[0]['allow_cid']), dbesc($x[0]['allow_gid']), dbesc($x[0]['deny_cid']), @@ -766,7 +762,7 @@ function attach_store($channel, $observer_hash, $options = '', $arr = null) { } elseif($options === 'update') { $r = q("update attach set filename = '%s', filetype = '%s', folder = '%s', edited = '%s', os_storage = %d, is_photo = %d, os_path = '%s', - allow_cid = '%s', allow_gid = '%s', deny_cid = '%s', deny_gid = '%s' where id = %d and uid = %d", + display_path = '%s', allow_cid = '%s', allow_gid = '%s', deny_cid = '%s', deny_gid = '%s' where id = %d and uid = %d", dbesc((array_key_exists('filename',$arr)) ? $arr['filename'] : $x[0]['filename']), dbesc((array_key_exists('filetype',$arr)) ? $arr['filetype'] : $x[0]['filetype']), dbesc(($folder_hash) ? $folder_hash : $x[0]['folder']), @@ -774,6 +770,7 @@ function attach_store($channel, $observer_hash, $options = '', $arr = null) { dbesc((array_key_exists('os_storage',$arr)) ? $arr['os_storage'] : $x[0]['os_storage']), dbesc((array_key_exists('is_photo',$arr)) ? $arr['is_photo'] : $x[0]['is_photo']), dbesc((array_key_exists('os_path',$arr)) ? $arr['os_path'] : $x[0]['os_path']), + dbesc((array_key_exists('display_path',$arr)) ? $arr['display_path'] : $x[0]['display_path']), dbesc((array_key_exists('allow_cid',$arr)) ? $arr['allow_cid'] : $x[0]['allow_cid']), dbesc((array_key_exists('allow_gid',$arr)) ? $arr['allow_gid'] : $x[0]['allow_gid']), dbesc((array_key_exists('deny_cid',$arr)) ? $arr['deny_cid'] : $x[0]['deny_cid']), @@ -784,8 +781,8 @@ function attach_store($channel, $observer_hash, $options = '', $arr = null) { } else { - $r = q("INSERT INTO attach ( aid, uid, hash, creator, filename, filetype, folder, filesize, revision, os_storage, is_photo, content, created, edited, os_path, allow_cid, allow_gid,deny_cid, deny_gid ) - VALUES ( %d, %d, '%s', '%s', '%s', '%s', '%s', %d, %d, %d, %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s' ) ", + $r = q("INSERT INTO attach ( aid, uid, hash, creator, filename, filetype, folder, filesize, revision, os_storage, is_photo, content, created, edited, os_path, display_path, allow_cid, allow_gid,deny_cid, deny_gid ) + VALUES ( %d, %d, '%s', '%s', '%s', '%s', '%s', %d, %d, %d, %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s' ) ", intval($channel['channel_account_id']), intval($channel_id), dbesc($hash), @@ -797,10 +794,11 @@ function attach_store($channel, $observer_hash, $options = '', $arr = null) { intval(0), intval(1), intval($is_photo), - dbesc($os_basepath . $os_relpath), + dbescbin($os_basepath . $os_relpath), dbesc($created), dbesc($created), dbesc($os_path), + dbesc($display_path), dbesc(($arr && array_key_exists('allow_cid',$arr)) ? $arr['allow_cid'] : $str_contact_allow), dbesc(($arr && array_key_exists('allow_gid',$arr)) ? $arr['allow_gid'] : $str_group_allow), dbesc(($arr && array_key_exists('deny_cid',$arr)) ? $arr['deny_cid'] : $str_contact_deny), @@ -869,7 +867,6 @@ function attach_store($channel, $observer_hash, $options = '', $arr = null) { return $ret; } - $ret['success'] = true; $ret['data'] = $r[0]; if(! $is_photo) { @@ -880,7 +877,7 @@ function attach_store($channel, $observer_hash, $options = '', $arr = null) { if($dosync) { $sync = attach_export_data($channel,$hash); - if($sync) + if($sync) build_sync_packet($channel['channel_id'],array('file' => array($sync))); } @@ -998,7 +995,7 @@ function attach_mkdir($channel, $observer_hash, $arr = null) { intval($channel['channel_id']) ); if($r) { - if(array_key_exists('force',$arr) && intval($arr['force']) + if(array_key_exists('force',$arr) && intval($arr['force']) && (intval($r[0]['is_dir']))) { $ret['success'] = true; $r = q("select * from attach where id = %d limit 1", @@ -1046,8 +1043,12 @@ function attach_mkdir($channel, $observer_hash, $arr = null) { $created = datetime_convert(); - $r = q("INSERT INTO attach ( aid, uid, hash, creator, filename, filetype, filesize, revision, folder, os_storage, is_dir, content, created, edited, allow_cid, allow_gid, deny_cid, deny_gid ) - VALUES ( %d, %d, '%s', '%s', '%s', '%s', %d, %d, '%s', %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s' ) ", + // not yet used + $os_path = ''; + $display_path = ''; + + $r = q("INSERT INTO attach ( aid, uid, hash, creator, filename, filetype, filesize, revision, folder, os_storage, is_dir, content, created, edited, os_path, display_path, allow_cid, allow_gid, deny_cid, deny_gid ) + VALUES ( %d, %d, '%s', '%s', '%s', '%s', %d, %d, '%s', %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s' ) ", intval($channel['channel_account_id']), intval($channel_id), dbesc($arr['hash']), @@ -1059,9 +1060,11 @@ function attach_mkdir($channel, $observer_hash, $arr = null) { dbesc($arr['folder']), intval(1), intval(1), - dbesc($path), + dbescbin($path), dbesc($created), dbesc($created), + dbesc($os_path), + dbesc($display_path), dbesc(($arr && array_key_exists('allow_cid',$arr)) ? $arr['allow_cid'] : $channel['channel_allow_cid']), dbesc(($arr && array_key_exists('allow_gid',$arr)) ? $arr['allow_gid'] : $channel['channel_allow_gid']), dbesc(($arr && array_key_exists('deny_cid',$arr)) ? $arr['deny_cid'] : $channel['channel_deny_cid']), @@ -1150,7 +1153,7 @@ function attach_mkdirp($channel, $observer_hash, $arr = null) { if(! $p) continue; $arx = array( - 'filename' => $p, + 'filename' => $p, 'folder' => $current_parent, 'force' => 1 ); @@ -1163,7 +1166,7 @@ function attach_mkdirp($channel, $observer_hash, $arr = null) { if(array_key_exists('deny_gid',$arr)) $arx['deny_gid'] = $arr['deny_gid']; - $x = attach_mkdir($channel, $observer_hash, $arx); + $x = attach_mkdir($channel, $observer_hash, $arx); if($x['success']) { $current_parent = $x['data']['hash']; } @@ -1177,26 +1180,22 @@ function attach_mkdirp($channel, $observer_hash, $arr = null) { $ret['data'] = $x['data']; } - return $ret; - + return $ret; } - - - - /** * @brief Changes permissions of a file. * - * @param int $channel_id + * @param int $channel_id The id of the channel * @param array $resource * @param string $allow_cid * @param string $allow_gid * @param string $deny_cid * @param string $deny_gid * @param boolean $recurse (optional) default false + * @param boolean $sync (optional) default false */ function attach_change_permissions($channel_id, $resource, $allow_cid, $allow_gid, $deny_cid, $deny_gid, $recurse = false, $sync = false) { @@ -1248,7 +1247,7 @@ function attach_change_permissions($channel_id, $resource, $allow_cid, $allow_gi if($sync) { $data = attach_export_data($channel,$resource); - if($data) + if($data) build_sync_packet($channel['channel_id'],array('file' => array($data))); } } @@ -1263,6 +1262,7 @@ function attach_change_permissions($channel_id, $resource, $allow_cid, $allow_gi * The id of the channel * @param string $resource * The hash to delete + * @param int $is_photo (optional) default 0 * @return void */ function attach_delete($channel_id, $resource, $is_photo = 0) { @@ -1306,6 +1306,7 @@ function attach_delete($channel_id, $resource, $is_photo = 0) { ); if($y) { + $y[0]['content'] = dbunescbin($y[0]['content']); if(strpos($y[0]['content'],'store') === false) $f = 'store/' . $channel_address . '/' . $y[0]['content']; else @@ -1337,7 +1338,7 @@ function attach_delete($channel_id, $resource, $is_photo = 0) { dbesc($resource) ); } - + // update the parent folder's lastmodified timestamp $e = q("UPDATE attach SET edited = '%s' WHERE hash = '%s' AND uid = %d", dbesc(datetime_convert()), @@ -1425,6 +1426,7 @@ function get_parent_cloudpath($channel_id, $channel_name, $attachHash) { $parentFullPath = $parentName . '/' . $parentFullPath; } } while ($parentHash); + $parentFullPath = z_root() . '/cloud/' . $channel_name . '/' . $parentFullPath; return $parentFullPath; @@ -1437,11 +1439,14 @@ function get_parent_cloudpath($channel_id, $channel_name, $attachHash) { * The id of the channel * @param string $attachHash * The hash of the attachment + * @param boolean $recurse + * (optional) default false * @return string */ function find_folder_hash_by_attach_hash($channel_id, $attachHash, $recurse = false) { -logger('attach_hash: ' . $attachHash); + logger('attach_hash: ' . $attachHash); + $r = q("SELECT folder FROM attach WHERE uid = %d AND hash = '%s' LIMIT 1", intval($channel_id), dbesc($attachHash) @@ -1449,10 +1454,11 @@ logger('attach_hash: ' . $attachHash); $hash = ''; if($r && $r[0]['folder']) { if($recurse) - $hash = find_folder_hash_by_attach_hash($channel_id,$r[0]['folder'],true) . '/' . $r[0]['folder']; + $hash = find_folder_hash_by_attach_hash($channel_id,$r[0]['folder'],true) . '/' . $r[0]['folder']; else $hash = $r[0]['folder']; } + return $hash; } @@ -1569,13 +1575,13 @@ function file_activity($channel_id, $object, $allow_cid, $allow_gid, $deny_cid, $arr = array(); $arr['aid'] = get_account_id(); $arr['uid'] = $channel_id; - $arr['item_wall'] = 1; + $arr['item_wall'] = 1; $arr['item_origin'] = 1; $arr['item_unseen'] = 1; $arr['author_xchan'] = $poster['xchan_hash']; $arr['owner_xchan'] = $poster['xchan_hash']; $arr['title'] = ''; - $arr['item_hidden'] = 1; + $arr['item_notshown'] = 1; $arr['obj_type'] = $objtype; $arr['resource_id'] = $object['hash']; $arr['resource_type'] = 'attach'; @@ -1732,11 +1738,11 @@ function get_file_activity_object($channel_id, $hash, $cloudpath) { /** * @brief Returns array of channels which have recursive permission for a file * - * @param $arr_allow_cid - * @param $arr_allow_gid - * @param $arr_deny_cid - * @param $arr_deny_gid - * @param $folder_hash + * @param array $arr_allow_cid + * @param array $arr_allow_gid + * @param array $arr_deny_cid + * @param array $arr_deny_gid + * @param string $folder_hash */ function recursive_activity_recipients($arr_allow_cid, $arr_allow_gid, $arr_deny_cid, $arr_deny_gid, $folder_hash) { @@ -1907,7 +1913,7 @@ function attach_export_data($channel, $resource_id, $deleted = false) { ); if($r) { for($x = 0; $x < count($r); $x ++) { - $r[$x]['content'] = base64_encode($r[$x]['content']); + $r[$x]['content'] = base64_encode(dbunescbin($r[$x]['content'])); } $ret['photo'] = $r; } @@ -1931,50 +1937,53 @@ function attach_export_data($channel, $resource_id, $deleted = false) { } return $ret; - } -/* strip off 'store/nickname/' from the provided path */ - +/** + * @brief Strip off 'store/nickname/' from the provided path + * + * @param string $s + * @return string + */ function get_attach_binname($s) { $p = $s; - if(strpos($s,'store/') === 0) { - $p = substr($s,6); - $p = substr($p,strpos($p,'/')+1); + if(strpos($s, 'store/') === 0) { + $p = substr($s, 6); + $p = substr($p, strpos($p, '/')+1); } + return $p; } function get_dirpath_by_cloudpath($channel, $path) { - - // Warning: Do not edit the following line. The first symbol is UTF-8 @ - $path = str_replace('@','@',notags(trim($path))); + + $path = notags(trim($path)); $h = @parse_url($path); if(! $h || !x($h, 'path')) { return null; } - if(substr($h['path'],-1,1) === '/') { - $h['path'] = substr($h['path'],0,-1); + if(substr($h['path'], -1, 1) === '/') { + $h['path'] = substr($h['path'], 0, -1); } if(substr($h['path'],0,1) === '/') { - $h['path'] = substr($h['path'],1); + $h['path'] = substr($h['path'], 1); } $folders = explode('/', $h['path']); $f = array_shift($folders); - + $nick = $channel['channel_address']; //check to see if the absolute path was provided (/cloud/channelname/path/to/folder) - if($f === 'cloud' ) { + if($f === 'cloud' ) { $g = array_shift($folders); if( $g !== $nick) { // if nick does not follow "cloud", then the top level folder must be called "cloud" - // and the given path must be relative to "/cloud/channelname/". + // and the given path must be relative to "/cloud/channelname/". $folders = array_unshift(array_unshift($folders, $g), $f); - } + } } else { array_unshift($folders, $f); } @@ -1998,8 +2007,6 @@ function get_dirpath_by_cloudpath($channel, $path) { } else { return $clouddir . $subdir; } - - } function get_filename_by_cloudname($cloudname, $channel, $storepath) { @@ -2013,66 +2020,74 @@ function get_filename_by_cloudname($cloudname, $channel, $storepath) { return null; } - -// recursively copy a directory into cloud files -function copy_folder_to_cloudfiles($channel, $observer_hash, $srcpath, $cloudpath) -{ - if (!is_dir($srcpath) || !is_readable($srcpath)) { - logger('Error reading source path: ' . $srcpath, LOGGER_NORMAL); +/** + * @brief recursively copy a directory into cloud files + * + * @param array $channel + * @param string $observer_hash + * @param string $srcpath + * @param string $cloudpath + * @return boolean + */ +function copy_folder_to_cloudfiles($channel, $observer_hash, $srcpath, $cloudpath) { + if (!is_dir($srcpath) || !is_readable($srcpath)) { + logger('Error reading source path: ' . $srcpath, LOGGER_NORMAL); + return false; + } + $nodes = array_diff(scandir($srcpath), array('.', '..')); + foreach ($nodes as $node) { + $clouddir = $cloudpath . '/' . $node; // Sub-folder in cloud files destination + $nodepath = $srcpath . '/' . $node; // Sub-folder in source path + if(is_dir($nodepath)) { + $x = attach_mkdirp($channel, $observer_hash, array('pathname' => $clouddir)); + if(!$x['success']) { + logger('Error creating cloud path: ' . $clouddir, LOGGER_NORMAL); return false; + } + // Recursively call this function where the source and destination are the subfolders + $success = copy_folder_to_cloudfiles($channel, $observer_hash, $nodepath, $clouddir); + if(!$success) { + logger('Error copying contents of folder: ' . $nodepath, LOGGER_NORMAL); + return false; + } + } elseif(is_file($nodepath) && is_readable($nodepath)) { + $x = attach_store($channel, $observer_hash, 'import', array( + 'directory' => $cloudpath, + 'src' => $nodepath, + 'filename' => $node, + 'filesize' => @filesize($nodepath), + 'preserve_original' => true + )); + if(!$x['success']) { + logger('Error copying file: ' . $nodepath, LOGGER_NORMAL); + logger('Return value: ' . json_encode($x), LOGGER_NORMAL); + return false; + } + } else { + logger('Error scanning source path', LOGGER_NORMAL); + return false; } - $nodes = array_diff(scandir($srcpath), array('.', '..')); - foreach ($nodes as $node) { - $clouddir = $cloudpath . '/' . $node; // Sub-folder in cloud files destination - $nodepath = $srcpath . '/' . $node; // Sub-folder in source path - if(is_dir($nodepath)) { - $x = attach_mkdirp($channel, $observer_hash, array('pathname' => $clouddir)); - if(!$x['success']) { - logger('Error creating cloud path: ' . $clouddir, LOGGER_NORMAL); - return false; - } - // Recursively call this function where the source and destination are the subfolders - $success = copy_folder_to_cloudfiles($channel, $observer_hash, $nodepath, $clouddir); - if(!$success) { - logger('Error copying contents of folder: ' . $nodepath, LOGGER_NORMAL); - return false; - } - } elseif (is_file($nodepath) && is_readable($nodepath)) { - $x = attach_store($channel, $observer_hash, 'import', - array( - 'directory' => $cloudpath, - 'src' => $nodepath, - 'filename' => $node, - 'filesize' => @filesize($nodepath), - 'preserve_original' => true) - ); - if(!$x['success']) { - logger('Error copying file: ' . $nodepath , LOGGER_NORMAL); - logger('Return value: ' . json_encode($x), LOGGER_NORMAL); - return false; - } - } else { - logger('Error scanning source path', LOGGER_NORMAL); - return false; - } - } + } - return true; + return true; } /** - * attach_move() * This function performs an in place directory-to-directory move of a stored attachment or photo. * The data is physically moved in the store/nickname storage location and the paths adjusted * in the attach structure (and if applicable the photo table). The new 'album name' is recorded * for photos and will show up immediately there. * This takes a channel_id, attach.hash of the file to move (this is the same as a photo resource_id), and * the attach.hash of the new parent folder, which must already exist. If $new_folder_hash is blank or empty, - * the file is relocated to the root of the channel's storage area. + * the file is relocated to the root of the channel's storage area. * * @fixme: this operation is currently not synced to clones !! + * + * @param int $channel_id + * @param int $resource_id + * @param string $new_folder_hash + * @return void|boolean */ - -function attach_move($channel_id,$resource_id,$new_folder_hash) { +function attach_move($channel_id, $resource_id, $new_folder_hash) { $c = channelx_by_n($channel_id); if(! $c) @@ -2085,8 +2100,8 @@ function attach_move($channel_id,$resource_id,$new_folder_hash) { if(! $r) return false; - $oldstorepath = $r[0]['content']; - + $oldstorepath = dbunescbin($r[0]['content']); + if($new_folder_hash) { $n = q("select * from attach where hash = '%s' and uid = %d limit 1", dbesc($new_folder_hash), @@ -2094,8 +2109,9 @@ function attach_move($channel_id,$resource_id,$new_folder_hash) { ); if(! $n) return; + $newdirname = $n[0]['filename']; - $newstorepath = $n[0]['content'] . '/' . $resource_id; + $newstorepath = dbunescbin($n[0]['content']) . '/' . $resource_id; } else { $newstorepath = 'store/' . $c['channel_address'] . '/' . $resource_id; @@ -2115,7 +2131,7 @@ function attach_move($channel_id,$resource_id,$new_folder_hash) { if($s) { $overwrite = get_pconfig($channel_id,'system','overwrite_dup_files'); if($overwrite) { - // @fixme + /// @fixme return; } else { @@ -2128,6 +2144,10 @@ function attach_move($channel_id,$resource_id,$new_folder_hash) { $ext = ''; } + $matches = false; + if(preg_match('/(.*?)\([0-9]{1,}\)$/',$basename,$matches)) + $basename = $matches[1]; + $v = q("select filename from attach where ( filename = '%s' OR filename like '%s' ) and folder = '%s' ", dbesc($basename . $ext), dbesc($basename . '(%)' . $ext), @@ -2147,7 +2167,7 @@ function attach_move($channel_id,$resource_id,$new_folder_hash) { } if($found) $x++; - } + } while($found); $filename = $basename . '(' . $x . ')' . $ext; } @@ -2157,7 +2177,7 @@ function attach_move($channel_id,$resource_id,$new_folder_hash) { } $t = q("update attach set content = '%s', folder = '%s', filename = '%s' where id = %d", - dbesc($newstorepath), + dbescbin($newstorepath), dbesc($new_folder_hash), dbesc($filename), intval($r[0]['id']) @@ -2172,14 +2192,13 @@ function attach_move($channel_id,$resource_id,$new_folder_hash) { ); $t = q("update photo set content = '%s' where resource_id = '%s' and uid = %d and imgscale = 0", - dbesc($newstorepath), + dbescbin($newstorepath), dbesc($resource_id), intval($channel_id) ); } return true; - } @@ -2191,7 +2210,7 @@ function attach_folder_select_list($channel_id) { $out = []; $out[''] = '/'; - + if($r) { foreach($r as $rv) { $x = attach_folder_rpaths($r,$rv); @@ -2199,6 +2218,7 @@ function attach_folder_select_list($channel_id) { $out[$x[0]] = $x[1]; } } + return $out; } @@ -2223,11 +2243,11 @@ function attach_folder_rpaths($all_folders,$that_folder) { break; } } - if(! $found) + if(! $found) $error = true; } while((! $found) && (! $error) && ($parent_hash != '')); } - return (($error) ? false : [ $current_hash , $path ]); -} \ No newline at end of file + return (($error) ? false : [ $current_hash , $path ]); +} diff --git a/include/bb2diaspora.php b/include/bb2diaspora.php index d3f88e17c..87a8551ae 100644 --- a/include/bb2diaspora.php +++ b/include/bb2diaspora.php @@ -123,13 +123,16 @@ function diaspora_mention_callback($matches) { * @param boolean $use_zrl default false * @return string */ -function diaspora2bb($s, $use_zrl = false) { +function markdown_to_bb($s, $use_zrl = false) { $s = str_replace(" ","\r",$s); $s = str_replace(" \n>","",$s); $s = html_entity_decode($s,ENT_COMPAT,'UTF-8'); + // if empty link text replace with the url + $s = preg_replace("/\[\]\((.*?)\)/ism",'[$1]($1)',$s); + // first try plustags $s = preg_replace_callback('/\@\{(.+?)\; (.+?)\@(.+?)\}\+/','diaspora_mention_callback',$s); @@ -155,23 +158,20 @@ function diaspora2bb($s, $use_zrl = false) { // Convert everything that looks like a link to a link if($use_zrl) { $s = str_replace(array('[img','/img]'),array('[zmg','/zmg]'),$s); - $s = preg_replace("/([^\]\=]|^)(https?\:\/\/)([a-zA-Z0-9\:\/\-\?\&\;\.\=\_\~\#\%\$\!\+\,]+)/ism", '$1[zrl=$2$3]$2$3[/zrl]',$s); + $s = preg_replace("/([^\]\=]|^)(https?\:\/\/)([a-zA-Z0-9\:\/\-\?\&\;\.\=\_\~\#\%\$\!\+\,\(\)]+)/ism", '$1[zrl=$2$3]$2$3[/zrl]',$s); } else { - $s = preg_replace("/([^\]\=]|^)(https?\:\/\/)([a-zA-Z0-9\:\/\-\?\&\;\.\=\_\~\#\%\$\!\+\,]+)/ism", '$1[url=$2$3]$2$3[/url]',$s); + $s = preg_replace("/([^\]\=]|^)(https?\:\/\/)([a-zA-Z0-9\:\/\-\?\&\;\.\=\_\~\#\%\$\!\+\,\(\)]+)/ism", '$1[url=$2$3]$2$3[/url]',$s); } - //$s = preg_replace("/([^\]\=]|^)(https?\:\/\/)(vimeo|youtu|www\.youtube|soundcloud)([a-zA-Z0-9\:\/\-\?\&\;\.\=\_\~\#\%\$\!\+\,]+)/ism", '$1[url=$2$3$4]$2$3$4[/url]',$s); - $s = bb_tag_preg_replace("/\[url\=?(.*?)\]https?:\/\/www.youtube.com\/watch\?v\=(.*?)\[\/url\]/ism",'[embed]https://www.youtube.com/watch?v=$2[/embed]','url',$s); - $s = bb_tag_preg_replace("/\[url\=https?:\/\/www.youtube.com\/watch\?v\=(.*?)\].*?\[\/url\]/ism",'[embed]https://www.youtube.com/watch?v=$1[/embed]','url',$s); - $s = bb_tag_preg_replace("/\[url\=?(.*?)\]https?:\/ \/vimeo.com\/([0-9]+)(.*?)\[\/url\]/ism",'[embed]https://vimeo.com/$2[/embed]','url',$s); - $s = bb_tag_preg_replace("/\[url\=https?:\/\/vimeo.com\/([0-9]+)\](.*?)\[\/url\]/ism",'[embed]https://vimeo.com/$1[/embed]','url',$s); // remove duplicate adjacent code tags $s = preg_replace("/(\[code\])+(.*?)(\[\/code\])+/ism","[code]$2[/code]", $s); // Don't show link to full picture (until it is fixed) $s = scale_external_images($s, false); + call_hooks('markdown_to_bb',$s); + return $s; } @@ -324,7 +324,7 @@ function bb2diaspora_itemwallwall(&$item,$uplink = false) { } -function bb2diaspora_itembody($item, $force_update = false, $have_channel = false, $uplink) { +function bb2diaspora_itembody($item, $force_update = false, $have_channel = false, $uplink = false) { if(! get_iconfig($item,'diaspora','fields')) { @@ -430,6 +430,12 @@ function bb2diaspora($Text,$preserve_nl = false, $fordiaspora = true) { $Text = preg_replace_callback('/\@\!?\[([zu])rl\=(\w+.*?)\](\w+.*?)\[\/([zu])rl\]/i', 'bb2dmention_callback', $Text); + // strip map tags, as the rendering is performed in bbcode() and the resulting output + // is not compatible with Diaspora (at least in the case of openstreetmap and probably + // due to the inclusion of an html iframe) + + $Text = preg_replace("/\[map\=(.*?)\]/ism", '$1', $Text); + $Text = preg_replace("/\[map\](.*?)\[\/map\]/ism", '$1', $Text); // Converting images with size parameters to simple images. Markdown doesn't know it. $Text = preg_replace("/\[img\=([0-9]*)x([0-9]*)\](.*?)\[\/img\]/ism", '[img]$3[/img]', $Text); @@ -452,6 +458,8 @@ function bb2diaspora($Text,$preserve_nl = false, $fordiaspora = true) { $md = new Markdownify(false, false, false); $Text = $md->parseString($Text); + + // It also adds backslashes to our attempt at getting around the html entity preservation for some weird reason. $Text = str_replace(array('&\\_lt\\_;','&\\_gt\\_;','&\\_amp\\_;'),array('<','>','&'),$Text); diff --git a/include/bbcode.php b/include/bbcode.php index a82b658b1..32354aeda 100644 --- a/include/bbcode.php +++ b/include/bbcode.php @@ -403,6 +403,15 @@ function bb_definitionList_unescapeBraces($match) { return '
' . str_replace('\]', ']', $match[1]) . '
'; } + +function bb_checklist($match) { + $str = $match[1]; + $str = str_replace("[]", "
  • ", $str); + $str = str_replace("[x]", "
  • ", $str); + return ''; +} + + /** * @brief Sanitize style properties from BBCode to HTML. * @@ -503,10 +512,10 @@ function bb_code($match) { } function bb_highlight($match) { - if(in_array(strtolower($match[1]),['php','css','mysql','sql','abap','diff','html','perl','ruby', + $lang = ((in_array(strtolower($match[1]),['php','css','mysql','sql','abap','diff','html','perl','ruby', 'vbscript','avrc','dtd','java','xml','cpp','python','javascript','js','json','sh'])) - return text_highlight($match[2],strtolower($match[1])); - return $match[0]; + ? strtolower($match[1]) : 'php' ); + return text_highlight($match[2],$lang); } function bb_fixtable_lf($match) { @@ -520,7 +529,49 @@ function bb_fixtable_lf($match) { } +function parseIdentityAwareHTML($Text) { + + // process [observer] tags before we do anything else because we might + // be stripping away stuff that then doesn't need to be worked on anymore + $observer = App::get_observer(); + + if ((strpos($Text,'[/observer]') !== false) || (strpos($Text,'[/rpost]') !== false)) { + if ($observer) { + $Text = preg_replace("/\[observer\=1\](.*?)\[\/observer\]/ism", '$1', $Text); + $Text = preg_replace("/\[observer\=0\].*?\[\/observer\]/ism", '', $Text); + $Text = preg_replace_callback("/\[rpost(=(.*?))?\](.*?)\[\/rpost\]/ism", 'rpost_callback', $Text); + } else { + $Text = preg_replace("/\[observer\=1\].*?\[\/observer\]/ism", '', $Text); + $Text = preg_replace("/\[observer\=0\](.*?)\[\/observer\]/ism", '$1', $Text); + $Text = preg_replace("/\[rpost(=.*?)?\](.*?)\[\/rpost\]/ism", '', $Text); + } + } + // replace [observer.baseurl] + if ($observer) { + $s1 = ''; + $s2 = ''; + $obsBaseURL = $observer['xchan_connurl']; + $obsBaseURL = preg_replace("/\/poco\/.*$/", '', $obsBaseURL); + $Text = str_replace('[observer.baseurl]', $obsBaseURL, $Text); + $Text = str_replace('[observer.url]',$observer['xchan_url'], $Text); + $Text = str_replace('[observer.name]',$s1 . $observer['xchan_name'] . $s2, $Text); + $Text = str_replace('[observer.address]',$s1 . $observer['xchan_addr'] . $s2, $Text); + $Text = str_replace('[observer.webname]', substr($observer['xchan_addr'],0,strpos($observer['xchan_addr'],'@')), $Text); + $Text = str_replace('[observer.photo]',$s1 . '[zmg]'.$observer['xchan_photo_l'].'[/zmg]' . $s2, $Text); + } else { + $Text = str_replace('[observer.baseurl]', '', $Text); + $Text = str_replace('[observer.url]','', $Text); + $Text = str_replace('[observer.name]','', $Text); + $Text = str_replace('[observer.address]','', $Text); + $Text = str_replace('[observer.webname]','',$Text); + $Text = str_replace('[observer.photo]','', $Text); + } + + $Text = str_replace(array('[baseurl]','[sitename]'),array(z_root(),get_config('system','sitename')),$Text); + + return $Text; +} // BBcode 2 HTML was written by WAY2WEB.net // extended to work with Mistpark/Friendica/Redmatrix/Hubzilla - Mike Macgirvin @@ -550,7 +601,6 @@ function bbcode($Text, $preserve_nl = false, $tryoembed = true, $cache = false) // process [observer] tags before we do anything else because we might // be stripping away stuff that then doesn't need to be worked on anymore - if($cache) $observer = false; else @@ -653,7 +703,7 @@ function bbcode($Text, $preserve_nl = false, $tryoembed = true, $cache = false) // Perform URL Search - $urlchars = '[a-zA-Z0-9\:\/\-\?\&\;\.\=\@\_\~\#\%\$\!\+\,\@]'; + $urlchars = '[a-zA-Z0-9\:\/\-\?\&\;\.\=\@\_\~\#\%\$\!\+\,\@\(\)]'; if (strpos($Text,'http') !== false) { if($tryoembed) { @@ -737,6 +787,12 @@ function bbcode($Text, $preserve_nl = false, $tryoembed = true, $cache = false) if (strpos($Text,'[/color]') !== false) { $Text = preg_replace("(\[color=(.*?)\](.*?)\[\/color\])ism", "$2", $Text); } + // Check for colored text + if (strpos($Text,'[/hl]') !== false) { + $Text = preg_replace("(\[hl\](.*?)\[\/hl\])ism", "$1", $Text); + $Text = preg_replace("(\[hl=(.*?)\](.*?)\[\/hl\])ism", "$2", $Text); + } + // Check for sized text // [size=50] --> font-size: 50px (with the unit). if (strpos($Text,'[/size]') !== false) { @@ -768,12 +824,14 @@ function bbcode($Text, $preserve_nl = false, $tryoembed = true, $cache = false) $Text = preg_replace("(\[h6\](.*?)\[\/h6\])ism",'
    $1
    ',$Text); } // Check for table of content without params - if (strpos($Text,'[toc]') !== false) { - $Text = preg_replace("/\[toc\]/ism",'',$Text); + while(strpos($Text,'[toc]') !== false) { + $toc_id = 'toc-' . random_string(10); + $Text = preg_replace("/\[toc\]/ism", '', $Text, 1); } // Check for table of content with params - if (strpos($Text,'[toc') !== false) { - $Text = preg_replace("/\[toc([^\]]+?)\]/ism",'',$Text); + while(strpos($Text,'[toc') !== false) { + $toc_id = 'toc-' . random_string(10); + $Text = preg_replace("/\[toc([^\]]+?)\]/ism", '
      ', $Text, 1); } // Check for centered text if (strpos($Text,'[/center]') !== false) { @@ -784,15 +842,15 @@ function bbcode($Text, $preserve_nl = false, $tryoembed = true, $cache = false) $Text = preg_replace("(\[footer\](.*?)\[\/footer\])ism", "
      $1
      ", $Text); } // Check for list text + + $Text = preg_replace("/
      \[\*\]/ism",'[*]',$Text); + $Text = str_replace("[*]", "
    • ", $Text); - $Text = str_replace("[]", "
    • ", $Text); - $Text = str_replace("[x]", "
    • ", $Text); // handle nested lists $endlessloop = 0; while ((((strpos($Text, "[/list]") !== false) && (strpos($Text, "[list") !== false)) || - ((strpos($Text, "[/checklist]") !== false) && (strpos($Text, "[checklist]") !== false)) || ((strpos($Text, "[/ol]") !== false) && (strpos($Text, "[ol]") !== false)) || ((strpos($Text, "[/ul]") !== false) && (strpos($Text, "[ul]") !== false)) || ((strpos($Text, "[/dl]") !== false) && (strpos($Text, "[dl") !== false)) || @@ -804,9 +862,9 @@ function bbcode($Text, $preserve_nl = false, $tryoembed = true, $cache = false) $Text = preg_replace("/\[list=((?-i)I)\](.*?)\[\/list\]/ism", '', $Text); $Text = preg_replace("/\[list=((?-i)a)\](.*?)\[\/list\]/ism", '', $Text); $Text = preg_replace("/\[list=((?-i)A)\](.*?)\[\/list\]/ism", '', $Text); - $Text = preg_replace("/\[checklist\](.*?)\[\/checklist\]/ism", '', $Text); $Text = preg_replace("/\[ul\](.*?)\[\/ul\]/ism", '', $Text); $Text = preg_replace("/\[ol\](.*?)\[\/ol\]/ism", '', $Text); + $Text = preg_replace("/\[\/li\]
      \[li\]/ism",'[/li][li]',$Text); $Text = preg_replace("/\[li\](.*?)\[\/li\]/ism", '
    • $1
    • ', $Text); // [dl] tags have an optional [dl terms="bi"] form where bold/italic/underline/mono/large @@ -815,7 +873,13 @@ function bbcode($Text, $preserve_nl = false, $tryoembed = true, $cache = false) // "[dl" "]" "[/dl]" // where optional-termStyles are: "terms=" $Text = preg_replace_callback('/\[dl[[:space:]]*(?:terms=(?:"|")?([a-zA-Z]+)(?:"|")?)?\](.*?)\[\/dl\]/ism', 'bb_definitionList', $Text); + } + + if (strpos($Text,'[checklist]') !== false) { + $Text = preg_replace_callback("/\[checklist\](.*?)\[\/checklist\]/ism", 'bb_checklist', $Text); + } + if (strpos($Text,'[th]') !== false) { $Text = preg_replace("/\[th\](.*?)\[\/th\]/sm", '$1', $Text); } @@ -1003,15 +1067,15 @@ function bbcode($Text, $preserve_nl = false, $tryoembed = true, $cache = false) $Text = preg_replace("/\[zaudio\](.*?)\[\/zaudio\]/", '$1', $Text); } - if ($tryoembed){ - if (strpos($Text,'[/iframe]') !== false) { - $Text = preg_replace_callback("/\[iframe\](.*?)\[\/iframe\]/ism", 'bb_iframe', $Text); - } - } else { - if (strpos($Text,'[/iframe]') !== false) { - $Text = preg_replace("/\[iframe\](.*?)\[\/iframe\]/ism", '$1', $Text); - } - } +// if ($tryoembed){ +// if (strpos($Text,'[/iframe]') !== false) { +// $Text = preg_replace_callback("/\[iframe\](.*?)\[\/iframe\]/ism", 'bb_iframe', $Text); +// } +// } else { +// if (strpos($Text,'[/iframe]') !== false) { +// $Text = preg_replace("/\[iframe\](.*?)\[\/iframe\]/ism", '$1', $Text); +// } +// } // oembed tag $Text = oembed_bbcode2html($Text); @@ -1024,7 +1088,7 @@ function bbcode($Text, $preserve_nl = false, $tryoembed = true, $cache = false) // Summary (e.g. title) is required, earlier revisions only required description (in addition to // start which is always required). Allow desc with a missing summary for compatibility. - if ((x($ev,'desc') || x($ev,'summary')) && x($ev,'start')) { + if ((x($ev,'desc') || x($ev,'summary')) && x($ev,'dtstart')) { $sub = format_event_html($ev); diff --git a/include/channel.php b/include/channel.php index 88e59830f..4fc873402 100644 --- a/include/channel.php +++ b/include/channel.php @@ -162,7 +162,7 @@ function channel_total() { * Also creates the related xchan, hubloc, profile, and "self" abook records, * and an empty "Friends" group/collection for the new channel. * - * @param array $arr assoziative array with: + * @param array $arr associative array with: * * \e string \b name full name of channel * * \e string \b nickname "email/url-compliant" nickname * * \e int \b account_id to attach with this channel @@ -182,7 +182,7 @@ function create_identity($arr) { return $ret; } $ret = identity_check_service_class($arr['account_id']); - if (!$ret['success']) { + if (!$ret['success']) { return $ret; } // save this for auto_friending @@ -236,13 +236,13 @@ function create_identity($arr) { $publish = intval($role_permissions['directory_publish']); $primary = true; - + if(array_key_exists('primary', $arr)) $primary = intval($arr['primary']); $expire = 0; - $r = q("insert into channel ( channel_account_id, channel_primary, + $r = q("insert into channel ( channel_account_id, channel_primary, channel_name, channel_address, channel_guid, channel_guid_sig, channel_hash, channel_prvkey, channel_pubkey, channel_pageflags, channel_system, channel_expire_days, channel_timezone ) values ( %d, %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d, %d, %d, '%s' ) ", @@ -262,7 +262,7 @@ function create_identity($arr) { dbesc(App::$timezone) ); - $r = q("select * from channel where channel_account_id = %d + $r = q("select * from channel where channel_account_id = %d and channel_guid = '%s' limit 1", intval($arr['account_id']), dbesc($guid) @@ -291,7 +291,7 @@ function create_identity($arr) { // Create a verified hub location pointing to this site. - $r = q("insert into hubloc ( hubloc_guid, hubloc_guid_sig, hubloc_hash, hubloc_addr, hubloc_primary, + $r = q("insert into hubloc ( hubloc_guid, hubloc_guid_sig, hubloc_hash, hubloc_addr, hubloc_primary, hubloc_url, hubloc_url_sig, hubloc_host, hubloc_callback, hubloc_sitekey, hubloc_network ) values ( '%s', '%s', '%s', '%s', %d, '%s', '%s', '%s', '%s', '%s', '%s' )", dbesc($guid), @@ -392,11 +392,11 @@ function create_identity($arr) { intval($newuid) ); } - } + } } - // Create a group with yourself as a member. This allows somebody to use it - // right away as a default group for new contacts. + // Create a group with yourself as a member. This allows somebody to use it + // right away as a default group for new contacts. require_once('include/group.php'); group_add($newuid, t('Friends')); @@ -422,7 +422,7 @@ function create_identity($arr) { set_pconfig($ret['channel']['channel_id'],'system','photo_path', '%Y-%m'); set_pconfig($ret['channel']['channel_id'],'system','attach_path','%Y-%m'); } - + // auto-follow any of the hub's pre-configured channel choices. // Only do this if it's the first channel for this account; // otherwise it could get annoying. Don't make this list too big @@ -494,7 +494,7 @@ function identity_basic_export($channel_id, $items = false) { $ret = array(); - // use constants here as otherwise we will have no idea if we can import from a site + // use constants here as otherwise we will have no idea if we can import from a site // with a non-standard platform and version. $ret['compatibility'] = array('project' => PLATFORM_NAME, 'version' => STD_VERSION, 'database' => DB_UPDATE_VERSION, 'server_role' => Zotlabs\Lib\System::get_server_role()); @@ -503,7 +503,7 @@ function identity_basic_export($channel_id, $items = false) { ); if($r) { translate_channel_perms_outbound($r[0]); - $ret['channel'] = $r[0]; + $ret['channel'] = $r[0]; $ret['relocate'] = [ 'channel_address' => $r[0]['channel_address'], 'url' => z_root()]; } @@ -526,7 +526,7 @@ function identity_basic_export($channel_id, $items = false) { if($abconfig) $ret['abook'][$x]['abconfig'] = $abconfig; translate_abook_perms_outbound($ret['abook'][$x]); - } + } stringify_array_elms($xchans); } @@ -534,13 +534,13 @@ function identity_basic_export($channel_id, $items = false) { $r = q("select * from xchan where xchan_hash in ( " . implode(',',$xchans) . " ) "); if($r) $ret['xchan'] = $r; - + $r = q("select * from hubloc where hubloc_hash in ( " . implode(',',$xchans) . " ) "); if($r) $ret['hubloc'] = $r; } - $r = q("select * from `groups` where uid = %d ", + $r = q("select * from groups where uid = %d ", intval($channel_id) ); @@ -578,7 +578,6 @@ function identity_basic_export($channel_id, $items = false) { if($r) $ret['term'] = $r; - // add psuedo-column obj_baseurl to aid in relocations $r = q("select obj.*, '%s' as obj_baseurl from obj where obj_channel = %d", @@ -608,7 +607,6 @@ function identity_basic_export($channel_id, $items = false) { if($r) $ret['chatroom'] = $r; - $r = q("select * from event where uid = %d", intval($channel_id) ); @@ -625,7 +623,7 @@ function identity_basic_export($channel_id, $items = false) { foreach($r as $rr) $ret['event_item'][] = encode_item($rr,true); } - + $x = menu_list($channel_id); if($x) { $ret['menu'] = array(); @@ -636,12 +634,10 @@ function identity_basic_export($channel_id, $items = false) { } } - $addon = array('channel_id' => $channel_id,'data' => $ret); call_hooks('identity_basic_export',$addon); $ret = $addon['data']; - if(! $items) return $ret; @@ -659,11 +655,10 @@ function identity_basic_export($channel_id, $items = false) { if($r) { for($x = 0; $x < count($r); $x ++) { $r[$x]['subject'] = base64url_decode(str_rot47($r[$x]['subject'])); - } + } $ret['conv'] = $r; } - $r = q("select * from mail where mail.uid = %d", intval($channel_id) ); @@ -680,15 +675,15 @@ function identity_basic_export($channel_id, $items = false) { /** @warning this may run into memory limits on smaller systems */ - /** export three months of posts. If you want to export and import all posts you have to start with - * the first year and export/import them in ascending order. + /** export three months of posts. If you want to export and import all posts you have to start with + * the first year and export/import them in ascending order. * * Don't export linked resource items. we'll have to pull those out separately. */ $r = q("select * from item where item_wall = 1 and item_deleted = 0 and uid = %d and created > %s - INTERVAL %s and resource_type = '' order by created", intval($channel_id), - db_utcnow(), + db_utcnow(), db_quoteinterval('3 MONTH') ); if($r) { @@ -730,7 +725,7 @@ function identity_export_year($channel_id,$year,$month = 0) { $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($mindate), dbesc($maxdate) ); @@ -745,16 +740,24 @@ function identity_export_year($channel_id,$year,$month = 0) { return $ret; } -// export items within an arbitrary date range. Date/time is in UTC. - -function channel_export_items($channel_id,$start,$finish) { +/** + * @brief Export items within an arbitrary date range. + * + * Date/time is in UTC. + * + * @param int $channel_id The channel ID + * @param string $start + * @param string $finish + * @return array + */ +function channel_export_items($channel_id, $start, $finish) { if(! $start) return array(); else - $start = datetime_convert('UTC','UTC',$start); + $start = datetime_convert('UTC', 'UTC', $start); - $finish = datetime_convert('UTC','UTC',(($finish) ? $finish : 'now')); + $finish = datetime_convert('UTC', 'UTC', (($finish) ? $finish : 'now')); if($finish < $start) return array(); @@ -768,16 +771,16 @@ function channel_export_items($channel_id,$start,$finish) { $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($start), + dbesc($start), dbesc($finish) ); if($r) { $ret['item'] = array(); xchan_query($r); - $r = fetch_post_tags($r,true); + $r = fetch_post_tags($r, true); foreach($r as $rr) - $ret['item'][] = encode_item($rr,true); + $ret['item'][] = encode_item($rr, true); } return $ret; @@ -792,7 +795,7 @@ function channel_export_items($channel_id,$start,$finish) { * * Permissions of the current observer are checked. If a restricted profile is available * to the current observer, that will be loaded instead of the channel default profile. - * + * * The channel owner can set $profile to a valid profile_guid to preview that profile. * * The channel default theme is also selected for use, unless over-riden elsewhere. @@ -866,7 +869,6 @@ function profile_load($nickname, $profile = '') { intval($p[0]['profile_uid']) ); if($q) { - $extra_fields = array(); require_once('include/channel.php'); @@ -903,7 +905,7 @@ function profile_load($nickname, $profile = '') { // fetch user tags if this isn't the default profile if(! $p[0]['is_default']) { - $x = q("select `keywords` from `profile` where uid = %d and `is_default` = 1 limit 1", + $x = q("select keywords from profile where uid = %d and is_default = 1 limit 1", intval($p[0]['profile_uid']) ); if($x && $can_view_profile) @@ -985,7 +987,6 @@ function profile_edit_menu($uid) { } return $ret; - } /** @@ -997,6 +998,7 @@ function profile_edit_menu($uid) { * @param array $profile * @param int $block * @param boolean $show_connect + * @param mixed $zcard * * @return HTML string suitable for sidebar inclusion * Exceptions: Returns empty string if passed $profile is wrong type or not populated @@ -1032,7 +1034,7 @@ function profile_sidebar($profile, $block = 0, $show_connect = true, $zcard = fa $connect_url = rconnect_url($profile['uid'],get_observer_hash()); $connect = (($connect_url) ? t('Connect') : ''); - if($connect_url) + if($connect_url) $connect_url = sprintf($connect_url,urlencode(channel_reddress($profile))); // premium channel - over-ride @@ -1066,19 +1068,26 @@ function profile_sidebar($profile, $block = 0, $show_connect = true, $zcard = fa ? trim(substr($profile['channel_name'],0,strpos($profile['channel_name'],' '))) : $profile['channel_name']); $lastname = (($firstname === $profile['channel_name']) ? '' : trim(substr($profile['channel_name'],strlen($firstname)))); - $diaspora = array( - 'podloc' => z_root(), - 'guid' => $profile['channel_guid'] . str_replace('.','',App::get_hostname()), - 'pubkey' => pemtorsa($profile['channel_pubkey']), - 'searchable' => (($block) ? 'false' : 'true'), - 'nickname' => $profile['channel_address'], - 'fullname' => $profile['channel_name'], - 'firstname' => $firstname, - 'lastname' => $lastname, - 'photo300' => z_root() . '/photo/profile/300/' . $profile['uid'] . '.jpg', - 'photo100' => z_root() . '/photo/profile/100/' . $profile['uid'] . '.jpg', - 'photo50' => z_root() . '/photo/profile/50/' . $profile['uid'] . '.jpg', - ); + // @fixme move this to the diaspora plugin itself + + if(plugin_is_installed('diaspora')) { + $diaspora = array( + 'podloc' => z_root(), + 'guid' => $profile['channel_guid'] . str_replace('.','',App::get_hostname()), + 'pubkey' => pemtorsa($profile['channel_pubkey']), + 'searchable' => (($block) ? 'false' : 'true'), + 'nickname' => $profile['channel_address'], + 'fullname' => $profile['channel_name'], + 'firstname' => $firstname, + 'lastname' => $lastname, + 'photo300' => z_root() . '/photo/profile/300/' . $profile['uid'] . '.jpg', + 'photo100' => z_root() . '/photo/profile/100/' . $profile['uid'] . '.jpg', + 'photo50' => z_root() . '/photo/profile/50/' . $profile['uid'] . '.jpg', + ); + } + else + $diaspora = ''; + $contact_block = contact_block(); @@ -1124,7 +1133,7 @@ function profile_sidebar($profile, $block = 0, $show_connect = true, $zcard = fa '$editmenu' => profile_edit_menu($profile['uid']) )); - $arr = array('profile' => &$profile, 'entry' => &$o); + $arr = array('profile' => $profile, 'entry' => $o); call_hooks('profile_sidebar', $arr); @@ -1156,7 +1165,6 @@ function advanced_profile(&$a) { } - $tpl = get_markup_template('profile_advanced.tpl'); $profile = array(); @@ -1191,12 +1199,12 @@ function advanced_profile(&$a) { if((substr(App::$profile['dob'],5,2) === '00') || (substr(App::$profile['dob'],8,2) === '00')) $val = substr(App::$profile['dob'],0,4); - + $year_bd_format = t('j F, Y'); $short_bd_format = t('j F'); if(! $val) { - $val = ((intval(App::$profile['dob'])) + $val = ((intval(App::$profile['dob'])) ? day_translate(datetime_convert('UTC','UTC',App::$profile['dob'] . ' 00:00 +00:00',$year_bd_format)) : day_translate(datetime_convert('UTC','UTC','2001-' . substr(App::$profile['dob'],5) . ' 00:00 +00:00',$short_bd_format))); } @@ -1241,7 +1249,7 @@ function advanced_profile(&$a) { if($txt = prepare_text(App::$profile['channels'])) $profile['channels'] = array( t('My other channels:'), $txt); if($txt = prepare_text(App::$profile['music'])) $profile['music'] = array( t('Musical interests:'), $txt); - + if($txt = prepare_text(App::$profile['book'])) $profile['book'] = array( t('Books, literature:'), $txt); if($txt = prepare_text(App::$profile['tv'])) $profile['tv'] = array( t('Television:'), $txt); @@ -1249,7 +1257,7 @@ function advanced_profile(&$a) { if($txt = prepare_text(App::$profile['film'])) $profile['film'] = array( t('Film/dance/culture/entertainment:'), $txt); if($txt = prepare_text(App::$profile['romance'])) $profile['romance'] = array( t('Love/Romance:'), $txt); - + if($txt = prepare_text(App::$profile['employment'])) $profile['employment'] = array( t('Work/employment:'), $txt); if($txt = prepare_text(App::$profile['education'])) $profile['education'] = array( t('School/education:'), $txt ); @@ -1268,7 +1276,7 @@ function advanced_profile(&$a) { $things = get_things(App::$profile['profile_guid'],App::$profile['profile_uid']); -// logger('mod_profile: things: ' . print_r($things,true), LOGGER_DATA); +// logger('mod_profile: things: ' . print_r($things,true), LOGGER_DATA); return replace_macros($tpl, array( '$title' => t('Profile'), @@ -1363,64 +1371,11 @@ function zat_init() { -/** - * @brief Adds a zid parameter to a url. - * - * @param string $s - * The url to accept the zid - * @param boolean $address - * $address to use instead of session environment - * @return string - * - * @hooks 'zid' - * string url - url to accept zid - * string zid - urlencoded zid - * string result - the return string we calculated, change it if you want to return something else - */ -function zid($s,$address = '') { - if (! strlen($s) || strpos($s,'zid=')) - return $s; - - $m = parse_url($s); - $fragment = ((array_key_exists('fragment',$m) && $m['fragment']) ? $m['fragment'] : false); - if($fragment !== false) - $s = str_replace('#' . $fragment,'',$s); - - $has_params = ((strpos($s,'?')) ? true : false); - $num_slashes = substr_count($s, '/'); - if (! $has_params) - $has_params = ((strpos($s, '&')) ? true : false); - - $achar = strpos($s,'?') ? '&' : '?'; - - $mine = get_my_url(); - $myaddr = (($address) ? $address : get_my_address()); - - /** @FIXME checking against our own channel url is no longer reliable. We may have a lot - * of urls attached to out channel. Should probably match against our site, since we - * will not need to remote authenticate on our own site anyway. - */ - - if ($mine && $myaddr && (! link_compare($mine,$s))) - $zurl = $s . (($num_slashes >= 3) ? '' : '/') . $achar . 'zid=' . urlencode($myaddr); - else - $zurl = $s; - - // put fragment at the end - - if($fragment) - $zurl .= '#' . $fragment; - - $arr = array('url' => $s, 'zid' => urlencode($myaddr), 'result' => $zurl); - call_hooks('zid', $arr); - - return $arr['result']; -} // Used from within PCSS themes to set theme parameters. If there's a // puid request variable, that is the "page owner" and normally their theme -// settings take precedence; unless a local user sets the "always_my_theme" -// system pconfig, which means they don't want to see anybody else's theme +// settings take precedence; unless a local user sets the "always_my_theme" +// system pconfig, which means they don't want to see anybody else's theme // settings except their own while on this site. function get_theme_uid() { @@ -1523,25 +1478,18 @@ function remote_online_status($webbie) { } -function get_channel_by_nick($nick) { - $r = q("select * from channel where channel_address = '%s' limit 1", - dbesc($nick) - ); - return(($r) ? $r[0] : false); - -} - /** * @brief * * @return string */ + function identity_selector() { - if (local_channel()) { + if(local_channel()) { $r = q("select channel.*, xchan.* from channel left join xchan on channel.channel_hash = xchan.xchan_hash where channel.channel_account_id = %d and channel_removed = 0 order by channel_name ", intval(get_account_id()) ); - if (count($r) > 1) { + if($r && count($r) > 1) { //$account = App::get_account(); $o = replace_macros(get_markup_template('channel_id_select.tpl'), array( '$channels' => $r, @@ -1612,7 +1560,7 @@ function get_profile_fields_advanced($filter = 0) { * The channel to disable notifications for * @returns int * Current notification flag value. Send this to notifications_on() to restore the channel settings when finished - * with the activity requiring notifications_off(); + * with the activity requiring notifications_off(); */ function notifications_off($channel_id) { $r = q("select channel_notifyflags from channel where channel_id = %d limit 1", @@ -1626,18 +1574,18 @@ function notifications_off($channel_id) { } -function notifications_on($channel_id,$value) { +function notifications_on($channel_id, $value) { $x = q("update channel set channel_notifyflags = %d where channel_id = %d", intval($value), intval($channel_id) ); + return $x; } function get_channel_default_perms($uid) { - $ret = []; $r = q("select abook_xchan from abook where abook_channel = %d and abook_self = 1 limit 1", @@ -1659,7 +1607,6 @@ function get_channel_default_perms($uid) { function profiles_build_sync($channel_id) { - $r = q("select * from profile where uid = %d", intval($channel_id) ); @@ -1706,7 +1653,6 @@ function auto_channel_create($account_id) { $arr['nickname'] = check_webbie(array($arr['nickname'], $arr['nickname'] . mt_rand(1000,9999))); return create_identity($arr); - } function get_cover_photo($channel_id,$format = 'bbcode', $res = PHOTO_RES_COVER_1200) { @@ -1741,18 +1687,24 @@ function get_cover_photo($channel_id,$format = 'bbcode', $res = PHOTO_RES_COVER_ break; } - return $output; - + return $output; } -function get_zcard($channel,$observer_hash = '',$args = array()) { +/** + * @brief + * + * @param array $channel + * @param string $observer_hash + * @param array $args + * @return string + */ +function get_zcard($channel, $observer_hash = '', $args = array()) { logger('get_zcard'); $maxwidth = (($args['width']) ? intval($args['width']) : 0); $maxheight = (($args['height']) ? intval($args['height']) : 0); - if(($maxwidth > 1200) || ($maxwidth < 1)) $maxwidth = 1200; @@ -1760,25 +1712,22 @@ function get_zcard($channel,$observer_hash = '',$args = array()) { $width = 425; $size = 'hz_small'; $cover_size = PHOTO_RES_COVER_425; - $pphoto = array('mimetype' => $channel['xchan_photo_mimetype'], 'width' => 80 , 'height' => 80, 'href' => $channel['xchan_photo_m']); - } - elseif($maxwidth <= 900) { + $pphoto = array('mimetype' => $channel['xchan_photo_mimetype'], 'width' => 80 , 'height' => 80, 'href' => $channel['xchan_photo_m']); + } elseif($maxwidth <= 900) { $width = 900; $size = 'hz_medium'; $cover_size = PHOTO_RES_COVER_850; - $pphoto = array('mimetype' => $channel['xchan_photo_mimetype'], 'width' => 160 , 'height' => 160, 'href' => $channel['xchan_photo_l']); - } - elseif($maxwidth <= 1200) { + $pphoto = array('mimetype' => $channel['xchan_photo_mimetype'], 'width' => 160 , 'height' => 160, 'href' => $channel['xchan_photo_l']); + } elseif($maxwidth <= 1200) { $width = 1200; $size = 'hz_large'; $cover_size = PHOTO_RES_COVER_1200; - $pphoto = array('mimetype' => $channel['xchan_photo_mimetype'], 'width' => 300 , 'height' => 300, 'href' => $channel['xchan_photo_l']); + $pphoto = array('mimetype' => $channel['xchan_photo_mimetype'], 'width' => 300 , 'height' => 300, 'href' => $channel['xchan_photo_l']); } // $scale = (float) $maxwidth / $width; // $translate = intval(($scale / 1.0) * 100); - $channel['channel_addr'] = channel_reddress($channel); $zcard = array('chan' => $channel); @@ -1791,12 +1740,11 @@ function get_zcard($channel,$observer_hash = '',$args = array()) { if($r) { $cover = $r[0]; $cover['href'] = z_root() . '/photo/' . $r[0]['resource_id'] . '-' . $r[0]['imgscale']; - } - else { + } else { $cover = $pphoto; } - - $o .= replace_macros(get_markup_template('zcard.tpl'),array( + + $o .= replace_macros(get_markup_template('zcard.tpl'), array( '$maxwidth' => $maxwidth, '$scale' => $scale, '$translate' => $translate, @@ -1804,21 +1752,19 @@ function get_zcard($channel,$observer_hash = '',$args = array()) { '$cover' => $cover, '$pphoto' => $pphoto, '$zcard' => $zcard - )); - + )); + return $o; - } -function get_zcard_embed($channel,$observer_hash = '',$args = array()) { +function get_zcard_embed($channel, $observer_hash = '', $args = array()) { logger('get_zcard_embed'); $maxwidth = (($args['width']) ? intval($args['width']) : 0); $maxheight = (($args['height']) ? intval($args['height']) : 0); - if(($maxwidth > 1200) || ($maxwidth < 1)) $maxwidth = 1200; @@ -1853,11 +1799,10 @@ function get_zcard_embed($channel,$observer_hash = '',$args = array()) { if($r) { $cover = $r[0]; $cover['href'] = z_root() . '/photo/' . $r[0]['resource_id'] . '-' . $r[0]['imgscale']; - } - else { + } else { $cover = $pphoto; } - + $o .= replace_macros(get_markup_template('zcard_embed.tpl'),array( '$maxwidth' => $maxwidth, '$scale' => $scale, @@ -1866,36 +1811,73 @@ function get_zcard_embed($channel,$observer_hash = '',$args = array()) { '$cover' => $cover, '$pphoto' => $pphoto, '$zcard' => $zcard - )); - + )); + return $o; - } - +/** + * @brief + * + * @param string $nick + * @return mixed + */ function channelx_by_nick($nick) { $r = q("SELECT * FROM channel left join xchan on channel_hash = xchan_hash WHERE channel_address = '%s' and channel_removed = 0 LIMIT 1", dbesc($nick) ); + return(($r) ? $r[0] : false); } +/** + * @brief + * + * @param string $hash + * @return mixed + */ function channelx_by_hash($hash) { - $r = q("SELECT * FROM channel left join xchan on channel_hash = xchan_hash WHERE channel_hash = '%s' and channel_removed = 0 LIMIT 1", + $r = q("SELECT * FROM channel left join xchan on channel_hash = xchan_hash WHERE channel_hash = '%s' and channel_removed = 0 LIMIT 1", dbesc($hash) ); + return(($r) ? $r[0] : false); } +/** + * @brief + * + * @param int $id + * @return mixed + */ function channelx_by_n($id) { - $r = q("SELECT * FROM channel left join xchan on channel_hash = xchan_hash WHERE channel_id = %d and channel_removed = 0 LIMIT 1", + $r = q("SELECT * FROM channel left join xchan on channel_hash = xchan_hash WHERE channel_id = %d and channel_removed = 0 LIMIT 1", dbesc($id) ); + return(($r) ? $r[0] : false); } +/** + * @brief + * + * @param string $channel + * @return string + */ function channel_reddress($channel) { - if(! ($channel && array_key_exists('channel_address',$channel))) + if(! ($channel && array_key_exists('channel_address', $channel))) return ''; + return strtolower($channel['channel_address'] . '@' . App::get_hostname()); +} + + +function channel_manual_conv_update($channel_id) { + + $x = get_pconfig($channel_id, 'system','manual_conversation_update'); + if($x === false) + $x = get_config('system','manual_conversation_update'); + + return intval($x); + } \ No newline at end of file diff --git a/include/config.php b/include/config.php index 8c0469392..0b0e639ab 100644 --- a/include/config.php +++ b/include/config.php @@ -1,5 +1,4 @@ config is used for hub specific configurations. It overrides the * configurations from .htconfig file. The storage is of size TEXT. * - pconfig is used for channel specific configurations and takes a @@ -26,7 +24,7 @@ * - get_config() and set_config() can also be done through the command line tool * @ref util/config.md "util/config" * - get_pconfig() and set_pconfig() can also be done through the command line tool - * @ref util/pconfig.md "util/pconfig" and takes a channel_id as first argument. + * @ref util/pconfig.md "util/pconfig" and takes a channel_id as first argument. * */ @@ -37,8 +35,8 @@ function load_config($family) { Zlib\Config::Load($family); } -function get_config($family, $key) { - return Zlib\Config::Get($family,$key); +function get_config($family, $key, $default = false) { + return Zlib\Config::Get($family,$key,$default); } function set_config($family, $key, $value) { @@ -53,8 +51,8 @@ function load_pconfig($uid) { Zlib\PConfig::Load($uid); } -function get_pconfig($uid, $family, $key, $instore = false) { - return Zlib\PConfig::Get($uid,$family,$key,$instore = false); +function get_pconfig($uid, $family, $key, $default = false) { + return Zlib\PConfig::Get($uid,$family,$key,$default); } function set_pconfig($uid, $family, $key, $value) { @@ -69,8 +67,8 @@ function load_xconfig($xchan) { Zlib\XConfig::Load($xchan); } -function get_xconfig($xchan, $family, $key) { - return Zlib\XConfig::Get($xchan,$family,$key); +function get_xconfig($xchan, $family, $key, $default = false) { + return Zlib\XConfig::Get($xchan,$family,$key, $default); } function set_xconfig($xchan, $family, $key, $value) { @@ -85,8 +83,8 @@ function load_aconfig($account_id) { Zlib\AConfig::Load($account_id); } -function get_aconfig($account_id, $family, $key) { - return Zlib\AConfig::Get($account_id, $family, $key); +function get_aconfig($account_id, $family, $key, $default = false) { + return Zlib\AConfig::Get($account_id, $family, $key, $default); } function set_aconfig($account_id, $family, $key, $value) { @@ -101,8 +99,8 @@ function load_abconfig($chan, $xhash, $family = '') { return Zlib\AbConfig::Load($chan,$xhash,$family); } -function get_abconfig($chan,$xhash,$family,$key) { - return Zlib\AbConfig::Get($chan,$xhash,$family,$key); +function get_abconfig($chan,$xhash,$family,$key, $default = false) { + return Zlib\AbConfig::Get($chan,$xhash,$family,$key, $default); } function set_abconfig($chan,$xhash,$family,$key,$value) { @@ -117,8 +115,8 @@ function load_iconfig(&$item) { Zlib\IConfig::Load($item); } -function get_iconfig(&$item, $family, $key) { - return Zlib\IConfig::Get($item, $family, $key); +function get_iconfig(&$item, $family, $key, $default = false) { + return Zlib\IConfig::Get($item, $family, $key, $default); } function set_iconfig(&$item, $family, $key, $value, $sharing = false) { diff --git a/include/connections.php b/include/connections.php index 017117dda..b08d046b3 100644 --- a/include/connections.php +++ b/include/connections.php @@ -297,16 +297,16 @@ function channel_remove($channel_id, $local = true, $unset_session=false) { } - q("DELETE FROM `groups` WHERE `uid` = %d", intval($channel_id)); - q("DELETE FROM `group_member` WHERE `uid` = %d", intval($channel_id)); - q("DELETE FROM `event` WHERE `uid` = %d", intval($channel_id)); - q("DELETE FROM `item` WHERE `uid` = %d", intval($channel_id)); - q("DELETE FROM `mail` WHERE `channel_id` = %d", intval($channel_id)); - q("DELETE FROM `notify` WHERE `uid` = %d", intval($channel_id)); - q("DELETE FROM `photo` WHERE `uid` = %d", intval($channel_id)); - q("DELETE FROM `attach` WHERE `uid` = %d", intval($channel_id)); - q("DELETE FROM `profile` WHERE `uid` = %d", intval($channel_id)); - q("DELETE FROM `pconfig` WHERE `uid` = %d", intval($channel_id)); + q("DELETE FROM groups WHERE uid = %d", intval($channel_id)); + q("DELETE FROM group_member WHERE uid = %d", intval($channel_id)); + q("DELETE FROM event WHERE uid = %d", intval($channel_id)); + q("DELETE FROM item WHERE uid = %d", intval($channel_id)); + q("DELETE FROM mail WHERE channel_id = %d", intval($channel_id)); + q("DELETE FROM notify WHERE uid = %d", intval($channel_id)); + q("DELETE FROM photo WHERE uid = %d", intval($channel_id)); + q("DELETE FROM attach WHERE uid = %d", intval($channel_id)); + q("DELETE FROM profile WHERE uid = %d", intval($channel_id)); + q("DELETE FROM pconfig WHERE uid = %d", intval($channel_id)); // @FIXME At this stage we need to remove the file resources located under /store/$nickname diff --git a/include/conversation.php b/include/conversation.php index 287dd4983..d367c27a6 100644 --- a/include/conversation.php +++ b/include/conversation.php @@ -146,7 +146,7 @@ function localize_item(&$item){ case ACTIVITY_OBJ_NOTE: default: $post_type = t('status'); - if($obj['mid'] != $obj['parent_mid']) + if($obj['id'] != $obj['parent']) $post_type = t('comment'); break; } @@ -269,8 +269,8 @@ function localize_item(&$item){ // (and update to json storage) if (activity_match($item['verb'],ACTIVITY_TAG)) { - $r = q("SELECT * from `item`,`contact` WHERE - `item`.`contact-id`=`contact`.`id` AND `item`.`mid`='%s';", + $r = q("SELECT * from item,contact WHERE + item.contact-id=contact.id AND item.mid='%s';", dbesc($item['parent_mid'])); if(count($r)==0) return; $obj=$r[0]; @@ -363,7 +363,7 @@ function localize_item(&$item){ if(intval($item['item_obscured']) && strlen($item['body']) && (! strpos($item['body'],'data'))) { - $item['body'] = json_encode(crypto_encapsulate($item['body'],get_config('system','pubkey'))); + $item['body'] = z_obscure($item['body']); } } @@ -405,8 +405,6 @@ function count_descendants($item) { function visible_activity($item) { $hidden_activities = [ ACTIVITY_LIKE, ACTIVITY_DISLIKE, ACTIVITY_AGREE, ACTIVITY_DISAGREE, ACTIVITY_ABSTAIN, ACTIVITY_ATTEND, ACTIVITY_ATTENDNO, ACTIVITY_ATTENDMAYBE ]; - $post_types = [ ACTIVITY_OBJ_NOTE, ACTIVITY_OBJ_COMMENT, basename(ACTIVITY_OBJ_NOTE), basename(ACTIVITY_OBJ_COMMENT)]; - if(intval($item['item_notshown'])) return false; @@ -416,14 +414,32 @@ function visible_activity($item) { } } + if(is_edit_activity($item)) + return false; + + return true; +} + +/** + * @brief Check if a given activity is an edit activity + * + * + * @param array $item + * @return boolean + */ + +function is_edit_activity($item) { + + $post_types = [ ACTIVITY_OBJ_NOTE, ACTIVITY_OBJ_COMMENT, basename(ACTIVITY_OBJ_NOTE), basename(ACTIVITY_OBJ_COMMENT)]; + // In order to share edits with networks which have no concept of editing, we'll create // separate activities to indicate the edit. Our network will not require them, since our // edits are automatically applied and the activity indicated. if(($item['verb'] === ACTIVITY_UPDATE) && (in_array($item['obj_type'],$post_types))) - return false; + return true; - return true; + return false; } /** @@ -457,22 +473,6 @@ function conversation(&$a, $items, $mode, $update, $page_mode = 'traditional', $ if (local_channel()) load_pconfig(local_channel(),''); - $arr_blocked = null; - - if (local_channel()) - $str_blocked = get_pconfig(local_channel(),'system','blocked'); - if (! local_channel() && ($mode == 'network')) { - $sys = get_sys_channel(); - $id = $sys['channel_id']; - $str_blocked = get_pconfig($id,'system','blocked'); - } - - if ($str_blocked) { - $arr_blocked = explode(',',$str_blocked); - for ($x = 0; $x < count($arr_blocked); $x ++) - $arr_blocked[$x] = trim($arr_blocked[$x]); - } - $profile_owner = 0; $page_writeable = false; $live_update_div = ''; @@ -599,17 +599,13 @@ function conversation(&$a, $items, $mode, $update, $page_mode = 'traditional', $ foreach($items as $item) { - if($arr_blocked) { - $blocked = false; - foreach($arr_blocked as $b) { - if(($b) && (($item['author_xchan'] == $b) || ($item['owner_xchan'] == $b))) { - $blocked = true; - break; - } - } - if($blocked) - continue; - } + $x = [ 'mode' => $mode, 'item' => $item ]; + call_hooks('stream_item',$x); + + if($x['item']['blocked']) + continue; + + $item = $x['item']; $threadsid++; @@ -771,28 +767,14 @@ function conversation(&$a, $items, $mode, $update, $page_mode = 'traditional', $ // Check for any blocked authors - if($arr_blocked) { - $blocked = false; - foreach($arr_blocked as $b) { - if(($b) && ($item['author_xchan'] == $b)) { - $blocked = true; - break; - } - } - if($blocked) - continue; - } - // Check all the kids too + $x = [ 'mode' => $mode, 'item' => $item ]; + call_hooks('stream_item',$x); + + if($x['item']['blocked']) + continue; - if($arr_blocked && $item['children']) { - for($d = 0; $d < count($item['children']); $d ++) { - foreach($arr_blocked as $b) { - if(($b) && ($item['children'][$d]['author_xchan'] == $b)) - $item['children'][$d]['author_blocked'] = true; - } - } - } + $item = $x['item']; builtin_activity_puller($item, $conv_responses); @@ -1296,7 +1278,8 @@ function status_editor($a, $x, $popup = false) { '$expiryModalOK' => t('OK'), '$expiryModalCANCEL' => t('Cancel'), '$expanded' => ((x($x, 'expanded')) ? $x['expanded'] : false), - '$bbcode' => ((x($x, 'bbcode')) ? $x['bbcode'] : false) + '$bbcode' => ((x($x, 'bbcode')) ? $x['bbcode'] : false), + '$parent' => ((array_key_exists('parent',$x) && $x['parent']) ? $x['parent'] : 0) )); if ($popup === true) { @@ -1536,7 +1519,11 @@ function network_tabs() { // tabs $tabs = array(); - if(! get_config('system','disable_discover_tab')) { + $d = get_config('system','disable_discover_tab'); + if($d === false) + $d = 1; + + if(! $d) { $tabs[] = array( 'label' => t('Discover'), 'url' => z_root() . '/' . $cmd . '?f=&fh=1' , @@ -1628,7 +1615,6 @@ function profile_tabs($a, $is_owner = false, $nickname = null){ $uid = ((App::$profile['profile_uid']) ? App::$profile['profile_uid'] : local_channel()); $account_id = ((App::$profile['profile_uid']) ? App::$profile['channel_account_id'] : App::$channel['channel_account_id']); - if($uid == local_channel()) { $cal_link = ''; } @@ -1732,7 +1718,7 @@ function profile_tabs($a, $is_owner = false, $nickname = null){ if(feature_enabled($uid,'wiki') && (get_account_techlevel($account_id) > 3)) { $tabs[] = array( - 'label' => t('Wiki'), + 'label' => t('Wikis'), 'url' => z_root() . '/wiki/' . $nickname, 'sel' => ((argv(0) == 'wiki') ? 'active' : ''), 'title' => t('Wiki'), diff --git a/include/crypto.php b/include/crypto.php index bc798d919..f75390985 100644 --- a/include/crypto.php +++ b/include/crypto.php @@ -48,27 +48,122 @@ function pkcs5_unpad($text) function AES256CBC_encrypt($data,$key,$iv) { return openssl_encrypt($data,'aes-256-cbc',str_pad($key,32,"\0"),OPENSSL_RAW_DATA,str_pad($iv,16,"\0")); - } function AES256CBC_decrypt($data,$key,$iv) { return openssl_decrypt($data,'aes-256-cbc',str_pad($key,32,"\0"),OPENSSL_RAW_DATA,str_pad($iv,16,"\0")); +} +function AES128CBC_encrypt($data,$key,$iv) { + $key = substr($key,0,16); + $iv = substr($iv,0,16); + return openssl_encrypt($data,'aes-128-cbc',str_pad($key,16,"\0"),OPENSSL_RAW_DATA,str_pad($iv,16,"\0")); +} + +function AES128CBC_decrypt($data,$key,$iv) { + $key = substr($key,0,16); + $iv = substr($iv,0,16); + return openssl_decrypt($data,'aes-128-cbc',str_pad($key,16,"\0"),OPENSSL_RAW_DATA,str_pad($iv,16,"\0")); +} + +function STD_encrypt($data,$key,$iv) { + $key = substr($key,0,32); + $iv = substr($iv,0,16); + return openssl_encrypt($data,'aes-256-cbc',str_pad($key,32,"\0"),OPENSSL_RAW_DATA,str_pad($iv,16,"\0")); +} + +function STD_decrypt($data,$key,$iv) { + $key = substr($key,0,32); + $iv = substr($iv,0,16); + return openssl_decrypt($data,'aes-256-cbc',str_pad($key,32,"\0"),OPENSSL_RAW_DATA,str_pad($iv,16,"\0")); +} + +function CAST5CBC_encrypt($data,$key,$iv) { + $key = substr($key,0,16); + $iv = substr($iv,0,8); + return openssl_encrypt($data,'cast5-cbc',str_pad($key,16,"\0"),OPENSSL_RAW_DATA,str_pad($iv,8,"\0")); +} + +function CAST5CBC_decrypt($data,$key,$iv) { + $key = substr($key,0,16); + $iv = substr($iv,0,8); + return openssl_decrypt($data,'cast5-cbc',str_pad($key,16,"\0"),OPENSSL_RAW_DATA,str_pad($iv,8,"\0")); } function crypto_encapsulate($data,$pubkey,$alg='aes256cbc') { + $fn = strtoupper($alg) . '_encrypt'; + if($alg === 'aes256cbc') return aes_encapsulate($data,$pubkey); + return other_encapsulate($data,$pubkey,$alg); + +} + +function other_encapsulate($data,$pubkey,$alg) { + if(! $pubkey) + logger('no key. data: ' . $data); + + $fn = strtoupper($alg) . '_encrypt'; + if(function_exists($fn)) { + + // A bit hesitant to use openssl_random_pseudo_bytes() as we know + // it has been historically targeted by US agencies for 'weakening'. + // It is still arguably better than trying to come up with an + // alternative cryptographically secure random generator. + // There is little point in using the optional second arg to flag the + // assurance of security since it is meaningless if the source algorithms + // have been compromised. Also none of this matters if RSA has been + // compromised by state actors and evidence is mounting that this has + // already happened. + + $key = openssl_random_pseudo_bytes(256); + $iv = openssl_random_pseudo_bytes(256); + $result['data'] = base64url_encode($fn($data,$key,$iv),true); + // log the offending call so we can track it down + if(! openssl_public_encrypt($key,$k,$pubkey)) { + $x = debug_backtrace(); + logger('RSA failed. ' . print_r($x[0],true)); + } + + $result['alg'] = $alg; + $result['key'] = base64url_encode($k,true); + openssl_public_encrypt($iv,$i,$pubkey); + $result['iv'] = base64url_encode($i,true); + return $result; + } + else { + $x = [ 'data' => $data, 'pubkey' => $pubkey, 'alg' => $alg, 'result' => $data ]; + call_hooks('other_encapsulate', $x); + return $x['result']; + } +} + +function crypto_methods() { + + if(\Zotlabs\Lib\System::get_server_role() !== 'pro') + return [ 'aes256cbc' ]; + + // 'std' is the new project standard which is aes256cbc but transmits/receives 256-byte key and iv. + // aes256cbc is provided for compatibility with earlier zot implementations which assume 32-byte key and 16-byte iv. + // other_encapsulate() now produces these longer keys/ivs by default so that it is difficult to guess a + // particular implementation or choice of underlying implementations based on the key/iv length. + // The actual methods are responsible for deriving the actual key/iv from the provided parameters; + // possibly by truncation or segmentation - though many other methods could be used. + + $r = [ 'std', 'aes256cbc', 'aes128cbc', 'cast5cbc' ]; + call_hooks('crypto_methods',$r); + return $r; + } function aes_encapsulate($data,$pubkey) { if(! $pubkey) logger('aes_encapsulate: no key. data: ' . $data); - $key = random_string(32,RANDOM_STRING_TEXT); - $iv = random_string(16,RANDOM_STRING_TEXT); + $key = openssl_random_pseudo_bytes(32); + $iv = openssl_random_pseudo_bytes(16); $result['data'] = base64url_encode(AES256CBC_encrypt($data,$key,$iv),true); // log the offending call so we can track it down if(! openssl_public_encrypt($key,$k,$pubkey)) { @@ -89,6 +184,22 @@ function crypto_unencapsulate($data,$prvkey) { if($alg === 'aes256cbc') return aes_unencapsulate($data,$prvkey); + return other_unencapsulate($data,$prvkey,$alg); + +} + +function other_unencapsulate($data,$prvkey,$alg) { + $fn = strtoupper($alg) . '_decrypt'; + if(function_exists($fn)) { + openssl_private_decrypt(base64url_decode($data['key']),$k,$prvkey); + openssl_private_decrypt(base64url_decode($data['iv']),$i,$prvkey); + return $fn(base64url_decode($data['data']),$k,$i); + } + else { + $x = [ 'data' => $data, 'prvkey' => $prvkey, 'alg' => $alg, 'result' => $data ]; + call_hooks('other_unencapsulate',$x); + return $x['result']; + } } diff --git a/include/datetime.php b/include/datetime.php index cd08ab367..85e87848b 100644 --- a/include/datetime.php +++ b/include/datetime.php @@ -92,8 +92,8 @@ function datetime_convert($from = 'UTC', $to = 'UTC', $s = 'now', $fmt = "Y-m-d // Slight hackish adjustment so that 'zero' datetime actually returns what is intended // otherwise we end up with -0001-11-30 ... - // add 32 days so that we at least get year 00, and then hack around the fact that - // months and days always start with 1. + // add 32 days so that we at least get year 00, and then hack around the fact that + // months and days always start with 1. // if(substr($s,0,10) == '0000-00-00') { // $d = new DateTime($s . ' + 32 days', new DateTimeZone('UTC')); @@ -195,7 +195,7 @@ function timesel($format, $h, $m, $id='timepicker') { /** * @brief Returns a datetime selector. * - * @param $format + * @param string $format * format string, e.g. 'ymd' or 'mdy'. Not currently supported * @param $min * unix timestamp of minimum date @@ -203,6 +203,7 @@ function timesel($format, $h, $m, $id='timepicker') { * unix timestap of maximum date * @param $default * unix timestamp of default date + * @param string $label * @param string $id * id and name of datetimepicker (defaults to "datetimepicker") * @param boolean $pickdate @@ -214,8 +215,9 @@ function timesel($format, $h, $m, $id='timepicker') { * @param $maxfrom * set maximum date from picker with id $maxfrom (none by default) * @param boolean $required default false + * @param int $first_day (optional) default 0 * @return string Parsed HTML output. - * + * * @todo Once browser support is better this could probably be replaced with * native HTML5 date picker. */ @@ -239,10 +241,10 @@ function datetimesel($format, $min, $max, $default, $label, $id = 'datetimepicke if(!$picktime) $pickers .= ',timepicker: false, closeOnDateSelect:true'; $extra_js = ''; - if($minfrom != '') + if($minfrom != '') $extra_js .= "\$('#id_$minfrom').data('xdsoft_datetimepicker').setOptions({onChangeDateTime: function (currentDateTime) { \$('#id_$id').data('xdsoft_datetimepicker').setOptions({minDate: currentDateTime})}})"; - if($maxfrom != '') + if($maxfrom != '') $extra_js .= "\$('#id_$maxfrom').data('xdsoft_datetimepicker').setOptions({onChangeDateTime: function (currentDateTime) { \$('#id_$id').data('xdsoft_datetimepicker').setOptions({maxDate: currentDateTime})}})"; $readable_format = $dateformat; @@ -276,7 +278,7 @@ function datetimesel($format, $min, $max, $default, $label, $id = 'datetimepicke */ function relative_date($posted_date, $format = null) { - $localtime = datetime_convert('UTC', date_default_timezone_get(), $posted_date); + $localtime = datetime_convert('UTC', date_default_timezone_get(), $posted_date); $abs = strtotime($localtime); @@ -340,7 +342,7 @@ function plural_dates($k,$n) { return; } } - + @@ -512,7 +514,7 @@ function cal($y = 0, $m = 0, $links = false, $class='') { /** * @brief Return the next birthday, converted from the owner's timezone to UTC. - * + * * This makes it globally portable. * If the provided birthday lacks a month and or day, return an empty string. * A missing year is acceptable. @@ -554,7 +556,7 @@ function update_birthdays() { require_once('include/event.php'); require_once('include/permissions.php'); - $r = q("SELECT * FROM abook left join xchan on abook_xchan = xchan_hash + $r = q("SELECT * FROM abook left join xchan on abook_xchan = xchan_hash WHERE abook_dob > %s + interval %s and abook_dob < %s + interval %s", db_utcnow(), db_quoteinterval('7 day'), db_utcnow(), db_quoteinterval('14 day') @@ -572,7 +574,7 @@ function update_birthdays() { $ev['dtend'] = datetime_convert('UTC', 'UTC', $rr['abook_dob'] . ' + 1 day '); $ev['adjust'] = intval(feature_enabled($rr['abook_channel'],'smart_birthdays')); $ev['summary'] = sprintf( t('%1$s\'s birthday'), $rr['xchan_name']); - $ev['description'] = sprintf( t('Happy Birthday %1$s'), + $ev['description'] = sprintf( t('Happy Birthday %1$s'), '[zrl=' . $rr['xchan_url'] . ']' . $rr['xchan_name'] . '[/zrl]') ; $ev['etype'] = 'birthday'; diff --git a/include/dba/dba_driver.php b/include/dba/dba_driver.php index 852dc16af..81a3bd590 100755 --- a/include/dba/dba_driver.php +++ b/include/dba/dba_driver.php @@ -12,66 +12,78 @@ class DBA { static public $dba = null; static public $dbtype = null; + static public $scheme = 'mysql'; static public $logging = false; + static public $install_script = 'install/schema_mysql.sql'; + static public $null_date = '0001-01-01 00:00:00'; + static public $utc_now = 'UTC_TIMESTAMP()'; + static public $tquot = "`"; + + + /** * @brief Returns the database driver object. * - * If available it will use PHP's mysqli otherwise mysql driver. - * - * @param string $server DB server name + * @param string $server DB server name (or PDO dsn - e.g. mysqli:foobar.com;) * @param string $port DB port * @param string $user DB username * @param string $pass DB password * @param string $db database name * @param string $dbtype 0 for mysql, 1 for postgres * @param bool $install Defaults to false - * @return null|dba_driver A database driver object (dba_mysql|dba_mysqli) or null if no driver found. + * @return null|dba_driver A database driver object (dba_pdo) or null if no driver found. */ - static public function dba_factory($server, $port,$user,$pass,$db,$dbtype,$install = false) { + static public function dba_factory($server,$port,$user,$pass,$db,$dbtype,$install = false) { self::$dba = null; self::$dbtype = intval($dbtype); - $set_port = $port; + if(self::$dbtype == DBTYPE_POSTGRES) { - require_once('include/dba/dba_postgres.php'); - if(is_null($port)) $set_port = 5432; - self::$dba = new dba_postgres($server, $set_port, $user, $pass, $db, $install); + if(!($port)) + $port = 5432; + + self::$install_script = 'install/schema_postgres.sql'; + self::$utc_now = "now() at time zone 'UTC'"; + self::$tquot = '"'; + self::$scheme = 'pgsql'; + } else { -// Highly experimental at the present time. -// require_once('include/dba/dba_pdo.php'); -// self::$dba = new dba_pdo($server, $set_port,$user,$pass,$db,$install); -// } + // attempt to use the pdo driver compiled-in mysqli socket + // if using 'localhost' with no port configured. + // If this is wrong you'll need to set the socket path specifically + // using a server name of 'mysql:unix_socket=/socket/path', setting /socket/path + // as needed for your platform - if(class_exists('mysqli')) { - if (is_null($port)) $set_port = ini_get("mysqli.default_port"); - require_once('include/dba/dba_mysqli.php'); - self::$dba = new dba_mysqli($server, $set_port,$user,$pass,$db,$install); - } + if((!($port)) && ($server !== 'localhost')) + $port = 3306; } - // Until we have a proper PDO driver, store the DB connection parameters for - // plugins/addons which use PDO natively (such as cdav). This is wasteful as - // it opens a separate connection to the DB, but saves a lot of effort re-writing - // third-party interfaces that are working and well tested. - - + require_once('include/dba/dba_pdo.php'); + self::$dba = new dba_pdo($server,self::$scheme,$port,$user,$pass,$db,$install); + if(is_object(self::$dba) && self::$dba->connected) { - if($server === 'localhost') - $port = $set_port; - $dns = ((self::$dbtype == DBTYPE_POSTGRES) ? 'postgres' : 'mysql') - . ':host=' . $server . (is_null($port) ? '' : ';port=' . $port) - . ';dbname=' . $db; - self::$dba->pdo_set(array($dns,$user,$pass)); + + if(strpbrk($server,':;')) { + $dsn = $server; + } + else { + $dsn = self::$scheme . ':host=' . $server . (intval($port) ? '' : ';port=' . $port); + } + $dsn .= ';dbname=' . $db; + + + self::$dba->pdo_set(array($dsn,$user,$pass)); } - define('NULL_DATE', self::$dba->get_null_date()); + define('NULL_DATE', self::$null_date); define('ACTIVE_DBTYPE', self::$dbtype); + define('TQUOT', self::$tquot); return self::$dba; } @@ -85,11 +97,8 @@ class DBA { */ abstract class dba_driver { // legacy behavior - const INSTALL_SCRIPT='install/schema_mysql.sql'; - const NULL_DATE = '0001-01-01 00:00:00'; - const UTC_NOW = 'UTC_TIMESTAMP()'; - protected $db; + public $db; protected $pdo = array(); public $debug = 0; @@ -108,7 +117,7 @@ abstract class dba_driver { * @param string $db database name * @return bool */ - abstract function connect($server, $port, $user, $pass, $db); + abstract function connect($server, $scheme, $port, $user, $pass, $db); /** * @brief Perform a DB query with the SQL statement $sql. @@ -142,34 +151,39 @@ abstract class dba_driver { */ abstract function getdriver(); - function __construct($server, $port, $user,$pass,$db,$install = false) { - if(($install) && (! $this->install($server, $port, $user, $pass, $db))) { + function __construct($server, $scheme, $port, $user,$pass,$db,$install = false) { + if(($install) && (! $this->install($server, $scheme, $port, $user, $pass, $db))) { return; } - $this->connect($server, $port, $user, $pass, $db); + $this->connect($server, $scheme, $port, $user, $pass, $db); } function get_null_date() { - return static::NULL_DATE; + return \DBA::$null_date; } function get_install_script() { - return static::INSTALL_SCRIPT; + return \DBA::$install_script; } + function get_table_quote() { + return \DBA::$tquot; + } + + function utcnow() { - return static::UTC_NOW; + return \DBA::$utc_now; } - function install($server,$user,$pass,$db) { + function install($server,$scheme,$port,$user,$pass,$db) { if (!(strlen($server) && strlen($user))){ $this->connected = false; $this->db = null; return false; } - if(strlen($server) && ($server !== 'localhost') && ($server !== '127.0.0.1')) { - if((! dns_get_record($server, DNS_A + DNS_CNAME + DNS_PTR)) && (! filter_var($server, FILTER_VALIDATE_IP))) { + if(strlen($server) && ($server !== 'localhost') && ($server !== '127.0.0.1') && (! strpbrk($server,':;'))) { + if(! z_dns_check($server)) { $this->error = sprintf( t('Cannot locate DNS info for database server \'%s\''), $server); $this->connected = false; $this->db = null; @@ -313,7 +327,7 @@ function db_concat($fld, $sep) { * queries return true if the command was successful or false if it wasn't. * * Example: - * $r = q("SELECT * FROM `%s` WHERE `uid` = %d", + * $r = q("SELECT * FROM %s WHERE `uid` = %d", * 'user', 1); * * @param string $sql The SQL query to execute @@ -384,9 +398,22 @@ function dbesc_array_cb(&$item, $key) { function dbesc_array(&$arr) { + $bogus_key = false; if(is_array($arr) && count($arr)) { + $matches = false; + foreach($arr as $k => $v) { + if(preg_match('/([^a-zA-Z0-9\-\_\.])/',$k,$matches)) { + logger('bogus key: ' . $k); + $bogus_key = true; + } + } array_walk($arr,'dbesc_array_cb'); + if($bogus_key) { + $arr['BOGUS.KEY'] = 1; + return false; + } } + return true; } function db_getfunc($f) { diff --git a/include/dba/dba_mysql.php b/include/dba/dba_mysql.php index 3cadad6dc..8b51cf578 100755 --- a/include/dba/dba_mysql.php +++ b/include/dba/dba_mysql.php @@ -5,7 +5,7 @@ require_once('include/dba/dba_driver.php'); class dba_mysql extends dba_driver { - function connect($server, $port, $user,$pass,$db) { + function connect($server, $scheme, $port, $user,$pass,$db) { $this->db = mysql_connect($server.":".$port,$user,$pass); if($this->db && mysql_select_db($db,$this->db)) { $this->connected = true; diff --git a/include/dba/dba_mysqli.php b/include/dba/dba_mysqli.php index afd2aa642..165c8e969 100755 --- a/include/dba/dba_mysqli.php +++ b/include/dba/dba_mysqli.php @@ -4,7 +4,7 @@ require_once('include/dba/dba_driver.php'); class dba_mysqli extends dba_driver { - function connect($server,$port,$user,$pass,$db) { + function connect($server,$scheme,$port,$user,$pass,$db) { if($port) $this->db = new mysqli($server,$user,$pass,$db, $port); else diff --git a/include/dba/dba_pdo.php b/include/dba/dba_pdo.php index 7255a2b66..f76e6cdd7 100755 --- a/include/dba/dba_pdo.php +++ b/include/dba/dba_pdo.php @@ -7,16 +7,21 @@ class dba_pdo extends dba_driver { public $driver_dbtype = null; - function connect($server,$port,$user,$pass,$db) { + function connect($server,$scheme,$port,$user,$pass,$db) { - $this->driver_dbtype = 'mysql'; // (($dbtype == DBTYPE_POSTGRES) ? 'postgres' : 'mysql'); - $dns = $this->driver_dbtype - . ':host=' . $server . (is_null($port) ? '' : ';port=' . $port) - . ';dbname=' . $db; + $this->driver_dbtype = $scheme; + if(strpbrk($server,':;')) { + $dsn = $server; + } + else { + $dsn = $this->driver_dbtype . ':host=' . $server . (intval($port) ? '' : ';port=' . $port); + } + + $dsn .= ';dbname=' . $db; try { - $this->db = new PDO($dns,$user,$pass); + $this->db = new PDO($dsn,$user,$pass); $this->db->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION); } catch(PDOException $e) { @@ -27,6 +32,9 @@ class dba_pdo extends dba_driver { return false; } + if($this->driver_dbtype === 'pgsql') + $this->q("SET standard_conforming_strings = 'off'; SET backslash_quote = 'on';"); + $this->connected = true; return true; @@ -36,17 +44,23 @@ class dba_pdo extends dba_driver { if((! $this->db) || (! $this->connected)) return false; + if($this->driver_dbtype === 'pgsql') { + if(substr(rtrim($sql),-1,1) !== ';') { + $sql .= ';'; + } + } + $this->error = ''; $select = ((stripos($sql,'select') === 0) ? true : false); try { - $result = $this->db->query($sql); + $result = $this->db->query($sql, PDO::FETCH_ASSOC); } catch(PDOException $e) { $this->error = $e->getMessage(); if($this->error) { - db_logger('dba_mysqli: ERROR: ' . printable($sql) . "\n" . $this->error, LOGGER_NORMAL, LOG_ERR); + db_logger('dba_pdo: ERROR: ' . printable($sql) . "\n" . $this->error, LOGGER_NORMAL, LOG_ERR); if(file_exists('dbfail.out')) { file_put_contents('dbfail.out', datetime_convert() . "\n" . printable($sql) . "\n" . $this->error . "\n", FILE_APPEND); } @@ -55,13 +69,13 @@ class dba_pdo extends dba_driver { if(!($select)) { if($this->debug) { - db_logger('dba_mysqli: DEBUG: ' . printable($sql) . ' returns ' . (($result) ? 'true' : 'false'), LOGGER_NORMAL,(($result) ? LOG_INFO : LOG_ERR)); + db_logger('dba_pdo: DEBUG: ' . printable($sql) . ' returns ' . (($result) ? 'true' : 'false'), LOGGER_NORMAL,(($result) ? LOG_INFO : LOG_ERR)); } return $result; } if($this->debug) { - db_logger('dba_mysqli: DEBUG: ' . printable($sql) . ' returned ' . count($result) . ' results.', LOGGER_NORMAL, LOG_INFO); + db_logger('dba_pdo: DEBUG: ' . printable($sql) . ' returned ' . count($result) . ' results.', LOGGER_NORMAL, LOG_INFO); } $r = array(); @@ -73,7 +87,7 @@ class dba_pdo extends dba_driver { db_logger('dba_pdo: ' . printable(print_r($r,true)), LOGGER_NORMAL, LOG_INFO); } } - return $r; + return (($this->error) ? false : $r); } function escape($str) { @@ -88,6 +102,54 @@ class dba_pdo extends dba_driver { $this->connected = false; } + function concat($fld,$sep) { + if($this->driver_dbtype === 'pgsql') { + return 'string_agg(' . $fld . ',\'' . $sep . '\')'; + } + else { + return 'GROUP_CONCAT(DISTINCT ' . $fld . ' SEPARATOR \'' . $sep . '\')'; + } + } + + function quote_interval($txt) { + if($this->driver_dbtype === 'pgsql') { + return "'$txt'"; + } + else { + return $txt; + } + } + + // These two functions assume that postgres standard_conforming_strings is set to off; + // which we perform during DB open. + + function escapebin($str) { + if($this->driver_dbtype === 'pgsql') { + return "\\\\x" . bin2hex($str); + } + else { + return $this->escape($str); + } + } + + function unescapebin($str) { + if($this->driver_dbtype === 'pgsql' && (! is_null($str))) { + $x = ''; + while(! feof($str)) { + $x .= fread($str,8192); + } + if(substr($x,0,2) === '\\x') { + $x = hex2bin(substr($x,2)); + } + return $x; + + } + else { + return $str; + } + } + + function getdriver() { return 'pdo'; } diff --git a/include/dba/dba_postgres.php b/include/dba/dba_postgres.php index 03b29d703..560d8da60 100644 --- a/include/dba/dba_postgres.php +++ b/include/dba/dba_postgres.php @@ -7,8 +7,9 @@ class dba_postgres extends dba_driver { const INSTALL_SCRIPT='install/schema_postgres.sql'; const NULL_DATE = '0001-01-01 00:00:00'; const UTC_NOW = "now() at time zone 'UTC'"; + const TQUOT = '"'; - function connect($server,$port,$user,$pass,$db) { + function connect($server,$scheme,$port,$user,$pass,$db) { if(!$port) $port = 5432; $connstr = 'host=' . $server . ' port='.$port . ' user=' . $user . ' password=' . $pass . ' dbname='. $db; $this->db = pg_connect($connstr); diff --git a/include/dir_fns.php b/include/dir_fns.php index 03cc2706a..3922730fc 100644 --- a/include/dir_fns.php +++ b/include/dir_fns.php @@ -192,17 +192,19 @@ function sync_directories($dirmode) { 'site_update' => NULL_DATE, 'site_directory' => DIRECTORY_FALLBACK_MASTER . '/dirsearch', 'site_realm' => DIRECTORY_REALM, - 'site_valid' => 1 + 'site_valid' => 1, + 'site_crypto' => 'aes256cbc' ); - $x = q("insert into site ( site_url, site_flags, site_update, site_directory, site_realm, site_valid ) - values ( '%s', %d, '%s', '%s', '%s', %d ) ", + $x = q("insert into site ( site_url, site_flags, site_update, site_directory, site_realm, site_valid, site_crypto ) + values ( '%s', %d, '%s', '%s', '%s', %d, '%s' ) ", dbesc($r[0]['site_url']), intval($r[0]['site_flags']), dbesc($r[0]['site_update']), dbesc($r[0]['site_directory']), dbesc($r[0]['site_realm']), - intval($r[0]['site_valid']) + intval($r[0]['site_valid']), + dbesc($r[0]['site_crypto']) ); $r = q("select * from site where site_flags in (%d, %d) and site_url != '%s' and site_type = %d ", diff --git a/include/event.php b/include/event.php index 153654120..cbee2b759 100644 --- a/include/event.php +++ b/include/event.php @@ -362,28 +362,28 @@ function event_store_event($arr) { // The event changed. Update it. - $r = q("UPDATE `event` SET - `edited` = '%s', - `dtstart` = '%s', - `dtend` = '%s', - `summary` = '%s', - `description` = '%s', - `location` = '%s', - `etype` = '%s', - `adjust` = %d, - `nofinish` = %d, - `event_status` = '%s', - `event_status_date` = '%s', - `event_percent` = %d, - `event_repeat` = '%s', - `event_sequence` = %d, - `event_priority` = %d, - `event_vdata` = '%s', - `allow_cid` = '%s', - `allow_gid` = '%s', - `deny_cid` = '%s', - `deny_gid` = '%s' - WHERE `id` = %d AND `uid` = %d", + $r = q("UPDATE event SET + edited = '%s', + dtstart = '%s', + dtend = '%s', + summary = '%s', + description = '%s', + location = '%s', + etype = '%s', + adjust = %d, + nofinish = %d, + event_status = '%s', + event_status_date = '%s', + event_percent = %d, + event_repeat = '%s', + event_sequence = %d, + event_priority = %d, + event_vdata = '%s', + allow_cid = '%s', + allow_gid = '%s', + deny_cid = '%s', + deny_gid = '%s' + WHERE id = %d AND uid = %d", dbesc($arr['edited']), dbesc($arr['dtstart']), diff --git a/include/follow.php b/include/follow.php index 5f63687f8..fa198e402 100644 --- a/include/follow.php +++ b/include/follow.php @@ -211,7 +211,7 @@ function new_contact($uid,$url,$channel,$interactive = false, $confirm = false) return $result; } - $r = q("select abook_xchan, abook_instance from abook where abook_xchan = '%s' and abook_channel = %d limit 1", + $r = q("select abook_id, abook_xchan, abook_pending, abook_instance from abook where abook_xchan = '%s' and abook_channel = %d limit 1", dbesc($xchan_hash), intval($uid) ); @@ -237,7 +237,28 @@ function new_contact($uid,$url,$channel,$interactive = false, $confirm = false) $x = q("update abook set abook_instance = '%s' where abook_id = %d", dbesc($abook_instance), intval($r[0]['abook_id']) - ); + ); + + if(intval($r[0]['abook_pending'])) { + + $abook_my_perms = get_channel_default_perms($uid); + $role = get_pconfig($uid,'system','permissions_role'); + if($role) { + $x = \Zotlabs\Access\PermissionRoles::role_perms($role); + if($x['perms_connect']) { + $abook_my_perms = $x['perms_connect']; + } + } + + $filled_perms = \Zotlabs\Access\Permissions::FilledPerms($abook_my_perms); + foreach($filled_perms as $k => $v) { + set_abconfig($uid,$r[0]['abook_xchan'],'my_perms',$k,$v); + } + + $x = q("update abook set abook_pending = 0 where abook_id = %d", + intval($r[0]['abook_id']) + ); + } } else { $closeness = get_pconfig($uid,'system','new_abook_closeness'); diff --git a/include/group.php b/include/group.php index 10853ff6b..38d9d190f 100644 --- a/include/group.php +++ b/include/group.php @@ -14,11 +14,11 @@ function group_add($uid,$name,$public = 0) { // access lists. What we're doing here is reviving the dead group, but old content which // was restricted to this group may now be seen by the new group members. - $z = q("SELECT * FROM `groups` WHERE `id` = %d LIMIT 1", + $z = q("SELECT * FROM groups WHERE id = %d LIMIT 1", intval($r) ); if(($z) && $z[0]['deleted']) { - /*$r = q("UPDATE `groups` SET `deleted` = 0 WHERE `uid` = %d AND `gname` = '%s' LIMIT 1", + /*$r = q("UPDATE groups SET deleted = 0 WHERE uid = %d AND gname = '%s'", intval($uid), dbesc($name) );*/ @@ -32,13 +32,13 @@ function group_add($uid,$name,$public = 0) { $dups = false; $hash = random_string() . $name; - $r = q("SELECT id FROM `groups` WHERE hash = '%s' LIMIT 1", dbesc($hash)); + $r = q("SELECT id FROM groups WHERE hash = '%s' LIMIT 1", dbesc($hash)); if($r) $dups = true; } while($dups == true); - $r = q("INSERT INTO `groups` ( hash, uid, visible, gname ) + $r = q("INSERT INTO groups ( hash, uid, visible, gname ) VALUES( '%s', %d, %d, '%s' ) ", dbesc($hash), intval($uid), @@ -57,7 +57,7 @@ function group_add($uid,$name,$public = 0) { function group_rmv($uid,$name) { $ret = false; if(x($uid) && x($name)) { - $r = q("SELECT id, hash FROM `groups` WHERE `uid` = %d AND `gname` = '%s' LIMIT 1", + $r = q("SELECT id, hash FROM groups WHERE uid = %d AND gname = '%s' LIMIT 1", intval($uid), dbesc($name) ); @@ -102,13 +102,13 @@ function group_rmv($uid,$name) { } // remove all members - $r = q("DELETE FROM `group_member` WHERE `uid` = %d AND `gid` = %d ", + $r = q("DELETE FROM group_member WHERE uid = %d AND gid = %d ", intval($uid), intval($group_id) ); // remove group - $r = q("UPDATE `groups` SET `deleted` = 1 WHERE `uid` = %d AND `gname` = '%s'", + $r = q("UPDATE groups SET deleted = 1 WHERE uid = %d AND gname = '%s'", intval($uid), dbesc($name) ); @@ -125,7 +125,7 @@ function group_rmv($uid,$name) { function group_byname($uid,$name) { if((! $uid) || (! strlen($name))) return false; - $r = q("SELECT * FROM `groups` WHERE `uid` = %d AND `gname` = '%s' LIMIT 1", + $r = q("SELECT * FROM groups WHERE uid = %d AND gname = '%s' LIMIT 1", intval($uid), dbesc($name) ); @@ -138,7 +138,7 @@ function group_byname($uid,$name) { function group_rec_byhash($uid,$hash) { if((! $uid) || (! strlen($hash))) return false; - $r = q("SELECT * FROM `groups` WHERE `uid` = %d AND `hash` = '%s' LIMIT 1", + $r = q("SELECT * FROM groups WHERE uid = %d AND hash = '%s' LIMIT 1", intval($uid), dbesc($hash) ); @@ -153,7 +153,7 @@ function group_rmv_member($uid,$name,$member) { return false; if(! ( $uid && $gid && $member)) return false; - $r = q("DELETE FROM `group_member` WHERE `uid` = %d AND `gid` = %d AND xchan = '%s' ", + $r = q("DELETE FROM group_member WHERE uid = %d AND gid = %d AND xchan = '%s' ", intval($uid), intval($gid), dbesc($member) @@ -173,7 +173,7 @@ function group_add_member($uid,$name,$member,$gid = 0) { if((! $gid) || (! $uid) || (! $member)) return false; - $r = q("SELECT * FROM `group_member` WHERE `uid` = %d AND `gid` = %d AND `xchan` = '%s' LIMIT 1", + $r = q("SELECT * FROM group_member WHERE uid = %d AND gid = %d AND xchan = '%s' LIMIT 1", intval($uid), intval($gid), dbesc($member) @@ -183,7 +183,7 @@ function group_add_member($uid,$name,$member,$gid = 0) { // we indicate success because the group member was in fact created // -- It was just created at another time if(! $r) - $r = q("INSERT INTO `group_member` (`uid`, `gid`, `xchan`) + $r = q("INSERT INTO group_member (uid, gid, xchan) VALUES( %d, %d, '%s' ) ", intval($uid), intval($gid), @@ -198,9 +198,9 @@ function group_add_member($uid,$name,$member,$gid = 0) { function group_get_members($gid) { $ret = array(); if(intval($gid)) { - $r = q("SELECT * FROM `group_member` - LEFT JOIN abook ON abook_xchan = `group_member`.`xchan` left join xchan on xchan_hash = abook_xchan - WHERE `gid` = %d AND abook_channel = %d and `group_member`.`uid` = %d and xchan_deleted = 0 and abook_self = 0 and abook_blocked = 0 and abook_pending = 0 ORDER BY xchan_name ASC ", + $r = q("SELECT * FROM group_member + LEFT JOIN abook ON abook_xchan = group_member.xchan left join xchan on xchan_hash = abook_xchan + WHERE gid = %d AND abook_channel = %d and group_member.uid = %d and xchan_deleted = 0 and abook_self = 0 and abook_blocked = 0 and abook_pending = 0 ORDER BY xchan_name ASC ", intval($gid), intval(local_channel()), intval(local_channel()) @@ -232,7 +232,7 @@ function mini_group_select($uid,$group = '') { $grps = array(); $o = ''; - $r = q("SELECT * FROM `groups` WHERE `deleted` = 0 AND `uid` = %d ORDER BY `gname` ASC", + $r = q("SELECT * FROM groups WHERE deleted = 0 AND uid = %d ORDER BY gname ASC", intval($uid) ); $grps[] = array('name' => '', 'hash' => '0', 'selected' => ''); @@ -271,7 +271,7 @@ function group_side($every="connections",$each="group",$edit = false, $group_id ); - $r = q("SELECT * FROM `groups` WHERE `deleted` = 0 AND `uid` = %d ORDER BY `gname` ASC", + $r = q("SELECT * FROM groups WHERE deleted = 0 AND uid = %d ORDER BY gname ASC", intval($_SESSION['uid']) ); $member_of = array(); @@ -328,7 +328,7 @@ function expand_groups($a) { $groups = implode(',', $x); if($groups) - $r = q("SELECT xchan FROM group_member WHERE gid IN ( select id from `groups` where hash in ( $groups ))"); + $r = q("SELECT xchan FROM group_member WHERE gid IN ( select id from groups where hash in ( $groups ))"); $ret = array(); if($r) @@ -340,7 +340,7 @@ function expand_groups($a) { function member_of($c) { - $r = q("SELECT `groups`.`gname`, `groups`.`id` FROM `groups` LEFT JOIN `group_member` ON `group_member`.`gid` = `groups`.`id` WHERE `group_member`.`xchan` = '%s' AND `groups`.`deleted` = 0 ORDER BY `groups`.`gname` ASC ", + $r = q("SELECT groups.gname, groups.id FROM groups LEFT JOIN group_member ON group_member.gid = groups.id WHERE group_member.xchan = '%s' AND groups.deleted = 0 ORDER BY groups.gname ASC ", dbesc($c) ); @@ -350,7 +350,7 @@ function member_of($c) { function groups_containing($uid,$c) { - $r = q("SELECT `gid` FROM `group_member` WHERE `uid` = %d AND `group_member`.`xchan` = '%s' ", + $r = q("SELECT gid FROM group_member WHERE uid = %d AND group_member.xchan = '%s' ", intval($uid), dbesc($c) ); diff --git a/include/help.php b/include/help.php index 3081ae41f..03d01d1a1 100644 --- a/include/help.php +++ b/include/help.php @@ -1,15 +1,21 @@ 1) { $path = ''; for($x = 1; $x < argc(); $x ++) { @@ -25,7 +31,7 @@ function get_help_content($tocpath = false) { \App::$page['title'] = t('Help:') . ' ' . ucwords(str_replace('-',' ',notags($title))); $text = load_doc_file('doc/' . $path . '.md'); - + if(! $text) { $text = load_doc_file('doc/' . $path . '.bb'); if($text) @@ -49,20 +55,21 @@ function get_help_content($tocpath = false) { if(! $text) { $doctype = 'bbcode'; $text = load_doc_file('doc/main.bb'); + goaway('/help/about/about_hubzilla'); \App::$page['title'] = t('Help'); } - + if(! $text) { header($_SERVER["SERVER_PROTOCOL"] . ' 404 ' . t('Not Found')); $tpl = get_markup_template("404.tpl"); return replace_macros($tpl, array( - '$message' => t('Page not found.' ) + '$message' => t('Page not found.') )); } } - + if($doctype === 'html') - $content = $text; + $content = parseIdentityAwareHTML($text); if($doctype === 'markdown') { require_once('library/markdown.php'); # escape #include tags @@ -74,30 +81,30 @@ function get_help_content($tocpath = false) { require_once('include/bbcode.php'); $content = bbcode($text); // bbcode retargets external content to new windows. This content is internal. - $content = str_replace(' target="_blank"','',$content); - } - + $content = str_replace(' target="_blank"', '', $content); + } + $content = preg_replace_callback("/#include (.*?)\;/ism", 'preg_callback_help_include', $content); + return translate_projectname($content); - } function preg_callback_help_include($matches) { - + if($matches[1]) { $include = str_replace($matches[0],load_doc_file($matches[1]),$matches[0]); if(preg_match('/\.bb$/', $matches[1]) || preg_match('/\.txt$/', $matches[1])) { require_once('include/bbcode.php'); $include = bbcode($include); - $include = str_replace(' target="_blank"','',$include); - } + $include = str_replace(' target="_blank"','',$include); + } elseif(preg_match('/\.md$/', $matches[1])) { require_once('library/markdown.php'); $include = Markdown($include); } return $include; } - + } @@ -110,10 +117,10 @@ function load_doc_file($s) { $d = dirname($s); $c = find_doc_file("$d/$lang/$b"); - if($c) + if($c) return $c; $c = find_doc_file($s); - if($c) + if($c) return $c; return ''; } @@ -125,6 +132,12 @@ function find_doc_file($s) { return ''; } +/** + * @brief + * + * @param string $s + * @return number|mixed|unknown|boolean + */ function search_doc_files($s) { $itemspage = get_pconfig(local_channel(),'system','itemspage'); @@ -133,21 +146,21 @@ function search_doc_files($s) { $regexop = db_getfunc('REGEXP'); - $r = q("select iconfig.v, item.* from item left join iconfig on item.id = iconfig.iid + $r = q("select iconfig.v, item.* from item left join iconfig on item.id = iconfig.iid where iconfig.cat = 'system' and iconfig.k = 'docfile' and body $regexop '%s' and item_type = %d $pager_sql", dbesc($s), intval(ITEM_TYPE_DOC) ); - - $r = fetch_post_tags($r,true); + + $r = fetch_post_tags($r, true); for($x = 0; $x < count($r); $x ++) { $position = stripos($r[$x]['body'], $s); $dislen = 300; $start = $position-floor($dislen/2); if ( $start < 0) { - $start = 0; + $start = 0; } $r[$x]['text'] = substr($r[$x]['body'], $start, $dislen); @@ -159,43 +172,50 @@ function search_doc_files($s) { } } } - if(stristr($r[$x]['v'],$s)) + if(stristr($r[$x]['v'], $s)) $r[$x]['rank'] ++; - $r[$x]['rank'] += substr_count(strtolower($r[$x]['text']),strtolower($s)); + $r[$x]['rank'] += substr_count(strtolower($r[$x]['text']), strtolower($s)); // bias the results to the observer's native language if($r[$x]['lang'] === \App::$language) $r[$x]['rank'] = $r[$x]['rank'] + 10; } usort($r,'doc_rank_sort'); + return $r; } -function doc_rank_sort($s1,$s2) { +function doc_rank_sort($s1, $s2) { if($s1['rank'] == $s2['rank']) return 0; + return (($s1['rank'] < $s2['rank']) ? 1 : (-1)); } - +/** + * @brief + * + * @return string + */ function load_context_help() { - + $path = App::$cmd; $args = App::$argv; $lang = App::$language; - + if(! isset($lang) || !is_dir('doc/context/' . $lang . '/')) { - $lang = 'en'; - } + $lang = 'en'; + } while($path) { $context_help = load_doc_file('doc/context/' . $lang . '/' . $path . '/help.html'); - if(!$context_help) { - // Fallback to English if the translation is absent - $context_help = load_doc_file('doc/context/en/' . $path . '/help.html'); - } + if(!$context_help) { + // Fallback to English if the translation is absent + $context_help = load_doc_file('doc/context/en/' . $path . '/help.html'); + } if($context_help) break; + array_pop($args); $path = implode($args,'/'); } @@ -203,7 +223,12 @@ function load_context_help() { return $context_help; } - +/** + * @brief + * + * @param string $s + * @return void|boolean[]|number[]|string[]|unknown[] + */ function store_doc_file($s) { if(is_dir($s)) @@ -215,10 +240,9 @@ function store_doc_file($s) { $item['aid'] = 0; $item['uid'] = $sys['channel_id']; - - if(strpos($s,'.md')) + if(strpos($s, '.md')) $mimetype = 'text/markdown'; - elseif(strpos($s,'.html')) + elseif(strpos($s, '.html')) $mimetype = 'text/html'; else $mimetype = 'text/bbcode'; @@ -227,12 +251,12 @@ function store_doc_file($s) { $item['body'] = html2plain(prepare_text(file_get_contents($s),$mimetype, true)); $item['mimetype'] = 'text/plain'; - + $item['plink'] = z_root() . '/' . str_replace('doc','help',$s); $item['owner_xchan'] = $item['author_xchan'] = $sys['channel_hash']; $item['item_type'] = ITEM_TYPE_DOC; - $r = q("select item.* from item left join iconfig on item.id = iconfig.iid + $r = q("select item.* from item left join iconfig on item.id = iconfig.iid where iconfig.cat = 'system' and iconfig.k = 'docfile' and iconfig.v = '%s' and item_type = %d limit 1", dbesc($s), @@ -252,6 +276,4 @@ function store_doc_file($s) { } return $x; - } - diff --git a/include/hubloc.php b/include/hubloc.php index 397646449..17f921f67 100644 --- a/include/hubloc.php +++ b/include/hubloc.php @@ -1,19 +1,5 @@ $v) { - $r = q("UPDATE obj SET `%s` = '%s' WHERE obj_obj = '%s' AND obj_channel = %d", + $r = q("UPDATE obj SET " . TQUOT . "%s" . TQUOT . " = '%s' WHERE obj_obj = '%s' AND obj_channel = %d", dbesc($k), dbesc($v), dbesc($hash), @@ -313,15 +280,7 @@ function sync_objs($channel,$objs) { } } else { - - dbesc_array($obj); - - $r = dbq("INSERT INTO obj (`" - . implode("`, `", array_keys($obj)) - . "`) VALUES ('" - . implode("', '", array_values($obj)) - . "')" - ); + create_table_from_array('obj',$obj); } } } @@ -351,13 +310,7 @@ function import_apps($channel,$apps) { $hash = $app['app_id']; - dbesc_array($app); - $r = dbq("INSERT INTO app (`" - . implode("`, `", array_keys($app)) - . "`) VALUES ('" - . implode("', '", array_values($app)) - . "')" - ); + create_table_from_array('app',$app); if($term) { $x = q("select * from app where app_id = '%s' and app_channel = %d limit 1", @@ -398,7 +351,7 @@ function sync_apps($channel,$apps) { } if(array_key_exists('app_deleted',$app) && $app['app_deleted'] && $app['app_id']) { - q("delete from app where app_id = '%s' and app_channel = %d limit 1", + q("delete from app where app_id = '%s' and app_channel = %d", dbesc($app['app_id']), intval($channel['channel_id']) ); @@ -451,7 +404,7 @@ function sync_apps($channel,$apps) { if($exists) { unset($app['app_id']); foreach($app as $k => $v) { - $r = q("UPDATE app SET `%s` = '%s' WHERE app_id = '%s' AND app_channel = %d", + $r = q("UPDATE app SET " . TQUOT . "%s" . TQUOT . " = '%s' WHERE app_id = '%s' AND app_channel = %d", dbesc($k), dbesc($v), dbesc($hash), @@ -460,15 +413,10 @@ function sync_apps($channel,$apps) { } } else { - dbesc_array($app); - $r = dbq("INSERT INTO app (`" - . implode("`, `", array_keys($app)) - . "`) VALUES ('" - . implode("', '", array_values($app)) - . "')" - ); + create_table_from_array('app',$app); + if($term) { - $x = q("select * from app where app_id = '%s' and app_channel = %d limit 1", + $x = q("select * from app where app_id = '%s' and app_channel = %d", dbesc($hash), intval($channel['channel_id']) ); @@ -502,13 +450,7 @@ function import_chatrooms($channel,$chatrooms) { $chatroom['cr_aid'] = $channel['channel_account_id']; $chatroom['cr_uid'] = $channel['channel_id']; - dbesc_array($chatroom); - $r = dbq("INSERT INTO chatroom (`" - . implode("`, `", array_keys($chatroom)) - . "`) VALUES ('" - . implode("', '", array_values($chatroom)) - . "')" - ); + create_table_from_array('chatroom',$chatroom); } } } @@ -524,7 +466,7 @@ function sync_chatrooms($channel,$chatrooms) { continue; if(array_key_exists('cr_deleted',$chatroom) && $chatroom['cr_deleted']) { - q("delete from chatroom where cr_name = '%s' and cr_uid = %d limit 1", + q("delete from chatroom where cr_name = '%s' and cr_uid = %d", dbesc($chatroom['cr_name']), intval($channel['channel_id']) ); @@ -559,7 +501,7 @@ function sync_chatrooms($channel,$chatrooms) { if($exists) { foreach($chatroom as $k => $v) { - $r = q("UPDATE chatroom SET `%s` = '%s' WHERE cr_name = '%s' AND cr_uid = %d", + $r = q("UPDATE chatroom SET " . TQUOT . "%s" . TQUOT . " = '%s' WHERE cr_name = '%s' AND cr_uid = %d", dbesc($k), dbesc($v), dbesc($name), @@ -568,13 +510,7 @@ function sync_chatrooms($channel,$chatrooms) { } } else { - dbesc_array($chatroom); - $r = dbq("INSERT INTO chatroom (`" - . implode("`, `", array_keys($chatroom)) - . "`) VALUES ('" - . implode("', '", array_values($chatroom)) - . "')" - ); + create_table_from_array('chatroom',$chatroom); } } } @@ -684,13 +620,7 @@ function import_events($channel,$events) { convert_oldfields($event,'type','etype'); convert_oldfields($event,'ignore','dismissed'); - dbesc_array($event); - $r = dbq("INSERT INTO event (`" - . implode("`, `", array_keys($event)) - . "`) VALUES ('" - . implode("', '", array_values($event)) - . "')" - ); + create_table_from_array('event',$event); } } } @@ -705,7 +635,7 @@ function sync_events($channel,$events) { continue; if($event['event_deleted']) { - $r = q("delete from event where event_hash = '%s' and uid = %d limit 1", + $r = q("delete from event where event_hash = '%s' and uid = %d", dbesc($event['event_hash']), intval($channel['channel_id']) ); @@ -736,7 +666,7 @@ function sync_events($channel,$events) { if($exists) { foreach($event as $k => $v) { - $r = q("UPDATE event SET `%s` = '%s' WHERE event_hash = '%s' AND uid = %d", + $r = q("UPDATE event SET " . TQUOT . "%s" . TQUOT . " = '%s' WHERE event_hash = '%s' AND uid = %d", dbesc($k), dbesc($v), dbesc($event['event_hash']), @@ -745,13 +675,7 @@ function sync_events($channel,$events) { } } else { - dbesc_array($event); - $r = dbq("INSERT INTO event (`" - . implode("`, `", array_keys($event)) - . "`) VALUES ('" - . implode("', '", array_values($event)) - . "')" - ); + create_table_from_array('event',$event); } } } @@ -927,12 +851,7 @@ function import_likes($channel,$likes) { if($r) continue; - dbesc_array($like); - $r = dbq("INSERT INTO likes (`" - . implode("`, `", array_keys($like)) - . "`) VALUES ('" - . implode("', '", array_values($like)) - . "')" ); + create_table_from_array('likes',$like); } } } @@ -941,7 +860,7 @@ function import_conv($channel,$convs) { if($channel && $convs) { foreach($convs as $conv) { if($conv['deleted']) { - q("delete from conv where guid = '%s' and uid = %d limit 1", + q("delete from conv where guid = '%s' and uid = %d", dbesc($conv['guid']), intval($channel['channel_id']) ); @@ -959,13 +878,7 @@ function import_conv($channel,$convs) { ); if($r) continue; - - dbesc_array($conv); - $r = dbq("INSERT INTO conv (`" - . implode("`, `", array_keys($conv)) - . "`) VALUES ('" - . implode("', '", array_values($conv)) - . "')" ); + create_table_from_array('conv',$conv); } } } @@ -976,14 +889,14 @@ function import_mail($channel,$mails,$sync = false) { if($channel && $mails) { foreach($mails as $mail) { if(array_key_exists('flags',$mail) && in_array('deleted',$mail['flags'])) { - q("delete from mail where mid = '%s' and uid = %d limit 1", + q("delete from mail where mid = '%s' and uid = %d", dbesc($mail['message_id']), intval($channel['channel_id']) ); continue; } if(array_key_exists('flags',$mail) && in_array('recalled',$mail['flags'])) { - q("update mail set mail_recalled = 1 where mid = '%s' and uid = %d limit 1", + q("update mail set mail_recalled = 1 where mid = '%s' and uid = %d", dbesc($mail['message_id']), intval($channel['channel_id']) ); @@ -1110,25 +1023,22 @@ function sync_files($channel,$files) { if(!isset($att['os_path'])) $att['os_path'] = ''; - dbesc_array($att); if($attach_exists) { logger('sync_files attach exists: ' . print_r($att,true), LOGGER_DEBUG); + if(! dbesc_array($att)) + continue; $str = ''; - foreach($att as $k => $v) { - if($str) - $str .= ","; - $str .= " `" . $k . "` = '" . $v . "' "; - } - $r = dbq("update `attach` set " . $str . " where id = " . intval($attach_id) ); + foreach($att as $k => $v) { + if($str) + $str .= ","; + $str .= " " . TQUOT . $k . TQUOT . " = '" . $v . "' "; + } + $r = dbq("update attach set " . $str . " where id = " . intval($attach_id) ); } else { logger('sync_files attach does not exists: ' . print_r($att,true), LOGGER_DEBUG); - $r = dbq("INSERT INTO attach (`" - . implode("`, `", array_keys($att)) - . "`) VALUES ('" - . implode("', '", array_values($att)) - . "')" ); + create_table_from_array('attach',$att); } @@ -1229,23 +1139,20 @@ function sync_files($channel,$files) { intval($channel['channel_id']) ); - dbesc_array($p); if($exists) { + if(! dbesc_array($p)) + continue; $str = ''; foreach($p as $k => $v) { if($str) $str .= ","; - $str .= " `" . $k . "` = '" . $v . "' "; + $str .= " " . TQUOT . $k . TQUOT . " = '" . $v . "' "; } - $r = dbq("update `photo` set " . $str . " where id = " . intval($exists[0]['id']) ); + $r = dbq("update photo set " . $str . " where id = " . intval($exists[0]['id']) ); } else { - $r = dbq("INSERT INTO photo (`" - . implode("`, `", array_keys($p)) - . "`) VALUES ('" - . implode("', '", array_values($p)) - . "')" ); + create_attach_from_array('photo',$p); } } } diff --git a/include/items.php b/include/items.php index c62d53c3e..9bd256d58 100755 --- a/include/items.php +++ b/include/items.php @@ -3,9 +3,6 @@ * @file include/items.php */ -// uncertain if this line is needed and why -use Sabre\HTTP\URLUtil; - use Zotlabs\Lib as Zlib; require_once('include/bbcode.php'); @@ -66,6 +63,7 @@ function collect_recipients($item, &$private_envelope) { if($recipients && $deny) $recipients = array_diff($recipients,$deny); + $private_envelope = true; } else { @@ -116,7 +114,7 @@ function collect_recipients($item, &$private_envelope) { // Add the authors of any posts in this thread, if they are known to us. // This is specifically designed to forward wall-to-wall posts to the original author, - // in case they aren't a connection but have permission to write on our wall. + // in case they aren't a connection but have permission to write on our wall. // This is important for issue tracker channels. It should be a no-op for most channels. // Whether or not they will accept the delivery is not determined here, but should // be taken into account by zot:process_delivery() @@ -131,7 +129,6 @@ function collect_recipients($item, &$private_envelope) { } } } - } @@ -173,19 +170,19 @@ function comments_are_now_closed($item) { } function item_normal() { - return " and item.item_hidden = 0 and item.item_type = 0 and item.item_deleted = 0 - and item.item_unpublished = 0 and item.item_delayed = 0 and item.item_pending_remove = 0 + return " and item.item_hidden = 0 and item.item_type = 0 and item.item_deleted = 0 + and item.item_unpublished = 0 and item.item_delayed = 0 and item.item_pending_remove = 0 and item.item_blocked = 0 "; } /** * @brief - * - * This is a compatibility function primarily for plugins, because + * + * This is a compatibility function primarily for plugins, because * in earlier DB schemas this was a much simpler single integer compare * + * @param array $item */ - function is_item_normal($item) { if(intval($item['item_hidden']) || intval($item['item_type']) || intval($item['item_deleted']) @@ -193,8 +190,7 @@ function is_item_normal($item) { || intval($item['item_blocked'])) return false; - return true; - + return true; } /** @@ -236,7 +232,7 @@ function can_comment_on_post($observer_xchan, $item) { case 'public': // We don't really allow or support public comments yet, but anonymous // folks won't ever reach this point (as $observer_xchan will be empty). - // This means the viewer has an xchan and we can identify them. + // This means the viewer has an xchan and we can identify them. return true; break; case 'any connections': @@ -294,78 +290,6 @@ function add_source_route($iid, $hash) { } -/** - * @brief preg_match function when fixing 'naked' links in mod item.php. - * - * Check if we've got a hubloc for the site and use a zrl if we do, a url if we don't. - * Remove any existing zid= param which may have been pasted by mistake - and will have - * the author's credentials. zid's are dynamic and can't really be passed around like - * that. - * - * @param array $matches - * @return string - */ -function red_zrl_callback($matches) { - require_once('include/hubloc.php'); - $zrl = is_matrix_url($matches[2]); - - $t = strip_zids($matches[2]); - if($t !== $matches[2]) { - $zrl = true; - $matches[2] = $t; - } - - if($matches[1] === '#^') - $matches[1] = ''; - if($zrl) - return $matches[1] . '#^[zrl=' . $matches[2] . ']' . $matches[2] . '[/zrl]'; - - return $matches[1] . '#^[url=' . $matches[2] . ']' . $matches[2] . '[/url]'; -} - -/** - * If we've got a url or zrl tag with a naked url somewhere in the link text, - * escape it with quotes unless the naked url is a linked photo. - * - * @param array $matches - * @return string - */ -function red_escape_zrl_callback($matches) { - - // Uncertain why the url/zrl forms weren't picked up by the non-greedy regex. - - if((strpos($matches[3], 'zmg') !== false) || (strpos($matches[3], 'img') !== false) || (strpos($matches[3],'zrl') !== false) || (strpos($matches[3],'url') !== false)) - return $matches[0]; - - return '[' . $matches[1] . 'rl' . $matches[2] . ']' . $matches[3] . '"' . $matches[4] . '"' . $matches[5] . '[/' . $matches[6] . 'rl]'; -} - -function red_escape_codeblock($m) { - return '[$b64' . $m[2] . base64_encode($m[1]) . '[/' . $m[2] . ']'; -} - -function red_unescape_codeblock($m) { - return '[' . $m[2] . base64_decode($m[1]) . '[/' . $m[2] . ']'; -} - - -function red_zrlify_img_callback($matches) { - require_once('include/hubloc.php'); - $zrl = is_matrix_url($matches[2]); - - $t = strip_zids($matches[2]); - if($t !== $matches[2]) { - $zrl = true; - $matches[2] = $t; - } - - if($zrl) - return '[zmg' . $matches[1] . ']' . $matches[2] . '[/zmg]'; - - return $matches[0]; -} - - /** * @brief Post an activity. * @@ -481,7 +405,7 @@ function validate_item_elements($message,$arr) { if(! array_key_exists('created',$arr)) $result['message'] = 'missing created, possible author/owner lookup failure'; - if((! $arr['mid']) || (! $arr['parent_mid'])) + if((! $arr['mid']) || (! $arr['parent_mid'])) $result['message'] = 'missing message-id or parent message-id'; if(array_key_exists('flags',$message) && in_array('relay',$message['flags']) && $arr['mid'] === $arr['parent_mid']) @@ -495,10 +419,6 @@ function validate_item_elements($message,$arr) { } - - - - /** * @brief Limit lenght on imported system messages. * @@ -652,7 +572,6 @@ function get_item_elements($x,$allow_code = false) { if(mb_strlen($arr['title']) > 255) $arr['title'] = mb_substr($arr['title'],0,255); - $arr['app'] = (($x['app']) ? htmlspecialchars($x['app'], ENT_COMPAT,'UTF-8',false) : ''); $arr['route'] = (($x['route']) ? htmlspecialchars($x['route'], ENT_COMPAT,'UTF-8',false) : ''); $arr['mid'] = (($x['message_id']) ? htmlspecialchars($x['message_id'], ENT_COMPAT,'UTF-8',false) : ''); @@ -714,7 +633,7 @@ function get_item_elements($x,$allow_code = false) { // hub and verify that they are legit - or else we're going to toss the post. We only need to do this // once, and after that your hub knows them. Sure some info is in the post, but it's only a transit identifier // and not enough info to be able to look you up from your hash - which is the only thing stored with the post. - + $xchan_hash = import_author_xchan($x['author']); if($xchan_hash) $arr['author_xchan'] = $xchan_hash; @@ -1057,7 +976,6 @@ function encode_item($item,$mirror = false) { $x['item_blocked'] = $item['item_blocked']; } - $x['message_id'] = $item['mid']; $x['message_top'] = $item['parent_mid']; $x['message_parent'] = $item['thr_parent']; @@ -1078,9 +996,9 @@ function encode_item($item,$mirror = false) { $x['longlat'] = $item['coord']; $x['signature'] = $item['sig']; $x['route'] = $item['route']; - $x['owner'] = encode_item_xchan($item['owner']); $x['author'] = encode_item_xchan($item['author']); + if($item['obj']) $x['object'] = json_decode($item['obj'],true); if($item['target']) @@ -1237,7 +1155,7 @@ function decode_item_meta($meta) { $ret[] = array('cat' => escape_tags($m['family']),'k' => escape_tags($m['key']),'v' => $m['value'],'sharing' => $m['sharing']); } } - return $ret; + return $ret; } /** @@ -1530,6 +1448,8 @@ function get_profile_elements($x) { * * @param array $arr * @param boolean $allow_exec (optional) default false + * @param boolean $deliver (optional) default true + * * @return array * * \e boolean \b success * * \e int \b item_id @@ -1543,6 +1463,11 @@ function item_store($arr, $allow_exec = false, $deliver = true) { $ret = array('success' => false, 'item_id' => 0); + if(array_key_exists('cancel',$arr) && $arr['cancel']) { + logger('cancelled by plugin'); + return $ret; + } + if(! $arr['uid']) { logger('item_store: no uid'); $ret['message'] = 'No uid.'; @@ -1662,7 +1587,7 @@ function item_store($arr, $allow_exec = false, $deliver = true) { // otherwise, just preserve the original timestamp. $arr['received'] = ((x($arr,'received') !== false) ? datetime_convert('UTC','UTC',$arr['received']) : datetime_convert()); - $arr['changed'] = ((x($arr,'changed') !== false) ? datetime_convert('UTC','UTC',$arr['changed']) : datetime_convert()); + $arr['changed'] = ((x($arr,'changed') !== false) ? datetime_convert('UTC','UTC',$arr['changed']) : datetime_convert()); } $arr['location'] = ((x($arr,'location')) ? notags(trim($arr['location'])) : ''); @@ -1681,7 +1606,7 @@ function item_store($arr, $allow_exec = false, $deliver = true) { $arr['public_policy'] = ((x($arr,'public_policy')) ? notags(trim($arr['public_policy'])) : '' ); $arr['comment_policy'] = ((x($arr,'comment_policy')) ? notags(trim($arr['comment_policy'])) : 'contacts' ); - + if(! array_key_exists('item_unseen',$arr)) $arr['item_unseen'] = 1; @@ -1717,7 +1642,7 @@ function item_store($arr, $allow_exec = false, $deliver = true) { // find the parent and snarf the item id and ACL's // and anything else we need to inherit - $r = q("SELECT * FROM `item` WHERE `mid` = '%s' AND `uid` = %d ORDER BY `id` ASC LIMIT 1", + $r = q("SELECT * FROM item WHERE mid = '%s' AND uid = %d ORDER BY id ASC LIMIT 1", dbesc($arr['parent_mid']), intval($arr['uid']) ); @@ -1749,8 +1674,8 @@ function item_store($arr, $allow_exec = false, $deliver = true) { if($r[0]['mid'] != $r[0]['parent_mid']) { $arr['parent_mid'] = $r[0]['parent_mid']; - $z = q("SELECT * FROM `item` WHERE `mid` = '%s' AND `parent_mid` = '%s' AND `uid` = %d - ORDER BY `id` ASC LIMIT 1", + $z = q("SELECT * FROM item WHERE mid = '%s' AND parent_mid = '%s' AND uid = %d + ORDER BY id ASC LIMIT 1", dbesc($r[0]['parent_mid']), dbesc($r[0]['parent_mid']), intval($arr['uid']) @@ -1801,7 +1726,7 @@ function item_store($arr, $allow_exec = false, $deliver = true) { if($parent_deleted) $arr['item_deleted'] = 1; - $r = q("SELECT `id` FROM `item` WHERE `mid` = '%s' AND `uid` = %d LIMIT 1", + $r = q("SELECT id FROM item WHERE mid = '%s' AND uid = %d LIMIT 1", dbesc($arr['mid']), intval($arr['uid']) ); @@ -1853,17 +1778,12 @@ function item_store($arr, $allow_exec = false, $deliver = true) { logger('item_store: ' . print_r($arr,true), LOGGER_DATA); - dbesc_array($arr); - $r = dbq("INSERT INTO `item` (`" - . implode("`, `", array_keys($arr)) - . "`) VALUES ('" - . implode("', '", array_values($arr)) - . "')" ); + create_table_from_array('item',$arr); // find the item we just created - $r = q("SELECT * FROM `item` WHERE `mid` = '%s' AND `uid` = %d ORDER BY `id` ASC ", + $r = q("SELECT * FROM item WHERE mid = '%s' AND uid = %d ORDER BY id ASC ", $arr['mid'], // already dbesc'd intval($arr['uid']) ); @@ -1880,7 +1800,7 @@ function item_store($arr, $allow_exec = false, $deliver = true) { } if(count($r) > 1) { logger('item_store: duplicated post occurred. Removing duplicates.'); - q("DELETE FROM `item` WHERE `mid` = '%s' AND `uid` = %d AND `id` != %d ", + q("DELETE FROM item WHERE mid = '%s' AND uid = %d AND id != %d ", $arr['mid'], intval($arr['uid']), intval($current_post) @@ -1893,6 +1813,7 @@ function item_store($arr, $allow_exec = false, $deliver = true) { $x = q("update item set parent = id where id = %d", intval($r[0]['id']) ); + $arr['parent'] = $r[0]['id']; } @@ -1926,18 +1847,22 @@ function item_store($arr, $allow_exec = false, $deliver = true) { call_hooks('post_remote_end',$arr); - // update the commented timestamp on the parent + // update the commented timestamp on the parent - unless this is potentially a clone of an older item + // which we don't wish to bring to the surface. As the queue only holds deliveries for 3 days, it's + // suspected of being an older cloned item if the creation time is older than that. - $z = q("select max(created) as commented from item where parent_mid = '%s' and uid = %d and item_delayed = 0 ", - dbesc($arr['parent_mid']), - intval($arr['uid']) - ); + if($arr['created'] > datetime_convert('','','now - 4 days')) { + $z = q("select max(created) as commented from item where parent_mid = '%s' and uid = %d and item_delayed = 0 ", + dbesc($arr['parent_mid']), + intval($arr['uid']) + ); - q("UPDATE item set commented = '%s', changed = '%s' WHERE id = %d", - dbesc(($z) ? $z[0]['commented'] : (datetime_convert())), - dbesc(datetime_convert()), - intval($parent_id) - ); + q("UPDATE item set commented = '%s', changed = '%s' WHERE id = %d", + dbesc(($z) ? $z[0]['commented'] : (datetime_convert())), + dbesc(datetime_convert()), + intval($parent_id) + ); + } // If _creating_ a deleted item, don't propagate it further or send out notifications. @@ -1966,6 +1891,12 @@ function item_store_update($arr,$allow_exec = false, $deliver = true) { $allow_exec = $d['allow_exec']; $ret = array('success' => false, 'item_id' => 0); + + if(array_key_exists('cancel',$arr) && $arr['cancel']) { + logger('cancelled by plugin'); + return $ret; + } + if(! intval($arr['uid'])) { logger('item_store_update: no uid'); $ret['message'] = 'no uid.'; @@ -2072,20 +2003,8 @@ function item_store_update($arr,$allow_exec = false, $deliver = true) { $arr['commented'] = $orig[0]['commented']; - if($deliver) { - $arr['received'] = datetime_convert(); - $arr['changed'] = datetime_convert(); - } - else { - - // When deliver flag is false, we are *probably* performing an import or bulk migration. - // If one updates the changed timestamp it will be made available to zotfeed and delivery - // will still take place through backdoor methods. Since these fields are rarely used - // otherwise, just preserve the original timestamp. - - $arr['received'] = $orig[0]['received']; - $arr['changed'] = $orig[0]['changed']; - } + $arr['received'] = $orig[0]['received']; + $arr['changed'] = $orig[0]['changed']; $arr['route'] = ((array_key_exists('route',$arr)) ? trim($arr['route']) : $orig[0]['route']); $arr['diaspora_meta'] = ((x($arr,'diaspora_meta')) ? $arr['diaspora_meta'] : $orig[0]['diaspora_meta']); @@ -2166,7 +2085,10 @@ function item_store_update($arr,$allow_exec = false, $deliver = true) { } - dbesc_array($arr); + if(! dbesc_array($arr)) { + $ret['message'] = 'DB array malformed'; + return $ret; + } logger('item_store_update: ' . print_r($arr,true), LOGGER_DATA); @@ -2174,10 +2096,10 @@ function item_store_update($arr,$allow_exec = false, $deliver = true) { foreach($arr as $k => $v) { if($str) $str .= ","; - $str .= " `" . $k . "` = '" . $v . "' "; + $str .= " " . TQUOT . $k . TQUOT . " = '" . $v . "' "; } - $r = dbq("update `item` set " . $str . " where id = " . $orig_post_id ); + $r = dbq("update item set " . $str . " where id = " . $orig_post_id ); if($r) logger('item_store_update: updated item ' . $orig_post_id, LOGGER_DEBUG); @@ -2336,10 +2258,10 @@ function send_status_notifications($post_id,$item) { // check for an unfollow thread activity - we should probably decode the obj and check the id // but it will be extremely rare for this to be wrong. - if(($xx['verb'] === ACTIVITY_UNFOLLOW) - && ($xx['obj_type'] === ACTIVITY_OBJ_NOTE || $xx['obj_type'] === ACTIVITY_OBJ_PHOTO) + if(($xx['verb'] === ACTIVITY_UNFOLLOW) + && ($xx['obj_type'] === ACTIVITY_OBJ_NOTE || $xx['obj_type'] === ACTIVITY_OBJ_PHOTO) && ($xx['parent'] != $xx['id'])) - $unfollowed = true; + $unfollowed = true; } if($xx['id'] == $xx['parent']) { $parent = $xx['parent']; @@ -2562,7 +2484,7 @@ function tag_deliver($uid, $item_id) { if($mention) { logger('tag_deliver: mention found for ' . $u[0]['channel_name']); - + $r = q("update item set item_mentionsme = 1 where id = %d", intval($item_id) ); @@ -2851,7 +2773,7 @@ function start_delivery_chain($channel, $item, $item_id, $parent) { $title = $item['title']; $body = $item['body']; - $r = q("update item set item_uplink = %d, item_nocomment = %d, item_obscured = %d, item_flags = %d, owner_xchan = '%s', allow_cid = '%s', allow_gid = '%s', + $r = q("update item set item_uplink = %d, item_nocomment = %d, item_obscured = %d, item_flags = %d, owner_xchan = '%s', allow_cid = '%s', allow_gid = '%s', deny_cid = '%s', deny_gid = '%s', item_private = %d, public_policy = '%s', comment_policy = '%s', title = '%s', body = '%s', item_wall = %d, item_origin = %d where id = %d", intval($item_uplink), intval($item_nocomment), @@ -3066,7 +2988,7 @@ function mail_store($arr) { $arr['parent_mid'] = $arr['mid']; } - $r = q("SELECT `id` FROM mail WHERE `mid` = '%s' AND channel_id = %d LIMIT 1", + $r = q("SELECT id FROM mail WHERE mid = '%s' AND channel_id = %d LIMIT 1", dbesc($arr['mid']), intval($arr['channel_id']) ); @@ -3088,19 +3010,13 @@ function mail_store($arr) { return 0; } - dbesc_array($arr); - logger('mail_store: ' . print_r($arr,true), LOGGER_DATA); - $r = dbq("INSERT INTO mail (`" - . implode("`, `", array_keys($arr)) - . "`) VALUES ('" - . implode("', '", array_values($arr)) - . "')" ); + create_table_from_array('mail', $arr); // find the item we just created - $r = q("SELECT `id` FROM mail WHERE `mid` = '%s' AND `channel_id` = %d ORDER BY `id` ASC ", + $r = q("SELECT id FROM mail WHERE mid = '%s' AND channel_id = %d ORDER BY id ASC ", $arr['mid'], // already dbesc'd intval($arr['channel_id']) ); @@ -3116,7 +3032,7 @@ function mail_store($arr) { } if(count($r) > 1) { logger('mail_store: duplicated post occurred. Removing duplicates.'); - q("DELETE FROM mail WHERE `mid` = '%s' AND `channel_id` = %d AND `id` != %d ", + q("DELETE FROM mail WHERE mid = '%s' AND channel_id = %d AND id != %d ", $arr['mid'], intval($arr['channel_id']), intval($current_post) @@ -3168,7 +3084,7 @@ function fix_private_photos($s, $uid, $item = null, $cid = 0) { if($x) { $res = substr($i,$x+1); $i = substr($i,0,$x); - $r = q("SELECT * FROM `photo` WHERE `resource_id` = '%s' AND `imgscale` = %d AND `uid` = %d", + $r = q("SELECT * FROM photo WHERE resource_id = '%s' AND imgscale = %d AND uid = %d", dbesc($i), intval($res), intval($uid) @@ -3352,7 +3268,7 @@ function item_expire($uid,$days) { AND item_starred = 0 $sql_extra $item_normal LIMIT $expire_limit ", intval($uid), - db_utcnow(), + db_utcnow(), db_quoteinterval(intval($days).' DAY') ); @@ -3745,7 +3661,7 @@ function fetch_post_tags($items,$link = false) { ); $imeta = q("select * from iconfig where iid in ( %s )", dbesc($tag_finder_str) - ); + ); } @@ -3878,13 +3794,13 @@ function zot_feed($uid,$observer_hash,$arr) { unset($r[$x]); } } - + $parents_str = ids_to_querystr($r,'parent'); $sys_query = ((is_sys_channel($uid)) ? $sql_extra : ''); $item_normal = item_normal(); - $items = q("SELECT `item`.*, `item`.`id` AS `item_id` FROM `item` - WHERE `item`.`parent` IN ( %s ) $item_normal $sys_query ", + $items = q("SELECT item.*, item.id AS item_id FROM item + WHERE item.parent IN ( %s ) $item_normal $sys_query ", dbesc($parents_str) ); } @@ -3942,9 +3858,9 @@ function items_fetch($arr,$channel = null,$observer_hash = null,$client_mode = C if($arr['mid']) $sql_options .= " and parent_mid = '" . dbesc($arr['mid']) . "' "; - + $sql_extra = " AND item.parent IN ( SELECT parent FROM item WHERE item_thread_top = 1 $sql_options $item_normal ) "; - + if($arr['since_id']) $sql_extra .= " and item.id > " . $since_id . " "; @@ -3952,7 +3868,7 @@ function items_fetch($arr,$channel = null,$observer_hash = null,$client_mode = C $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", + $r = q("SELECT * FROM groups WHERE id = %d AND uid = %d LIMIT 1", intval($arr['group']), intval($uid) ); @@ -4056,8 +3972,8 @@ function items_fetch($arr,$channel = null,$observer_hash = null,$client_mode = C $sql_nets .= "( abook.abook_closeness >= " . intval($arr['cmin']) . " "; $sql_nets .= " AND abook.abook_closeness <= " . intval($arr['cmax']) . " ) "; - /** @fixme dead code, $cmax is undefined */ - if ($cmax == 99) + + if ($arr['cmax'] == 99) $sql_nets .= " OR abook.abook_closeness IS NULL ) "; } } @@ -4192,25 +4108,21 @@ function webpage_to_namespace($webpage) { function update_remote_id($channel,$post_id,$webpage,$pagetitle,$namespace,$remote_id,$mid) { - $page_type = ''; - if(! $post_id) return; - - if($webpage == ITEM_TYPE_WEBPAGE) - $page_type = 'WEBPAGE'; - elseif($webpage == ITEM_TYPE_BLOCK) - $page_type = 'BUILDBLOCK'; - elseif($webpage == ITEM_TYPE_PDL) - $page_type = 'PDL'; - elseif($webpage == ITEM_TYPE_DOC) - $page_type = 'docfile'; - elseif($namespace && $remote_id) { + + $page_type = webpage_to_namespace($webpage); + + if($page_type == 'unknown' && $namespace && $remote_id) { $page_type = $namespace; $pagetitle = $remote_id; } + else { + $page_type = ''; + } if($page_type) { + // store page info as an alternate message_id so we can access it via // https://sitename/page/$channelname/$pagetitle // if no pagetitle was given or it couldn't be transliterated into a url, use the first @@ -4347,7 +4259,7 @@ function send_profile_photo_activity($channel,$photo,$profile) { $ptext = '[zrl=' . z_root() . '/photos/' . $channel['channel_address'] . '/image/' . $photo['resource_id'] . ']' . t('profile photo') . '[/zrl]'; - $ltext = '[zrl=' . z_root() . '/profile/' . $channel['channel_address'] . ']' . '[zmg=150x150]' . z_root() . '/photo/' . $photo['resource_id'] . '-4[/zmg][/zrl]'; + $ltext = '[zrl=' . z_root() . '/profile/' . $channel['channel_address'] . ']' . '[zmg=150x150]' . z_root() . '/photo/' . $photo['resource_id'] . '-4[/zmg][/zrl]'; $arr['body'] = sprintf($t,$channel['channel_name'],$ptext) . "\n\n" . $ltext; @@ -4389,11 +4301,11 @@ function sync_an_item($channel_id,$item_id) { function fix_attached_photo_permissions($uid,$xchan_hash,$body, $str_contact_allow,$str_group_allow,$str_contact_deny,$str_group_deny) { - + if(get_pconfig($uid,'system','force_public_uploads')) { $str_contact_allow = $str_group_allow = $str_contact_deny = $str_group_deny = ''; } - + $match = null; // match img and zmg image links if(preg_match_all("/\[[zi]mg(.*?)\](.*?)\[\/[zi]mg\]/",$body,$match)) { @@ -4410,7 +4322,7 @@ function fix_attached_photo_permissions($uid,$xchan_hash,$body, if(! strlen($image_uri)) continue; $srch = '<' . $xchan_hash . '>'; - + $r = q("select folder from attach where hash = '%s' and uid = %d limit 1", dbesc($image_uri), intval($uid) @@ -4427,15 +4339,15 @@ function fix_attached_photo_permissions($uid,$xchan_hash,$body, $str_group_deny = $f[0]['deny_gid']; } } - - $r = q("SELECT id FROM photo + + $r = q("SELECT id FROM photo WHERE allow_cid = '%s' AND allow_gid = '' AND deny_cid = '' AND deny_gid = '' AND resource_id = '%s' AND uid = %d LIMIT 1", dbesc($srch), dbesc($image_uri), intval($uid) ); - + if($r) { $r = q("UPDATE photo SET allow_cid = '%s', allow_gid = '%s', deny_cid = '%s', deny_gid = '%s' WHERE resource_id = '%s' AND uid = %d ", @@ -4446,9 +4358,9 @@ function fix_attached_photo_permissions($uid,$xchan_hash,$body, dbesc($image_uri), intval($uid) ); - + // also update the linked item (which is probably invisible) - + $r = q("select id from item WHERE allow_cid = '%s' AND allow_gid = '' AND deny_cid = '' AND deny_gid = '' AND resource_id = '%s' and resource_type = 'photo' AND uid = %d LIMIT 1", @@ -4458,7 +4370,7 @@ function fix_attached_photo_permissions($uid,$xchan_hash,$body, ); if($r) { $private = (($str_contact_allow || $str_group_allow || $str_contact_deny || $str_group_deny) ? true : false); - + $r = q("UPDATE item SET allow_cid = '%s', allow_gid = '%s', deny_cid = '%s', deny_gid = '%s', item_private = %d WHERE id = %d AND uid = %d", dbesc($str_contact_allow), @@ -4484,23 +4396,23 @@ function fix_attached_photo_permissions($uid,$xchan_hash,$body, intval($r[0]['id']), intval($uid) ); - } + } } } } } } - - + + function fix_attached_file_permissions($channel,$observer_hash,$body, $str_contact_allow,$str_group_allow,$str_contact_deny,$str_group_deny) { - + if(get_pconfig($channel['channel_id'],'system','force_public_uploads')) { $str_contact_allow = $str_group_allow = $str_contact_deny = $str_group_deny = ''; } - + $match = false; - + if(preg_match_all("/\[attachment\](.*?)\[\/attachment\]/",$body,$match)) { $attaches = $match[1]; if($attaches) { @@ -4519,3 +4431,75 @@ function fix_attached_file_permissions($channel,$observer_hash,$body, } } } + + +function item_create_edit_activity($post) { + + if((! $post) || (! $post['item']) || ($post['item']['item_type'] != ITEM_TYPE_POST)) + return; + + $update_item = $post['item']; + + $new_item = $update_item; + + $author = q("select * from xchan where xchan_hash = '%s' limit 1", + dbesc($new_item['author_xchan']) + ); + if($author) + $item_author = $author[0]; + + + $new_item['id'] = 0; + $new_item['parent'] = 0; + $new_item['mid'] = item_message_id(); + + $new_item['body'] = sprintf( t('[Edited %s]'), (($update_item['item_thread_top']) ? t('Post','edit_activity') : t('Comment','edit_activity'))); + + $new_item['body'] .= "\n\n"; + $new_item['body'] .= $update_item['body']; + + $new_item['sig'] = ''; + + $new_item['verb'] = ACTIVITY_UPDATE; + $new_item['item_thread_top'] = 0; + $new_item['created'] = $new_item['edited'] = datetime_convert(); + + $new_item['obj'] = json_encode(array( + 'type' => (($update_item['item_thread_top']) ? ACTIVITY_OBJ_NOTE : ACTIVITY_OBJ_COMMENT), + 'id' => $update_item['mid'], + 'parent' => $update_item['parent_mid'], + 'link' => array(array('rel' => 'alternate','type' => 'text/html', 'href' => $update_item['plink'])), + 'title' => $update_item['title'], + 'content' => $update_item['body'], + 'created' => $update_item['created'], + 'edited' => $update_item['edited'], + 'author' => array( + 'name' => $item_author['xchan_name'], + 'address' => $item_author['xchan_addr'], + 'guid' => $item_author['xchan_guid'], + 'guid_sig' => $item_author['xchan_guid_sig'], + 'link' => array( + array('rel' => 'alternate', 'type' => 'text/html', 'href' => $item_author['xchan_url']), + array('rel' => 'photo', 'type' => $item_author['xchan_photo_mimetype'], 'href' => $item_author['xchan_photo_m'])), + ), + )); + + + + $x = post_activity_item($new_item); + + $post_id = $x['id']; + if($post_id) { + $r = q("select * from item where id = %d", + intval($post_id) + ); + if($r) { + xchan_query($r); + $sync_item = fetch_post_tags($r); + build_sync_packet($new_item['uid'],array('item' => array(encode_item($sync_item[0],true)))); + } + } + + \Zotlabs\Daemon\Master::Summon(array('Notifier', 'edit_activity', $post_id)); + +} diff --git a/include/language.php b/include/language.php index 96d3e48a9..efe9397fb 100644 --- a/include/language.php +++ b/include/language.php @@ -327,3 +327,61 @@ function get_language_name($s, $l = null) { return $language->getName(); } + + + +function language_list() { + + $langs = glob('view/*/hstrings.php'); + + $lang_options = array(); + $selected = ""; + + if(is_array($langs) && count($langs)) { + if(! in_array('view/en/hstrings.php',$langs)) + $langs[] = 'view/en/'; + asort($langs); + foreach($langs as $l) { + $ll = substr($l,5); + $ll = substr($ll,0,strrpos($ll,'/')); + $lang_options[$ll] = get_language_name($ll, $ll) . " ($ll)"; + } + } + return $lang_options; +} + +function lang_selector() { + + $langs = glob('view/*/hstrings.php'); + + $lang_options = array(); + $selected = ""; + + if(is_array($langs) && count($langs)) { + $langs[] = ''; + if(! in_array('view/en/hstrings.php',$langs)) + $langs[] = 'view/en/'; + asort($langs); + foreach($langs as $l) { + if($l == '') { + $lang_options[""] = t('default'); + continue; + } + $ll = substr($l,5); + $ll = substr($ll,0,strrpos($ll,'/')); + $selected = (($ll === App::$language && (x($_SESSION, 'language'))) ? $ll : $selected); + $lang_options[$ll] = get_language_name($ll, $ll) . " ($ll)"; + } + } + + $tpl = get_markup_template('lang_selector.tpl'); + + $o = replace_macros($tpl, array( + '$title' => t('Select an alternate language'), + '$langs' => array($lang_options, $selected), + + )); + + return $o; +} + diff --git a/include/menu.php b/include/menu.php index 3b0180d37..b54ff7f9e 100644 --- a/include/menu.php +++ b/include/menu.php @@ -284,7 +284,7 @@ function menu_delete_id($menu_id, $uid) { intval($menu_id), intval($uid) ); - return q("delete from menu where menu_id = %d and menu_channel_id = %d limit 1", + return q("delete from menu where menu_id = %d and menu_channel_id = %d", intval($menu_id), intval($uid) ); diff --git a/include/message.php b/include/message.php index 748689206..7cbea3c6b 100644 --- a/include/message.php +++ b/include/message.php @@ -187,10 +187,10 @@ function send_message($uid = 0, $recipient='', $body='', $subject='', $replyto=' if($body) $body = str_rot47(base64url_encode($body)); + $sig = ''; // placeholder - - $r = q("INSERT INTO mail ( account_id, conv_guid, mail_obscured, channel_id, from_xchan, to_xchan, title, body, attach, mid, parent_mid, created, expires, mail_isreply ) - VALUES ( %d, '%s', %d, %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d )", + $r = q("INSERT INTO mail ( account_id, conv_guid, mail_obscured, channel_id, from_xchan, to_xchan, title, body, sig, attach, mid, parent_mid, created, expires, mail_isreply ) + VALUES ( %d, '%s', %d, %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d )", intval($channel['channel_account_id']), dbesc($conv_guid), intval(1), @@ -199,6 +199,7 @@ function send_message($uid = 0, $recipient='', $body='', $subject='', $replyto=' dbesc($recipient), dbesc($subject), dbesc($body), + dbesc($sig), dbesc($jattach), dbesc($mid), dbesc($replyto), @@ -392,7 +393,7 @@ function private_messages_fetch_message($channel_id, $messageitem_id, $updatesee if($updateseen) { - $r = q("UPDATE `mail` SET mail_seen = 1 where mail_seen = 0 and id = %d AND channel_id = %d", + $r = q("UPDATE mail SET mail_seen = 1 where mail_seen = 0 and id = %d AND channel_id = %d", dbesc($messageitem_id), intval($channel_id) ); @@ -436,7 +437,7 @@ function private_messages_drop($channel_id, $messageitem_id, $drop_conversation intval($channel_id) ); if($z) { - q("delete from conv where guid = '%s' and uid = %d limit 1", + q("delete from conv where guid = '%s' and uid = %d", dbesc($x[0]['conv_guid']), intval($channel_id) ); @@ -516,7 +517,7 @@ function private_messages_fetch_conversation($channel_id, $messageitem_id, $upda if($updateseen) { - $r = q("UPDATE `mail` SET mail_seen = 1 where mail_seen = 0 and parent_mid = '%s' AND channel_id = %d", + $r = q("UPDATE mail SET mail_seen = 1 where mail_seen = 0 and parent_mid = '%s' AND channel_id = %d", dbesc($r[0]['parent_mid']), intval($channel_id) ); diff --git a/include/nav.php b/include/nav.php index c2a058457..2762e2a14 100644 --- a/include/nav.php +++ b/include/nav.php @@ -108,7 +108,7 @@ EOT; if(feature_enabled($channel['channel_id'],'webpages') && (! $basic)) $nav['usermenu'][] = Array('webpages/' . $channel['channel_address'],t('Webpages'),"",t('Your webpages'),'webpages_nav_btn'); if(feature_enabled($channel['channel_id'],'wiki') && (! $basic)) - $nav['usermenu'][] = Array('wiki/' . $channel['channel_address'],t('Wiki'),"",t('Your wiki'),'wiki_nav_btn'); + $nav['usermenu'][] = Array('wiki/' . $channel['channel_address'],t('Wikis'),"",t('Your wikis'),'wiki_nav_btn'); } else { if(! get_account_id()) { @@ -127,26 +127,24 @@ EOT; ); } - if($observer) { - $nav['lock'] = array('logout','','lock', - sprintf( t('%s - click to logout'), $observer['xchan_addr'])); - } elseif(! $_SESSION['authenticated']) { $nav['loginmenu'][] = Array('rmagic',t('Remote authentication'),'',t('Click to authenticate to your home hub'),'rmagic_nav_btn'); } - /** - * "Home" should also take you home from an authenticated remote profile connection - */ - $homelink = get_my_url(); if(! $homelink) { $observer = App::get_observer(); $homelink = (($observer) ? $observer['xchan_url'] : ''); } - if(! local_channel()) - $nav['home'] = array($homelink, t('Home'), "", t('Home Page'),'home_nav_btn'); + if(! local_channel()) { + $nav['rusermenu'] = array( + $homelink, + t('Get me home'), + 'logout', + t('Log me out of this site') + ); + } if(((get_config('system','register_policy') == REGISTER_OPEN) || (get_config('system','register_policy') == REGISTER_APPROVE)) && (! $_SESSION['authenticated'])) $nav['register'] = array('register',t('Register'), "", t('Create an account'),'register_nav_btn'); diff --git a/include/network.php b/include/network.php index 7851f8976..451ce12a1 100644 --- a/include/network.php +++ b/include/network.php @@ -30,12 +30,12 @@ function get_capath() { * * \b filep => stream resource to write body to. header and body are not returned when using this option. * * \b custom => custom request method: e.g. 'PUT', 'DELETE' * * \b cookiejar => cookie file (write) - * * \B cookiefile => cookie file (read) + * * \b cookiefile => cookie file (read) * * @return array an associative array with: * * \e int \b return_code => HTTP return code or 0 if timeout or failure * * \e boolean \b success => boolean true (if HTTP 2xx result) or false - * * \e string \b header => HTTP headers + * * \e string \b header => HTTP headers * * \e string \b body => fetched content */ function z_fetch_url($url, $binary = false, $redirects = 0, $opts = array()) { @@ -43,7 +43,7 @@ function z_fetch_url($url, $binary = false, $redirects = 0, $opts = array()) { $ret = array('return_code' => 0, 'success' => false, 'header' => "", 'body' => ""); $ch = @curl_init($url); - if(($redirects > 8) || (! $ch)) + if(($redirects > 8) || (! $ch)) return $ret; @curl_setopt($ch, CURLOPT_HEADER, true); @@ -59,12 +59,12 @@ function z_fetch_url($url, $binary = false, $redirects = 0, $opts = array()) { if(x($opts,'filep')) { @curl_setopt($ch, CURLOPT_FILE, $opts['filep']); - @curl_setopt($ch, CURLOPT_HEADER, $false); + @curl_setopt($ch, CURLOPT_HEADER, false); } if(x($opts,'upload')) @curl_setopt($ch, CURLOPT_UPLOAD, $opts['upload']); - + if(x($opts,'infile')) @curl_setopt($ch, CURLOPT_INFILE, $opts['infile']); @@ -87,7 +87,7 @@ function z_fetch_url($url, $binary = false, $redirects = 0, $opts = array()) { @curl_setopt($ch, CURLOPT_TIMEOUT, $opts['timeout']); } else { - $curl_time = intval(get_config('system','curl_timeout')); + $curl_time = intval(@get_config('system','curl_timeout')); @curl_setopt($ch, CURLOPT_TIMEOUT, (($curl_time !== false) ? $curl_time : 60)); } @@ -104,10 +104,10 @@ function z_fetch_url($url, $binary = false, $redirects = 0, $opts = array()) { if(x($opts,'cookie')) @curl_setopt($ch, CURLOPT_COOKIE, $opts['cookie']); - @curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, + @curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, ((x($opts,'novalidate') && intval($opts['novalidate'])) ? false : true)); - $prx = get_config('system','proxy'); + $prx = @get_config('system','proxy'); if(strlen($prx)) { @curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 1); @curl_setopt($ch, CURLOPT_PROXY, $prx); @@ -179,10 +179,10 @@ function z_fetch_url($url, $binary = false, $redirects = 0, $opts = array()) { * @param string $url * URL to post * @param mixed $params - * The full data to post in a HTTP "POST" operation. This parameter can - * either be passed as a urlencoded string like 'para1=val1¶2=val2&...' - * or as an array with the field name as key and field data as value. If value - * is an array, the Content-Type header will be set to multipart/form-data. + * The full data to post in a HTTP "POST" operation. This parameter can + * either be passed as a urlencoded string like 'para1=val1¶2=val2&...' + * or as an array with the field name as key and field data as value. If value + * is an array, the Content-Type header will be set to multipart/form-data. * @param int $redirects = 0 * internal use, recursion counter * @param array $opts (optional parameters) @@ -209,7 +209,7 @@ function z_post_url($url,$params, $redirects = 0, $opts = array()) { $ret = array('return_code' => 0, 'success' => false, 'header' => "", 'body' => ""); $ch = curl_init($url); - if(($redirects > 8) || (! $ch)) + if(($redirects > 8) || (! $ch)) return $ret; @curl_setopt($ch, CURLOPT_HEADER, true); @@ -226,13 +226,13 @@ function z_post_url($url,$params, $redirects = 0, $opts = array()) { if(x($opts,'filep')) { @curl_setopt($ch, CURLOPT_FILE, $opts['filep']); - @curl_setopt($ch, CURLOPT_HEADER, $false); + @curl_setopt($ch, CURLOPT_HEADER, false); } if(x($opts,'headers')) { @curl_setopt($ch, CURLOPT_HTTPHEADER, $opts['headers']); } - + if(x($opts,'nobody')) @curl_setopt($ch, CURLOPT_NOBODY, $opts['nobody']); @@ -246,7 +246,7 @@ function z_post_url($url,$params, $redirects = 0, $opts = array()) { @curl_setopt($ch, CURLOPT_TIMEOUT, $opts['timeout']); } else { - $curl_time = intval(get_config('system','curl_timeout')); + $curl_time = intval(@get_config('system','curl_timeout')); @curl_setopt($ch, CURLOPT_TIMEOUT, (($curl_time !== false) ? $curl_time : 60)); } @@ -265,7 +265,7 @@ function z_post_url($url,$params, $redirects = 0, $opts = array()) { if(x($opts,'cookie')) @curl_setopt($ch, CURLOPT_COOKIE, $opts['cookie']); - @curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, + @curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, ((x($opts,'novalidate') && intval($opts['novalidate'])) ? false : true)); $prx = get_config('system','proxy'); @@ -379,8 +379,8 @@ function json_return_and_die($x, $content_type = 'application/json') { // Generic XML return -// Outputs a basic dfrn XML status structure to STDOUT, with a variable -// of $st and an optional text of $message and terminates the current process. +// Outputs a basic dfrn XML status structure to STDOUT, with a variable +// of $st and an optional text of $message and terminates the current process. function xml_status($st, $message = '') { @@ -399,7 +399,7 @@ function xml_status($st, $message = '') { /** - * @brief Send HTTP status header + * @brief Send HTTP status header * * @param int $val * integer HTTP status result value @@ -413,7 +413,7 @@ function http_status($val, $msg = '') { if ($val >= 200 && $val < 300) $msg = (($msg) ? $msg : 'OK'); - logger('http_status_exit ' . $val . ' ' . $msg); + logger('http_status_exit ' . $val . ' ' . $msg); header($_SERVER['SERVER_PROTOCOL'] . ' ' . $val . ' ' . $msg); } @@ -480,21 +480,46 @@ function convert_xml_element_to_array($xml_element, &$recursion_depth=0) { } } + + +function z_dns_check($h,$check_mx = 0) { + + // dns_get_record() has issues on some platforms + // so allow somebody to ignore it completely + // Use config values from memory as this can be called during setup + // before a database or even any config structure exists. + + if(is_array(\App::$config) && array_key_exists('system',\App::$config) + && is_array(\App::$config['system']) + && array_key_exists('do_not_check_dns',\App::$config['system']) + && \App::$config['system']['do_not_check_dns']) + return true; + + + //$opts = DNS_A + DNS_CNAME + DNS_PTR; + //if($check_mx) + // $opts += DNS_MX; + // Specific record type flags are unreliable on FreeBSD and Mac, + // so now we'll ignore these and just check for the existence of any DNS record. + return((@dns_get_record($h) || filter_var($h, FILTER_VALIDATE_IP)) ? true : false); + +} + // Take a URL from the wild, prepend http:// if necessary // and check DNS to see if it's real (or check if is a valid IP address) // return true if it's OK, false if something is wrong with it function validate_url(&$url) { - + // no naked subdomains (allow localhost for tests) if(strpos($url,'.') === false && strpos($url,'/localhost/') === false) return false; if(substr($url,0,4) != 'http') $url = 'http://' . $url; $h = @parse_url($url); - - if(($h) && (@dns_get_record($h['host'], DNS_A + DNS_CNAME + DNS_PTR) || filter_var($h['host'], FILTER_VALIDATE_IP) )) { + + if(($h) && z_dns_check($h['host'])) { return true; } return false; @@ -512,7 +537,7 @@ function validate_email($addr) { return false; $h = substr($addr,strpos($addr,'@') + 1); - if(($h) && (@dns_get_record($h, DNS_A + DNS_CNAME + DNS_PTR + DNS_MX) || filter_var($h, FILTER_VALIDATE_IP) )) { + if(($h) && z_dns_check($h,true)) { return true; } return false; @@ -552,7 +577,7 @@ function allowed_url($url) { foreach($allowed as $a) { $pat = strtolower(trim($a)); if(($fnmatch && fnmatch($pat,$host)) || ($pat == $host)) { - $found = true; + $found = true; break; } } @@ -575,14 +600,14 @@ function allowed_email($email) { $str_allowed = get_config('system','allowed_email'); $str_not_allowed = get_config('system','not_allowed_email'); - + if(! $str_allowed && ! $str_not_allowed) return true; $return = false; - $found_allowed = false; + $found_allowed = false; $found_not_allowed = false; - + $fnmatch = function_exists('fnmatch'); $allowed = explode(',',$str_allowed); @@ -591,7 +616,7 @@ function allowed_email($email) { foreach($allowed as $a) { $pat = strtolower(trim($a)); if(($fnmatch && fnmatch($pat,$email)) || ($pat == $domain)) { - $found_allowed = true; + $found_allowed = true; break; } } @@ -603,16 +628,16 @@ function allowed_email($email) { foreach($not_allowed as $na) { $pat = strtolower(trim($na)); if(($fnmatch && fnmatch($pat,$email)) || ($pat == $domain)) { - $found_not_allowed = true; + $found_not_allowed = true; break; } } - } - + } + if ($found_allowed) { - $return = true; + $return = true; } elseif (!$str_allowed && !$found_not_allowed) { - $return = true; + $return = true; } return $return; } @@ -652,7 +677,7 @@ function scale_external_images($s, $include_link = true, $scale_replace = false) foreach($matches as $mtch) { logger('scale_external_image: ' . $mtch[2] . ' ' . $mtch[3]); - + if(substr($mtch[1],0,1) == '=') { $owidth = intval(substr($mtch[2],1)); if(intval($owidth) > 0 && intval($owidth) < 1024) @@ -686,7 +711,7 @@ function scale_external_images($s, $include_link = true, $scale_replace = false) $type = guess_image_type($mtch[3],$i['header']); if(strpos($type,'image') === false) continue; - + if($i['success']) { $ph = photo_factory($i['body'], $type); if($ph->is_valid()) { @@ -700,7 +725,7 @@ function scale_external_images($s, $include_link = true, $scale_replace = false) $new_height = $ph->getHeight(); logger('scale_external_images: ' . $orig_width . '->' . $new_width . 'w ' . $orig_height . '->' . $new_height . 'h' . ' match: ' . $mtch[0], LOGGER_DEBUG); $s = str_replace($mtch[0],'[' . $tag . '=' . $new_width . 'x' . $new_height. ']' . $scaled . '[/' . $tag . ']' - . "\n" . (($include_link) + . "\n" . (($include_link) ? '[zrl=' . $mtch[2] . ']' . t('view full size') . '[/zrl]' . "\n" : ''),$s); logger('scale_external_images: new string: ' . $s, LOGGER_DEBUG); @@ -728,7 +753,7 @@ function scale_external_images($s, $include_link = true, $scale_replace = false) * Return: The parsed XML in an array form. Use print_r() to see the resulting array structure. * Examples: $array = xml2array(file_get_contents('feed.xml')); * $array = xml2array(file_get_contents('feed.xml', true, 1, 'attribute')); - */ + */ function xml2array($contents, $namespaces = true, $get_attributes=1, $priority = 'attribute') { if(!$contents) return array(); @@ -752,7 +777,7 @@ function xml2array($contents, $namespaces = true, $get_attributes=1, $priority = return array(); } - xml_parser_set_option($parser, XML_OPTION_TARGET_ENCODING, "UTF-8"); + xml_parser_set_option($parser, XML_OPTION_TARGET_ENCODING, "UTF-8"); // http://minutillo.com/steve/weblog/2004/6/17/php-xml-and-character-encodings-a-tale-of-sadness-rage-and-data-loss xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 0); xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE, 1); @@ -786,7 +811,7 @@ function xml2array($contents, $namespaces = true, $get_attributes=1, $priority = $result = array(); $attributes_data = array(); - + if(isset($value)) { if($priority == 'tag') $result = $value; else $result['value'] = $value; // Put the value in a assoc array if we are in the 'Attribute' mode @@ -802,7 +827,7 @@ function xml2array($contents, $namespaces = true, $get_attributes=1, $priority = // See tag status and do the needed. if($namespaces && strpos($tag,':')) { - $namespc = substr($tag,0,strrpos($tag,':')); + $namespc = substr($tag,0,strrpos($tag,':')); $tag = strtolower(substr($tag,strlen($namespc)+1)); $result['@namespace'] = $namespc; } @@ -825,7 +850,7 @@ function xml2array($contents, $namespaces = true, $get_attributes=1, $priority = } else { // This section will make the value an array if multiple tags with the same name appear together $current[$tag] = array($current[$tag],$result); // This will combine the existing item and the new item together to make an array $repeated_tag_index[$tag.'_'.$level] = 2; - + if(isset($current[$tag.'_attr'])) { // The attribute of the last(0th) tag must be moved as well $current[$tag]['0_attr'] = $current[$tag.'_attr']; unset($current[$tag.'_attr']); @@ -848,7 +873,7 @@ function xml2array($contents, $namespaces = true, $get_attributes=1, $priority = // ...push the new element into that array. $current[$tag][$repeated_tag_index[$tag.'_'.$level]] = $result; - + if($priority == 'tag' and $get_attributes and $attributes_data) { $current[$tag][$repeated_tag_index[$tag.'_'.$level] . '_attr'] = $attributes_data; } @@ -859,11 +884,11 @@ function xml2array($contents, $namespaces = true, $get_attributes=1, $priority = $repeated_tag_index[$tag.'_'.$level] = 1; if($priority == 'tag' and $get_attributes) { if(isset($current[$tag.'_attr'])) { // The attribute of the last(0th) tag must be moved as well - + $current[$tag]['0_attr'] = $current[$tag.'_attr']; unset($current[$tag.'_attr']); } - + if($attributes_data) { $current[$tag][$repeated_tag_index[$tag.'_'.$level] . '_attr'] = $attributes_data; } @@ -876,9 +901,9 @@ function xml2array($contents, $namespaces = true, $get_attributes=1, $priority = $current = &$parent[$level-1]; } } - + return($xml_array); -} +} function email_header_encode($in_str, $charset = 'UTF-8') { @@ -1128,7 +1153,7 @@ function discover_by_webbie($webbie) { $diaspora = false; $gnusoc = false; $dfrn = false; - + $has_salmon = false; $salmon_key = false; $atom_feed = false; @@ -1144,7 +1169,7 @@ function discover_by_webbie($webbie) { if(array_key_exists('rel',$link)) { // If we discover zot - don't search further; grab the info and get out of - // here. + // here. if($link['rel'] === PROTOCOL_ZOT) { logger('discover_by_webbie: zot found for ' . $webbie, LOGGER_DEBUG); @@ -1204,11 +1229,11 @@ function discover_by_webbie($webbie) { $pubkey = ''; if(is_array($x)) { - if(array_key_exists('address',$x)) + if(array_key_exists('address',$x)) $address = $x['address']; - if(array_key_exists('location',$x)) + if(array_key_exists('location',$x)) $location = $x['location']; - if(array_key_exists('nickname',$x)) + if(array_key_exists('nickname',$x)) $nickname = $x['nickname']; } @@ -1216,16 +1241,16 @@ function discover_by_webbie($webbie) { $probe_old = true; - if((! $dfrn) && (! $has_salmon)) + if((! $dfrn) && (! $has_salmon)) $probe_old = true; if($probe_old) { - $y = old_webfinger($webbie); + $y = old_webfinger($webbie); if($y) { logger('old_webfinger: ' . print_r($x,true)); foreach($y as $link) { if($link['@attributes']['rel'] === NAMESPACE_DFRN) - $dfrn = unamp($link['@attributes']['href']); + $dfrn = unamp($link['@attributes']['href']); if($link['@attributes']['rel'] === 'salmon') $notify = unamp($link['@attributes']['href']); if($link['@attributes']['rel'] === NAMESPACE_FEED) @@ -1344,7 +1369,7 @@ function discover_by_webbie($webbie) { if($vcard['fn']) $fullname = $vcard['fn']; if($vcard['photo'] && (strpos($vcard['photo'],'http') !== 0)) - $vcard['photo'] = $diaspora_base . '/' . $vcard['photo']; + $vcard['photo'] = $diaspora_base . '/' . $vcard['photo']; if(($vcard['public_key']) && (! $pubkey)) { $diaspora_key = $vcard['public_key']; if(strstr($diaspora_key,'RSA ')) @@ -1358,7 +1383,7 @@ function discover_by_webbie($webbie) { if(($vcard['uid']) && (! $diaspora_guid)) $diaspora_guid = $vcard['uid']; if(($vcard['url']) && (! $diaspora_base)) - $diaspora_base = $vcard['url']; + $diaspora_base = $vcard['url']; @@ -1372,7 +1397,7 @@ function discover_by_webbie($webbie) { if(($profile) && (! $location)) $location = $profile; - if($location) { + if($location) { $m = parse_url($location); $base = $m['scheme'] . '://' . $m['host']; $host = $m['host']; @@ -1407,12 +1432,12 @@ function discover_by_webbie($webbie) { // if we have everything we need, let's create the records - if($network && $address && $fullname && $pubkey && $location) { + if($network && $address && $fullname && $pubkey && $location) { $r = q("select * from xchan where xchan_hash = '%s' limit 1", dbesc($address) ); if($r) { - $r = q("update xchan set xchan_name = '%s', xchan_network = '%s', xchan_name_date = '%s' where xchan_hash = '%s' limit 1", + $r = q("update xchan set xchan_name = '%s', xchan_network = '%s', xchan_name_date = '%s' where xchan_hash = '%s'", dbesc($fullname), dbesc($network), dbesc(datetime_convert()), @@ -1493,7 +1518,7 @@ function webfinger_rfc7033($webbie,$zot = false) { // We could have a number of URL aliases and webbies // make an executive decision about the most likely "best" of each // by comparing against some examples from known networks we're likely to encounter. - // Otherwise we have to store every alias that we may ever encounter and + // Otherwise we have to store every alias that we may ever encounter and // validate every URL we ever find against every possible alias // @fixme pump.io is going to be a real bugger since it doesn't return subject or aliases @@ -1564,7 +1589,7 @@ function match_webfinger_location($s,$h) { return $s; return ''; } - + @@ -1935,7 +1960,7 @@ function format_and_send_email($sender,$xchan,$item) { )); $sender_name = t('Administrator'); - + $hostname = App::get_hostname(); if(strpos($hostname,':')) $hostname = substr($hostname,0,strpos($hostname,':')); @@ -1964,7 +1989,7 @@ function do_delivery($deliveries) { if(! (is_array($deliveries) && count($deliveries))) return; - $interval = ((get_config('system','delivery_interval') !== false) + $interval = ((get_config('system','delivery_interval') !== false) ? intval(get_config('system','delivery_interval')) : 2 ); $deliveries_per_process = intval(get_config('system','delivery_batch_count')); @@ -1993,7 +2018,7 @@ function do_delivery($deliveries) { if($deliver) Zotlabs\Daemon\Master::Summon(array('Deliver',$deliver)); - + } @@ -2002,7 +2027,7 @@ function get_site_info() { $register_policy = Array('REGISTER_CLOSED', 'REGISTER_APPROVE', 'REGISTER_OPEN'); $directory_mode = Array('DIRECTORY_MODE_NORMAL', 'DIRECTORY_MODE_PRIMARY', 'DIRECTORY_MODE_SECONDARY', 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"); @@ -2053,7 +2078,7 @@ function get_site_info() { 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')); @@ -2073,7 +2098,7 @@ function get_site_info() { } - + $data = Array( 'version' => $version, 'version_tag' => $tag, @@ -2190,7 +2215,7 @@ function deliverable_singleton($channel_id,$xchan) { function get_repository_version($branch = 'master') { $path = "https://raw.githubusercontent.com/redmatrix/hubzilla/$branch/boot.php"; - + $x = z_fetch_url($path); if($x['success']) { $y = preg_match('/define(.*?)STD_VERSION(.*?)([0-9.].*)\'/',$x['body'],$matches); @@ -2199,7 +2224,7 @@ function get_repository_version($branch = 'master') { } return '?.?'; -} +} function network_to_name($s) { @@ -2266,11 +2291,11 @@ function z_mail($params) { call_hooks('email_send', $params); if($params['sent']) { - logger('notification: z_mail returns ' . $params['result'], LOGGER_DEBUG); + logger('notification: z_mail returns ' . (($params['result']) ? 'success' : 'failure'), LOGGER_DEBUG); return $params['result']; } - $fromName = email_header_encode(html_entity_decode($params['fromName'],ENT_QUOTES,'UTF-8'),'UTF-8'); + $fromName = email_header_encode(html_entity_decode($params['fromName'],ENT_QUOTES,'UTF-8'),'UTF-8'); $messageSubject = email_header_encode(html_entity_decode($params['messageSubject'],ENT_QUOTES,'UTF-8'),'UTF-8'); $messageHeader = @@ -2285,6 +2310,25 @@ function z_mail($params) { $params['textVersion'], $messageHeader // message headers ); - logger('notification: z_mail returns ' . $res, LOGGER_DEBUG); + logger('notification: z_mail returns ' . (($res) ? 'success' : 'failure'), LOGGER_DEBUG); return $res; } + +// discover the best API path available for redmatrix/hubzilla servers + +function probe_api_path($host) { + + $schemes = ['https', 'http' ]; + $paths = ['/api/z/1.0/version', '/api/red/version' ]; + + foreach($schemes as $scheme) { + foreach($paths as $path) { + $curpath = $scheme . '://' . $host . $path; + $x = z_fetch_url($curpath); + if($x['success'] && ! strlen($x['body'],'not implemented')) + return str_replace('version','',$curpath); + } + } + + return ''; +} diff --git a/include/oembed.php b/include/oembed.php index 1780e7046..eb7b76437 100755 --- a/include/oembed.php +++ b/include/oembed.php @@ -137,10 +137,6 @@ function oembed_fetch_url($embedurl){ if($action !== 'block') { $txt = Zlib\Cache::get('[' . App::$videowidth . '] ' . $embedurl); - - if(strstr($txt,'youtu') && strstr(z_root(),'https:')) { - $txt = str_replace('http:','https:',$txt); - } } if(is_null($txt)) { @@ -272,13 +268,7 @@ function oembed_format_object($j){ $th=120; $tw = $th*$tr; $tpl=get_markup_template('oembed_video.tpl'); - if(strstr($embedurl,'youtu') && strstr(z_root(),'https:')) { - $embedurl = str_replace('http:','https:',$embedurl); - $j['thumbnail_url'] = str_replace('http:','https:', $j['thumbnail_url']); - $jhtml = str_replace('http:','https:', $jhtml); - $j['html'] = str_replace('http:','https:', $j['html']); - - } + $ret.=replace_macros($tpl, array( '$baseurl' => z_root(), '$embedurl'=>$embedurl, @@ -348,7 +338,7 @@ function oembed_iframe($src,$width,$height) { // Make sure any children are sandboxed within their own iframe. - return ''; } diff --git a/include/photo/photo_driver.php b/include/photo/photo_driver.php index 9b6d38cc1..af4fd0a30 100644 --- a/include/photo/photo_driver.php +++ b/include/photo/photo_driver.php @@ -340,31 +340,31 @@ abstract class photo_driver { intval($p['imgscale']) ); if($x) { - $r = q("UPDATE `photo` set - `aid` = %d, - `uid` = %d, - `xchan` = '%s', - `resource_id` = '%s', - `created` = '%s', - `edited` = '%s', - `filename` = '%s', - `mimetype` = '%s', - `album` = '%s', - `height` = %d, - `width` = %d, - `content` = '%s', - `os_storage` = %d, - `filesize` = %d, - `imgscale` = %d, - `photo_usage` = %d, - `title` = '%s', - `description` = '%s', - `os_path` = '%s', - `display_path` = '%s', - `allow_cid` = '%s', - `allow_gid` = '%s', - `deny_cid` = '%s', - `deny_gid` = '%s' + $r = q("UPDATE photo set + aid = %d, + uid = %d, + xchan = '%s', + resource_id = '%s', + created = '%s', + edited = '%s', + filename = '%s', + mimetype = '%s', + album = '%s', + height = %d, + width = %d, + content = '%s', + os_storage = %d, + filesize = %d, + imgscale = %d, + photo_usage = %d, + title = '%s', + description = '%s', + os_path = '%s', + display_path = '%s', + allow_cid = '%s', + allow_gid = '%s', + deny_cid = '%s', + deny_gid = '%s' where id = %d", intval($p['aid']), @@ -378,7 +378,7 @@ abstract class photo_driver { dbesc($p['album']), intval($this->getHeight()), intval($this->getWidth()), - (intval($p['os_storage']) ? dbesc($p['os_path']) : dbescbin($this->imageString())), + (intval($p['os_storage']) ? dbescbin($p['os_path']) : dbescbin($this->imageString())), intval($p['os_storage']), intval(strlen($this->imageString())), intval($p['imgscale']), @@ -395,8 +395,8 @@ abstract class photo_driver { ); } else { - $r = q("INSERT INTO `photo` - ( `aid`, `uid`, `xchan`, `resource_id`, `created`, `edited`, `filename`, mimetype, `album`, `height`, `width`, `content`, `os_storage`, `filesize`, `imgscale`, `photo_usage`, `title`, `description`, `os_path`, `display_path`, `allow_cid`, `allow_gid`, `deny_cid`, `deny_gid` ) + $r = q("INSERT INTO photo + ( aid, uid, xchan, resource_id, created, edited, filename, mimetype, album, height, width, content, os_storage, filesize, imgscale, photo_usage, title, description, os_path, display_path, allow_cid, allow_gid, deny_cid, deny_gid ) VALUES ( %d, %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d, %d, '%s', %d, %d, %d, %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s' )", intval($p['aid']), intval($p['uid']), @@ -409,7 +409,7 @@ abstract class photo_driver { dbesc($p['album']), intval($this->getHeight()), intval($this->getWidth()), - (intval($p['os_storage']) ? dbesc($p['os_path']) : dbescbin($this->imageString())), + (intval($p['os_storage']) ? dbescbin($p['os_path']) : dbescbin($this->imageString())), intval($p['os_storage']), intval(strlen($this->imageString())), intval($p['imgscale']), @@ -432,33 +432,33 @@ abstract class photo_driver { public function store($aid, $uid, $xchan, $rid, $filename, $album, $scale, $usage = PHOTO_NORMAL, $allow_cid = '', $allow_gid = '', $deny_cid = '', $deny_gid = '') { - $x = q("select id from photo where `resource_id` = '%s' and uid = %d and `xchan` = '%s' and `imgscale` = %d limit 1", + $x = q("select id from photo where resource_id = '%s' and uid = %d and xchan = '%s' and imgscale = %d limit 1", dbesc($rid), intval($uid), dbesc($xchan), intval($scale) ); if(count($x)) { - $r = q("UPDATE `photo` - set `aid` = %d, - `uid` = %d, - `xchan` = '%s', - `resource_id` = '%s', - `created` = '%s', - `edited` = '%s', - `filename` = '%s', - `mimetype` = '%s', - `album` = '%s', - `height` = %d, - `width` = %d, - `content` = '%s', - `filesize` = %d, - `imgscale` = %d, - `photo_usage` = %d, - `allow_cid` = '%s', - `allow_gid` = '%s', - `deny_cid` = '%s', - `deny_gid` = '%s' + $r = q("UPDATE photo + set aid = %d, + uid = %d, + xchan = '%s', + resource_id = '%s', + created = '%s', + edited = '%s', + filename = '%s', + mimetype = '%s', + album = '%s', + height = %d, + width = %d, + content = '%s', + filesize = %d, + imgscale = %d, + photo_usage = %d, + allow_cid = '%s', + allow_gid = '%s', + deny_cid = '%s', + deny_gid = '%s' where id = %d", intval($aid), @@ -484,8 +484,8 @@ abstract class photo_driver { ); } else { - $r = q("INSERT INTO `photo` - ( `aid`, `uid`, `xchan`, `resource_id`, `created`, `edited`, `filename`, mimetype, `album`, `height`, `width`, `content`, `filesize`, `imgscale`, `photo_usage`, `allow_cid`, `allow_gid`, `deny_cid`, `deny_gid` ) + $r = q("INSERT INTO photo + ( aid, uid, xchan, resource_id, created, edited, filename, mimetype, album, height, width, content, filesize, imgscale, photo_usage, allow_cid, allow_gid, deny_cid, deny_gid ) VALUES ( %d, %d, '%s', '%s', '%s', '%s', '%s', '%s', '%s', %d, %d, '%s', %d, %d, %d, '%s', '%s', '%s', '%s' )", intval($aid), intval($uid), diff --git a/include/photos.php b/include/photos.php index a3018816c..5e4d755e3 100644 --- a/include/photos.php +++ b/include/photos.php @@ -28,7 +28,8 @@ function photo_upload($channel, $observer, $args) { return $ret; } -// call_hooks('photo_upload_begin', $args); + +//call_hooks('photo_upload_begin', $args); /* * Determine the album to use @@ -45,7 +46,7 @@ function photo_upload($channel, $observer, $args) { if(array_key_exists('deliver',$args)) $deliver = intval($args['deliver']); - // Set to default channel permissions. If the parent directory (album) has permissions set, + // Set to default channel permissions. If the parent directory (album) has permissions set, // use those instead. If we have specific permissions supplied, they take precedence over // all other settings. 'allow_cid' being passed from an external source takes priority over channel settings. // ...messy... needs re-factoring once the photos/files integration stabilises @@ -55,9 +56,9 @@ function photo_upload($channel, $observer, $args) { $acl->set($args['directory']); if(array_key_exists('allow_cid',$args)) $acl->set($args); - if( (array_key_exists('group_allow',$args)) - || (array_key_exists('contact_allow',$args)) - || (array_key_exists('group_deny',$args)) + if( (array_key_exists('group_allow',$args)) + || (array_key_exists('contact_allow',$args)) + || (array_key_exists('group_deny',$args)) || (array_key_exists('contact_deny',$args))) { $acl->set_from_array($args); } @@ -103,7 +104,7 @@ function photo_upload($channel, $observer, $args) { $type = $_FILES['userfile']['type']; } - if (! $type) + if (! $type) $type=guess_image_type($filename); logger('photo_upload: received file: ' . $filename . ' as ' . $src . ' ('. $type . ') ' . $filesize . ' bytes', LOGGER_DEBUG); @@ -176,7 +177,7 @@ function photo_upload($channel, $observer, $args) { $errors = false; $p = array('aid' => $account_id, 'uid' => $channel_id, 'xchan' => $visitor, 'resource_id' => $photo_hash, - 'filename' => $filename, 'album' => $album, 'imgscale' => 0, 'photo_usage' => PHOTO_NORMAL, + 'filename' => $filename, 'album' => $album, 'imgscale' => 0, 'photo_usage' => PHOTO_NORMAL, 'allow_cid' => $ac['allow_cid'], 'allow_gid' => $ac['allow_gid'], 'deny_cid' => $ac['deny_cid'], 'deny_gid' => $ac['deny_gid'], 'os_storage' => $os_storage, 'os_path' => $args['os_path'] @@ -220,8 +221,8 @@ function photo_upload($channel, $observer, $args) { ); if(! $r1) $errors = true; - - if(($width > 640 || $height > 640) && (! $errors)) + + if(($width > 640 || $height > 640) && (! $errors)) $ph->scaleImage(640); $p['imgscale'] = 2; @@ -236,7 +237,7 @@ function photo_upload($channel, $observer, $args) { if(! $r2) $errors = true; - if(($width > 320 || $height > 320) && (! $errors)) + if(($width > 320 || $height > 320) && (! $errors)) $ph->scaleImage(320); $p['imgscale'] = 3; @@ -304,8 +305,8 @@ function photo_upload($channel, $observer, $args) { $summary = (($args['body']) ? $args['body'] : '') . '[footer]' . $activity_format . '[/footer]'; - $obj_body = '[zrl=' . z_root() . '/photos/' . $channel['channel_address'] . '/image/' . $photo_hash . ']' - . $tag . z_root() . "/photo/{$photo_hash}-{$scale}." . $ph->getExt() . '[/zmg]' + $obj_body = '[zrl=' . z_root() . '/photos/' . $channel['channel_address'] . '/image/' . $photo_hash . ']' + . $tag . z_root() . "/photo/{$photo_hash}-{$scale}." . $ph->getExt() . '[/zmg]' . '[/zrl]'; // Create item object @@ -361,7 +362,7 @@ function photo_upload($channel, $observer, $args) { $item['uid'] = $channel['channel_id']; item_store_update($item,false,$deliver); continue; - } + } } else { $item['aid'] = $channel['channel_account_id']; @@ -381,7 +382,7 @@ function photo_upload($channel, $observer, $args) { $arr['aid'] = $account_id; $arr['uid'] = $channel_id; $arr['mid'] = $mid; - $arr['parent_mid'] = $mid; + $arr['parent_mid'] = $mid; $arr['item_hidden'] = $item_hidden; $arr['resource_type'] = 'photo'; $arr['resource_id'] = $photo_hash; @@ -407,10 +408,10 @@ function photo_upload($channel, $observer, $args) { // this one is tricky because the item and the photo have the same permissions, those of the photo. // Use the channel read_stream permissions to get the correct public_policy for the item and recalculate the - // private flag accordingly. This may cause subtle bugs due to custom permissions roles. We want to use + // private flag accordingly. This may cause subtle bugs due to custom permissions roles. We want to use // public policy when federating items to other sites, but should probably ignore them when accessing the item // in the photos pages - using the photos permissions instead. We need the public policy to keep the photo - // linked item from leaking into the feed when somebody has a channel with read_stream restrictions. + // linked item from leaking into the feed when somebody has a channel with read_stream restrictions. $arr['public_policy'] = map_scope(\Zotlabs\Access\PermissionLimits::Get($channel['channel_id'],'view_stream'),true); if($arr['public_policy']) @@ -421,7 +422,7 @@ function photo_upload($channel, $observer, $args) { $result = item_store($arr,false,$deliver); $item_id = $result['item_id']; - if($visible && $deliver) + if($visible && $deliver) Zotlabs\Daemon\Master::Summon(array('Notifier', 'wall-new', $item_id)); } @@ -443,9 +444,12 @@ function photo_upload($channel, $observer, $args) { * * @param array $channel * @param array $observer + * @param array $sort_key (optional) default album + * @param array $direction (optional) default asc + * * @return bool|array false if no view_storage permission or an array - * * success (bool) - * * albums (array) + * * \e boolean \b success + * * \e array \b albums */ function photos_albums_list($channel, $observer, $sort_key = 'album', $direction = 'asc') { @@ -455,14 +459,11 @@ function photos_albums_list($channel, $observer, $sort_key = 'album', $direction if(! perm_is_allowed($channel_id, $observer_xchan, 'view_storage')) return false; - $sql_extra = permissions_sql($channel_id,$observer_xchan); $sort_key = dbesc($sort_key); $direction = dbesc($direction); - - $albums = q("SELECT count( distinct resource_id ) as total, album from photo where uid = %d and photo_usage IN ( %d, %d ) $sql_extra group by album order by $sort_key $direction", intval($channel_id), intval(PHOTO_NORMAL), @@ -479,8 +480,8 @@ function photos_albums_list($channel, $observer, $sort_key = 'album', $direction foreach($albums as $k => $album) { $entry = array( 'text' => (($album['album']) ? $album['album'] : '/'), - 'total' => $album['total'], - 'url' => z_root() . '/photos/' . $channel['channel_address'] . '/album/' . bin2hex($album['album']), + 'total' => $album['total'], + 'url' => z_root() . '/photos/' . $channel['channel_address'] . '/album/' . bin2hex($album['album']), 'urlencode' => urlencode($album['album']), 'bin2hex' => bin2hex($album['album']) ); @@ -506,7 +507,7 @@ function photos_album_widget($channelx,$observer,$sortkey = 'album',$direction = '$title' => t('Photo Albums'), '$albums' => $albums['albums'], '$baseurl' => z_root(), - '$upload' => ((perm_is_allowed($channelx['channel_id'],(($observer) ? $observer['xchan_hash'] : ''),'write_storage')) + '$upload' => ((perm_is_allowed($channelx['channel_id'],(($observer) ? $observer['xchan_hash'] : ''),'write_storage')) ? t('Upload New Photos') : '') )); } @@ -533,7 +534,7 @@ function photos_list_photos($channel, $observer, $album = '') { $sql_extra = permissions_sql($channel_id); if($album) - $sql_extra .= " and album = '" . protect_sprintf(dbesc($album)) . "' "; + $sql_extra .= " and album = '" . protect_sprintf(dbesc($album)) . "' "; $ret = array('success' => false); @@ -647,7 +648,7 @@ function photos_create_item($channel, $creator_hash, $photo, $visible = false) { $arr['aid'] = $channel['channel_account_id']; $arr['uid'] = $channel['channel_id']; $arr['mid'] = $mid; - $arr['parent_mid'] = $mid; + $arr['parent_mid'] = $mid; $arr['item_wall'] = 1; $arr['item_origin'] = 1; $arr['item_thread_top'] = 1; @@ -663,9 +664,9 @@ function photos_create_item($channel, $creator_hash, $photo, $visible = false) { $arr['deny_gid'] = $photo['deny_gid']; $arr['plink'] = z_root() . '/channel/' . $channel['channel_address'] . '/?f=&mid=' . $arr['mid']; - - $arr['body'] = '[zrl=' . z_root() . '/photos/' . $channel['channel_address'] . '/image/' . $photo['resource_id'] . ']' - . '[zmg]' . z_root() . '/photo/' . $photo['resource_id'] . '-' . $photo['imgscale'] . '[/zmg]' + + $arr['body'] = '[zrl=' . z_root() . '/photos/' . $channel['channel_address'] . '/image/' . $photo['resource_id'] . ']' + . '[zmg]' . z_root() . '/photo/' . $photo['resource_id'] . '-' . $photo['imgscale'] . '[/zmg]' . '[/zrl]'; $result = item_store($arr); @@ -710,39 +711,39 @@ function gps2Num($coordPart) { } function profile_photo_set_profile_perms($uid, $profileid = 0) { - + $allowcid = ''; if($profileid) { $r = q("SELECT photo, profile_guid, id, is_default, uid - FROM profile WHERE uid = %d and ( profile.id = %d OR profile.profile_guid = '%s') LIMIT 1", + FROM profile WHERE uid = %d and ( profile.id = %d OR profile.profile_guid = '%s') LIMIT 1", intval($uid), - intval($profileid), + intval($profileid), dbesc($profileid) ); - } + } else { logger('Resetting permissions on default-profile-photo for user'.local_channel()); - $r = q("SELECT photo, profile_guid, id, is_default, uid FROM profile - WHERE profile.uid = %d AND is_default = 1 LIMIT 1", - intval($uid) + $r = q("SELECT photo, profile_guid, id, is_default, uid FROM profile + WHERE profile.uid = %d AND is_default = 1 LIMIT 1", + intval($uid) ); //If no profile is given, we update the default profile } if(! $r) return; - + $profile = $r[0]; - if($profile['id'] && $profile['photo']) { + if($profile['id'] && $profile['photo']) { preg_match("@\w*(?=-\d*$)@i", $profile['photo'], $resource_id); $resource_id = $resource_id[0]; - + if (! intval($profile['is_default'])) { - $r0 = q("SELECT channel_hash FROM channel WHERE channel_id = %d LIMIT 1", - intval($uid) + $r0 = q("SELECT channel_hash FROM channel WHERE channel_id = %d LIMIT 1", + intval($uid) ); //Should not be needed in future. Catches old int-profile-ids. - $r1 = q("SELECT abook.abook_xchan FROM abook WHERE abook_profile = '%d' ", + $r1 = q("SELECT abook.abook_xchan FROM abook WHERE abook_profile = '%d' ", intval($profile['id']) ); $r2 = q("SELECT abook.abook_xchan FROM abook WHERE abook_profile = '%s'", @@ -750,27 +751,27 @@ function profile_photo_set_profile_perms($uid, $profileid = 0) { ); $allowcid = "<" . $r0[0]['channel_hash'] . ">"; foreach ($r1 as $entry) { - $allowcid .= "<" . $entry['abook_xchan'] . ">"; + $allowcid .= "<" . $entry['abook_xchan'] . ">"; } foreach ($r2 as $entry) { $allowcid .= "<" . $entry['abook_xchan'] . ">"; } - + q("UPDATE photo SET allow_cid = '%s' WHERE resource_id = '%s' AND uid = %d", dbesc($allowcid), dbesc($resource_id), intval($uid) ); - - } + + } else { //Reset permissions on default profile picture to public q("UPDATE photo SET allow_cid = '' WHERE photo_usage = %d AND uid = %d", intval(PHOTO_PROFILE), intval($uid) - ); + ); } } - + return; } diff --git a/include/plugin.php b/include/plugin.php index 663d17959..80c303b42 100755 --- a/include/plugin.php +++ b/include/plugin.php @@ -41,7 +41,7 @@ function uninstall_plugin($plugin) { $func(); } - q("DELETE FROM `addon` WHERE `aname` = '%s' ", + q("DELETE FROM addon WHERE aname = '%s' ", dbesc($plugin) ); } @@ -66,7 +66,7 @@ function install_plugin($plugin) { $plugin_admin = (function_exists($plugin . '_plugin_admin') ? 1 : 0); - q("INSERT INTO `addon` (`aname`, `installed`, `tstamp`, `plugin_admin`) VALUES ( '%s', 1, %d , %d ) ", + q("INSERT INTO addon (aname, installed, tstamp, plugin_admin) VALUES ( '%s', 1, %d , %d ) ", dbesc($plugin), intval($t), $plugin_admin @@ -126,7 +126,7 @@ function plugin_is_installed($name) { function reload_plugins() { $plugins = get_config('system', 'addon'); if(strlen($plugins)) { - $r = q("SELECT * FROM `addon` WHERE `installed` = 1"); + $r = q("SELECT * FROM addon WHERE installed = 1"); if(count($r)) $installed = $r; else @@ -143,7 +143,7 @@ function reload_plugins() { if(file_exists($fname)) { $t = @filemtime($fname); foreach($installed as $i) { - if(($i['aname'] == $pl) && ($i['tstamp'] != $t)) { + if(($i['aname'] == $pl) && ($i['tstamp'] != $t)) { logger('Reloading plugin: ' . $i['aname']); @include_once($fname); @@ -155,7 +155,7 @@ function reload_plugins() { $func = $pl . '_load'; $func(); } - q("UPDATE `addon` SET `tstamp` = %d WHERE `id` = %d", + q("UPDATE addon SET tstamp = %d WHERE id = %d", intval($t), intval($i['id']) ); @@ -184,7 +184,7 @@ function visible_plugin_list() { * @return mixed|bool */ function register_hook($hook, $file, $function, $priority = 0) { - $r = q("SELECT * FROM `hook` WHERE `hook` = '%s' AND `file` = '%s' AND `fn` = '%s' LIMIT 1", + $r = q("SELECT * FROM hook WHERE hook = '%s' AND file = '%s' AND fn = '%s' LIMIT 1", dbesc($hook), dbesc($file), dbesc($function) @@ -192,7 +192,7 @@ function register_hook($hook, $file, $function, $priority = 0) { if($r) return true; - $r = q("INSERT INTO `hook` (`hook`, `file`, `fn`, `priority`) VALUES ( '%s', '%s', '%s', '%s' )", + $r = q("INSERT INTO hook (hook, file, fn, priority) VALUES ( '%s', '%s', '%s', '%s' )", dbesc($hook), dbesc($file), dbesc($function), @@ -205,14 +205,14 @@ function register_hook($hook, $file, $function, $priority = 0) { /** * @brief unregisters a hook. - * + * * @param string $hook the name of the hook * @param string $file the name of the file that hooks into * @param string $function the name of the function that the hook called * @return array */ function unregister_hook($hook, $file, $function) { - $r = q("DELETE FROM hook WHERE hook = '%s' AND `file` = '%s' AND `fn` = '%s'", + $r = q("DELETE FROM hook WHERE hook = '%s' AND file = '%s' AND fn = '%s'", dbesc($hook), dbesc($file), dbesc($function) @@ -224,7 +224,7 @@ function unregister_hook($hook, $file, $function) { // // It might not be obvious but themes can manually add hooks to the App::$hooks -// array in their theme_init() and use this to customise the app behaviour. +// array in their theme_init() and use this to customise the app behaviour. // UPDATE: use insert_hook($hookname,$function_name) to do this // @@ -248,20 +248,22 @@ function load_hooks() { /** * @brief Inserts a hook into a page request. * - * Insert a short-lived hook into the running page request. - * Hooks are normally persistent so that they can be called + * Insert a short-lived hook into the running page request. + * Hooks are normally persistent so that they can be called * across asynchronous processes such as delivery and poll * processes. * * insert_hook lets you attach a hook callback immediately * which will not persist beyond the life of this page request - * or the current process. + * or the current process. * * @param string $hook * name of hook to attach callback * @param string $fn * function name of callback handler - */ + * @param int $version (optional) default 0 + * @param int $priority (optional) default 0 + */ function insert_hook($hook, $fn, $version = 0, $priority = 0) { if(! is_array(App::$hooks)) @@ -293,7 +295,7 @@ function call_hooks($name, &$data = null) { $hook[1] = unserialize($hook[1]); } elseif(strpos($hook[1],'::')) { - // We shouldn't need to do this, but it appears that PHP + // We shouldn't need to do this, but it appears that PHP // isn't able to directly execute a string variable with a class // method in the manner we are attempting it, so we'll // turn it into an array. @@ -306,10 +308,10 @@ function call_hooks($name, &$data = null) { $func($data); else $func($a, $data); - } + } else { - // Don't do any DB write calls if we're currently logging a possibly failed DB call. + // Don't do any DB write calls if we're currently logging a possibly failed DB call. if(! DBA::$logging) { // The hook should be removed so we don't process it. q("DELETE FROM hook WHERE hook = '%s' AND file = '%s' AND fn = '%s'", @@ -370,7 +372,7 @@ function get_plugin_info($plugin){ } else { $info[$k][] = array('name' => $v); } - } + } else { $info[$k] = $v; } @@ -407,8 +409,8 @@ function check_plugin_versions($info) { if(array_key_exists('serverroles',$info)) { $role = \Zotlabs\Lib\System::get_server_role(); if(! ( - stristr($info['serverroles'],'*') - || stristr($info['serverroles'],'any') + stristr($info['serverroles'],'*') + || stristr($info['serverroles'],'any') || stristr($info['serverroles'],$role))) { logger('serverrole limit: ' . $info['name'],LOGGER_NORMAL,LOG_WARNING); return false; @@ -425,8 +427,15 @@ function check_plugin_versions($info) { $test = trim($test); if(! $test) continue; + if(strpos($test,'.')) { + $conf = explode('.',$test); + if(get_config(trim($conf[0]),trim($conf[1]))) + return true; + else + return false; + } if(! in_array($test,App::$plugins)) - $found = false; + $found = false; } } if(! $found) @@ -583,11 +592,11 @@ function format_css_if_exists($source) { /* * This basically calculates the baseurl. We have other functions to do that, but - * there was an issue with script paths and mixed-content whose details are arcane - * and perhaps lost in the message archives. The short answer is that we're ignoring - * the URL which we are "supposed" to use, and generating script paths relative to + * there was an issue with script paths and mixed-content whose details are arcane + * and perhaps lost in the message archives. The short answer is that we're ignoring + * the URL which we are "supposed" to use, and generating script paths relative to * the URL which we are currently using; in order to ensure they are found and aren't - * blocked due to mixed content issues. + * blocked due to mixed content issues. */ function script_path() { @@ -599,7 +608,7 @@ function script_path() { $scheme = 'https'; else $scheme = 'http'; - + // Some proxy setups may require using http_host if(intval(App::$config['system']['script_path_use_http_host'])) @@ -631,7 +640,7 @@ function head_remove_js($src, $priority = 0) { } // We should probably try to register main.js with a high priority, but currently we handle it -// separately and put it at the end of the html head block in case any other javascript is +// separately and put it at the end of the html head block in case any other javascript is // added outside the head_add_js construct. function head_get_js() { @@ -640,7 +649,7 @@ function head_get_js() { if(App::$js_sources) { ksort(App::$js_sources,SORT_NUMERIC); foreach(App::$js_sources as $sources) { - if(count($sources)) { + if(count($sources)) { foreach($sources as $source) { if($src === 'main.js') continue; @@ -655,7 +664,7 @@ function head_get_js() { function head_get_main_js() { $str = ''; $sources = array('main.js'); - if(count($sources)) + if(count($sources)) foreach($sources as $source) $str .= format_js_if_exists($source,true); return $str; diff --git a/include/queue_fn.php b/include/queue_fn.php index 676620e2f..0950faf85 100644 --- a/include/queue_fn.php +++ b/include/queue_fn.php @@ -93,7 +93,7 @@ function queue_deliver($outq, $immediate = false) { // your site has existed. Since we don't know for sure what these sites are, // call them unknown - q("insert into site (site_url, site_update, site_dead, site_type) values ('%s','%s',0,%d) ", + q("insert into site (site_url, site_update, site_dead, site_type, site_crypto) values ('%s','%s',0,%d,'') ", dbesc($base), dbesc(datetime_convert()), intval(($outq['outq_driver'] === 'post') ? SITE_TYPE_NOTZOT : SITE_TYPE_UNKNOWN) @@ -118,7 +118,7 @@ function queue_deliver($outq, $immediate = false) { dbesc($base) ); } - q("update dreport set dreport_result = '%s', dreport_time = '%s' where dreport_queue = '%s' limit 1", + q("update dreport set dreport_result = '%s', dreport_time = '%s' where dreport_queue = '%s'", dbesc('accepted for delivery'), dbesc(datetime_convert()), dbesc($outq['outq_hash']) diff --git a/include/security.php b/include/security.php index 9b508d339..2f5de54c7 100644 --- a/include/security.php +++ b/include/security.php @@ -2,11 +2,12 @@ /** * @file include/security.php * - * Some security related functions. + * @brief Some security related functions. */ /** * @param int $user_record The account_id + * @param array $channel * @param bool $login_initial default false * @param bool $interactive default false * @param bool $return @@ -27,8 +28,8 @@ function authenticate_success($user_record, $channel = null, $login_initial = fa $uid_to_load = $channel['channel_id']; if(! $uid_to_load) { - $uid_to_load = (((x($_SESSION,'uid')) && (intval($_SESSION['uid']))) - ? intval($_SESSION['uid']) + $uid_to_load = (((x($_SESSION,'uid')) && (intval($_SESSION['uid']))) + ? intval($_SESSION['uid']) : intval(App::$account['account_default_channel']) ); } @@ -89,21 +90,28 @@ function authenticate_success($user_record, $channel = null, $login_initial = fa function atoken_login($atoken) { if(! $atoken) return false; + $_SESSION['authenticated'] = 1; $_SESSION['visitor_id'] = $atoken['xchan_hash']; $_SESSION['atoken'] = $atoken['atoken_id']; \App::set_observer($atoken); + return true; } - +/** + * @brief + * + * @param array $atoken + * @return array|null + */ function atoken_xchan($atoken) { $c = channelx_by_n($atoken['atoken_uid']); if($c) { return [ - 'atoken_id' => $atoken['atoken_id'], + 'atoken_id' => $atoken['atoken_id'], 'xchan_hash' => substr($c['channel_hash'],0,16) . '.' . $atoken['atoken_name'], 'xchan_name' => $atoken['atoken_name'], 'xchan_addr' => t('guest:') . $atoken['atoken_name'] . '@' . \App::get_hostname(), @@ -114,9 +122,9 @@ function atoken_xchan($atoken) { 'xchan_photo_l' => get_default_profile_photo(300), 'xchan_photo_m' => get_default_profile_photo(80), 'xchan_photo_s' => get_default_profile_photo(48) - ]; } + return null; } @@ -133,7 +141,7 @@ function atoken_delete($atoken_id) { ); if(! $c) return; - + $atoken_xchan = substr($c[0]['channel_hash'],0,16) . '.' . $r[0]['atoken_name']; q("delete from atoken where atoken_id = %d", @@ -145,12 +153,16 @@ function atoken_delete($atoken_id) { ); } - - -// in order for atoken logins to create content (such as posts) they need a stored xchan. -// we'll create one on the first atoken_login; it can't really ever go away but perhaps -// @fixme we should set xchan_deleted if it's expired or removed - +/** + * @brief + * + * In order for atoken logins to create content (such as posts) they need a stored xchan. + * we'll create one on the first atoken_login; it can't really ever go away but perhaps + * @fixme we should set xchan_deleted if it's expired or removed + * + * @param array $xchan + * @return void|boolean + */ function atoken_create_xchan($xchan) { $r = q("select xchan_hash from xchan where xchan_hash = '%s'", @@ -159,7 +171,7 @@ function atoken_create_xchan($xchan) { if($r) return; - $r = q("insert into xchan ( xchan_hash, xchan_guid, xchan_addr, xchan_url, xchan_name, xchan_network, xchan_photo_mimetype, xchan_photo_l, xchan_photo_m, xchan_photo_s ) + $r = q("insert into xchan ( xchan_hash, xchan_guid, xchan_addr, xchan_url, xchan_name, xchan_network, xchan_photo_mimetype, xchan_photo_l, xchan_photo_m, xchan_photo_s ) values ('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s') ", dbesc($xchan['xchan_hash']), dbesc($xchan['xchan_hash']), @@ -202,12 +214,11 @@ function atoken_abook($uid,$xchan_hash) { } return false; - } function pseudo_abook($xchan) { - if(! $xchan) + if(! $xchan) return false; // set abook_pseudo to flag that we aren't really connected. @@ -216,8 +227,8 @@ function pseudo_abook($xchan) { $xchan['abook_blocked'] = 0; $xchan['abook_ignored'] = 0; $xchan['abook_pending'] = 0; + return $xchan; - } @@ -228,7 +239,6 @@ function pseudo_abook($xchan) { * * @return bool|array false or channel record of the new channel */ - function change_channel($change_channel) { $ret = false; @@ -260,7 +270,7 @@ function change_channel($change_channel) { date_default_timezone_set($r[0]['channel_timezone']); $ret = $r[0]; } - $x = q("select * from xchan where xchan_hash = '%s' limit 1", + $x = q("select * from xchan where xchan_hash = '%s' limit 1", dbesc($hash) ); if($x) { @@ -275,7 +285,6 @@ function change_channel($change_channel) { $arr = [ 'channel_id' => $change_channel, 'chanx' => $ret ]; call_hooks('change_channel', $arr); - } return $ret; @@ -285,11 +294,11 @@ function change_channel($change_channel) { * @brief Creates an additional SQL where statement to check permissions. * * @param int $owner_id - * @param bool $remote_observer - if unset use current observer + * @param bool $remote_observer (optional) use current observer if unset + * @param $table (optional) * * @return string additional SQL where statement */ - function permissions_sql($owner_id, $remote_observer = null, $table = '') { $local_channel = local_channel(); @@ -303,11 +312,10 @@ function permissions_sql($owner_id, $remote_observer = null, $table = '') { if($table) $table .= '.'; - - $sql = " AND {$table}allow_cid = '' - AND {$table}allow_gid = '' - AND {$table}deny_cid = '' - AND {$table}deny_gid = '' + $sql = " AND {$table}allow_cid = '' + AND {$table}allow_gid = '' + AND {$table}deny_cid = '' + AND {$table}deny_gid = '' "; /** @@ -319,7 +327,7 @@ function permissions_sql($owner_id, $remote_observer = null, $table = '') { } /** - * Authenticated visitor. Unless pre-verified, + * Authenticated visitor. Unless pre-verified, * check that the contact belongs to this $owner_id * and load the groups the visitor belongs to. * If pre-verified, the caller is expected to have already @@ -358,7 +366,7 @@ function permissions_sql($owner_id, $remote_observer = null, $table = '') { * @brief Creates an addiontal SQL where statement to check permissions for an item. * * @param int $owner_id - * @param bool $remote_observer, use current observer if unset + * @param bool $remote_observer (optional) use current observer if unset * * @return string additional SQL where statement */ @@ -379,7 +387,7 @@ function item_permissions_sql($owner_id, $remote_observer = null) { */ if(($local_channel) && ($local_channel == $owner_id)) { - $sql = ''; + $sql = ''; } /** @@ -425,7 +433,7 @@ function item_permissions_sql($owner_id, $remote_observer = null) { /** * Remote visitors also need to be checked against the public_scope parameter if item_private is set. * This function checks the various permutations of that field for any which apply to this observer. - * + * */ @@ -448,9 +456,9 @@ function scopes_sql($uid,$observer) { $str .= " or public_policy = 'contacts' ) "; return $str; } - - - + + + @@ -500,7 +508,7 @@ function public_permissions_sql($observer_hash) { * If the new page contains by any chance external elements, then the used security token is exposed by the referrer. * Actually, important actions should not be triggered by Links / GET-Requests at all, but somethimes they still are, * so this mechanism brings in some damage control (the attacker would be able to forge a request to a form of this type, but not to forms of other types). - */ + */ function get_form_security_token($typename = '') { $timestamp = time(); @@ -549,7 +557,7 @@ function check_form_security_token_ForbiddenOnErr($typename = '', $formname = 'f function init_groups_visitor($contact_id) { $groups = array(); - $r = q("SELECT hash FROM `groups` left join group_member on groups.id = group_member.gid WHERE xchan = '%s' ", + $r = q("SELECT hash FROM groups left join group_member on groups.id = group_member.gid WHERE xchan = '%s' ", dbesc($contact_id) ); if($r) { @@ -561,13 +569,13 @@ function init_groups_visitor($contact_id) { -// This is used to determine which uid have posts which are visible to the logged in user (from the API) for the +// This is used to determine which uid have posts which are visible to the logged in user (from the API) for the // public_timeline, and we can use this in a community page by making -// $perms = (PERMS_NETWORK|PERMS_PUBLIC) unless logged in. +// $perms = (PERMS_NETWORK|PERMS_PUBLIC) unless logged in. // Collect uids of everybody on this site who has opened their posts to everybody on this site (or greater visibility) // We always include yourself if logged in because you can always see your own posts // resolving granular permissions for the observer against every person and every post on the site -// will likely be too expensive. +// will likely be too expensive. // Returns a string list of comma separated channel_ids suitable for direct inclusion in a SQL query function stream_perms_api_uids($perms = NULL, $limit = 0, $rand = 0 ) { diff --git a/include/selectors.php b/include/selectors.php index d7d070d31..ab049fff6 100644 --- a/include/selectors.php +++ b/include/selectors.php @@ -7,7 +7,7 @@ function contact_profile_assign($current) { $o .= "'; @@ -1502,7 +1504,6 @@ function widget_tasklist($arr) { function widget_helpindex($arr) { $o .= '
      '; - $o .= '

      ' . t('Documentation') . '

      '; $level_0 = get_help_content('sitetoc'); if(! $level_0) @@ -1516,7 +1517,7 @@ function widget_helpindex($arr) { if(argc() > 2) { $path = ''; for($x = 1; $x < argc(); $x ++) { - $path .= argv($x) . '/'; + $path .= argv($x) . '/'; $y = get_help_content($path . 'sitetoc'); if(! $y) $y = get_help_content($path . 'toc'); @@ -1590,7 +1591,7 @@ function widget_admin($arr) { call_hooks('admin_aside',$arr); $o .= replace_macros(get_markup_template('admin_aside.tpl'), array( - '$admin' => $aside, + '$admin' => $aside, '$admtxt' => t('Admin'), '$plugadmtxt' => t('Plugin Features'), '$plugins' => $plugins, @@ -1620,7 +1621,7 @@ function widget_album($args) { 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 */ @@ -1640,7 +1641,7 @@ function widget_album($args) { $order = 'DESC'; $r = q("SELECT p.resource_id, p.id, p.filename, p.mimetype, p.imgscale, p.description, p.created FROM photo p INNER JOIN - (SELECT resource_id, max(imgscale) imgscale FROM photo WHERE uid = %d AND album = '%s' AND imgscale <= 4 AND photo_usage IN ( %d, %d ) $sql_extra GROUP BY resource_id) ph + (SELECT resource_id, max(imgscale) imgscale FROM photo WHERE uid = %d AND album = '%s' AND imgscale <= 4 AND photo_usage IN ( %d, %d ) $sql_extra GROUP BY resource_id) ph ON (p.resource_id = ph.resource_id AND p.imgscale = ph.imgscale) ORDER BY created $order ", intval($owner_uid), @@ -1648,7 +1649,7 @@ function widget_album($args) { intval(PHOTO_NORMAL), intval(PHOTO_PROFILE) ); - + //edit album name $album_edit = null; @@ -1661,7 +1662,7 @@ function widget_album($args) { $twist = 'rotleft'; else $twist = 'rotright'; - + $ext = $phototypes[$rr['mimetype']]; $imgalt_e = $rr['filename']; diff --git a/include/wiki.php b/include/wiki.php index d52308b08..332d4efe0 100644 --- a/include/wiki.php +++ b/include/wiki.php @@ -13,11 +13,15 @@ function wiki_list($channel, $observer_hash) { dbesc(WIKI_ITEM_RESOURCE_TYPE), intval($channel['channel_id']) ); - foreach($wikis as &$w) { - $w['rawName'] = get_iconfig($w, 'wiki', 'rawName'); - $w['htmlName'] = get_iconfig($w, 'wiki', 'htmlName'); - $w['urlName'] = get_iconfig($w, 'wiki', 'urlName'); - $w['path'] = get_iconfig($w, 'wiki', 'path'); + if($wikis) { + foreach($wikis as &$w) { + $w['rawName'] = get_iconfig($w, 'wiki', 'rawName'); + $w['htmlName'] = get_iconfig($w, 'wiki', 'htmlName'); + $w['urlName'] = get_iconfig($w, 'wiki', 'urlName'); + $w['path'] = get_iconfig($w, 'wiki', 'path'); + $w['mimeType'] = get_iconfig($w, 'wiki', 'mimeType'); + $w['lock'] = (($w['allow_cid'] || $w['allow_gid'] || $w['deny_cid'] || $w['deny_gid']) ? true : false); + } } // TODO: query db for wikis the observer can access. Return with two lists, for read and write access return array('wikis' => $wikis); @@ -29,14 +33,30 @@ function wiki_page_list($resource_id) { if (!$w['path']) { return array('pages' => null, 'wiki' => null); } - $pages = array(); + + $pages[] = [ + 'resource_id' => '', + 'title' => 'Home', + 'url' => 'Home', + 'link_id' => 'id_wiki_home_0' + ]; + if (is_dir($w['path']) === true) { $files = array_diff(scandir($w['path']), array('.', '..', '.git')); // TODO: Check that the files are all text files - + $i = 1; foreach($files as $file) { - // strip the .md file extension and unwrap URL encoding to leave HTML encoded name - $pages[] = array('title' => urldecode(substr($file, 0, -3)), 'url' => urlencode(substr($file, 0, -3))); + // strip the file extension and unwrap URL encoding to leave HTML encoded name + $title = substr($file, 0, strrpos($file,'.')); + if(urldecode($title) !== 'Home') { + $pages[] = [ + 'resource_id' => $resource_id, + 'title' => urldecode($title), + 'url' => $title, + 'link_id' => 'id_' . substr($resource_id, 0, 10) . '_' . $i + ]; + $i++; + } } } @@ -73,7 +93,7 @@ function wiki_create_wiki($channel, $observer_hash, $wiki, $acl) { $resource_id = random_string(); $r = q("SELECT mid FROM item WHERE resource_id = '%s' AND resource_type = '%s' AND uid = %d LIMIT 1", dbesc($resource_id), - dbesc(WIKI_ITEM_RESOURCE_TYPE), + dbesc(WIKI_ITEM_RESOURCE_TYPE), intval($channel['channel_id']) ); if (count($r)) @@ -121,12 +141,15 @@ function wiki_create_wiki($channel, $observer_hash, $wiki, $acl) { if (!set_iconfig($arr, 'wiki', 'urlName', $wiki['urlName'], true)) { return array('item' => null, 'success' => false); } + if (!set_iconfig($arr, 'wiki', 'mimeType', $wiki['mimeType'], true)) { + return array('item' => null, 'success' => false); + } $post = item_store($arr); $item_id = $post['item_id']; if ($item_id) { - proc_run('php', "include/notifier.php", "activity", $item_id); - return array('item' => $arr, 'success' => true); + \Zotlabs\Daemon\Master::Summon(array('Notifier', 'activity', $item_id)); + return array('item' => $post['item'], 'success' => true); } else { return array('item' => null, 'success' => false); } @@ -150,8 +173,8 @@ function wiki_delete_wiki($resource_id) { function wiki_get_wiki($resource_id) { $item = q("SELECT * FROM item WHERE resource_type = '%s' AND resource_id = '%s' AND item_deleted = 0 limit 1", - dbesc(WIKI_ITEM_RESOURCE_TYPE), - dbesc($resource_id) + dbesc(WIKI_ITEM_RESOURCE_TYPE), + dbesc($resource_id) ); if (!$item) { return array('wiki' => null, 'path' => null); @@ -161,17 +184,21 @@ function wiki_get_wiki($resource_id) { $rawName = get_iconfig($w, 'wiki', 'rawName'); $htmlName = get_iconfig($w, 'wiki', 'htmlName'); $urlName = get_iconfig($w, 'wiki', 'urlName'); + $mimeType = get_iconfig($w, 'wiki', 'mimeType'); + $path = get_iconfig($w, 'wiki', 'path'); if (!realpath(__DIR__ . '/../' . $path)) { return array('wiki' => null, 'path' => null); } // Path to wiki exists $abs_path = realpath(__DIR__ . '/../' . $path); - return array( 'wiki' => $w, - 'path' => $abs_path, - 'rawName' => $rawName, - 'htmlName' => $htmlName, - 'urlName' => $urlName + return array( + 'wiki' => $w, + 'path' => $abs_path, + 'rawName' => $rawName, + 'htmlName' => $htmlName, + 'urlName' => $urlName, + 'mimeType' => $mimeType ); } } @@ -192,22 +219,23 @@ function wiki_exists_by_name($uid, $urlName) { function wiki_get_permissions($resource_id, $owner_id, $observer_hash) { // TODO: For now, only the owner can edit $sql_extra = item_permissions_sql($owner_id, $observer_hash); - $r = q("SELECT * FROM item WHERE resource_type = '%s' AND resource_id = '%s' $sql_extra LIMIT 1", - dbesc(WIKI_ITEM_RESOURCE_TYPE), - dbesc($resource_id) - ); - + + if(local_channel() && local_channel == $owner_id) { + return [ 'read' => true, 'write' => true, 'success' => true ]; + } + + $r = q("SELECT * FROM item WHERE uid = %d and resource_type = '%s' AND resource_id = '%s' $sql_extra LIMIT 1", + intval($owner_id), + dbesc(WIKI_ITEM_RESOURCE_TYPE), + dbesc($resource_id) + ); + if (!$r) { return array('read' => false, 'write' => false, 'success' => true); } else { - $perms = get_all_perms($owner_id, $observer_hash); // TODO: Create a new permission setting for wiki analogous to webpages. Until // then, use webpage permissions - if (!$perms['write_pages']) { - $write = false; - } else { - $write = true; - } + $write = perm_is_allowed($owner_id, $observer_hash,'write_pages'); return array('read' => true, 'write' => $write, 'success' => true); } } @@ -217,7 +245,8 @@ function wiki_create_page($name, $resource_id) { if (!$w['path']) { return array('page' => null, 'wiki' => null, 'message' => 'Wiki not found.', 'success' => false); } - $page = array('rawName' => $name, 'htmlName' => escape_tags($name), 'urlName' => urlencode(escape_tags($name)), 'fileName' => urlencode(escape_tags($name)).'.md'); + + $page = array('rawName' => $name, 'htmlName' => escape_tags($name), 'urlName' => urlencode(escape_tags($name)), 'fileName' => urlencode(escape_tags($name)) . wiki_get_file_ext($w)); $page_path = $w['path'] . '/' . $page['fileName']; if (is_file($page_path)) { return array('page' => null, 'wiki' => null, 'message' => 'Page already exists.', 'success' => false); @@ -239,11 +268,11 @@ function wiki_rename_page($arr) { if (!$w['path']) { return array('message' => 'Wiki not found.', 'success' => false); } - $page_path_old = $w['path'].'/'.$pageUrlName.'.md'; + $page_path_old = $w['path'] . '/' . $pageUrlName . wiki_get_file_ext($w); if (!is_readable($page_path_old) === true) { return array('message' => 'Cannot read wiki page: ' . $page_path_old, 'success' => false); } - $page = array('rawName' => $pageNewName, 'htmlName' => escape_tags($pageNewName), 'urlName' => urlencode(escape_tags($pageNewName)), 'fileName' => urlencode(escape_tags($pageNewName)).'.md'); + $page = array('rawName' => $pageNewName, 'htmlName' => escape_tags($pageNewName), 'urlName' => urlencode(escape_tags($pageNewName)), 'fileName' => urlencode(escape_tags($pageNewName)) . wiki_get_file_ext($w)); $page_path_new = $w['path'] . '/' . $page['fileName'] ; if (is_file($page_path_new)) { return array('message' => 'Page already exists.', 'success' => false); @@ -264,7 +293,7 @@ function wiki_get_page_content($arr) { if (!$w['path']) { return array('content' => null, 'message' => 'Error reading wiki', 'success' => false); } - $page_path = $w['path'].'/'.$pageUrlName.'.md'; + $page_path = $w['path'] . '/' . $pageUrlName . wiki_get_file_ext($w); if (is_readable($page_path) === true) { if(filesize($page_path) === 0) { $content = ''; @@ -275,7 +304,7 @@ function wiki_get_page_content($arr) { } } // TODO: Check that the files are all text files - return array('content' => json_encode($content), 'message' => '', 'success' => true); + return array('content' => json_encode($content), 'mimeType' => $w['mimeType'], 'message' => '', 'success' => true); } } @@ -286,7 +315,7 @@ function wiki_page_history($arr) { if (!$w['path']) { return array('history' => null, 'message' => 'Error reading wiki', 'success' => false); } - $page_path = $w['path'].'/'.$pageUrlName.'.md'; + $page_path = $w['path'] . '/' . $pageUrlName . wiki_get_file_ext($w); if (!is_readable($page_path) === true) { return array('history' => null, 'message' => 'Cannot read wiki page: ' . $page_path, 'success' => false); } @@ -311,12 +340,14 @@ function wiki_save_page($arr) { if (!$w['path']) { return array('message' => 'Error reading wiki', 'success' => false); } - $page_path = $w['path'].'/'.$pageUrlName.'.md'; + + $fileName = $pageUrlName . wiki_get_file_ext($w); + $page_path = $w['path'] . '/' . $fileName; if (is_writable($page_path) === true) { if(!file_put_contents($page_path, $content)) { return array('message' => 'Error writing to page file', 'success' => false); } - return array('message' => '', 'success' => true); + return array('message' => '', 'filename' => $filename, 'success' => true); } else { return array('message' => 'Page file not writable', 'success' => false); } @@ -329,7 +360,7 @@ function wiki_delete_page($arr) { if (!$w['path']) { return array('message' => 'Error reading wiki', 'success' => false); } - $page_path = $w['path'].'/'.$pageUrlName.'.md'; + $page_path = $w['path'] . '/' . $pageUrlName . wiki_get_file_ext($w); if (is_writable($page_path) === true) { if(!unlink($page_path)) { return array('message' => 'Error deleting page file', 'success' => false); @@ -351,7 +382,7 @@ function wiki_revert_page($arr) { if (!$w['path']) { return array('content' => $content, 'message' => 'Error reading wiki', 'success' => false); } - $page_path = $w['path'].'/'.$pageUrlName.'.md'; + $page_path = $w['path'] . '/' . $pageUrlName . wiki_get_file_ext($w); if (is_writable($page_path) === true) { $reponame = ((array_key_exists('title', $w['wiki'])) ? urlencode($w['wiki']['title']) : 'repo'); @@ -363,7 +394,7 @@ function wiki_revert_page($arr) { try { $git->setIdentity($observer['xchan_name'], $observer['xchan_addr']); foreach ($git->git->tree($commitHash) as $object) { - if ($object['type'] == 'blob' && $object['file'] === $pageUrlName.'.md' ) { + if ($object['type'] == 'blob' && $object['file'] === $pageUrlName . wiki_get_file_ext($w)) { $content = $git->git->cat->blob($object['hash']); } } @@ -388,7 +419,7 @@ function wiki_compare_page($arr) { if (!$w['path']) { return array('message' => 'Error reading wiki', 'success' => false); } - $page_path = $w['path'].'/'.$pageUrlName.'.md'; + $page_path = $w['path'] . '/' . $pageUrlName . wiki_get_file_ext($w); if (is_readable($page_path) === true) { $reponame = ((array_key_exists('title', $w['wiki'])) ? urlencode($w['wiki']['title']) : 'repo'); if($reponame === '') { @@ -398,12 +429,12 @@ function wiki_compare_page($arr) { $compareContent = $currentContent = ''; try { foreach ($git->git->tree($currentCommit) as $object) { - if ($object['type'] == 'blob' && $object['file'] === $pageUrlName.'.md' ) { + if ($object['type'] == 'blob' && $object['file'] === $pageUrlName . wiki_get_file_ext($w)) { $currentContent = $git->git->cat->blob($object['hash']); } } foreach ($git->git->tree($compareCommit) as $object) { - if ($object['type'] == 'blob' && $object['file'] === $pageUrlName.'.md' ) { + if ($object['type'] == 'blob' && $object['file'] === $pageUrlName . wiki_get_file_ext($w)) { $compareContent = $git->git->cat->blob($object['hash']); } } @@ -466,15 +497,6 @@ function wiki_git_commit($arr) { } } -function wiki_generate_page_filename($name) { - $file = urlencode(escape_tags($name)); - if( $file === '') { - return null; - } else { - return $file . '.md'; - } -} - function wiki_convert_links($s, $wikiURL) { if (strpos($s,'[[') !== false) { @@ -502,7 +524,6 @@ function wiki_convert_links($s, $wikiURL) { * @return string */ function wiki_generate_toc($s) { - if (strpos($s,'[toc]') !== false) { //$toc_md = wiki_toc($s); // Generate Markdown-formatted list prior to HTML render $toc_md = '
        '; // use the available jQuery plugin http://ndabas.github.io/toc/ @@ -544,6 +565,13 @@ function wiki_bbcode($s) { return $s; } +function wiki_get_file_ext($arr) { + if($arr['mimeType'] == 'text/bbcode') + return '.bb'; + else + return '.md'; +} + // This function is derived from // http://stackoverflow.com/questions/32068537/generate-table-of-contents-from-markdown-in-php function wiki_toc($content) { @@ -552,36 +580,36 @@ function wiki_toc($content) { // look for markdown TOC items preg_match_all( - '/^(?:=|-|#).*$/m', - $source, - $matches, - PREG_PATTERN_ORDER | PREG_OFFSET_CAPTURE + '/^(?:=|-|#).*$/m', + $source, + $matches, + PREG_PATTERN_ORDER | PREG_OFFSET_CAPTURE ); // preprocess: iterate matched lines to create an array of items // where each item is an array(level, text) $file_size = strlen($source); foreach ($matches[0] as $item) { - $found_mark = substr($item[0], 0, 1); - if ($found_mark == '#') { - // text is the found item - $item_text = $item[0]; - $item_level = strrpos($item_text, '#') + 1; - $item_text = substr($item_text, $item_level); - } else { - // text is the previous line (empty if
        ) - $item_offset = $item[1]; - $prev_line_offset = strrpos($source, "\n", -($file_size - $item_offset + 2)); - $item_text = - substr($source, $prev_line_offset, $item_offset - $prev_line_offset - 1); - $item_text = trim($item_text); - $item_level = $found_mark == '=' ? 1 : 2; - } - if (!trim($item_text) OR strpos($item_text, '|') !== FALSE) { - // item is an horizontal separator or a table header, don't mind - continue; - } - $raw_toc[] = ['level' => $item_level, 'text' => trim($item_text)]; + $found_mark = substr($item[0], 0, 1); + if ($found_mark == '#') { + // text is the found item + $item_text = $item[0]; + $item_level = strrpos($item_text, '#') + 1; + $item_text = substr($item_text, $item_level); + } else { + // text is the previous line (empty if
        ) + $item_offset = $item[1]; + $prev_line_offset = strrpos($source, "\n", -($file_size - $item_offset + 2)); + $item_text = + substr($source, $prev_line_offset, $item_offset - $prev_line_offset - 1); + $item_text = trim($item_text); + $item_level = $found_mark == '=' ? 1 : 2; + } + if (!trim($item_text) OR strpos($item_text, '|') !== FALSE) { + // item is an horizontal separator or a table header, don't mind + continue; + } + $raw_toc[] = ['level' => $item_level, 'text' => trim($item_text)]; } $o = ''; foreach($raw_toc as $t) { diff --git a/include/zid.php b/include/zid.php new file mode 100644 index 000000000..ac6433e4c --- /dev/null +++ b/include/zid.php @@ -0,0 +1,232 @@ += 3) ? '' : '/') . $achar . 'zid=' . urlencode($myaddr); + else + $zurl = $s; + + // put fragment at the end + + if($fragment) + $zurl .= '#' . $fragment; + + $arr = array('url' => $s, 'zid' => urlencode($myaddr), 'result' => $zurl); + call_hooks('zid', $arr); + + return $arr['result']; +} + + +function strip_zids($s) { + return preg_replace('/[\?&]zid=(.*?)(&|$)/ism','$2',$s); +} + +function strip_zats($s) { + return preg_replace('/[\?&]zat=(.*?)(&|$)/ism','$2',$s); +} + + +/** + * zidify_callback() and zidify_links() work together to turn any HTML a tags with class="zrl" into zid links + * These will typically be generated by a bbcode '[zrl]' tag. This is done inside prepare_text() rather than bbcode() + * because the latter is used for general purpose conversions and the former is used only when preparing text for + * immediate display. + * + * Issues: Currently the order of HTML parameters in the text is somewhat rigid and inflexible. + * We assume it looks like \ and will not work if zrl and href appear in a different order. + * + * @param array $match + * @return string + */ +function zidify_callback($match) { + $is_zid = ((feature_enabled(local_channel(),'sendzid')) || (strpos($match[1],'zrl')) ? true : false); + $replace = ' $type, - 'sender' => array( + 'sender' => [ 'guid' => $channel['channel_guid'], 'guid_sig' => base64url_encode(rsa_sign($channel['channel_guid'],$channel['channel_prvkey'])), 'url' => z_root(), 'url_sig' => base64url_encode(rsa_sign(z_root(),$channel['channel_prvkey'])), 'sitekey' => get_config('system','pubkey') - ), + ], 'callback' => '/post', - 'version' => ZOT_REVISION - ); + 'version' => ZOT_REVISION, + 'encryption' => crypto_methods() + ]; if ($recipients) { for ($x = 0; $x < count($recipients); $x ++) @@ -146,13 +147,48 @@ function zot_build_packet($channel, $type = 'notify', $recipients = null, $remot // Hush-hush ultra top-secret mode - if ($remote_key) { - $data = crypto_encapsulate(json_encode($data),$remote_key); + if($remote_key) { + $algorithm = zot_best_algorithm($methods); + $data = crypto_encapsulate(json_encode($data),$remote_key, $algorithm); } return json_encode($data); } +/** + * @brief choose best encryption function from those available on both sites + * + * @param string $methods + * comma separated list of encryption methods + * @return string first match from our site method preferences crypto_methods() array + * of a method which is common to both sites; or 'aes256cbc' if no matches are found. + */ + +function zot_best_algorithm($methods) { + + if(\Zotlabs\Lib\System::get_server_role() !== 'pro') + return 'aes256cbc'; + + if($methods) { + $x = explode(',',$methods); + if($x) { + $y = crypto_methods(); + if($y) { + foreach($y as $yv) { + $yv = trim($yv); + if(in_array($yv,$x)) { + return($yv); + } + } + } + } + } + + return 'aes256cbc'; +} + + + /** * @brief * @@ -166,100 +202,12 @@ function zot_zot($url, $data) { return z_post_url($url, array('data' => $data)); } -/** - * @brief Look up information about channel. - * - * @param string $webbie - * does not have to be host qualified e.g. 'foo' is treated as 'foo\@thishub' - * @param array $channel - * (optional), if supplied permissions will be enumerated specifically for $channel - * @param boolean $autofallback - * fallback/failover to http if https connection cannot be established. Default is true. - * - * @return array see z_post_url() and \ref mod/zfinger.php - */ -function zot_finger($webbie, $channel = null, $autofallback = true) { - - if (strpos($webbie,'@') === false) { - $address = $webbie; - $host = App::get_hostname(); - } else { - $address = substr($webbie,0,strpos($webbie,'@')); - $host = substr($webbie,strpos($webbie,'@')+1); - } - - $xchan_addr = $address . '@' . $host; - - if ((! $address) || (! $xchan_addr)) { - logger('zot_finger: no address :' . $webbie); - return array('success' => false); - } - logger('using xchan_addr: ' . $xchan_addr, LOGGER_DATA, LOG_DEBUG); - - // potential issue here; the xchan_addr points to the primary hub. - // The webbie we were called with may not, so it might not be found - // unless we query for hubloc_addr instead of xchan_addr - - $r = q("select xchan.*, hubloc.* from xchan - left join hubloc on xchan_hash = hubloc_hash - where xchan_addr = '%s' and hubloc_primary = 1 limit 1", - dbesc($xchan_addr) - ); - - if ($r) { - $url = $r[0]['hubloc_url']; - - if ($r[0]['hubloc_network'] && $r[0]['hubloc_network'] !== 'zot') { - logger('zot_finger: alternate network: ' . $webbie); - logger('url: '.$url.', net: '.var_export($r[0]['hubloc_network'],true), LOGGER_DATA, LOG_DEBUG); - return array('success' => false); - } - } else { - $url = 'https://' . $host; - } - - $rhs = '/.well-known/zot-info'; - $https = ((strpos($url,'https://') === 0) ? true : false); - - logger('zot_finger: ' . $address . ' at ' . $url, LOGGER_DEBUG); - - if ($channel) { - $postvars = array( - 'address' => $address, - 'target' => $channel['channel_guid'], - 'target_sig' => $channel['channel_guid_sig'], - 'key' => $channel['channel_pubkey'] - ); - - $result = z_post_url($url . $rhs,$postvars); - - if ((! $result['success']) && ($autofallback)) { - if ($https) { - logger('zot_finger: https failed. falling back to http'); - $result = z_post_url('http://' . $host . $rhs,$postvars); - } - } - } else { - $rhs .= '?f=&address=' . urlencode($address); - - $result = z_fetch_url($url . $rhs); - if ((! $result['success']) && ($autofallback)) { - if ($https) { - logger('zot_finger: https failed. falling back to http'); - $result = z_fetch_url('http://' . $host . $rhs); - } - } - } - - if (! $result['success']) - logger('zot_finger: no results'); - - return $result; -} - /** * @brief Refreshes after permission changed or friending, etc. * + * The top half of this function is similar to \Zotlabs\Zot\Finger::run() and could potentially be + * consolidated. + * * zot_refresh is typically invoked when somebody has changed permissions of a channel and they are notified * to fetch new permissions via a finger/discovery operation. This may result in a new connection * (abook entry) being added to a local channel and it may result in auto-permissions being granted. @@ -281,6 +229,7 @@ function zot_finger($webbie, $channel = null, $autofallback = true) { * * @returns boolean true if successful, else false */ + function zot_refresh($them, $channel = null, $force = false) { if (array_key_exists('xchan_network', $them) && ($them['xchan_network'] !== 'zot')) { @@ -296,12 +245,13 @@ function zot_refresh($them, $channel = null, $force = false) { if ($them['hubloc_url']) { $url = $them['hubloc_url']; - } else { + } + else { $r = null; // if they re-installed the server we could end up with the wrong record - pointing to the old install. // We'll order by reverse id to try and pick off the newest one first and hopefully end up with the - // correct hubloc. If this doesn't work we may have to re-write this section to try them all. + // correct hubloc. If this doesn't work we may have to re-write this section to try them all. if(array_key_exists('xchan_addr',$them) && $them['xchan_addr']) { $r = q("select hubloc_url, hubloc_primary from hubloc where hubloc_addr = '%s' order by hubloc_id desc", @@ -332,7 +282,7 @@ function zot_refresh($them, $channel = null, $force = false) { $token = random_string(); - $postvars = array(); + $postvars = []; $postvars['token'] = $token; @@ -355,6 +305,8 @@ function zot_refresh($them, $channel = null, $force = false) { $rhs = '/.well-known/zot-info'; + logger('zot_refresh: ' . $url, LOGGER_DATA, LOG_INFO); + $result = z_post_url($url . $rhs,$postvars); logger('zot_refresh: zot-info: ' . print_r($result,true), LOGGER_DATA, LOG_DEBUG); @@ -391,10 +343,13 @@ function zot_refresh($them, $channel = null, $force = false) { if($channel) { if($j['permissions']['data']) { - $permissions = crypto_unencapsulate(array( + $permissions = crypto_unencapsulate( + [ 'data' => $j['permissions']['data'], 'key' => $j['permissions']['key'], - 'iv' => $j['permissions']['iv']), + 'iv' => $j['permissions']['iv'], + 'alg' => $j['permissions']['alg'] + ], $channel['channel_prvkey']); if($permissions) $permissions = json_decode($permissions,true); @@ -420,6 +375,10 @@ function zot_refresh($them, $channel = null, $force = false) { $next_birthday = NULL_DATE; } + + // Keep original perms to check if we need to notify them + $previous_perms = get_all_perms($channel['channel_id'],$x['hash']); + $r = q("select * from abook where abook_xchan = '%s' and abook_channel = %d and abook_self = 0 limit 1", dbesc($x['hash']), intval($channel['channel_id']) @@ -483,10 +442,6 @@ function zot_refresh($them, $channel = null, $force = false) { } } - // Keep original perms to check if we need to notify them - $previous_perms = get_all_perms($channel['channel_id'],$x['hash']); - - $closeness = get_pconfig($channel['channel_id'],'system','new_abook_closeness'); if($closeness === false) $closeness = 80; @@ -516,13 +471,15 @@ function zot_refresh($them, $channel = null, $force = false) { if($new_connection) { if(! \Zotlabs\Access\Permissions::PermsCompare($new_perms,$previous_perms)) Zotlabs\Daemon\Master::Summon(array('Notifier','permission_create',$new_connection[0]['abook_id'])); - Zotlabs\Lib\Enotify::submit(array( + Zotlabs\Lib\Enotify::submit( + [ 'type' => NOTIFY_INTRO, 'from_xchan' => $x['hash'], 'to_xchan' => $channel['channel_hash'], - 'link' => z_root() . '/connedit/' . $new_connection[0]['abook_id'], - )); - + 'link' => z_root() . '/connedit/' . $new_connection[0]['abook_id'] + ] + ); + if(intval($permissions['view_stream'])) { if(intval(get_pconfig($channel['channel_id'],'perm_limits','send_stream') & PERMS_PENDING) || (! intval($new_connection[0]['abook_pending']))) @@ -531,11 +488,12 @@ function zot_refresh($them, $channel = null, $force = false) { /** If there is a default group for this channel, add this connection to it */ + $default_group = $channel['channel_default_group']; if($default_group) { require_once('include/group.php'); $g = group_rec_byhash($channel['channel_id'],$default_group); - if($g) + if($g) group_add_member($channel['channel_id'],'',$x['hash'],$g['id']); } @@ -571,11 +529,13 @@ function zot_refresh($them, $channel = null, $force = false) { * * \e string \b guid_sig => guid signed with conversant's private key * * \e string \b url => URL of the origination hub of this communication * * \e string \b url_sig => URL signed with conversant's private key + * @param boolean $multiple (optional) default false * * @returns array|null null if site is blacklisted or not found, otherwise an * array with an hubloc record */ -function zot_gethub($arr,$multiple = false) { + +function zot_gethub($arr, $multiple = false) { if($arr['guid'] && $arr['guid_sig'] && $arr['url'] && $arr['url_sig']) { @@ -586,8 +546,8 @@ function zot_gethub($arr,$multiple = false) { $limit = (($multiple) ? '' : ' limit 1 '); $sitekey = ((array_key_exists('sitekey',$arr) && $arr['sitekey']) ? " and hubloc_sitekey = '" . protect_sprintf($arr['sitekey']) . "' " : ''); - - $r = q("select * from hubloc + + $r = q("select hubloc.*, site.site_crypto from hubloc left join site on hubloc_url = site_url where hubloc_guid = '%s' and hubloc_guid_sig = '%s' and hubloc_url = '%s' and hubloc_url_sig = '%s' $sitekey $limit", @@ -624,9 +584,10 @@ function zot_gethub($arr,$multiple = false) { * * \b success boolean true or false * * \b message (optional) error string only if success is false */ + function zot_register_hub($arr) { - $result = array('success' => false); + $result = [ 'success' => false ]; if($arr['url'] && $arr['url_sig'] && $arr['guid'] && $arr['guid_sig']) { @@ -685,6 +646,7 @@ function zot_register_hub($arr) { * * \e boolean \b success boolean true or false * * \e string \b message (optional) error string only if success is false */ + function import_xchan($arr,$ud_flags = UPDATE_FLAGS_UPDATED, $ud_arr = null) { call_hooks('import_xchan', $arr); @@ -754,15 +716,15 @@ function import_xchan($arr,$ud_flags = UPDATE_FLAGS_UPDATED, $ud_arr = null) { if(intval($r[0]['xchan_pubforum']) != intval($arr['public_forum'])) $pubforum_changed = 1; - if(($r[0]['xchan_name_date'] != $arr['name_updated']) - || ($r[0]['xchan_connurl'] != $arr['connections_url']) + if(($r[0]['xchan_name_date'] != $arr['name_updated']) + || ($r[0]['xchan_connurl'] != $arr['connections_url']) || ($r[0]['xchan_addr'] != $arr['address']) || ($r[0]['xchan_follow'] != $arr['follow_url']) - || ($r[0]['xchan_connpage'] != $arr['connect_url']) + || ($r[0]['xchan_connpage'] != $arr['connect_url']) || ($r[0]['xchan_url'] != $arr['url']) || $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, + $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'] : '-'), dbesc($arr['name_updated']), @@ -783,7 +745,8 @@ function import_xchan($arr,$ud_flags = UPDATE_FLAGS_UPDATED, $ud_arr = null) { $what .= 'xchan '; $changed = true; } - } else { + } + else { $import_photos = true; if((($arr['site']['directory_mode'] === 'standalone') @@ -819,7 +782,7 @@ function import_xchan($arr,$ud_flags = UPDATE_FLAGS_UPDATED, $ud_arr = null) { $changed = true; } - if ($import_photos) { + if($import_photos) { require_once('include/photo/photo_driver.php'); @@ -828,9 +791,9 @@ function import_xchan($arr,$ud_flags = UPDATE_FLAGS_UPDATED, $ud_arr = null) { $local = q("select channel_account_id, channel_id from channel where channel_hash = '%s' limit 1", dbesc($xchan_hash) ); - if ($local) { + if($local) { $ph = z_fetch_url($arr['photo'], true); - if ($ph['success']) { + if($ph['success']) { $hash = import_channel_photo($ph['body'], $arr['photo_mimetype'], $local[0]['channel_account_id'], $local[0]['channel_id']); @@ -868,11 +831,12 @@ function import_xchan($arr,$ud_flags = UPDATE_FLAGS_UPDATED, $ud_arr = null) { false ); } - } else { + } + else { $photos = import_xchan_photo($arr['photo'], $xchan_hash); } - if ($photos) { - if ($photos[4]) { + if($photos) { + if($photos[4]) { // importing the photo failed somehow. Leave the photo_date alone so we can try again at a later date. // This often happens when somebody joins the matrix with a bad cert. $r = q("update xchan set xchan_photo_l = '%s', xchan_photo_m = '%s', xchan_photo_s = '%s', xchan_photo_mimetype = '%s' @@ -883,7 +847,8 @@ function import_xchan($arr,$ud_flags = UPDATE_FLAGS_UPDATED, $ud_arr = null) { dbesc($photos[3]), dbesc($xchan_hash) ); - } else { + } + else { $r = q("update xchan set xchan_photo_date = '%s', xchan_photo_l = '%s', xchan_photo_m = '%s', xchan_photo_s = '%s', xchan_photo_mimetype = '%s' where xchan_hash = '%s'", dbescdate(datetime_convert('UTC','UTC',$arr['photo_updated'])), @@ -940,7 +905,8 @@ function import_xchan($arr,$ud_flags = UPDATE_FLAGS_UPDATED, $ud_arr = null) { $what .= 'profile '; $changed = true; } - } else { + } + else { logger('import_xchan: profile not available - hiding'); // they may have made it private $r = q("delete from xprof where xprof_hash = '%s'", @@ -993,16 +959,17 @@ function import_xchan($arr,$ud_flags = UPDATE_FLAGS_UPDATED, $ud_arr = null) { * @param array $arr - output of z_post_url() * @param array $outq - The queue structure attached to this request */ + function zot_process_response($hub, $arr, $outq) { - if (! $arr['success']) { + if(! $arr['success']) { logger('zot_process_response: failed: ' . $hub); return; } $x = json_decode($arr['body'], true); - if (! $x) { + if(! $x) { logger('zot_process_response: No json from ' . $hub); logger('zot_process_response: headers: ' . print_r($arr['header'],true), LOGGER_DATA, LOG_DEBUG); } @@ -1022,12 +989,12 @@ function zot_process_response($hub, $arr, $outq) { } } - // we have a more descriptive delivery report, so discard the per hub 'queued' report. + // we have a more descriptive delivery report, so discard the per hub 'queued' report. q("delete from dreport where dreport_queue = '%s' ", dbesc($outq['outq_hash']) ); - + // update the timestamp for this site q("update site set site_dead = 0, site_update = '%s' where site_url = '%s'", @@ -1060,6 +1027,7 @@ function zot_process_response($hub, $arr, $outq) { * decrypted and json decoded notify packet from remote site * @return array from zot_import() */ + function zot_fetch($arr) { logger('zot_fetch: ' . print_r($arr,true), LOGGER_DATA, LOG_DEBUG); @@ -1068,7 +1036,7 @@ function zot_fetch($arr) { // set $multiple param on zot_gethub() to return all matching hubs // This allows us to recover from re-installs when a redundant (but invalid) hubloc for - // this identity is widely dispersed throughout the network. + // this identity is widely dispersed throughout the network. $ret_hubs = zot_gethub($arr['sender'],true); if(! $ret_hubs) { @@ -1077,21 +1045,23 @@ function zot_fetch($arr) { } foreach($ret_hubs as $ret_hub) { - $data = array( - 'type' => 'pickup', - 'url' => z_root(), - 'callback_sig' => base64url_encode(rsa_sign(z_root() . '/post',get_config('system','prvkey'))), - 'callback' => z_root() . '/post', - 'secret' => $arr['secret'], - 'secret_sig' => base64url_encode(rsa_sign($arr['secret'],get_config('system','prvkey'))) - ); - $datatosend = json_encode(crypto_encapsulate(json_encode($data),$ret_hub['hubloc_sitekey'])); + $data = [ + 'type' => 'pickup', + 'url' => z_root(), + 'callback_sig' => base64url_encode(rsa_sign(z_root() . '/post', get_config('system','prvkey'))), + 'callback' => z_root() . '/post', + 'secret' => $arr['secret'], + 'secret_sig' => base64url_encode(rsa_sign($arr['secret'], get_config('system','prvkey'))) + ]; + + $algorithm = zot_best_algorithm($ret_hub['site_crypto']); + $datatosend = json_encode(crypto_encapsulate(json_encode($data),$ret_hub['hubloc_sitekey'], $algorithm)); $fetch = zot_zot($url,$datatosend); $result = zot_import($fetch, $arr['sender']['url']); - + if($result) return $result; } @@ -1137,6 +1107,11 @@ function zot_import($arr, $sender_url) { $data = json_decode(crypto_unencapsulate($data,get_config('system','prvkey')),true); } + if(! is_array($data)) { + logger('decode error'); + return array(); + } + if(! $data['success']) { if($data['message']) logger('remote pickup failed: ' . $data['message']); @@ -1162,6 +1137,12 @@ function zot_import($arr, $sender_url) { logger('zot_import: notify: ' . print_r($i['notify'],true), LOGGER_DATA, LOG_DEBUG); + if(! is_array($i['notify'])) { + logger('decode error'); + continue; + } + + $hub = zot_gethub($i['notify']['sender']); if((! $hub) || ($hub['hubloc_url'] != $sender_url)) { logger('zot_import: potential forgery: wrong site for sender: ' . $sender_url . ' != ' . print_r($i['notify'],true)); @@ -1195,7 +1176,7 @@ function zot_import($arr, $sender_url) { if($recip_arr) { stringify_array_elms($recip_arr); $recips = implode(',',$recip_arr); - $r = q("select channel_hash as hash from channel where channel_hash in ( " . $recips . " ) + $r = q("select channel_hash as hash from channel where channel_hash in ( " . $recips . " ) and channel_removed = 0 "); } @@ -1352,6 +1333,7 @@ function zot_import($arr, $sender_url) { * @param array $msg * @return NULL|array */ + function public_recips($msg) { require_once('include/channel.php'); @@ -1403,7 +1385,7 @@ function public_recips($msg) { $perm = 'post_mail'; $r = array(); - + $c = q("select channel_id, channel_hash from channel where channel_removed = 0"); if($c) { foreach($c as $cc) { @@ -1432,7 +1414,7 @@ function public_recips($msg) { if(($tag['type'] === 'mention') && (strpos($tag['url'],z_root()) !== false)) { $address = basename($tag['url']); if($address) { - $z = q("select channel_hash as hash from channel where channel_address = '%s' + $z = q("select channel_hash as hash from channel where channel_address = '%s' and channel_removed = 0 limit 1", dbesc($address) ); @@ -1561,6 +1543,7 @@ function allowed_public_recips($msg) { * @param boolean $request (optional) default false * @return array */ + function process_delivery($sender, $arr, $deliveries, $relay, $public = false, $request = false) { $result = array(); @@ -1605,12 +1588,12 @@ function process_delivery($sender, $arr, $deliveries, $relay, $public = false, $ /** * @FIXME: Somehow we need to block normal message delivery from our clones, as the delivered - * message doesn't have ACL information in it as the cloned copy does. That copy - * will normally arrive first via sync delivery, but this isn't guaranteed. + * message doesn't have ACL information in it as the cloned copy does. That copy + * will normally arrive first via sync delivery, but this isn't guaranteed. * There's a chance the current delivery could take place before the cloned copy arrives * hence the item could have the wrong ACL and *could* be used in subsequent deliveries or * access checks. So far all attempts at identifying this situation precisely - * have caused issues with delivery of relayed comments. + * have caused issues with delivery of relayed comments. */ // if(($d['hash'] === $sender['hash']) && ($sender['url'] !== z_root()) && (! $relay)) { @@ -1743,7 +1726,7 @@ function process_delivery($sender, $arr, $deliveries, $relay, $public = false, $ intval($channel['channel_id']), dbesc($arr['owner_xchan']) ); - $abook = (($ab) ? $ab[0] : null); + $abook = (($ab) ? $ab[0] : null); if(intval($arr['item_deleted'])) { @@ -1757,7 +1740,7 @@ function process_delivery($sender, $arr, $deliveries, $relay, $public = false, $ $arr['uid'] = $channel['channel_id']; $item_id = delete_imported_item($sender,$arr,$channel['channel_id'],$relay); - $DR->update(($item_id) ? 'deleted' : 'delete_failed'); + $DR->update(($item_id) ? 'deleted' : 'delete_failed'); $result[] = $DR->get(); if($relay && $item_id) { @@ -1779,7 +1762,7 @@ function process_delivery($sender, $arr, $deliveries, $relay, $public = false, $ $item_id = $r[0]['id']; if(intval($r[0]['item_deleted'])) { - // It was deleted locally. + // It was deleted locally. $DR->update('update ignored'); $result[] = $DR->get(); @@ -1806,8 +1789,8 @@ function process_delivery($sender, $arr, $deliveries, $relay, $public = false, $ $result[] = $DR->get(); - // We need this line to ensure wall-to-wall comments are relayed (by falling through to the relay bit), - // and at the same time not relay any other relayable posts more than once, because to do so is very wasteful. + // We need this line to ensure wall-to-wall comments are relayed (by falling through to the relay bit), + // and at the same time not relay any other relayable posts more than once, because to do so is very wasteful. if(! intval($r[0]['item_origin'])) continue; } @@ -1821,7 +1804,7 @@ function process_delivery($sender, $arr, $deliveries, $relay, $public = false, $ if(check_item_source($arr['uid'], $arr)) call_hooks('post_local', $arr); - + $item_id = 0; if(($arr['mid'] == $arr['parent_mid']) && (! post_is_importable($arr,$abook))) { @@ -1870,6 +1853,7 @@ function process_delivery($sender, $arr, $deliveries, $relay, $public = false, $ * * \e int \b mid * @param int $uid */ + function remove_community_tag($sender, $arr, $uid) { if(! (activity_match($arr['verb'], ACTIVITY_TAG) && ($arr['obj_type'] == ACTIVITY_OBJ_TAGTERM))) @@ -1934,10 +1918,13 @@ function remove_community_tag($sender, $arr, $uid) { * @brief Just calls item_store_update() and logs result. * * @see item_store_update() + * * @param array $sender (unused) * @param array $item - * @param int $uid (unused) + * @param array $orig + * @param int $uid */ + function update_imported_item($sender, $item, $orig, $uid) { // If this is a comment being updated, remove any privacy information @@ -1957,7 +1944,7 @@ function update_imported_item($sender, $item, $orig, $uid) { // because event_addtocal will parse the body to get the 'new' event details if($orig['resource_type'] === 'event') { - $res = event_addtocal($orig['id'],$uid); + $res = event_addtocal($orig['id'], $uid); if(! $res) logger('update event: failed'); } @@ -1978,6 +1965,7 @@ function update_imported_item($sender, $item, $orig, $uid) { * @param boolean $relay * @return boolean|int post_id */ + function delete_imported_item($sender, $item, $uid, $relay) { logger('delete_imported_item invoked', LOGGER_DEBUG); @@ -1995,13 +1983,14 @@ function delete_imported_item($sender, $item, $uid, $relay) { intval($uid) ); - if ($r) { - if ($r[0]['author_xchan'] === $sender['hash'] || $r[0]['owner_xchan'] === $sender['hash'] || $r[0]['source_xchan'] === $sender['hash']) + if($r) { + if($r[0]['author_xchan'] === $sender['hash'] || $r[0]['owner_xchan'] === $sender['hash'] || $r[0]['source_xchan'] === $sender['hash']) $ownership_valid = true; $post_id = $r[0]['id']; $item_found = true; - } else { + } + else { // perhaps the item is still in transit and the delete notification got here before the actual item did. Store it with the deleted flag set. // item_store() won't try to deliver any notifications or start delivery chains if this flag is set. @@ -2010,25 +1999,24 @@ function delete_imported_item($sender, $item, $uid, $relay) { logger('delete received for non-existent item - storing item data.'); - /** @BUG $arr is undefined here, so this is dead code */ - if ($arr['author_xchan'] === $sender['hash'] || $arr['owner_xchan'] === $sender['hash'] || $arr['source_xchan'] === $sender['hash']) { + if($item['author_xchan'] === $sender['hash'] || $item['owner_xchan'] === $sender['hash'] || $item['source_xchan'] === $sender['hash']) { $ownership_valid = true; - $item_result = item_store($arr); + $item_result = item_store($item); $post_id = $item_result['item_id']; } } - if ($ownership_valid === false) { + if($ownership_valid === false) { logger('delete_imported_item: failed: ownership issue'); return false; } require_once('include/items.php'); - if ($item_found) { - if (intval($r[0]['item_deleted'])) { + if($item_found) { + if(intval($r[0]['item_deleted'])) { logger('delete_imported_item: item was already deleted'); - if (! $relay) + if(! $relay) return false; // This is a bit hackish, but may have to suffice until the notification/delivery loop is optimised @@ -2139,6 +2127,7 @@ function process_mail_delivery($sender, $arr, $deliveries) { * * \e string \b hash a xchan_hash * @param array $arr */ + function process_rating_delivery($sender, $arr) { logger('process_rating_delivery: ' . print_r($arr,true)); @@ -2198,6 +2187,7 @@ function process_rating_delivery($sender, $arr) { * @param array $arr * @param array $deliveries (unused) */ + function process_profile_delivery($sender, $arr, $deliveries) { logger('process_profile_delivery', LOGGER_DEBUG); @@ -2232,15 +2222,15 @@ function process_location_delivery($sender,$arr,$deliveries) { /** * @brief checks for a moved UNO channel and sets the channel_moved flag - * + * * Currently the effect of this flag is to turn the channel into 'read-only' mode. - * New content will not be processed (there was still an issue with blocking the + * New content will not be processed (there was still an issue with blocking the * ability to post comments as of 10-Mar-2016). - * We do not physically remove the channel at this time. The hub admin may choose + * We do not physically remove the channel at this time. The hub admin may choose * to do so, but is encouraged to allow a grace period of several days in case there * are any issues migrating content. This packet will generally be received by the * original site when the basic channel import has been processed. - * + * * This will only be executed on the UNO system which is the old location * if a new location is reported and there is only one location record. * The rest of the hubloc syncronisation will be handled within @@ -2252,7 +2242,7 @@ function process_location_delivery($sender,$arr,$deliveries) { function check_location_move($sender_hash,$locations) { if(! $locations) - return; + return; if(get_config('system','server_role') !== 'basic') return; @@ -2275,13 +2265,13 @@ function check_location_move($sender_hash,$locations) { dbesc($sender_hash) ); - // federation plugins may wish to notify connections + // federation plugins may wish to notify connections // of the move on singleton networks $arr = array('channel' => $r[0],'locations' => $locations); call_hooks('location_move',$arr); - } + } } @@ -2294,6 +2284,7 @@ function check_location_move($sender_hash,$locations) { * @param boolean $absolute (optional) default false * @return array */ + function sync_locations($sender, $arr, $absolute = false) { $ret = array(); @@ -2536,12 +2527,12 @@ function zot_encode_locations($channel) { foreach($x as $hub) { // if this is a local channel that has been deleted, the hubloc is no good - make sure it is marked deleted - // so that nobody tries to use it. + // so that nobody tries to use it. if(intval($channel['channel_removed']) && $hub['hubloc_url'] === z_root()) $hub['hubloc_deleted'] = 1; - $ret[] = array( + $ret[] = [ 'host' => $hub['hubloc_host'], 'address' => $hub['hubloc_addr'], 'primary' => (intval($hub['hubloc_primary']) ? true : false), @@ -2550,7 +2541,7 @@ function zot_encode_locations($channel) { 'callback' => $hub['hubloc_callback'], 'sitekey' => $hub['hubloc_sitekey'], 'deleted' => (intval($hub['hubloc_deleted']) ? true : false) - ); + ]; } } @@ -2567,6 +2558,7 @@ function zot_encode_locations($channel) { * @param number $suppress_update default 0 * @return boolean $updated if something changed */ + function import_directory_profile($hash, $profile, $addr, $ud_flags = UPDATE_FLAGS_UPDATED, $suppress_update = 0) { logger('import_directory_profile', LOGGER_DEBUG); @@ -2701,6 +2693,7 @@ function import_directory_profile($hash, $profile, $addr, $ud_flags = UPDATE_FLA * @param string $hash * @param array $keywords */ + function import_directory_keywords($hash, $keywords) { $existing = array(); @@ -2745,6 +2738,7 @@ function import_directory_keywords($hash, $keywords) { * @param string $addr * @param int $flags (optional) default 0 */ + function update_modtime($hash, $guid, $addr, $flags = 0) { $dirmode = intval(get_config('system', 'directory_mode')); @@ -2777,6 +2771,7 @@ function update_modtime($hash, $guid, $addr, $flags = 0) { * @param string $pubkey * @return boolean true if updated or inserted */ + function import_site($arr, $pubkey) { if( (! is_array($arr)) || (! $arr['url']) || (! $arr['url_sig'])) return false; @@ -2844,6 +2839,7 @@ function import_site($arr, $pubkey) { $site_location = htmlspecialchars($arr['location'],ENT_COMPAT,'UTF-8',false); $site_realm = htmlspecialchars($arr['realm'],ENT_COMPAT,'UTF-8',false); $site_project = htmlspecialchars($arr['project'],ENT_COMPAT,'UTF-8',false); + $site_crypto = ((array_key_exists('encryption',$arr) && is_array($arr['encryption'])) ? htmlspecialchars(implode(',',$arr['encryption']),ENT_COMPAT,'UTF-8',false) : ''); $site_version = ((array_key_exists('version',$arr)) ? htmlspecialchars($arr['version'],ENT_COMPAT,'UTF-8',false) : ''); // You can have one and only one primary directory per realm. @@ -2865,6 +2861,7 @@ function import_site($arr, $pubkey) { || ($siterecord['site_register'] != $register_policy) || ($siterecord['site_project'] != $site_project) || ($siterecord['site_realm'] != $site_realm) + || ($siterecord['site_crypto'] != $site_crypto) || ($siterecord['site_version'] != $site_version) ) { $update = true; @@ -2873,7 +2870,7 @@ function import_site($arr, $pubkey) { // logger('import_site: stored: ' . print_r($siterecord,true)); - $r = q("update site set site_dead = 0, site_location = '%s', site_flags = %d, site_access = %d, site_directory = '%s', site_register = %d, site_update = '%s', site_sellpage = '%s', site_realm = '%s', site_type = %d, site_project = '%s', site_version = '%s' + $r = q("update site set site_dead = 0, site_location = '%s', site_flags = %d, site_access = %d, site_directory = '%s', site_register = %d, site_update = '%s', site_sellpage = '%s', site_realm = '%s', site_type = %d, site_project = '%s', site_version = '%s', site_crypto = '%s' where site_url = '%s'", dbesc($site_location), intval($site_directory), @@ -2886,6 +2883,7 @@ function import_site($arr, $pubkey) { intval(SITE_TYPE_ZOT), dbesc($site_project), dbesc($site_version), + dbesc($site_crypto), dbesc($url) ); if(! $r) { @@ -2903,8 +2901,8 @@ function import_site($arr, $pubkey) { else { $update = true; - $r = q("insert into site ( site_location, site_url, site_access, site_flags, site_update, site_directory, site_register, site_sellpage, site_realm, site_type, site_project, site_version ) - values ( '%s', '%s', %d, %d, '%s', '%s', %d, '%s', '%s', %d, '%s', '%s' )", + $r = q("insert into site ( site_location, site_url, site_access, site_flags, site_update, site_directory, site_register, site_sellpage, site_realm, site_type, site_project, site_version, site_crypto ) + values ( '%s', '%s', %d, %d, '%s', '%s', %d, '%s', '%s', %d, '%s', '%s', '%s' )", dbesc($site_location), dbesc($url), intval($access_policy), @@ -2916,7 +2914,8 @@ function import_site($arr, $pubkey) { dbesc($site_realm), intval(SITE_TYPE_ZOT), dbesc($site_project), - dbesc($site_version) + dbesc($site_version), + dbesc($site_crypto) ); if(! $r) { logger('import_site: record create failed. ' . print_r($arr,true)); @@ -2935,6 +2934,7 @@ function import_site($arr, $pubkey) { * @param array $packet (optional) default null * @param boolean $groups_changed (optional) default false */ + function build_sync_packet($uid = 0, $packet = null, $groups_changed = false) { if(get_config('system','server_role') === 'basic') @@ -2970,7 +2970,7 @@ function build_sync_packet($uid = 0, $packet = null, $groups_changed = false) { if(intval($channel['channel_removed'])) return; - $h = q("select * from hubloc where hubloc_hash = '%s' and hubloc_deleted = 0", + $h = q("select hubloc.*, site.site_crypto from hubloc left join site on site_url = hubloc_url where hubloc_hash = '%s' and hubloc_deleted = 0", dbesc($channel['channel_hash']) ); @@ -3057,7 +3057,7 @@ function build_sync_packet($uid = 0, $packet = null, $groups_changed = false) { foreach($synchubs as $hub) { $hash = random_string(); - $n = zot_build_packet($channel,'notify',$env_recips,$hub['hubloc_sitekey'],$hash); + $n = zot_build_packet($channel,'notify',$env_recips,$hub['hubloc_sitekey'],$hub['site_crypto'],$hash); queue_insert(array( 'hash' => $hash, 'account_id' => $channel['channel_account_id'], @@ -3083,6 +3083,7 @@ function build_sync_packet($uid = 0, $packet = null, $groups_changed = false) { * @param array $deliveries * @return array */ + function process_channel_sync_delivery($sender, $arr, $deliveries) { if(get_config('system','server_role') === 'basic') @@ -3090,7 +3091,7 @@ function process_channel_sync_delivery($sender, $arr, $deliveries) { require_once('include/import.php'); - /** @FIXME this will sync red structures (channel, pconfig and abook). + /** @FIXME this will sync red structures (channel, pconfig and abook). Eventually we need to make this application agnostic. */ $result = array(); @@ -3181,15 +3182,15 @@ function process_channel_sync_delivery($sender, $arr, $deliveries) { $arr['channel']['channel_pageflags'] = $arr['channel']['channel_pageflags'] - 0x1000; } - - $disallowed = [ - 'channel_id', 'channel_account_id', 'channel_primary', 'channel_prvkey', - 'channel_address', 'channel_notifyflags', 'channel_removed', 'channel_deleted', - 'channel_system', 'channel_r_stream', 'channel_r_profile', 'channel_r_abook', - 'channel_r_storage', 'channel_r_pages', 'channel_w_stream', 'channel_w_wall', - 'channel_w_comment', 'channel_w_mail', 'channel_w_like', 'channel_w_tagwall', - 'channel_w_chat', 'channel_w_storage', 'channel_w_pages', 'channel_a_republish', - 'channel_a_delegate' + + $disallowed = [ + 'channel_id', 'channel_account_id', 'channel_primary', 'channel_prvkey', + 'channel_address', 'channel_notifyflags', 'channel_removed', 'channel_deleted', + 'channel_system', 'channel_r_stream', 'channel_r_profile', 'channel_r_abook', + 'channel_r_storage', 'channel_r_pages', 'channel_w_stream', 'channel_w_wall', + 'channel_w_comment', 'channel_w_mail', 'channel_w_like', 'channel_w_tagwall', + 'channel_w_chat', 'channel_w_storage', 'channel_w_pages', 'channel_a_republish', + 'channel_a_delegate' ]; $clean = array(); @@ -3226,7 +3227,7 @@ function process_channel_sync_delivery($sender, $arr, $deliveries) { foreach($arr['abook'] as $abook) { - + $abconfig = null; @@ -3372,7 +3373,7 @@ function process_channel_sync_delivery($sender, $arr, $deliveries) { } } if(! $found) { - $r = q("INSERT INTO `groups` ( hash, uid, visible, deleted, gname ) + $r = q("INSERT INTO groups ( hash, uid, visible, deleted, gname ) VALUES( '%s', %d, %d, %d, '%s' ) ", dbesc($cl['collection']), intval($channel['channel_id']), @@ -3446,7 +3447,7 @@ function process_channel_sync_delivery($sender, $arr, $deliveries) { // if somebody is in the group that wasn't before - add them if(! $found) { - q("INSERT INTO `group_member` (`uid`, `gid`, `xchan`) + q("INSERT INTO group_member (uid, gid, xchan) VALUES( %d, %d, '%s' ) ", intval($channel['channel_id']), intval($y['id']), @@ -3503,7 +3504,7 @@ function process_channel_sync_delivery($sender, $arr, $deliveries) { foreach($profile as $k => $v) { if(in_array($k,$disallowed)) continue; - + if($k === 'name') $clean['fullname'] = $v; elseif($k === 'with') @@ -3514,15 +3515,16 @@ function process_channel_sync_delivery($sender, $arr, $deliveries) { $clean[$k] = $v; /** - * @TODO + * @TODO * We also need to import local photos if a custom photo is selected */ } if(count($clean)) { foreach($clean as $k => $v) { - $r = dbq("UPDATE profile set `" . dbesc($k) . "` = '" . dbesc($v) - . "' where profile_guid = '" . dbesc($profile['profile_guid']) . "' and uid = " . intval($channel['channel_id'])); + $r = dbq("UPDATE profile set " . TQUOT . dbesc($k) . TQUOT . " = '" . dbesc($v) + . "' where profile_guid = '" . dbesc($profile['profile_guid']) + . "' and uid = " . intval($channel['channel_id'])); } } } @@ -3556,6 +3558,7 @@ function process_channel_sync_delivery($sender, $arr, $deliveries) { * * \e string \b xchan_url * @return string */ + function get_rpost_path($observer) { if(! $observer) return ''; @@ -3571,6 +3574,7 @@ function get_rpost_path($observer) { * @param array $x * @return boolean|string return false or a hash */ + function import_author_zot($x) { $hash = make_xchan_hash($x['guid'],$x['guid_sig']); @@ -3610,6 +3614,7 @@ function import_author_zot($x) { * @param array $data * @return array */ + function zot_reply_message_request($data) { $ret = array('success' => false); @@ -3646,7 +3651,7 @@ function zot_reply_message_request($data) { if ($messages) { $env_recips = null; - $r = q("select * from hubloc where hubloc_hash = '%s' and hubloc_error = 0 and hubloc_deleted = 0", + $r = q("select hubloc.*, site.site_crypto from hubloc left join site on hubloc_url = site_url where hubloc_hash = '%s' and hubloc_error = 0 and hubloc_deleted = 0", dbesc($sender_hash) ); if (! $r) { @@ -3668,7 +3673,7 @@ function zot_reply_message_request($data) { * create a notify packet and drop the actual message packet in the queue for pickup */ - $n = zot_build_packet($c[0],'notify',$env_recips,(($private) ? $hub['hubloc_sitekey'] : null),$hash,array('message_id' => $data['message_id'])); + $n = zot_build_packet($c[0],'notify',$env_recips,(($private) ? $hub['hubloc_sitekey'] : null),$hub['site_crypto'],$hash,array('message_id' => $data['message_id'])); queue_insert(array( 'hash' => $hash, @@ -3715,18 +3720,18 @@ function zotinfo($arr) { } } - $ztarget_hash = (($ztarget && $zsig) ? make_xchan_hash($ztarget,$zsig) : '' ); + $ztarget_hash = (($ztarget && $zsig) ? make_xchan_hash($ztarget,$zsig) : '' ); $r = null; if(strlen($zhash)) { - $r = q("select channel.*, xchan.* from channel left join xchan on channel_hash = xchan_hash + $r = q("select channel.*, xchan.* from channel left join xchan on channel_hash = xchan_hash where channel_hash = '%s' limit 1", dbesc($zhash) ); } elseif(strlen($zguid) && strlen($zguid_sig)) { - $r = q("select channel.*, xchan.* from channel left join xchan on channel_hash = xchan_hash + $r = q("select channel.*, xchan.* from channel left join xchan on channel_hash = xchan_hash where channel_guid = '%s' and channel_guid_sig = '%s' limit 1", dbesc($zguid), dbesc($zguid_sig) @@ -3745,7 +3750,7 @@ function zotinfo($arr) { /** * The special address '[system]' will return a system channel if one has been defined, - * Or the first valid channel we find if there are no system channels. + * Or the first valid channel we find if there are no system channels. * * This is used by magic-auth if we have no prior communications with this site - and * returns an identity on this site which we can use to create a valid hub record so that @@ -3760,7 +3765,7 @@ function zotinfo($arr) { $r = q("select channel.*, xchan.* from channel left join xchan on channel_hash = xchan_hash where channel_removed = 0 order by channel_id limit 1"); } - } + } } else { $ret['message'] = 'Invalid request'; @@ -3785,7 +3790,7 @@ function zotinfo($arr) { if($deleted || $censored || $sys_channel) $searchable = false; - + $public_forum = false; $role = get_pconfig($e['channel_id'],'system','permissions_role'); @@ -3818,14 +3823,14 @@ function zotinfo($arr) { if($p) { if(! intval($p[0]['publish'])) - $searchable = false; + $searchable = false; $profile['description'] = $p[0]['pdesc']; $profile['birthday'] = $p[0]['dob']; if(($profile['birthday'] != '0000-00-00') && (($bd = z_birthday($p[0]['dob'],$e['channel_timezone'])) !== '')) $profile['next_birthday'] = $bd; - if($age = age($p[0]['dob'],$e['channel_timezone'],'')) + if($age = age($p[0]['dob'],$e['channel_timezone'],'')) $profile['age'] = $age; $profile['gender'] = $p[0]['gender']; $profile['marital'] = $p[0]['marital']; @@ -3878,14 +3883,14 @@ function zotinfo($arr) { $ret['adult_content'] = $adult_channel; $ret['public_forum'] = $public_forum; if($deleted) - $ret['deleted'] = $deleted; + $ret['deleted'] = $deleted; if(intval($e['channel_removed'])) $ret['deleted_locally'] = true; // premium or other channel desiring some contact with potential followers before connecting. // This is a template - %s will be replaced with the follow_url we discover for the return channel. - if($special_channel) + if($special_channel) $ret['connect_url'] = z_root() . '/connect/' . $e['channel_address']; // This is a template for our follow url, %s will be replaced with a webbie @@ -3905,6 +3910,11 @@ function zotinfo($arr) { $permissions['connected'] = true; } + // encrypt this with the default aes256cbc since we cannot be sure at this point which + // algorithms are preferred for communications with the remote site; notably + // because ztarget refers to an xchan and we don't necessarily know the origination + // location. + $ret['permissions'] = (($ztarget && $zkey) ? crypto_encapsulate(json_encode($permissions),$zkey) : $permissions); if($permissions['view_profile']) @@ -3935,6 +3945,8 @@ function zotinfo($arr) { $ret['site']['directory_url'] = z_root() . '/dirsearch'; + $ret['site']['encryption'] = crypto_methods(); + // hide detailed site information if you're off the grid if($dirmode != DIRECTORY_MODE_STANDALONE) { @@ -3961,7 +3973,7 @@ function zotinfo($arr) { $ret['site']['access_policy'] = 'tiered'; $ret['site']['accounts'] = account_total(); - + require_once('include/channel.php'); $ret['site']['channels'] = channel_total(); @@ -3972,17 +3984,17 @@ function zotinfo($arr) { $r = q("select * from addon where hidden = 0"); if($r) foreach($r as $rr) - $visible_plugins[] = $rr['name']; + $visible_plugins[] = $rr['aname']; } - $ret['site']['plugins'] = $visible_plugins; - $ret['site']['sitehash'] = get_config('system','location_hash'); - $ret['site']['sitename'] = get_config('system','sitename'); - $ret['site']['sellpage'] = get_config('system','sellpage'); - $ret['site']['location'] = get_config('system','site_location'); - $ret['site']['realm'] = get_directory_realm(); - $ret['site']['project'] = Zotlabs\Lib\System::get_platform_name() . ' ' . Zotlabs\Lib\System::get_server_role(); - $ret['site']['version'] = Zotlabs\Lib\System::get_project_version(); + $ret['site']['plugins'] = $visible_plugins; + $ret['site']['sitehash'] = get_config('system','location_hash'); + $ret['site']['sitename'] = get_config('system','sitename'); + $ret['site']['sellpage'] = get_config('system','sellpage'); + $ret['site']['location'] = get_config('system','site_location'); + $ret['site']['realm'] = get_directory_realm(); + $ret['site']['project'] = Zotlabs\Lib\System::get_platform_name() . ' ' . Zotlabs\Lib\System::get_server_role(); + $ret['site']['version'] = Zotlabs\Lib\System::get_project_version(); } @@ -4002,7 +4014,7 @@ function check_zotinfo($channel,$locations,&$ret) { // This function will likely expand as we find more things to detect and fix. // 1. Because magic-auth is reliant on it, ensure that the system channel has a valid hubloc - // Force this to be the case if anything is found to be wrong with it. + // Force this to be the case if anything is found to be wrong with it. // @FIXME ensure that the system channel exists in the first place and has an xchan @@ -4022,9 +4034,9 @@ function check_zotinfo($channel,$locations,&$ret) { logger('System channel locations are not valid. Attempting repair.'); - // Don't trust any existing records. Just get rid of them, but only do this + // Don't trust any existing records. Just get rid of them, but only do this // for the sys channel as normal channels will be trickier. - + q("delete from hubloc where hubloc_hash = '%s'", dbesc($channel['channel_hash']) ); @@ -4081,7 +4093,7 @@ function delivery_report_is_storable($dr) { return false; - // is the recipient one of our connections, or do we want to store every report? + // is the recipient one of our connections, or do we want to store every report? $r = explode(' ', $dr['recipient']); $rxchan = $r[0]; @@ -4092,15 +4104,15 @@ function delivery_report_is_storable($dr) { // 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; // If you have a private post with a recipient list, every single site is going to report - // back a failed delivery for anybody on that list that isn't local to them. We're only + // back a failed delivery for anybody on that list that isn't local to them. We're only // concerned about this if we have a local hubloc record which says we expected them to // have a channel on that site. - + $r = q("select hubloc_id from hubloc where hubloc_hash = '%s' and hubloc_url = '%s'", dbesc($rxchan), dbesc($dr['location']) @@ -4130,7 +4142,7 @@ function update_hub_connected($hub,$sitekey = '') { * Any hub with the same URL and a different sitekey cannot be valid. * Get rid of them (mark them deleted). There's a good chance they were re-installs. */ - + q("update hubloc set hubloc_deleted = 1, hubloc_error = 1 where hubloc_url = '%s' and hubloc_sitekey != '%s' ", dbesc($hub['hubloc_url']), dbesc($sitekey) @@ -4141,7 +4153,7 @@ function update_hub_connected($hub,$sitekey = '') { $sitekey = $hub['sitekey']; } - // $sender['sitekey'] is a new addition to the protocol to distinguish + // $sender['sitekey'] is a new addition to the protocol to distinguish // hublocs coming from re-installed sites. Older sites will not provide // this field and we have to still mark them valid, since we can't tell // if this hubloc has the same sitekey as the packet we received. @@ -4164,10 +4176,10 @@ function update_hub_connected($hub,$sitekey = '') { if(intval($hub['hubloc_error'])) { q("update hubloc set hubloc_error = 0 where hubloc_id = %d and hubloc_sitekey = '%s' ", intval($hub['hubloc_id']), - dbesc($sitekey) + dbesc($sitekey) ); - if(intval($r[0]['hubloc_orphancheck'])) { - q("update hubloc set hubloc_orhpancheck = 0 where hubloc_id = %d and hubloc_sitekey = '%s' ", + if(intval($hub['hubloc_orphancheck'])) { + q("update hubloc set hubloc_orphancheck = 0 where hubloc_id = %d and hubloc_sitekey = '%s' ", intval($hub['hubloc_id']), dbesc($sitekey) ); @@ -4176,7 +4188,7 @@ function update_hub_connected($hub,$sitekey = '') { dbesc($hub['hubloc_hash']) ); } - + return $hub['hubloc_url']; } @@ -4189,7 +4201,7 @@ function zot_reply_ping() { // This will let us know if any important communication details // that we may have stored are no longer valid, regardless of xchan details. logger('POST: got ping send pong now back: ' . z_root() , LOGGER_DEBUG ); - + $ret['success'] = true; $ret['site'] = array(); $ret['site']['url'] = z_root(); @@ -4263,7 +4275,7 @@ function zot_reply_pickup($data) { /* * If we made it to here, the signatures verify, but we still don't know if the tracking ID is valid. * It wouldn't be an error if the tracking ID isn't found, because we may have sent this particular - * queue item with another pickup (after the tracking ID for the other pickup was verified). + * queue item with another pickup (after the tracking ID for the other pickup was verified). */ $r = q("select outq_posturl from outq where outq_hash = '%s' and outq_posturl = '%s' limit 1", @@ -4303,13 +4315,21 @@ function zot_reply_pickup($data) { } else $ret['pickup'][] = array('notify' => json_decode($rr['outq_notify'],true),'message' => $x); - + remove_queue_item($rr['outq_hash']); } } } - $encrypted = crypto_encapsulate(json_encode($ret),$sitekey); + // this is a bit of a hack because we don't have the hubloc_url here, only the callback url. + // worst case is we'll end up using aes256cbc if they've got a different post endpoint + + $x = q("select site_crypto from site where site_url = '%s' limit 1", + dbesc(str_replace('/post','',$data['callback'])) + ); + $algorithm = zot_best_algorithm(($x) ? $x[0]['site_crypto'] : ''); + + $encrypted = crypto_encapsulate(json_encode($ret),$sitekey,$algorithm); json_return_and_die($encrypted); /* pickup: end */ @@ -4325,7 +4345,7 @@ function zot_reply_auth_check($data,$encrypted_packet) { * Requestor visits /magic/?dest=somewhere on their own site with a browser * magic redirects them to $destsite/post [with auth args....] * $destsite sends an auth_check packet to originator site - * The auth_check packet is handled here by the originator's site + * The auth_check packet is handled here by the originator's site * - the browser session is still waiting * inside $destsite/post for everything to verify * If everything checks out we'll return a token to $destsite @@ -4347,9 +4367,9 @@ function zot_reply_auth_check($data,$encrypted_packet) { // garbage collect any old unused notifications - // This was and should be 10 minutes but my hosting provider has time lag between the DB and - // the web server. We should probably convert this to webserver time rather than DB time so - // that the different clocks won't affect it and allow us to keep the time short. + // This was and should be 10 minutes but my hosting provider has time lag between the DB and + // the web server. We should probably convert this to webserver time rather than DB time so + // that the different clocks won't affect it and allow us to keep the time short. Zotlabs\Zot\Verify::purge('auth','30 MINUTE'); @@ -4360,7 +4380,7 @@ function zot_reply_auth_check($data,$encrypted_packet) { // We created a unique hash in mod/magic.php when we invoked remote auth, and stored it in // the verify table. It is now coming back to us as 'secret' and is signed by a channel at the other end. // First verify their signature. We will have obtained a zot-info packet from them as part of the sender - // verification. + // verification. if ((! $y) || (! rsa_verify($data['secret'], base64url_decode($data['secret_sig']),$y[0]['xchan_pubkey']))) { logger('mod_zot: auth_check: sender not found or secret_sig invalid.'); @@ -4433,7 +4453,7 @@ function zot_reply_purge($sender,$recipients) { if ($recipients) { // basically this means "unfriend" foreach ($recipients as $recip) { - $r = q("select channel.*,xchan.* from channel + $r = q("select channel.*,xchan.* from channel left join xchan on channel_hash = xchan_hash where channel_guid = '%s' and channel_guid_sig = '%s' limit 1", dbesc($recip['guid']), @@ -4450,13 +4470,13 @@ function zot_reply_purge($sender,$recipients) { } } $ret['success'] = true; - } + } else { // Unfriend everybody - basically this means the channel has committed suicide $arr = $sender; $sender_hash = make_xchan_hash($arr['guid'],$arr['guid_sig']); - remove_all_xchan_resources($sender_hash); + remove_all_xchan_resources($sender_hash); $ret['success'] = true; } @@ -4471,7 +4491,7 @@ function zot_reply_refresh($sender,$recipients) { // remote channel info (such as permissions or photo or something) // has been updated. Grab a fresh copy and sync it. - // The difference between refresh and force_refresh is that + // The difference between refresh and force_refresh is that // force_refresh unconditionally creates a directory update record, // even if no changes were detected upon processing. @@ -4480,7 +4500,7 @@ function zot_reply_refresh($sender,$recipients) { // This would be a permissions update, typically for one connection foreach ($recipients as $recip) { - $r = q("select channel.*,xchan.* from channel + $r = q("select channel.*,xchan.* from channel left join xchan on channel_hash = xchan_hash where channel_guid = '%s' and channel_guid_sig = '%s' limit 1", dbesc($recip['guid']), @@ -4488,17 +4508,17 @@ function zot_reply_refresh($sender,$recipients) { ); $x = zot_refresh(array( - 'xchan_guid' => $sender['guid'], + 'xchan_guid' => $sender['guid'], 'xchan_guid_sig' => $sender['guid_sig'], 'hubloc_url' => $sender['url'] ), $r[0], (($msgtype === 'force_refresh') ? true : false)); } - } + } else { // system wide refresh $x = zot_refresh(array( - 'xchan_guid' => $sender['guid'], + 'xchan_guid' => $sender['guid'], 'xchan_guid_sig' => $sender['guid_sig'], 'hubloc_url' => $sender['url'] ), null, (($msgtype === 'force_refresh') ? true : false)); @@ -4521,7 +4541,7 @@ function zot_reply_notify($data) { if($async) { // add to receive queue // qreceive_add($data); - } + } else { $x = zot_fetch($data); $ret['delivery_report'] = $x; @@ -4530,4 +4550,4 @@ function zot_reply_notify($data) { $ret['success'] = true; json_return_and_die($ret); -} \ No newline at end of file +} diff --git a/install/INSTALL.txt b/install/INSTALL.txt index 94ec511d8..7d4ed9534 100644 --- a/install/INSTALL.txt +++ b/install/INSTALL.txt @@ -1,12 +1,12 @@ -Hubzilla Installation +Software Installation -We've tried very hard to ensure that Hubzilla will run on commodity +We've tried very hard to ensure that this software will run on commodity hosting platforms - such as those used to host Wordpress blogs and Drupal websites. It will run on most any Linux VPS system. Windows LAMP platforms such as XAMPP and WAMP are not officially supported at this time - however we welcome patches if you manage to get it working. -Be aware that the Hubzilla is more than a simple web application. It is a +Be aware that this software is more than a simple web application. It is a complex communications system which more closely resembles an email server than a web server. For reliability and performance, messages are delivered in the background and are queued for later delivery when sites are down. This @@ -17,20 +17,24 @@ with your hosting provider prior to installation. (And preferably before entering into a long-term contract.) If you encounter installation issues, please let us know via the Github issue -tracker (https://github.com/redmatrix/hubzilla/issues). Please be as clear as you -can about your operating environment and provide as much detail as possible +tracker where you downloaded the software. Please be as clear as +you can about your operating environment and provide as much detail as possible about any error messages you may see, so that we can prevent it from happening in the future. Due to the large variety of operating systems and PHP platforms -in existence we may have only limited ability to debug your PHP installation or -acquire any missing modules - but we will do our best to solve any general code -issues. +in existence we may have only limited ability to debug your PHP installation +or acquire any missing modules - but we will do our best to solve any general +code issues. -Before you begin: Choose a domain name or subdomain name for your server. +**Before you begin** -Hubzilla can only be installed into the root of a domain or -sub-domain, and can not be installed using alternate TCP ports. +Choose a domain name or subdomain name for your server. + +The software can only be installed into the root of a domain or +sub-domain, and can not be installed using alternate TCP ports. These +restrictions may be relaxed in the future, but will be inconvenient to work +with, so we still STRONGLY recommend you abide by them. Decide if you will use SSL and obtain an SSL certificate before software installation. You SHOULD use SSL. If you use SSL, you MUST use a @@ -46,12 +50,12 @@ This restriction is incorporated because public posts from you may contain references to images on your own hub. Other members viewing their stream on other hubs will get warnings if your certificate is not trusted by their web browser. This will confuse many people because this is a decentralised network -and they will get the warning about your hub while viewing their own hub and may -think their own hub has an issue. These warnings are very technical and scary to -some folks, many of whom will not know how to proceed except to follow the browser -advice. This is disruptive to the community. That said, we recognise the issues -surrounding the current certificate infrastructure and agree there are many -problems, but that doesn't change the requirement. +and they will get the warning about your hub while viewing their own hub and +may think their own hub has an issue. These warnings are very technical and +scary to some folks, many of whom will not know how to proceed except to +follow the browser advice. This is disruptive to the community. That said, we +recognise the issues surrounding the current certificate infrastructure and +agree there are many problems, but that doesn't change the requirement. Free "browser-valid" certificates are available from providers such as StartSSL and LetsEncrypt. @@ -63,13 +67,36 @@ SSL port first, before falling back to a less secure connection. If you do not use SSL, your webserver MUST NOT listen on port 443 at all. If you use LetsEncrypt to provide certificates and create a file under -.well-known/acme-challenge so that LetsEncrypt can verify your domain ownership, -please remove or rename the .well-known directory as soon as the certificate is -generated. Hubzilla will provide its own handler for ".well-known" services when -it is installed, and an existing directory in this location may prevent some of -these services from working correctly. This should not be a problem with Apache, -but may be an issue with nginx or other web server platforms. +.well-known/acme-challenge so that LetsEncrypt can verify your domain +ownership, please remove or rename the .well-known directory as soon as the +certificate is generated. The software will provide its own handler for +".well-known" services when it is installed, and an existing directory in this +location may prevent some of these services from working correctly. This +should not be a problem with Apache, but may be an issue with nginx or other +web server platforms. +**Server Roles** + +During installation you will be asked to choose a server role. Your choices are +1. Basic +2. Standard +3. Pro + +Basic is highly simplified, with almost all the advanced functionality and +complexity removed or permanently disabled. + +Standard is typically used for federated network use, when you wish to interact +with other networks using other protocols. Not all the built in features and +functionality work correctly when other networks are involved. All advanced +and complex features are available to all members by default. + +Pro is for sites that wish to make full use of the built-in abilities and +features, but **not** to interact with other networks. Advanced features are +enabled according to a per-account 'techlevel' which reduces complexity +initially and allows members to adjust the software complexity to match their +technical abilities. + +**Installation** 1. Requirements - Apache with mod-rewrite enabled and "AllowOverride All" so you can use a @@ -96,7 +123,7 @@ but may be an issue with nginx or other web server platforms. - Installation into a top-level domain or sub-domain (without a directory/path component in the URL) is REQUIRED. -2. Unpack the Hubzilla files into the root of your web server document area. +2. Unpack the project files into the root of your web server document area. If you copy the directory tree to your webserver, make sure that you also copy .htaccess - as "dot" files are often hidden and aren't normally @@ -156,12 +183,21 @@ but may be an issue with nginx or other web server platforms. 3. Create an empty database and note the access details (hostname, username, -password, database name). The MySQL client libraries will fallback to socket +password, database name). The PDO database libraries will fallback to socket communication if the hostname is 'localhost' and some people have reported issues with the socket implementation. Use it if your requirements mandate. Otherwise if the database is served on the local server, use '127.0.0.1' for -the hostname. See https://dev.mysql.com/doc/refman/5.0/en/connecting.html -for more information. +the hostname. + +Internally we now use the PDO library for database connections. If you +encounter a database configuration which cannot be expressed on the setup form +(for instance using MySQL with an unusual socket location); you can supply +the PDO connection string as the database hostname. For instance + + mysql:unix_socket=/my/special/socket_path + +You should still fill in all other applicable form values as needed. + 4. If you know in advance that it will be impossible for the web server to write or create files in your web directory, create an empty file called @@ -223,7 +259,7 @@ You should also be sure that App::$config['system']['php_path'] is set correctly in your .htconfig.php file, it should look like (changing it to the correct PHP location): -App::$config['system']['php_path'] = '/usr/local/php55/bin/php'; +App::$config['system']['php_path'] = '/usr/local/php56/bin/php'; ##################################################################### @@ -296,6 +332,21 @@ a lot of help available on the web. Google "mod-rewrite" along with the name of your operating system distribution or Apache package. +##################################################################### +- If you see an error during database setup that DNS lookup failed +##################################################################### + +This is a known issue on some versions of FreeBSD, because +dns_get_record() fails for some lookups. Create a file in your top webserver +folder called '.htpreconfig.php' and inside it put the following: + +decode() + * bug #279 predis wrong number of arguments + * bug #277 Securing JS WebApp client secret w/ password grant type + +* 1.1 (2013-12-17) + + PR: https://github.com/bshaffer/oauth2-server-php/pull/276 + + * bug #278 adds refresh token configuration to Server class + * bug #274 Supplying a null client_id and client_secret grants API access + * bug #244 [MongoStorage] More detailed implementation info + * bug #268 Implement jti for JWT Bearer tokens to prevent replay attacks. + * bug #266 Removing unused argument to getAccessTokenData + * bug #247 Make Bearer token type consistent + * bug #253 Fixing CryptoToken refresh token lifetime + * bug #246 refactors public key logic to be more intuitive + * bug #245 adds support for JSON crypto tokens + * bug #230 Remove unused columns in oauth_clients + * bug #215 makes Redis Scope Storage obey the same paradigm as PDO + * bug #228 removes scope group + * bug #227 squelches open basedir restriction error + * bug #223 Updated docblocks for RefreshTokenInterface.php + * bug #224 Adds protected properties + * bug #217 Implement ScopeInterface for PDO, Redis + +* 1.0 (2013-08-12) + + * bug #203 Add redirect\_status_code config param for AuthorizeController + * bug #205 ensures unnecessary ? is not set when ** bug + * bug #204 Fixed call to LogicException + * bug #202 Add explode to checkRestrictedGrant in PDO Storage + * bug #197 adds support for 'false' default scope ** bug + * bug #192 reference errors and adds tests + * bug #194 makes some appropriate properties ** bug + * bug #191 passes config to HttpBasic + * bug #190 validates client credentials before ** bug + * bug #171 Fix wrong redirect following authorization step + * bug #187 client_id is now passed to getDefaultScope(). + * bug #176 Require refresh_token in getRefreshToken response + * bug #174 make user\_id not required for refresh_token grant + * bug #173 Duplication in JwtBearer Grant + * bug #168 user\_id not required for authorization_code grant + * bug #133 hardens default security for user object + * bug #163 allows redirect\_uri on authorization_code to be NULL in docs example + * bug #162 adds getToken on ResourceController for convenience + * bug #161 fixes fatal error + * bug #163 Invalid redirect_uri handling + * bug #156 user\_id in OAuth2\_Storage_AuthorizationCodeInterface::getAuthorizationCode() response + * bug #157 Fix for extending access and refresh tokens + * bug #154 ResponseInterface: getParameter method is used in the library but not defined in the interface + * bug #148 Add more detail to examples in Readme.md diff --git a/library/oauth2/LICENSE b/library/oauth2/LICENSE new file mode 100644 index 000000000..d7ece8467 --- /dev/null +++ b/library/oauth2/LICENSE @@ -0,0 +1,21 @@ +The MIT License + +Copyright (c) 2014 Brent Shaffer + +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/oauth2/README.md b/library/oauth2/README.md new file mode 100644 index 000000000..4ceda6cf9 --- /dev/null +++ b/library/oauth2/README.md @@ -0,0 +1,8 @@ +oauth2-server-php +================= + +[![Build Status](https://travis-ci.org/bshaffer/oauth2-server-php.svg?branch=develop)](https://travis-ci.org/bshaffer/oauth2-server-php) + +[![Total Downloads](https://poser.pugx.org/bshaffer/oauth2-server-php/downloads.png)](https://packagist.org/packages/bshaffer/oauth2-server-php) + +View the [complete documentation](http://bshaffer.github.io/oauth2-server-php-docs/) \ No newline at end of file diff --git a/library/oauth2/phpunit.xml b/library/oauth2/phpunit.xml new file mode 100644 index 000000000..e36403f0a --- /dev/null +++ b/library/oauth2/phpunit.xml @@ -0,0 +1,25 @@ + + + + + + ./test/OAuth2/ + + + + + + ./src/OAuth2/ + + + diff --git a/library/oauth2/src/OAuth2/Autoloader.php b/library/oauth2/src/OAuth2/Autoloader.php new file mode 100644 index 000000000..ecfb6ba75 --- /dev/null +++ b/library/oauth2/src/OAuth2/Autoloader.php @@ -0,0 +1,48 @@ + + * @license MIT License + */ +class Autoloader +{ + private $dir; + + public function __construct($dir = null) + { + if (is_null($dir)) { + $dir = dirname(__FILE__).'/..'; + } + $this->dir = $dir; + } + /** + * Registers OAuth2\Autoloader as an SPL autoloader. + */ + public static function register($dir = null) + { + ini_set('unserialize_callback_func', 'spl_autoload_call'); + spl_autoload_register(array(new self($dir), 'autoload')); + } + + /** + * Handles autoloading of classes. + * + * @param string $class A class name. + * + * @return boolean Returns true if the class has been loaded + */ + public function autoload($class) + { + if (0 !== strpos($class, 'OAuth2')) { + return; + } + + if (file_exists($file = $this->dir.'/'.str_replace('\\', '/', $class).'.php')) { + require $file; + } + } +} diff --git a/library/oauth2/src/OAuth2/ClientAssertionType/ClientAssertionTypeInterface.php b/library/oauth2/src/OAuth2/ClientAssertionType/ClientAssertionTypeInterface.php new file mode 100644 index 000000000..29c7171b5 --- /dev/null +++ b/library/oauth2/src/OAuth2/ClientAssertionType/ClientAssertionTypeInterface.php @@ -0,0 +1,15 @@ + + */ +class HttpBasic implements ClientAssertionTypeInterface +{ + private $clientData; + + protected $storage; + protected $config; + + /** + * @param OAuth2\Storage\ClientCredentialsInterface $clientStorage REQUIRED Storage class for retrieving client credentials information + * @param array $config OPTIONAL Configuration options for the server + * + * $config = array( + * 'allow_credentials_in_request_body' => true, // whether to look for credentials in the POST body in addition to the Authorize HTTP Header + * 'allow_public_clients' => true // if true, "public clients" (clients without a secret) may be authenticated + * ); + * + */ + public function __construct(ClientCredentialsInterface $storage, array $config = array()) + { + $this->storage = $storage; + $this->config = array_merge(array( + 'allow_credentials_in_request_body' => true, + 'allow_public_clients' => true, + ), $config); + } + + public function validateRequest(RequestInterface $request, ResponseInterface $response) + { + if (!$clientData = $this->getClientCredentials($request, $response)) { + return false; + } + + if (!isset($clientData['client_id'])) { + throw new \LogicException('the clientData array must have "client_id" set'); + } + + if (!isset($clientData['client_secret']) || $clientData['client_secret'] == '') { + if (!$this->config['allow_public_clients']) { + $response->setError(400, 'invalid_client', 'client credentials are required'); + + return false; + } + + if (!$this->storage->isPublicClient($clientData['client_id'])) { + $response->setError(400, 'invalid_client', 'This client is invalid or must authenticate using a client secret'); + + return false; + } + } elseif ($this->storage->checkClientCredentials($clientData['client_id'], $clientData['client_secret']) === false) { + $response->setError(400, 'invalid_client', 'The client credentials are invalid'); + + return false; + } + + $this->clientData = $clientData; + + return true; + } + + public function getClientId() + { + return $this->clientData['client_id']; + } + + /** + * Internal function used to get the client credentials from HTTP basic + * auth or POST data. + * + * According to the spec (draft 20), the client_id can be provided in + * the Basic Authorization header (recommended) or via GET/POST. + * + * @return + * A list containing the client identifier and password, for example + * @code + * return array( + * "client_id" => CLIENT_ID, // REQUIRED the client id + * "client_secret" => CLIENT_SECRET, // OPTIONAL the client secret (may be omitted for public clients) + * ); + * @endcode + * + * @see http://tools.ietf.org/html/rfc6749#section-2.3.1 + * + * @ingroup oauth2_section_2 + */ + public function getClientCredentials(RequestInterface $request, ResponseInterface $response = null) + { + if (!is_null($request->headers('PHP_AUTH_USER')) && !is_null($request->headers('PHP_AUTH_PW'))) { + return array('client_id' => $request->headers('PHP_AUTH_USER'), 'client_secret' => $request->headers('PHP_AUTH_PW')); + } + + if ($this->config['allow_credentials_in_request_body']) { + // Using POST for HttpBasic authorization is not recommended, but is supported by specification + if (!is_null($request->request('client_id'))) { + /** + * client_secret can be null if the client's password is an empty string + * @see http://tools.ietf.org/html/rfc6749#section-2.3.1 + */ + + return array('client_id' => $request->request('client_id'), 'client_secret' => $request->request('client_secret')); + } + } + + if ($response) { + $message = $this->config['allow_credentials_in_request_body'] ? ' or body' : ''; + $response->setError(400, 'invalid_client', 'Client credentials were not found in the headers'.$message); + } + + return null; + } +} diff --git a/library/oauth2/src/OAuth2/Controller/AuthorizeController.php b/library/oauth2/src/OAuth2/Controller/AuthorizeController.php new file mode 100644 index 000000000..a9a722587 --- /dev/null +++ b/library/oauth2/src/OAuth2/Controller/AuthorizeController.php @@ -0,0 +1,388 @@ + + * $config = array( + * 'allow_implicit' => false, // if the controller should allow the "implicit" grant type + * 'enforce_state' => true // if the controller should require the "state" parameter + * 'require_exact_redirect_uri' => true, // if the controller should require an exact match on the "redirect_uri" parameter + * 'redirect_status_code' => 302, // HTTP status code to use for redirect responses + * ); + * + * @param OAuth2\ScopeInterface $scopeUtil OPTIONAL Instance of OAuth2\ScopeInterface to validate the requested scope + */ + public function __construct(ClientInterface $clientStorage, array $responseTypes = array(), array $config = array(), ScopeInterface $scopeUtil = null) + { + $this->clientStorage = $clientStorage; + $this->responseTypes = $responseTypes; + $this->config = array_merge(array( + 'allow_implicit' => false, + 'enforce_state' => true, + 'require_exact_redirect_uri' => true, + 'redirect_status_code' => 302, + ), $config); + + if (is_null($scopeUtil)) { + $scopeUtil = new Scope(); + } + $this->scopeUtil = $scopeUtil; + } + + public function handleAuthorizeRequest(RequestInterface $request, ResponseInterface $response, $is_authorized, $user_id = null) + { + if (!is_bool($is_authorized)) { + throw new \InvalidArgumentException('Argument "is_authorized" must be a boolean. This method must know if the user has granted access to the client.'); + } + + // We repeat this, because we need to re-validate. The request could be POSTed + // by a 3rd-party (because we are not internally enforcing NONCEs, etc) + if (!$this->validateAuthorizeRequest($request, $response)) { + return; + } + + // If no redirect_uri is passed in the request, use client's registered one + if (empty($this->redirect_uri)) { + $clientData = $this->clientStorage->getClientDetails($this->client_id); + $registered_redirect_uri = $clientData['redirect_uri']; + } + + // the user declined access to the client's application + if ($is_authorized === false) { + $redirect_uri = $this->redirect_uri ?: $registered_redirect_uri; + $this->setNotAuthorizedResponse($request, $response, $redirect_uri, $user_id); + + return; + } + + // build the parameters to set in the redirect URI + if (!$params = $this->buildAuthorizeParameters($request, $response, $user_id)) { + return; + } + + $authResult = $this->responseTypes[$this->response_type]->getAuthorizeResponse($params, $user_id); + + list($redirect_uri, $uri_params) = $authResult; + + if (empty($redirect_uri) && !empty($registered_redirect_uri)) { + $redirect_uri = $registered_redirect_uri; + } + + $uri = $this->buildUri($redirect_uri, $uri_params); + + // return redirect response + $response->setRedirect($this->config['redirect_status_code'], $uri); + } + + protected function setNotAuthorizedResponse(RequestInterface $request, ResponseInterface $response, $redirect_uri, $user_id = null) + { + $error = 'access_denied'; + $error_message = 'The user denied access to your application'; + $response->setRedirect($this->config['redirect_status_code'], $redirect_uri, $this->state, $error, $error_message); + } + + /* + * We have made this protected so this class can be extended to add/modify + * these parameters + */ + protected function buildAuthorizeParameters($request, $response, $user_id) + { + // @TODO: we should be explicit with this in the future + $params = array( + 'scope' => $this->scope, + 'state' => $this->state, + 'client_id' => $this->client_id, + 'redirect_uri' => $this->redirect_uri, + 'response_type' => $this->response_type, + ); + + return $params; + } + + public function validateAuthorizeRequest(RequestInterface $request, ResponseInterface $response) + { + // Make sure a valid client id was supplied (we can not redirect because we were unable to verify the URI) + if (!$client_id = $request->query('client_id', $request->request('client_id'))) { + // We don't have a good URI to use + $response->setError(400, 'invalid_client', "No client id supplied"); + + return false; + } + + // Get client details + if (!$clientData = $this->clientStorage->getClientDetails($client_id)) { + $response->setError(400, 'invalid_client', 'The client id supplied is invalid'); + + return false; + } + + $registered_redirect_uri = isset($clientData['redirect_uri']) ? $clientData['redirect_uri'] : ''; + + // Make sure a valid redirect_uri was supplied. If specified, it must match the clientData URI. + // @see http://tools.ietf.org/html/rfc6749#section-3.1.2 + // @see http://tools.ietf.org/html/rfc6749#section-4.1.2.1 + // @see http://tools.ietf.org/html/rfc6749#section-4.2.2.1 + if ($supplied_redirect_uri = $request->query('redirect_uri', $request->request('redirect_uri'))) { + // validate there is no fragment supplied + $parts = parse_url($supplied_redirect_uri); + if (isset($parts['fragment']) && $parts['fragment']) { + $response->setError(400, 'invalid_uri', 'The redirect URI must not contain a fragment'); + + return false; + } + + // validate against the registered redirect uri(s) if available + if ($registered_redirect_uri && !$this->validateRedirectUri($supplied_redirect_uri, $registered_redirect_uri)) { + $response->setError(400, 'redirect_uri_mismatch', 'The redirect URI provided is missing or does not match', '#section-3.1.2'); + + return false; + } + $redirect_uri = $supplied_redirect_uri; + } else { + // use the registered redirect_uri if none has been supplied, if possible + if (!$registered_redirect_uri) { + $response->setError(400, 'invalid_uri', 'No redirect URI was supplied or stored'); + + return false; + } + + if (count(explode(' ', $registered_redirect_uri)) > 1) { + $response->setError(400, 'invalid_uri', 'A redirect URI must be supplied when multiple redirect URIs are registered', '#section-3.1.2.3'); + + return false; + } + $redirect_uri = $registered_redirect_uri; + } + + // Select the redirect URI + $response_type = $request->query('response_type', $request->request('response_type')); + + // for multiple-valued response types - make them alphabetical + if (false !== strpos($response_type, ' ')) { + $types = explode(' ', $response_type); + sort($types); + $response_type = ltrim(implode(' ', $types)); + } + + $state = $request->query('state', $request->request('state')); + + // type and client_id are required + if (!$response_type || !in_array($response_type, $this->getValidResponseTypes())) { + $response->setRedirect($this->config['redirect_status_code'], $redirect_uri, $state, 'invalid_request', 'Invalid or missing response type', null); + + return false; + } + + if ($response_type == self::RESPONSE_TYPE_AUTHORIZATION_CODE) { + if (!isset($this->responseTypes['code'])) { + $response->setRedirect($this->config['redirect_status_code'], $redirect_uri, $state, 'unsupported_response_type', 'authorization code grant type not supported', null); + + return false; + } + if (!$this->clientStorage->checkRestrictedGrantType($client_id, 'authorization_code')) { + $response->setRedirect($this->config['redirect_status_code'], $redirect_uri, $state, 'unauthorized_client', 'The grant type is unauthorized for this client_id', null); + + return false; + } + if ($this->responseTypes['code']->enforceRedirect() && !$redirect_uri) { + $response->setError(400, 'redirect_uri_mismatch', 'The redirect URI is mandatory and was not supplied'); + + return false; + } + } else { + if (!$this->config['allow_implicit']) { + $response->setRedirect($this->config['redirect_status_code'], $redirect_uri, $state, 'unsupported_response_type', 'implicit grant type not supported', null); + + return false; + } + if (!$this->clientStorage->checkRestrictedGrantType($client_id, 'implicit')) { + $response->setRedirect($this->config['redirect_status_code'], $redirect_uri, $state, 'unauthorized_client', 'The grant type is unauthorized for this client_id', null); + + return false; + } + } + + // validate requested scope if it exists + $requestedScope = $this->scopeUtil->getScopeFromRequest($request); + + if ($requestedScope) { + // restrict scope by client specific scope if applicable, + // otherwise verify the scope exists + $clientScope = $this->clientStorage->getClientScope($client_id); + if ((empty($clientScope) && !$this->scopeUtil->scopeExists($requestedScope)) + || (!empty($clientScope) && !$this->scopeUtil->checkScope($requestedScope, $clientScope))) { + $response->setRedirect($this->config['redirect_status_code'], $redirect_uri, $state, 'invalid_scope', 'An unsupported scope was requested', null); + + return false; + } + } else { + // use a globally-defined default scope + $defaultScope = $this->scopeUtil->getDefaultScope($client_id); + + if (false === $defaultScope) { + $response->setRedirect($this->config['redirect_status_code'], $redirect_uri, $state, 'invalid_client', 'This application requires you specify a scope parameter', null); + + return false; + } + + $requestedScope = $defaultScope; + } + + // Validate state parameter exists (if configured to enforce this) + if ($this->config['enforce_state'] && !$state) { + $response->setRedirect($this->config['redirect_status_code'], $redirect_uri, null, 'invalid_request', 'The state parameter is required'); + + return false; + } + + // save the input data and return true + $this->scope = $requestedScope; + $this->state = $state; + $this->client_id = $client_id; + // Only save the SUPPLIED redirect URI (@see http://tools.ietf.org/html/rfc6749#section-4.1.3) + $this->redirect_uri = $supplied_redirect_uri; + $this->response_type = $response_type; + + return true; + } + + /** + * Build the absolute URI based on supplied URI and parameters. + * + * @param $uri An absolute URI. + * @param $params Parameters to be append as GET. + * + * @return + * An absolute URI with supplied parameters. + * + * @ingroup oauth2_section_4 + */ + private function buildUri($uri, $params) + { + $parse_url = parse_url($uri); + + // Add our params to the parsed uri + foreach ($params as $k => $v) { + if (isset($parse_url[$k])) { + $parse_url[$k] .= "&" . http_build_query($v, '', '&'); + } else { + $parse_url[$k] = http_build_query($v, '', '&'); + } + } + + // Put humpty dumpty back together + return + ((isset($parse_url["scheme"])) ? $parse_url["scheme"] . "://" : "") + . ((isset($parse_url["user"])) ? $parse_url["user"] + . ((isset($parse_url["pass"])) ? ":" . $parse_url["pass"] : "") . "@" : "") + . ((isset($parse_url["host"])) ? $parse_url["host"] : "") + . ((isset($parse_url["port"])) ? ":" . $parse_url["port"] : "") + . ((isset($parse_url["path"])) ? $parse_url["path"] : "") + . ((isset($parse_url["query"]) && !empty($parse_url['query'])) ? "?" . $parse_url["query"] : "") + . ((isset($parse_url["fragment"])) ? "#" . $parse_url["fragment"] : "") + ; + } + + protected function getValidResponseTypes() + { + return array( + self::RESPONSE_TYPE_ACCESS_TOKEN, + self::RESPONSE_TYPE_AUTHORIZATION_CODE, + ); + } + + /** + * Internal method for validating redirect URI supplied + * + * @param string $inputUri The submitted URI to be validated + * @param string $registeredUriString The allowed URI(s) to validate against. Can be a space-delimited string of URIs to + * allow for multiple URIs + * + * @see http://tools.ietf.org/html/rfc6749#section-3.1.2 + */ + protected function validateRedirectUri($inputUri, $registeredUriString) + { + if (!$inputUri || !$registeredUriString) { + return false; // if either one is missing, assume INVALID + } + + $registered_uris = explode(' ', $registeredUriString); + foreach ($registered_uris as $registered_uri) { + if ($this->config['require_exact_redirect_uri']) { + // the input uri is validated against the registered uri using exact match + if (strcmp($inputUri, $registered_uri) === 0) { + return true; + } + } else { + $registered_uri_length = strlen($registered_uri); + if ($registered_uri_length === 0) { + return false; + } + + // the input uri is validated against the registered uri using case-insensitive match of the initial string + // i.e. additional query parameters may be applied + if (strcasecmp(substr($inputUri, 0, $registered_uri_length), $registered_uri) === 0) { + return true; + } + } + } + + return false; + } + + /** + * Convenience methods to access the parameters derived from the validated request + */ + + public function getScope() + { + return $this->scope; + } + + public function getState() + { + return $this->state; + } + + public function getClientId() + { + return $this->client_id; + } + + public function getRedirectUri() + { + return $this->redirect_uri; + } + + public function getResponseType() + { + return $this->response_type; + } +} diff --git a/library/oauth2/src/OAuth2/Controller/AuthorizeControllerInterface.php b/library/oauth2/src/OAuth2/Controller/AuthorizeControllerInterface.php new file mode 100644 index 000000000..fa07ae8d2 --- /dev/null +++ b/library/oauth2/src/OAuth2/Controller/AuthorizeControllerInterface.php @@ -0,0 +1,43 @@ + $user_id = $this->somehowDetermineUserId(); + * > $is_authorized = $this->somehowDetermineUserAuthorization(); + * > $response = new OAuth2\Response(); + * > $authorizeController->handleAuthorizeRequest( + * > OAuth2\Request::createFromGlobals(), + * > $response, + * > $is_authorized, + * > $user_id); + * > $response->send(); + * + */ +interface AuthorizeControllerInterface +{ + /** + * List of possible authentication response types. + * The "authorization_code" mechanism exclusively supports 'code' + * and the "implicit" mechanism exclusively supports 'token'. + * + * @var string + * @see http://tools.ietf.org/html/rfc6749#section-4.1.1 + * @see http://tools.ietf.org/html/rfc6749#section-4.2.1 + */ + const RESPONSE_TYPE_AUTHORIZATION_CODE = 'code'; + const RESPONSE_TYPE_ACCESS_TOKEN = 'token'; + + public function handleAuthorizeRequest(RequestInterface $request, ResponseInterface $response, $is_authorized, $user_id = null); + + public function validateAuthorizeRequest(RequestInterface $request, ResponseInterface $response); +} diff --git a/library/oauth2/src/OAuth2/Controller/ResourceController.php b/library/oauth2/src/OAuth2/Controller/ResourceController.php new file mode 100644 index 000000000..e8588188f --- /dev/null +++ b/library/oauth2/src/OAuth2/Controller/ResourceController.php @@ -0,0 +1,111 @@ +tokenType = $tokenType; + $this->tokenStorage = $tokenStorage; + + $this->config = array_merge(array( + 'www_realm' => 'Service', + ), $config); + + if (is_null($scopeUtil)) { + $scopeUtil = new Scope(); + } + $this->scopeUtil = $scopeUtil; + } + + public function verifyResourceRequest(RequestInterface $request, ResponseInterface $response, $scope = null) + { + $token = $this->getAccessTokenData($request, $response); + + // Check if we have token data + if (is_null($token)) { + return false; + } + + /** + * Check scope, if provided + * If token doesn't have a scope, it's null/empty, or it's insufficient, then throw 403 + * @see http://tools.ietf.org/html/rfc6750#section-3.1 + */ + if ($scope && (!isset($token["scope"]) || !$token["scope"] || !$this->scopeUtil->checkScope($scope, $token["scope"]))) { + $response->setError(403, 'insufficient_scope', 'The request requires higher privileges than provided by the access token'); + $response->addHttpHeaders(array( + 'WWW-Authenticate' => sprintf('%s realm="%s", scope="%s", error="%s", error_description="%s"', + $this->tokenType->getTokenType(), + $this->config['www_realm'], + $scope, + $response->getParameter('error'), + $response->getParameter('error_description') + ) + )); + + return false; + } + + // allow retrieval of the token + $this->token = $token; + + return (bool) $token; + } + + public function getAccessTokenData(RequestInterface $request, ResponseInterface $response) + { + // Get the token parameter + if ($token_param = $this->tokenType->getAccessTokenParameter($request, $response)) { + // Get the stored token data (from the implementing subclass) + // Check we have a well formed token + // Check token expiration (expires is a mandatory paramter) + if (!$token = $this->tokenStorage->getAccessToken($token_param)) { + $response->setError(401, 'invalid_token', 'The access token provided is invalid'); + } elseif (!isset($token["expires"]) || !isset($token["client_id"])) { + $response->setError(401, 'malformed_token', 'Malformed token (missing "expires")'); + } elseif (time() > $token["expires"]) { + $response->setError(401, 'expired_token', 'The access token provided has expired'); + } else { + return $token; + } + } + + $authHeader = sprintf('%s realm="%s"', $this->tokenType->getTokenType(), $this->config['www_realm']); + + if ($error = $response->getParameter('error')) { + $authHeader = sprintf('%s, error="%s"', $authHeader, $error); + if ($error_description = $response->getParameter('error_description')) { + $authHeader = sprintf('%s, error_description="%s"', $authHeader, $error_description); + } + } + + $response->addHttpHeaders(array('WWW-Authenticate' => $authHeader)); + + return null; + } + + // convenience method to allow retrieval of the token + public function getToken() + { + return $this->token; + } +} diff --git a/library/oauth2/src/OAuth2/Controller/ResourceControllerInterface.php b/library/oauth2/src/OAuth2/Controller/ResourceControllerInterface.php new file mode 100644 index 000000000..611421935 --- /dev/null +++ b/library/oauth2/src/OAuth2/Controller/ResourceControllerInterface.php @@ -0,0 +1,26 @@ + if (!$resourceController->verifyResourceRequest(OAuth2\Request::createFromGlobals(), $response = new OAuth2\Response())) { + * > $response->send(); // authorization failed + * > die(); + * > } + * > return json_encode($resource); // valid token! Send the stuff! + * + */ +interface ResourceControllerInterface +{ + public function verifyResourceRequest(RequestInterface $request, ResponseInterface $response, $scope = null); + + public function getAccessTokenData(RequestInterface $request, ResponseInterface $response); +} diff --git a/library/oauth2/src/OAuth2/Controller/TokenController.php b/library/oauth2/src/OAuth2/Controller/TokenController.php new file mode 100644 index 000000000..42dab892f --- /dev/null +++ b/library/oauth2/src/OAuth2/Controller/TokenController.php @@ -0,0 +1,278 @@ +clientAssertionType = $clientAssertionType; + $this->accessToken = $accessToken; + $this->clientStorage = $clientStorage; + foreach ($grantTypes as $grantType) { + $this->addGrantType($grantType); + } + + if (is_null($scopeUtil)) { + $scopeUtil = new Scope(); + } + $this->scopeUtil = $scopeUtil; + } + + public function handleTokenRequest(RequestInterface $request, ResponseInterface $response) + { + if ($token = $this->grantAccessToken($request, $response)) { + // @see http://tools.ietf.org/html/rfc6749#section-5.1 + // server MUST disable caching in headers when tokens are involved + $response->setStatusCode(200); + $response->addParameters($token); + $response->addHttpHeaders(array( + 'Cache-Control' => 'no-store', + 'Pragma' => 'no-cache', + 'Content-Type' => 'application/json' + )); + } + } + + /** + * Grant or deny a requested access token. + * This would be called from the "/token" endpoint as defined in the spec. + * You can call your endpoint whatever you want. + * + * @param $request - RequestInterface + * Request object to grant access token + * + * @throws InvalidArgumentException + * @throws LogicException + * + * @see http://tools.ietf.org/html/rfc6749#section-4 + * @see http://tools.ietf.org/html/rfc6749#section-10.6 + * @see http://tools.ietf.org/html/rfc6749#section-4.1.3 + * + * @ingroup oauth2_section_4 + */ + public function grantAccessToken(RequestInterface $request, ResponseInterface $response) + { + if (strtolower($request->server('REQUEST_METHOD')) != 'post') { + $response->setError(405, 'invalid_request', 'The request method must be POST when requesting an access token', '#section-3.2'); + $response->addHttpHeaders(array('Allow' => 'POST')); + + return null; + } + + /** + * Determine grant type from request + * and validate the request for that grant type + */ + if (!$grantTypeIdentifier = $request->request('grant_type')) { + $response->setError(400, 'invalid_request', 'The grant type was not specified in the request'); + + return null; + } + + if (!isset($this->grantTypes[$grantTypeIdentifier])) { + /* TODO: If this is an OAuth2 supported grant type that we have chosen not to implement, throw a 501 Not Implemented instead */ + $response->setError(400, 'unsupported_grant_type', sprintf('Grant type "%s" not supported', $grantTypeIdentifier)); + + return null; + } + + $grantType = $this->grantTypes[$grantTypeIdentifier]; + + /** + * Retrieve the client information from the request + * ClientAssertionTypes allow for grant types which also assert the client data + * in which case ClientAssertion is handled in the validateRequest method + * + * @see OAuth2\GrantType\JWTBearer + * @see OAuth2\GrantType\ClientCredentials + */ + if (!$grantType instanceof ClientAssertionTypeInterface) { + if (!$this->clientAssertionType->validateRequest($request, $response)) { + return null; + } + $clientId = $this->clientAssertionType->getClientId(); + } + + /** + * Retrieve the grant type information from the request + * The GrantTypeInterface object handles all validation + * If the object is an instance of ClientAssertionTypeInterface, + * That logic is handled here as well + */ + if (!$grantType->validateRequest($request, $response)) { + return null; + } + + if ($grantType instanceof ClientAssertionTypeInterface) { + $clientId = $grantType->getClientId(); + } else { + // validate the Client ID (if applicable) + if (!is_null($storedClientId = $grantType->getClientId()) && $storedClientId != $clientId) { + $response->setError(400, 'invalid_grant', sprintf('%s doesn\'t exist or is invalid for the client', $grantTypeIdentifier)); + + return null; + } + } + + /** + * Validate the client can use the requested grant type + */ + if (!$this->clientStorage->checkRestrictedGrantType($clientId, $grantTypeIdentifier)) { + $response->setError(400, 'unauthorized_client', 'The grant type is unauthorized for this client_id'); + + return false; + } + + /** + * Validate the scope of the token + * + * requestedScope - the scope specified in the token request + * availableScope - the scope associated with the grant type + * ex: in the case of the "Authorization Code" grant type, + * the scope is specified in the authorize request + * + * @see http://tools.ietf.org/html/rfc6749#section-3.3 + */ + + $requestedScope = $this->scopeUtil->getScopeFromRequest($request); + $availableScope = $grantType->getScope(); + + if ($requestedScope) { + // validate the requested scope + if ($availableScope) { + if (!$this->scopeUtil->checkScope($requestedScope, $availableScope)) { + $response->setError(400, 'invalid_scope', 'The scope requested is invalid for this request'); + + return null; + } + } else { + // validate the client has access to this scope + if ($clientScope = $this->clientStorage->getClientScope($clientId)) { + if (!$this->scopeUtil->checkScope($requestedScope, $clientScope)) { + $response->setError(400, 'invalid_scope', 'The scope requested is invalid for this client'); + + return false; + } + } elseif (!$this->scopeUtil->scopeExists($requestedScope)) { + $response->setError(400, 'invalid_scope', 'An unsupported scope was requested'); + + return null; + } + } + } elseif ($availableScope) { + // use the scope associated with this grant type + $requestedScope = $availableScope; + } else { + // use a globally-defined default scope + $defaultScope = $this->scopeUtil->getDefaultScope($clientId); + + // "false" means default scopes are not allowed + if (false === $defaultScope) { + $response->setError(400, 'invalid_scope', 'This application requires you specify a scope parameter'); + + return null; + } + + $requestedScope = $defaultScope; + } + + return $grantType->createAccessToken($this->accessToken, $clientId, $grantType->getUserId(), $requestedScope); + } + + /** + * addGrantType + * + * @param grantType - OAuth2\GrantTypeInterface + * the grant type to add for the specified identifier + * @param identifier - string + * a string passed in as "grant_type" in the response that will call this grantType + */ + public function addGrantType(GrantTypeInterface $grantType, $identifier = null) + { + if (is_null($identifier) || is_numeric($identifier)) { + $identifier = $grantType->getQuerystringIdentifier(); + } + + $this->grantTypes[$identifier] = $grantType; + } + + public function handleRevokeRequest(RequestInterface $request, ResponseInterface $response) + { + if ($this->revokeToken($request, $response)) { + $response->setStatusCode(200); + $response->addParameters(array('revoked' => true)); + } + } + + /** + * Revoke a refresh or access token. Returns true on success and when tokens are invalid + * + * Note: invalid tokens do not cause an error response since the client + * cannot handle such an error in a reasonable way. Moreover, the + * purpose of the revocation request, invalidating the particular token, + * is already achieved. + * + * @param RequestInterface $request + * @param ResponseInterface $response + * @return bool|null + */ + public function revokeToken(RequestInterface $request, ResponseInterface $response) + { + if (strtolower($request->server('REQUEST_METHOD')) != 'post') { + $response->setError(405, 'invalid_request', 'The request method must be POST when revoking an access token', '#section-3.2'); + $response->addHttpHeaders(array('Allow' => 'POST')); + + return null; + } + + $token_type_hint = $request->request('token_type_hint'); + if (!in_array($token_type_hint, array(null, 'access_token', 'refresh_token'), true)) { + $response->setError(400, 'invalid_request', 'Token type hint must be either \'access_token\' or \'refresh_token\''); + + return null; + } + + $token = $request->request('token'); + if ($token === null) { + $response->setError(400, 'invalid_request', 'Missing token parameter to revoke'); + + return null; + } + + // @todo remove this check for v2.0 + if (!method_exists($this->accessToken, 'revokeToken')) { + $class = get_class($this->accessToken); + throw new \RuntimeException("AccessToken {$class} does not implement required revokeToken method"); + } + + $this->accessToken->revokeToken($token, $token_type_hint); + + return true; + } +} diff --git a/library/oauth2/src/OAuth2/Controller/TokenControllerInterface.php b/library/oauth2/src/OAuth2/Controller/TokenControllerInterface.php new file mode 100644 index 000000000..72d72570f --- /dev/null +++ b/library/oauth2/src/OAuth2/Controller/TokenControllerInterface.php @@ -0,0 +1,32 @@ + $tokenController->handleTokenRequest(OAuth2\Request::createFromGlobals(), $response = new OAuth2\Response()); + * > $response->send(); + * + */ +interface TokenControllerInterface +{ + /** + * handleTokenRequest + * + * @param $request + * OAuth2\RequestInterface - The current http request + * @param $response + * OAuth2\ResponseInterface - An instance of OAuth2\ResponseInterface to contain the response data + * + */ + public function handleTokenRequest(RequestInterface $request, ResponseInterface $response); + + public function grantAccessToken(RequestInterface $request, ResponseInterface $response); +} diff --git a/library/oauth2/src/OAuth2/Encryption/EncryptionInterface.php b/library/oauth2/src/OAuth2/Encryption/EncryptionInterface.php new file mode 100644 index 000000000..2d336c664 --- /dev/null +++ b/library/oauth2/src/OAuth2/Encryption/EncryptionInterface.php @@ -0,0 +1,11 @@ + + */ +class FirebaseJwt implements EncryptionInterface +{ + public function __construct() + { + if (!class_exists('\JWT')) { + throw new \ErrorException('firebase/php-jwt must be installed to use this feature. You can do this by running "composer require firebase/php-jwt"'); + } + } + + public function encode($payload, $key, $alg = 'HS256', $keyId = null) + { + return \JWT::encode($payload, $key, $alg, $keyId); + } + + public function decode($jwt, $key = null, $allowedAlgorithms = null) + { + try { + + //Maintain BC: Do not verify if no algorithms are passed in. + if (!$allowedAlgorithms) { + $key = null; + } + + return (array)\JWT::decode($jwt, $key, $allowedAlgorithms); + } catch (\Exception $e) { + return false; + } + } + + public function urlSafeB64Encode($data) + { + return \JWT::urlsafeB64Encode($data); + } + + public function urlSafeB64Decode($b64) + { + return \JWT::urlsafeB64Decode($b64); + } +} diff --git a/library/oauth2/src/OAuth2/Encryption/Jwt.php b/library/oauth2/src/OAuth2/Encryption/Jwt.php new file mode 100644 index 000000000..ee576e643 --- /dev/null +++ b/library/oauth2/src/OAuth2/Encryption/Jwt.php @@ -0,0 +1,173 @@ +generateJwtHeader($payload, $algo); + + $segments = array( + $this->urlSafeB64Encode(json_encode($header)), + $this->urlSafeB64Encode(json_encode($payload)) + ); + + $signing_input = implode('.', $segments); + + $signature = $this->sign($signing_input, $key, $algo); + $segments[] = $this->urlsafeB64Encode($signature); + + return implode('.', $segments); + } + + public function decode($jwt, $key = null, $allowedAlgorithms = true) + { + if (!strpos($jwt, '.')) { + return false; + } + + $tks = explode('.', $jwt); + + if (count($tks) != 3) { + return false; + } + + list($headb64, $payloadb64, $cryptob64) = $tks; + + if (null === ($header = json_decode($this->urlSafeB64Decode($headb64), true))) { + return false; + } + + if (null === $payload = json_decode($this->urlSafeB64Decode($payloadb64), true)) { + return false; + } + + $sig = $this->urlSafeB64Decode($cryptob64); + + if ((bool) $allowedAlgorithms) { + if (!isset($header['alg'])) { + return false; + } + + // check if bool arg supplied here to maintain BC + if (is_array($allowedAlgorithms) && !in_array($header['alg'], $allowedAlgorithms)) { + return false; + } + + if (!$this->verifySignature($sig, "$headb64.$payloadb64", $key, $header['alg'])) { + return false; + } + } + + return $payload; + } + + private function verifySignature($signature, $input, $key, $algo = 'HS256') + { + // use constants when possible, for HipHop support + switch ($algo) { + case'HS256': + case'HS384': + case'HS512': + return $this->hash_equals( + $this->sign($input, $key, $algo), + $signature + ); + + case 'RS256': + return openssl_verify($input, $signature, $key, defined('OPENSSL_ALGO_SHA256') ? OPENSSL_ALGO_SHA256 : 'sha256') === 1; + + case 'RS384': + return @openssl_verify($input, $signature, $key, defined('OPENSSL_ALGO_SHA384') ? OPENSSL_ALGO_SHA384 : 'sha384') === 1; + + case 'RS512': + return @openssl_verify($input, $signature, $key, defined('OPENSSL_ALGO_SHA512') ? OPENSSL_ALGO_SHA512 : 'sha512') === 1; + + default: + throw new \InvalidArgumentException("Unsupported or invalid signing algorithm."); + } + } + + private function sign($input, $key, $algo = 'HS256') + { + switch ($algo) { + case 'HS256': + return hash_hmac('sha256', $input, $key, true); + + case 'HS384': + return hash_hmac('sha384', $input, $key, true); + + case 'HS512': + return hash_hmac('sha512', $input, $key, true); + + case 'RS256': + return $this->generateRSASignature($input, $key, defined('OPENSSL_ALGO_SHA256') ? OPENSSL_ALGO_SHA256 : 'sha256'); + + case 'RS384': + return $this->generateRSASignature($input, $key, defined('OPENSSL_ALGO_SHA384') ? OPENSSL_ALGO_SHA384 : 'sha384'); + + case 'RS512': + return $this->generateRSASignature($input, $key, defined('OPENSSL_ALGO_SHA512') ? OPENSSL_ALGO_SHA512 : 'sha512'); + + default: + throw new \Exception("Unsupported or invalid signing algorithm."); + } + } + + private function generateRSASignature($input, $key, $algo) + { + if (!openssl_sign($input, $signature, $key, $algo)) { + throw new \Exception("Unable to sign data."); + } + + return $signature; + } + + public function urlSafeB64Encode($data) + { + $b64 = base64_encode($data); + $b64 = str_replace(array('+', '/', "\r", "\n", '='), + array('-', '_'), + $b64); + + return $b64; + } + + public function urlSafeB64Decode($b64) + { + $b64 = str_replace(array('-', '_'), + array('+', '/'), + $b64); + + return base64_decode($b64); + } + + /** + * Override to create a custom header + */ + protected function generateJwtHeader($payload, $algorithm) + { + return array( + 'typ' => 'JWT', + 'alg' => $algorithm, + ); + } + + protected function hash_equals($a, $b) + { + if (function_exists('hash_equals')) { + return hash_equals($a, $b); + } + $diff = strlen($a) ^ strlen($b); + for ($i = 0; $i < strlen($a) && $i < strlen($b); $i++) { + $diff |= ord($a[$i]) ^ ord($b[$i]); + } + + return $diff === 0; + } +} diff --git a/library/oauth2/src/OAuth2/GrantType/AuthorizationCode.php b/library/oauth2/src/OAuth2/GrantType/AuthorizationCode.php new file mode 100644 index 000000000..e8995204c --- /dev/null +++ b/library/oauth2/src/OAuth2/GrantType/AuthorizationCode.php @@ -0,0 +1,100 @@ + + */ +class AuthorizationCode implements GrantTypeInterface +{ + protected $storage; + protected $authCode; + + /** + * @param OAuth2\Storage\AuthorizationCodeInterface $storage REQUIRED Storage class for retrieving authorization code information + */ + public function __construct(AuthorizationCodeInterface $storage) + { + $this->storage = $storage; + } + + public function getQuerystringIdentifier() + { + return 'authorization_code'; + } + + public function validateRequest(RequestInterface $request, ResponseInterface $response) + { + if (!$request->request('code')) { + $response->setError(400, 'invalid_request', 'Missing parameter: "code" is required'); + + return false; + } + + $code = $request->request('code'); + if (!$authCode = $this->storage->getAuthorizationCode($code)) { + $response->setError(400, 'invalid_grant', 'Authorization code doesn\'t exist or is invalid for the client'); + + return false; + } + + /* + * 4.1.3 - ensure that the "redirect_uri" parameter is present if the "redirect_uri" parameter was included in the initial authorization request + * @uri - http://tools.ietf.org/html/rfc6749#section-4.1.3 + */ + if (isset($authCode['redirect_uri']) && $authCode['redirect_uri']) { + if (!$request->request('redirect_uri') || urldecode($request->request('redirect_uri')) != $authCode['redirect_uri']) { + $response->setError(400, 'redirect_uri_mismatch', "The redirect URI is missing or do not match", "#section-4.1.3"); + + return false; + } + } + + if (!isset($authCode['expires'])) { + throw new \Exception('Storage must return authcode with a value for "expires"'); + } + + if ($authCode["expires"] < time()) { + $response->setError(400, 'invalid_grant', "The authorization code has expired"); + + return false; + } + + if (!isset($authCode['code'])) { + $authCode['code'] = $code; // used to expire the code after the access token is granted + } + + $this->authCode = $authCode; + + return true; + } + + public function getClientId() + { + return $this->authCode['client_id']; + } + + public function getScope() + { + return isset($this->authCode['scope']) ? $this->authCode['scope'] : null; + } + + public function getUserId() + { + return isset($this->authCode['user_id']) ? $this->authCode['user_id'] : null; + } + + public function createAccessToken(AccessTokenInterface $accessToken, $client_id, $user_id, $scope) + { + $token = $accessToken->createAccessToken($client_id, $user_id, $scope); + $this->storage->expireAuthorizationCode($this->authCode['code']); + + return $token; + } +} diff --git a/library/oauth2/src/OAuth2/GrantType/ClientCredentials.php b/library/oauth2/src/OAuth2/GrantType/ClientCredentials.php new file mode 100644 index 000000000..f953e4e8d --- /dev/null +++ b/library/oauth2/src/OAuth2/GrantType/ClientCredentials.php @@ -0,0 +1,67 @@ + + * + * @see OAuth2\ClientAssertionType_HttpBasic + */ +class ClientCredentials extends HttpBasic implements GrantTypeInterface +{ + private $clientData; + + public function __construct(ClientCredentialsInterface $storage, array $config = array()) + { + /** + * The client credentials grant type MUST only be used by confidential clients + * + * @see http://tools.ietf.org/html/rfc6749#section-4.4 + */ + $config['allow_public_clients'] = false; + + parent::__construct($storage, $config); + } + + public function getQuerystringIdentifier() + { + return 'client_credentials'; + } + + public function getScope() + { + $this->loadClientData(); + + return isset($this->clientData['scope']) ? $this->clientData['scope'] : null; + } + + public function getUserId() + { + $this->loadClientData(); + + return isset($this->clientData['user_id']) ? $this->clientData['user_id'] : null; + } + + public function createAccessToken(AccessTokenInterface $accessToken, $client_id, $user_id, $scope) + { + /** + * Client Credentials Grant does NOT include a refresh token + * + * @see http://tools.ietf.org/html/rfc6749#section-4.4.3 + */ + $includeRefreshToken = false; + + return $accessToken->createAccessToken($client_id, $user_id, $scope, $includeRefreshToken); + } + + private function loadClientData() + { + if (!$this->clientData) { + $this->clientData = $this->storage->getClientDetails($this->getClientId()); + } + } +} diff --git a/library/oauth2/src/OAuth2/GrantType/GrantTypeInterface.php b/library/oauth2/src/OAuth2/GrantType/GrantTypeInterface.php new file mode 100644 index 000000000..98489e9c1 --- /dev/null +++ b/library/oauth2/src/OAuth2/GrantType/GrantTypeInterface.php @@ -0,0 +1,20 @@ + + */ +class JwtBearer implements GrantTypeInterface, ClientAssertionTypeInterface +{ + private $jwt; + + protected $storage; + protected $audience; + protected $jwtUtil; + protected $allowedAlgorithms; + + /** + * Creates an instance of the JWT bearer grant type. + * + * @param OAuth2\Storage\JWTBearerInterface|JwtBearerInterface $storage A valid storage interface that implements storage hooks for the JWT bearer grant type. + * @param string $audience The audience to validate the token against. This is usually the full URI of the OAuth token requests endpoint. + * @param EncryptionInterface|OAuth2\Encryption\JWT $jwtUtil OPTONAL The class used to decode, encode and verify JWTs. + * @param array $config + */ + public function __construct(JwtBearerInterface $storage, $audience, EncryptionInterface $jwtUtil = null, array $config = array()) + { + $this->storage = $storage; + $this->audience = $audience; + + if (is_null($jwtUtil)) { + $jwtUtil = new Jwt(); + } + + $this->config = array_merge(array( + 'allowed_algorithms' => array('RS256', 'RS384', 'RS512') + ), $config); + + $this->jwtUtil = $jwtUtil; + + $this->allowedAlgorithms = $this->config['allowed_algorithms']; + } + + /** + * Returns the grant_type get parameter to identify the grant type request as JWT bearer authorization grant. + * + * @return + * The string identifier for grant_type. + * + * @see OAuth2\GrantType\GrantTypeInterface::getQuerystringIdentifier() + */ + public function getQuerystringIdentifier() + { + return 'urn:ietf:params:oauth:grant-type:jwt-bearer'; + } + + /** + * Validates the data from the decoded JWT. + * + * @return + * TRUE if the JWT request is valid and can be decoded. Otherwise, FALSE is returned. + * + * @see OAuth2\GrantType\GrantTypeInterface::getTokenData() + */ + public function validateRequest(RequestInterface $request, ResponseInterface $response) + { + if (!$request->request("assertion")) { + $response->setError(400, 'invalid_request', 'Missing parameters: "assertion" required'); + + return null; + } + + // Store the undecoded JWT for later use + $undecodedJWT = $request->request('assertion'); + + // Decode the JWT + $jwt = $this->jwtUtil->decode($request->request('assertion'), null, false); + + if (!$jwt) { + $response->setError(400, 'invalid_request', "JWT is malformed"); + + return null; + } + + // ensure these properties contain a value + // @todo: throw malformed error for missing properties + $jwt = array_merge(array( + 'scope' => null, + 'iss' => null, + 'sub' => null, + 'aud' => null, + 'exp' => null, + 'nbf' => null, + 'iat' => null, + 'jti' => null, + 'typ' => null, + ), $jwt); + + if (!isset($jwt['iss'])) { + $response->setError(400, 'invalid_grant', "Invalid issuer (iss) provided"); + + return null; + } + + if (!isset($jwt['sub'])) { + $response->setError(400, 'invalid_grant', "Invalid subject (sub) provided"); + + return null; + } + + if (!isset($jwt['exp'])) { + $response->setError(400, 'invalid_grant', "Expiration (exp) time must be present"); + + return null; + } + + // Check expiration + if (ctype_digit($jwt['exp'])) { + if ($jwt['exp'] <= time()) { + $response->setError(400, 'invalid_grant', "JWT has expired"); + + return null; + } + } else { + $response->setError(400, 'invalid_grant', "Expiration (exp) time must be a unix time stamp"); + + return null; + } + + // Check the not before time + if ($notBefore = $jwt['nbf']) { + if (ctype_digit($notBefore)) { + if ($notBefore > time()) { + $response->setError(400, 'invalid_grant', "JWT cannot be used before the Not Before (nbf) time"); + + return null; + } + } else { + $response->setError(400, 'invalid_grant', "Not Before (nbf) time must be a unix time stamp"); + + return null; + } + } + + // Check the audience if required to match + if (!isset($jwt['aud']) || ($jwt['aud'] != $this->audience)) { + $response->setError(400, 'invalid_grant', "Invalid audience (aud)"); + + return null; + } + + // Check the jti (nonce) + // @see http://tools.ietf.org/html/draft-ietf-oauth-json-web-token-13#section-4.1.7 + if (isset($jwt['jti'])) { + $jti = $this->storage->getJti($jwt['iss'], $jwt['sub'], $jwt['aud'], $jwt['exp'], $jwt['jti']); + + //Reject if jti is used and jwt is still valid (exp parameter has not expired). + if ($jti && $jti['expires'] > time()) { + $response->setError(400, 'invalid_grant', "JSON Token Identifier (jti) has already been used"); + + return null; + } else { + $this->storage->setJti($jwt['iss'], $jwt['sub'], $jwt['aud'], $jwt['exp'], $jwt['jti']); + } + } + + // Get the iss's public key + // @see http://tools.ietf.org/html/draft-ietf-oauth-json-web-token-06#section-4.1.1 + if (!$key = $this->storage->getClientKey($jwt['iss'], $jwt['sub'])) { + $response->setError(400, 'invalid_grant', "Invalid issuer (iss) or subject (sub) provided"); + + return null; + } + + // Verify the JWT + if (!$this->jwtUtil->decode($undecodedJWT, $key, $this->allowedAlgorithms)) { + $response->setError(400, 'invalid_grant', "JWT failed signature verification"); + + return null; + } + + $this->jwt = $jwt; + + return true; + } + + public function getClientId() + { + return $this->jwt['iss']; + } + + public function getUserId() + { + return $this->jwt['sub']; + } + + public function getScope() + { + return null; + } + + /** + * Creates an access token that is NOT associated with a refresh token. + * If a subject (sub) the name of the user/account we are accessing data on behalf of. + * + * @see OAuth2\GrantType\GrantTypeInterface::createAccessToken() + */ + public function createAccessToken(AccessTokenInterface $accessToken, $client_id, $user_id, $scope) + { + $includeRefreshToken = false; + + return $accessToken->createAccessToken($client_id, $user_id, $scope, $includeRefreshToken); + } +} diff --git a/library/oauth2/src/OAuth2/GrantType/RefreshToken.php b/library/oauth2/src/OAuth2/GrantType/RefreshToken.php new file mode 100644 index 000000000..e55385222 --- /dev/null +++ b/library/oauth2/src/OAuth2/GrantType/RefreshToken.php @@ -0,0 +1,111 @@ + + */ +class RefreshToken implements GrantTypeInterface +{ + private $refreshToken; + + protected $storage; + protected $config; + + /** + * @param OAuth2\Storage\RefreshTokenInterface $storage REQUIRED Storage class for retrieving refresh token information + * @param array $config OPTIONAL Configuration options for the server + * + * $config = array( + * 'always_issue_new_refresh_token' => true, // whether to issue a new refresh token upon successful token request + * 'unset_refresh_token_after_use' => true // whether to unset the refresh token after after using + * ); + * + */ + public function __construct(RefreshTokenInterface $storage, $config = array()) + { + $this->config = array_merge(array( + 'always_issue_new_refresh_token' => false, + 'unset_refresh_token_after_use' => true + ), $config); + + // to preserve B.C. with v1.6 + // @see https://github.com/bshaffer/oauth2-server-php/pull/580 + // @todo - remove in v2.0 + if (isset($config['always_issue_new_refresh_token']) && !isset($config['unset_refresh_token_after_use'])) { + $this->config['unset_refresh_token_after_use'] = $config['always_issue_new_refresh_token']; + } + + $this->storage = $storage; + } + + public function getQuerystringIdentifier() + { + return 'refresh_token'; + } + + public function validateRequest(RequestInterface $request, ResponseInterface $response) + { + if (!$request->request("refresh_token")) { + $response->setError(400, 'invalid_request', 'Missing parameter: "refresh_token" is required'); + + return null; + } + + if (!$refreshToken = $this->storage->getRefreshToken($request->request("refresh_token"))) { + $response->setError(400, 'invalid_grant', 'Invalid refresh token'); + + return null; + } + + if ($refreshToken['expires'] > 0 && $refreshToken["expires"] < time()) { + $response->setError(400, 'invalid_grant', 'Refresh token has expired'); + + return null; + } + + // store the refresh token locally so we can delete it when a new refresh token is generated + $this->refreshToken = $refreshToken; + + return true; + } + + public function getClientId() + { + return $this->refreshToken['client_id']; + } + + public function getUserId() + { + return isset($this->refreshToken['user_id']) ? $this->refreshToken['user_id'] : null; + } + + public function getScope() + { + return isset($this->refreshToken['scope']) ? $this->refreshToken['scope'] : null; + } + + public function createAccessToken(AccessTokenInterface $accessToken, $client_id, $user_id, $scope) + { + /* + * It is optional to force a new refresh token when a refresh token is used. + * However, if a new refresh token is issued, the old one MUST be expired + * @see http://tools.ietf.org/html/rfc6749#section-6 + */ + $issueNewRefreshToken = $this->config['always_issue_new_refresh_token']; + $unsetRefreshToken = $this->config['unset_refresh_token_after_use']; + $token = $accessToken->createAccessToken($client_id, $user_id, $scope, $issueNewRefreshToken); + + if ($unsetRefreshToken) { + $this->storage->unsetRefreshToken($this->refreshToken['refresh_token']); + } + + return $token; + } +} diff --git a/library/oauth2/src/OAuth2/GrantType/UserCredentials.php b/library/oauth2/src/OAuth2/GrantType/UserCredentials.php new file mode 100644 index 000000000..f165538ba --- /dev/null +++ b/library/oauth2/src/OAuth2/GrantType/UserCredentials.php @@ -0,0 +1,83 @@ + + */ +class UserCredentials implements GrantTypeInterface +{ + private $userInfo; + + protected $storage; + + /** + * @param OAuth2\Storage\UserCredentialsInterface $storage REQUIRED Storage class for retrieving user credentials information + */ + public function __construct(UserCredentialsInterface $storage) + { + $this->storage = $storage; + } + + public function getQuerystringIdentifier() + { + return 'password'; + } + + public function validateRequest(RequestInterface $request, ResponseInterface $response) + { + if (!$request->request("password") || !$request->request("username")) { + $response->setError(400, 'invalid_request', 'Missing parameters: "username" and "password" required'); + + return null; + } + + if (!$this->storage->checkUserCredentials($request->request("username"), $request->request("password"))) { + $response->setError(401, 'invalid_grant', 'Invalid username and password combination'); + + return null; + } + + $userInfo = $this->storage->getUserDetails($request->request("username")); + + if (empty($userInfo)) { + $response->setError(400, 'invalid_grant', 'Unable to retrieve user information'); + + return null; + } + + if (!isset($userInfo['user_id'])) { + throw new \LogicException("you must set the user_id on the array returned by getUserDetails"); + } + + $this->userInfo = $userInfo; + + return true; + } + + public function getClientId() + { + return null; + } + + public function getUserId() + { + return $this->userInfo['user_id']; + } + + public function getScope() + { + return isset($this->userInfo['scope']) ? $this->userInfo['scope'] : null; + } + + public function createAccessToken(AccessTokenInterface $accessToken, $client_id, $user_id, $scope) + { + return $accessToken->createAccessToken($client_id, $user_id, $scope); + } +} diff --git a/library/oauth2/src/OAuth2/OpenID/Controller/AuthorizeController.php b/library/oauth2/src/OAuth2/OpenID/Controller/AuthorizeController.php new file mode 100644 index 000000000..c9b5c6af7 --- /dev/null +++ b/library/oauth2/src/OAuth2/OpenID/Controller/AuthorizeController.php @@ -0,0 +1,106 @@ +query('prompt', 'consent'); + if ($prompt == 'none') { + if (is_null($user_id)) { + $error = 'login_required'; + $error_message = 'The user must log in'; + } else { + $error = 'interaction_required'; + $error_message = 'The user must grant access to your application'; + } + } else { + $error = 'consent_required'; + $error_message = 'The user denied access to your application'; + } + + $response->setRedirect($this->config['redirect_status_code'], $redirect_uri, $this->getState(), $error, $error_message); + } + + protected function buildAuthorizeParameters($request, $response, $user_id) + { + if (!$params = parent::buildAuthorizeParameters($request, $response, $user_id)) { + return; + } + + // Generate an id token if needed. + if ($this->needsIdToken($this->getScope()) && $this->getResponseType() == self::RESPONSE_TYPE_AUTHORIZATION_CODE) { + $params['id_token'] = $this->responseTypes['id_token']->createIdToken($this->getClientId(), $user_id, $this->nonce); + } + + // add the nonce to return with the redirect URI + $params['nonce'] = $this->nonce; + + return $params; + } + + public function validateAuthorizeRequest(RequestInterface $request, ResponseInterface $response) + { + if (!parent::validateAuthorizeRequest($request, $response)) { + return false; + } + + $nonce = $request->query('nonce'); + + // Validate required nonce for "id_token" and "id_token token" + if (!$nonce && in_array($this->getResponseType(), array(self::RESPONSE_TYPE_ID_TOKEN, self::RESPONSE_TYPE_ID_TOKEN_TOKEN))) { + $response->setError(400, 'invalid_nonce', 'This application requires you specify a nonce parameter'); + + return false; + } + + $this->nonce = $nonce; + + return true; + } + + protected function getValidResponseTypes() + { + return array( + self::RESPONSE_TYPE_ACCESS_TOKEN, + self::RESPONSE_TYPE_AUTHORIZATION_CODE, + self::RESPONSE_TYPE_ID_TOKEN, + self::RESPONSE_TYPE_ID_TOKEN_TOKEN, + self::RESPONSE_TYPE_CODE_ID_TOKEN, + ); + } + + /** + * Returns whether the current request needs to generate an id token. + * + * ID Tokens are a part of the OpenID Connect specification, so this + * method checks whether OpenID Connect is enabled in the server settings + * and whether the openid scope was requested. + * + * @param $request_scope + * A space-separated string of scopes. + * + * @return + * TRUE if an id token is needed, FALSE otherwise. + */ + public function needsIdToken($request_scope) + { + // see if the "openid" scope exists in the requested scope + return $this->scopeUtil->checkScope('openid', $request_scope); + } + + public function getNonce() + { + return $this->nonce; + } +} diff --git a/library/oauth2/src/OAuth2/OpenID/Controller/AuthorizeControllerInterface.php b/library/oauth2/src/OAuth2/OpenID/Controller/AuthorizeControllerInterface.php new file mode 100644 index 000000000..1e231d844 --- /dev/null +++ b/library/oauth2/src/OAuth2/OpenID/Controller/AuthorizeControllerInterface.php @@ -0,0 +1,10 @@ +tokenType = $tokenType; + $this->tokenStorage = $tokenStorage; + $this->userClaimsStorage = $userClaimsStorage; + + $this->config = array_merge(array( + 'www_realm' => 'Service', + ), $config); + + if (is_null($scopeUtil)) { + $scopeUtil = new Scope(); + } + $this->scopeUtil = $scopeUtil; + } + + public function handleUserInfoRequest(RequestInterface $request, ResponseInterface $response) + { + if (!$this->verifyResourceRequest($request, $response, 'openid')) { + return; + } + + $token = $this->getToken(); + $claims = $this->userClaimsStorage->getUserClaims($token['user_id'], $token['scope']); + // The sub Claim MUST always be returned in the UserInfo Response. + // http://openid.net/specs/openid-connect-core-1_0.html#UserInfoResponse + $claims += array( + 'sub' => $token['user_id'], + ); + $response->addParameters($claims); + } +} diff --git a/library/oauth2/src/OAuth2/OpenID/Controller/UserInfoControllerInterface.php b/library/oauth2/src/OAuth2/OpenID/Controller/UserInfoControllerInterface.php new file mode 100644 index 000000000..a89049d49 --- /dev/null +++ b/library/oauth2/src/OAuth2/OpenID/Controller/UserInfoControllerInterface.php @@ -0,0 +1,23 @@ + $response = new OAuth2\Response(); + * > $userInfoController->handleUserInfoRequest( + * > OAuth2\Request::createFromGlobals(), + * > $response; + * > $response->send(); + * + */ +interface UserInfoControllerInterface +{ + public function handleUserInfoRequest(RequestInterface $request, ResponseInterface $response); +} diff --git a/library/oauth2/src/OAuth2/OpenID/GrantType/AuthorizationCode.php b/library/oauth2/src/OAuth2/OpenID/GrantType/AuthorizationCode.php new file mode 100644 index 000000000..8ed1edc26 --- /dev/null +++ b/library/oauth2/src/OAuth2/OpenID/GrantType/AuthorizationCode.php @@ -0,0 +1,33 @@ + + */ +class AuthorizationCode extends BaseAuthorizationCode +{ + public function createAccessToken(AccessTokenInterface $accessToken, $client_id, $user_id, $scope) + { + $includeRefreshToken = true; + if (isset($this->authCode['id_token'])) { + // OpenID Connect requests include the refresh token only if the + // offline_access scope has been requested and granted. + $scopes = explode(' ', trim($scope)); + $includeRefreshToken = in_array('offline_access', $scopes); + } + + $token = $accessToken->createAccessToken($client_id, $user_id, $scope, $includeRefreshToken); + if (isset($this->authCode['id_token'])) { + $token['id_token'] = $this->authCode['id_token']; + } + + $this->storage->expireAuthorizationCode($this->authCode['code']); + + return $token; + } +} diff --git a/library/oauth2/src/OAuth2/OpenID/ResponseType/AuthorizationCode.php b/library/oauth2/src/OAuth2/OpenID/ResponseType/AuthorizationCode.php new file mode 100644 index 000000000..8971954c5 --- /dev/null +++ b/library/oauth2/src/OAuth2/OpenID/ResponseType/AuthorizationCode.php @@ -0,0 +1,60 @@ + + */ +class AuthorizationCode extends BaseAuthorizationCode implements AuthorizationCodeInterface +{ + public function __construct(AuthorizationCodeStorageInterface $storage, array $config = array()) + { + parent::__construct($storage, $config); + } + + public function getAuthorizeResponse($params, $user_id = null) + { + // build the URL to redirect to + $result = array('query' => array()); + + $params += array('scope' => null, 'state' => null, 'id_token' => null); + + $result['query']['code'] = $this->createAuthorizationCode($params['client_id'], $user_id, $params['redirect_uri'], $params['scope'], $params['id_token']); + + if (isset($params['state'])) { + $result['query']['state'] = $params['state']; + } + + return array($params['redirect_uri'], $result); + } + + /** + * Handle the creation of the authorization code. + * + * @param $client_id + * Client identifier related to the authorization code + * @param $user_id + * User ID associated with the authorization code + * @param $redirect_uri + * An absolute URI to which the authorization server will redirect the + * user-agent to when the end-user authorization step is completed. + * @param $scope + * (optional) Scopes to be stored in space-separated string. + * @param $id_token + * (optional) The OpenID Connect id_token. + * + * @see http://tools.ietf.org/html/rfc6749#section-4 + * @ingroup oauth2_section_4 + */ + public function createAuthorizationCode($client_id, $user_id, $redirect_uri, $scope = null, $id_token = null) + { + $code = $this->generateAuthorizationCode(); + $this->storage->setAuthorizationCode($code, $client_id, $user_id, $redirect_uri, time() + $this->config['auth_code_lifetime'], $scope, $id_token); + + return $code; + } +} diff --git a/library/oauth2/src/OAuth2/OpenID/ResponseType/AuthorizationCodeInterface.php b/library/oauth2/src/OAuth2/OpenID/ResponseType/AuthorizationCodeInterface.php new file mode 100644 index 000000000..ea4779255 --- /dev/null +++ b/library/oauth2/src/OAuth2/OpenID/ResponseType/AuthorizationCodeInterface.php @@ -0,0 +1,27 @@ + + */ +interface AuthorizationCodeInterface extends BaseAuthorizationCodeInterface +{ + /** + * Handle the creation of the authorization code. + * + * @param $client_id Client identifier related to the authorization code + * @param $user_id User ID associated with the authorization code + * @param $redirect_uri An absolute URI to which the authorization server will redirect the + * user-agent to when the end-user authorization step is completed. + * @param $scope OPTIONAL Scopes to be stored in space-separated string. + * @param $id_token OPTIONAL The OpenID Connect id_token. + * + * @see http://tools.ietf.org/html/rfc6749#section-4 + * @ingroup oauth2_section_4 + */ + public function createAuthorizationCode($client_id, $user_id, $redirect_uri, $scope = null, $id_token = null); +} diff --git a/library/oauth2/src/OAuth2/OpenID/ResponseType/CodeIdToken.php b/library/oauth2/src/OAuth2/OpenID/ResponseType/CodeIdToken.php new file mode 100644 index 000000000..ac7764d6c --- /dev/null +++ b/library/oauth2/src/OAuth2/OpenID/ResponseType/CodeIdToken.php @@ -0,0 +1,24 @@ +authCode = $authCode; + $this->idToken = $idToken; + } + + public function getAuthorizeResponse($params, $user_id = null) + { + $result = $this->authCode->getAuthorizeResponse($params, $user_id); + $resultIdToken = $this->idToken->getAuthorizeResponse($params, $user_id); + $result[1]['query']['id_token'] = $resultIdToken[1]['fragment']['id_token']; + + return $result; + } +} diff --git a/library/oauth2/src/OAuth2/OpenID/ResponseType/CodeIdTokenInterface.php b/library/oauth2/src/OAuth2/OpenID/ResponseType/CodeIdTokenInterface.php new file mode 100644 index 000000000..629adcca8 --- /dev/null +++ b/library/oauth2/src/OAuth2/OpenID/ResponseType/CodeIdTokenInterface.php @@ -0,0 +1,9 @@ +userClaimsStorage = $userClaimsStorage; + $this->publicKeyStorage = $publicKeyStorage; + if (is_null($encryptionUtil)) { + $encryptionUtil = new Jwt(); + } + $this->encryptionUtil = $encryptionUtil; + + if (!isset($config['issuer'])) { + throw new \LogicException('config parameter "issuer" must be set'); + } + $this->config = array_merge(array( + 'id_lifetime' => 3600, + ), $config); + } + + public function getAuthorizeResponse($params, $userInfo = null) + { + // build the URL to redirect to + $result = array('query' => array()); + $params += array('scope' => null, 'state' => null, 'nonce' => null); + + // create the id token. + list($user_id, $auth_time) = $this->getUserIdAndAuthTime($userInfo); + $userClaims = $this->userClaimsStorage->getUserClaims($user_id, $params['scope']); + + $id_token = $this->createIdToken($params['client_id'], $userInfo, $params['nonce'], $userClaims, null); + $result["fragment"] = array('id_token' => $id_token); + if (isset($params['state'])) { + $result["fragment"]["state"] = $params['state']; + } + + return array($params['redirect_uri'], $result); + } + + public function createIdToken($client_id, $userInfo, $nonce = null, $userClaims = null, $access_token = null) + { + // pull auth_time from user info if supplied + list($user_id, $auth_time) = $this->getUserIdAndAuthTime($userInfo); + + $token = array( + 'iss' => $this->config['issuer'], + 'sub' => $user_id, + 'aud' => $client_id, + 'iat' => time(), + 'exp' => time() + $this->config['id_lifetime'], + 'auth_time' => $auth_time, + ); + + if ($nonce) { + $token['nonce'] = $nonce; + } + + if ($userClaims) { + $token += $userClaims; + } + + if ($access_token) { + $token['at_hash'] = $this->createAtHash($access_token, $client_id); + } + + return $this->encodeToken($token, $client_id); + } + + protected function createAtHash($access_token, $client_id = null) + { + // maps HS256 and RS256 to sha256, etc. + $algorithm = $this->publicKeyStorage->getEncryptionAlgorithm($client_id); + $hash_algorithm = 'sha' . substr($algorithm, 2); + $hash = hash($hash_algorithm, $access_token, true); + $at_hash = substr($hash, 0, strlen($hash) / 2); + + return $this->encryptionUtil->urlSafeB64Encode($at_hash); + } + + protected function encodeToken(array $token, $client_id = null) + { + $private_key = $this->publicKeyStorage->getPrivateKey($client_id); + $algorithm = $this->publicKeyStorage->getEncryptionAlgorithm($client_id); + + return $this->encryptionUtil->encode($token, $private_key, $algorithm); + } + + private function getUserIdAndAuthTime($userInfo) + { + $auth_time = null; + + // support an array for user_id / auth_time + if (is_array($userInfo)) { + if (!isset($userInfo['user_id'])) { + throw new \LogicException('if $user_id argument is an array, user_id index must be set'); + } + + $auth_time = isset($userInfo['auth_time']) ? $userInfo['auth_time'] : null; + $user_id = $userInfo['user_id']; + } else { + $user_id = $userInfo; + } + + if (is_null($auth_time)) { + $auth_time = time(); + } + + // userInfo is a scalar, and so this is the $user_id. Auth Time is null + return array($user_id, $auth_time); + } +} diff --git a/library/oauth2/src/OAuth2/OpenID/ResponseType/IdTokenInterface.php b/library/oauth2/src/OAuth2/OpenID/ResponseType/IdTokenInterface.php new file mode 100644 index 000000000..0bd2f8391 --- /dev/null +++ b/library/oauth2/src/OAuth2/OpenID/ResponseType/IdTokenInterface.php @@ -0,0 +1,29 @@ +accessToken = $accessToken; + $this->idToken = $idToken; + } + + public function getAuthorizeResponse($params, $user_id = null) + { + $result = $this->accessToken->getAuthorizeResponse($params, $user_id); + $access_token = $result[1]['fragment']['access_token']; + $id_token = $this->idToken->createIdToken($params['client_id'], $user_id, $params['nonce'], null, $access_token); + $result[1]['fragment']['id_token'] = $id_token; + + return $result; + } +} diff --git a/library/oauth2/src/OAuth2/OpenID/ResponseType/IdTokenTokenInterface.php b/library/oauth2/src/OAuth2/OpenID/ResponseType/IdTokenTokenInterface.php new file mode 100644 index 000000000..ac13e2032 --- /dev/null +++ b/library/oauth2/src/OAuth2/OpenID/ResponseType/IdTokenTokenInterface.php @@ -0,0 +1,9 @@ + + */ +interface AuthorizationCodeInterface extends BaseAuthorizationCodeInterface +{ + /** + * Take the provided authorization code values and store them somewhere. + * + * This function should be the storage counterpart to getAuthCode(). + * + * If storage fails for some reason, we're not currently checking for + * any sort of success/failure, so you should bail out of the script + * and provide a descriptive fail message. + * + * Required for OAuth2::GRANT_TYPE_AUTH_CODE. + * + * @param $code authorization code to be stored. + * @param $client_id client identifier to be stored. + * @param $user_id user identifier to be stored. + * @param string $redirect_uri redirect URI(s) to be stored in a space-separated string. + * @param int $expires expiration to be stored as a Unix timestamp. + * @param string $scope OPTIONAL scopes to be stored in space-separated string. + * @param string $id_token OPTIONAL the OpenID Connect id_token. + * + * @ingroup oauth2_section_4 + */ + public function setAuthorizationCode($code, $client_id, $user_id, $redirect_uri, $expires, $scope = null, $id_token = null); +} diff --git a/library/oauth2/src/OAuth2/OpenID/Storage/UserClaimsInterface.php b/library/oauth2/src/OAuth2/OpenID/Storage/UserClaimsInterface.php new file mode 100644 index 000000000..f230bef9e --- /dev/null +++ b/library/oauth2/src/OAuth2/OpenID/Storage/UserClaimsInterface.php @@ -0,0 +1,38 @@ + value format. + * + * @see http://openid.net/specs/openid-connect-core-1_0.html#ScopeClaims + */ + public function getUserClaims($user_id, $scope); +} diff --git a/library/oauth2/src/OAuth2/Request.php b/library/oauth2/src/OAuth2/Request.php new file mode 100644 index 000000000..c92cee821 --- /dev/null +++ b/library/oauth2/src/OAuth2/Request.php @@ -0,0 +1,213 @@ +initialize($query, $request, $attributes, $cookies, $files, $server, $content, $headers); + } + + /** + * Sets the parameters for this request. + * + * This method also re-initializes all properties. + * + * @param array $query The GET parameters + * @param array $request The POST parameters + * @param array $attributes The request attributes (parameters parsed from the PATH_INFO, ...) + * @param array $cookies The COOKIE parameters + * @param array $files The FILES parameters + * @param array $server The SERVER parameters + * @param string $content The raw body data + * + * @api + */ + public function initialize(array $query = array(), array $request = array(), array $attributes = array(), array $cookies = array(), array $files = array(), array $server = array(), $content = null, array $headers = null) + { + $this->request = $request; + $this->query = $query; + $this->attributes = $attributes; + $this->cookies = $cookies; + $this->files = $files; + $this->server = $server; + $this->content = $content; + $this->headers = is_null($headers) ? $this->getHeadersFromServer($this->server) : $headers; + } + + public function query($name, $default = null) + { + return isset($this->query[$name]) ? $this->query[$name] : $default; + } + + public function request($name, $default = null) + { + return isset($this->request[$name]) ? $this->request[$name] : $default; + } + + public function server($name, $default = null) + { + return isset($this->server[$name]) ? $this->server[$name] : $default; + } + + public function headers($name, $default = null) + { + $headers = array_change_key_case($this->headers); + $name = strtolower($name); + + return isset($headers[$name]) ? $headers[$name] : $default; + } + + public function getAllQueryParameters() + { + return $this->query; + } + + /** + * Returns the request body content. + * + * @param Boolean $asResource If true, a resource will be returned + * + * @return string|resource The request body content or a resource to read the body stream. + */ + public function getContent($asResource = false) + { + if (false === $this->content || (true === $asResource && null !== $this->content)) { + throw new \LogicException('getContent() can only be called once when using the resource return type.'); + } + + if (true === $asResource) { + $this->content = false; + + return fopen('php://input', 'rb'); + } + + if (null === $this->content) { + $this->content = file_get_contents('php://input'); + } + + return $this->content; + } + + private function getHeadersFromServer($server) + { + $headers = array(); + foreach ($server as $key => $value) { + if (0 === strpos($key, 'HTTP_')) { + $headers[substr($key, 5)] = $value; + } + // CONTENT_* are not prefixed with HTTP_ + elseif (in_array($key, array('CONTENT_LENGTH', 'CONTENT_MD5', 'CONTENT_TYPE'))) { + $headers[$key] = $value; + } + } + + if (isset($server['PHP_AUTH_USER'])) { + $headers['PHP_AUTH_USER'] = $server['PHP_AUTH_USER']; + $headers['PHP_AUTH_PW'] = isset($server['PHP_AUTH_PW']) ? $server['PHP_AUTH_PW'] : ''; + } else { + /* + * php-cgi under Apache does not pass HTTP Basic user/pass to PHP by default + * For this workaround to work, add this line to your .htaccess file: + * RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] + * + * A sample .htaccess file: + * RewriteEngine On + * RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] + * RewriteCond %{REQUEST_FILENAME} !-f + * RewriteRule ^(.*)$ app.php [QSA,L] + */ + + $authorizationHeader = null; + if (isset($server['HTTP_AUTHORIZATION'])) { + $authorizationHeader = $server['HTTP_AUTHORIZATION']; + } elseif (isset($server['REDIRECT_HTTP_AUTHORIZATION'])) { + $authorizationHeader = $server['REDIRECT_HTTP_AUTHORIZATION']; + } elseif (function_exists('apache_request_headers')) { + $requestHeaders = (array) apache_request_headers(); + + // Server-side fix for bug in old Android versions (a nice side-effect of this fix means we don't care about capitalization for Authorization) + $requestHeaders = array_combine(array_map('ucwords', array_keys($requestHeaders)), array_values($requestHeaders)); + + if (isset($requestHeaders['Authorization'])) { + $authorizationHeader = trim($requestHeaders['Authorization']); + } + } + + if (null !== $authorizationHeader) { + $headers['AUTHORIZATION'] = $authorizationHeader; + // Decode AUTHORIZATION header into PHP_AUTH_USER and PHP_AUTH_PW when authorization header is basic + if (0 === stripos($authorizationHeader, 'basic')) { + $exploded = explode(':', base64_decode(substr($authorizationHeader, 6))); + if (count($exploded) == 2) { + list($headers['PHP_AUTH_USER'], $headers['PHP_AUTH_PW']) = $exploded; + } + } + } + } + + // PHP_AUTH_USER/PHP_AUTH_PW + if (isset($headers['PHP_AUTH_USER'])) { + $headers['AUTHORIZATION'] = 'Basic '.base64_encode($headers['PHP_AUTH_USER'].':'.$headers['PHP_AUTH_PW']); + } + + return $headers; + } + + /** + * Creates a new request with values from PHP's super globals. + * + * @return Request A new request + * + * @api + */ + public static function createFromGlobals() + { + $class = get_called_class(); + $request = new $class($_GET, $_POST, array(), $_COOKIE, $_FILES, $_SERVER); + + $contentType = $request->server('CONTENT_TYPE', ''); + $requestMethod = $request->server('REQUEST_METHOD', 'GET'); + if (0 === strpos($contentType, 'application/x-www-form-urlencoded') + && in_array(strtoupper($requestMethod), array('PUT', 'DELETE')) + ) { + parse_str($request->getContent(), $data); + $request->request = $data; + } elseif (0 === strpos($contentType, 'application/json') + && in_array(strtoupper($requestMethod), array('POST', 'PUT', 'DELETE')) + ) { + $data = json_decode($request->getContent(), true); + $request->request = $data; + } + + return $request; + } +} diff --git a/library/oauth2/src/OAuth2/RequestInterface.php b/library/oauth2/src/OAuth2/RequestInterface.php new file mode 100644 index 000000000..8a70d5fad --- /dev/null +++ b/library/oauth2/src/OAuth2/RequestInterface.php @@ -0,0 +1,16 @@ + 'Continue', + 101 => 'Switching Protocols', + 200 => 'OK', + 201 => 'Created', + 202 => 'Accepted', + 203 => 'Non-Authoritative Information', + 204 => 'No Content', + 205 => 'Reset Content', + 206 => 'Partial Content', + 300 => 'Multiple Choices', + 301 => 'Moved Permanently', + 302 => 'Found', + 303 => 'See Other', + 304 => 'Not Modified', + 305 => 'Use Proxy', + 307 => 'Temporary Redirect', + 400 => 'Bad Request', + 401 => 'Unauthorized', + 402 => 'Payment Required', + 403 => 'Forbidden', + 404 => 'Not Found', + 405 => 'Method Not Allowed', + 406 => 'Not Acceptable', + 407 => 'Proxy Authentication Required', + 408 => 'Request Timeout', + 409 => 'Conflict', + 410 => 'Gone', + 411 => 'Length Required', + 412 => 'Precondition Failed', + 413 => 'Request Entity Too Large', + 414 => 'Request-URI Too Long', + 415 => 'Unsupported Media Type', + 416 => 'Requested Range Not Satisfiable', + 417 => 'Expectation Failed', + 418 => 'I\'m a teapot', + 500 => 'Internal Server Error', + 501 => 'Not Implemented', + 502 => 'Bad Gateway', + 503 => 'Service Unavailable', + 504 => 'Gateway Timeout', + 505 => 'HTTP Version Not Supported', + ); + + public function __construct($parameters = array(), $statusCode = 200, $headers = array()) + { + $this->setParameters($parameters); + $this->setStatusCode($statusCode); + $this->setHttpHeaders($headers); + $this->version = '1.1'; + } + + /** + * Converts the response object to string containing all headers and the response content. + * + * @return string The response with headers and content + */ + public function __toString() + { + $headers = array(); + foreach ($this->httpHeaders as $name => $value) { + $headers[$name] = (array) $value; + } + + return + sprintf('HTTP/%s %s %s', $this->version, $this->statusCode, $this->statusText)."\r\n". + $this->getHttpHeadersAsString($headers)."\r\n". + $this->getResponseBody(); + } + + /** + * Returns the build header line. + * + * @param string $name The header name + * @param string $value The header value + * + * @return string The built header line + */ + protected function buildHeader($name, $value) + { + return sprintf("%s: %s\n", $name, $value); + } + + public function getStatusCode() + { + return $this->statusCode; + } + + public function setStatusCode($statusCode, $text = null) + { + $this->statusCode = (int) $statusCode; + if ($this->isInvalid()) { + throw new \InvalidArgumentException(sprintf('The HTTP status code "%s" is not valid.', $statusCode)); + } + + $this->statusText = false === $text ? '' : (null === $text ? self::$statusTexts[$this->statusCode] : $text); + } + + public function getStatusText() + { + return $this->statusText; + } + + public function getParameters() + { + return $this->parameters; + } + + public function setParameters(array $parameters) + { + $this->parameters = $parameters; + } + + public function addParameters(array $parameters) + { + $this->parameters = array_merge($this->parameters, $parameters); + } + + public function getParameter($name, $default = null) + { + return isset($this->parameters[$name]) ? $this->parameters[$name] : $default; + } + + public function setParameter($name, $value) + { + $this->parameters[$name] = $value; + } + + public function setHttpHeaders(array $httpHeaders) + { + $this->httpHeaders = $httpHeaders; + } + + public function setHttpHeader($name, $value) + { + $this->httpHeaders[$name] = $value; + } + + public function addHttpHeaders(array $httpHeaders) + { + $this->httpHeaders = array_merge($this->httpHeaders, $httpHeaders); + } + + public function getHttpHeaders() + { + return $this->httpHeaders; + } + + public function getHttpHeader($name, $default = null) + { + return isset($this->httpHeaders[$name]) ? $this->httpHeaders[$name] : $default; + } + + public function getResponseBody($format = 'json') + { + switch ($format) { + case 'json': + return json_encode($this->parameters); + case 'xml': + // this only works for single-level arrays + $xml = new \SimpleXMLElement(''); + foreach ($this->parameters as $key => $param) { + $xml->addChild($key, $param); + } + + return $xml->asXML(); + } + + throw new \InvalidArgumentException(sprintf('The format %s is not supported', $format)); + + } + + public function send($format = 'json') + { + // headers have already been sent by the developer + if (headers_sent()) { + return; + } + + switch ($format) { + case 'json': + $this->setHttpHeader('Content-Type', 'application/json'); + break; + case 'xml': + $this->setHttpHeader('Content-Type', 'text/xml'); + break; + } + // status + header(sprintf('HTTP/%s %s %s', $this->version, $this->statusCode, $this->statusText)); + + foreach ($this->getHttpHeaders() as $name => $header) { + header(sprintf('%s: %s', $name, $header)); + } + echo $this->getResponseBody($format); + } + + public function setError($statusCode, $error, $errorDescription = null, $errorUri = null) + { + $parameters = array( + 'error' => $error, + 'error_description' => $errorDescription, + ); + + if (!is_null($errorUri)) { + if (strlen($errorUri) > 0 && $errorUri[0] == '#') { + // we are referencing an oauth bookmark (for brevity) + $errorUri = 'http://tools.ietf.org/html/rfc6749' . $errorUri; + } + $parameters['error_uri'] = $errorUri; + } + + $httpHeaders = array( + 'Cache-Control' => 'no-store' + ); + + $this->setStatusCode($statusCode); + $this->addParameters($parameters); + $this->addHttpHeaders($httpHeaders); + + if (!$this->isClientError() && !$this->isServerError()) { + throw new \InvalidArgumentException(sprintf('The HTTP status code is not an error ("%s" given).', $statusCode)); + } + } + + public function setRedirect($statusCode, $url, $state = null, $error = null, $errorDescription = null, $errorUri = null) + { + if (empty($url)) { + throw new \InvalidArgumentException('Cannot redirect to an empty URL.'); + } + + $parameters = array(); + + if (!is_null($state)) { + $parameters['state'] = $state; + } + + if (!is_null($error)) { + $this->setError(400, $error, $errorDescription, $errorUri); + } + $this->setStatusCode($statusCode); + $this->addParameters($parameters); + + if (count($this->parameters) > 0) { + // add parameters to URL redirection + $parts = parse_url($url); + $sep = isset($parts['query']) && count($parts['query']) > 0 ? '&' : '?'; + $url .= $sep . http_build_query($this->parameters); + } + + $this->addHttpHeaders(array('Location' => $url)); + + if (!$this->isRedirection()) { + throw new \InvalidArgumentException(sprintf('The HTTP status code is not a redirect ("%s" given).', $statusCode)); + } + } + + // http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html + /** + * @return Boolean + * + * @api + */ + public function isInvalid() + { + return $this->statusCode < 100 || $this->statusCode >= 600; + } + + /** + * @return Boolean + * + * @api + */ + public function isInformational() + { + return $this->statusCode >= 100 && $this->statusCode < 200; + } + + /** + * @return Boolean + * + * @api + */ + public function isSuccessful() + { + return $this->statusCode >= 200 && $this->statusCode < 300; + } + + /** + * @return Boolean + * + * @api + */ + public function isRedirection() + { + return $this->statusCode >= 300 && $this->statusCode < 400; + } + + /** + * @return Boolean + * + * @api + */ + public function isClientError() + { + return $this->statusCode >= 400 && $this->statusCode < 500; + } + + /** + * @return Boolean + * + * @api + */ + public function isServerError() + { + return $this->statusCode >= 500 && $this->statusCode < 600; + } + + /* + * Functions from Symfony2 HttpFoundation - output pretty header + */ + private function getHttpHeadersAsString($headers) + { + if (count($headers) == 0) { + return ''; + } + + $max = max(array_map('strlen', array_keys($headers))) + 1; + $content = ''; + ksort($headers); + foreach ($headers as $name => $values) { + foreach ($values as $value) { + $content .= sprintf("%-{$max}s %s\r\n", $this->beautifyHeaderName($name).':', $value); + } + } + + return $content; + } + + private function beautifyHeaderName($name) + { + return preg_replace_callback('/\-(.)/', array($this, 'beautifyCallback'), ucfirst($name)); + } + + private function beautifyCallback($match) + { + return '-'.strtoupper($match[1]); + } +} diff --git a/library/oauth2/src/OAuth2/ResponseInterface.php b/library/oauth2/src/OAuth2/ResponseInterface.php new file mode 100644 index 000000000..c99b5f7d1 --- /dev/null +++ b/library/oauth2/src/OAuth2/ResponseInterface.php @@ -0,0 +1,24 @@ + + */ +class AccessToken implements AccessTokenInterface +{ + protected $tokenStorage; + protected $refreshStorage; + protected $config; + + /** + * @param OAuth2\Storage\AccessTokenInterface $tokenStorage REQUIRED Storage class for saving access token information + * @param OAuth2\Storage\RefreshTokenInterface $refreshStorage OPTIONAL Storage class for saving refresh token information + * @param array $config OPTIONAL Configuration options for the server + * + * $config = array( + * 'token_type' => 'bearer', // token type identifier + * 'access_lifetime' => 3600, // time before access token expires + * 'refresh_token_lifetime' => 1209600, // time before refresh token expires + * ); + * + */ + public function __construct(AccessTokenStorageInterface $tokenStorage, RefreshTokenInterface $refreshStorage = null, array $config = array()) + { + $this->tokenStorage = $tokenStorage; + $this->refreshStorage = $refreshStorage; + + $this->config = array_merge(array( + 'token_type' => 'bearer', + 'access_lifetime' => 3600, + 'refresh_token_lifetime' => 1209600, + ), $config); + } + + public function getAuthorizeResponse($params, $user_id = null) + { + // build the URL to redirect to + $result = array('query' => array()); + + $params += array('scope' => null, 'state' => null); + + /* + * a refresh token MUST NOT be included in the fragment + * + * @see http://tools.ietf.org/html/rfc6749#section-4.2.2 + */ + $includeRefreshToken = false; + $result["fragment"] = $this->createAccessToken($params['client_id'], $user_id, $params['scope'], $includeRefreshToken); + + if (isset($params['state'])) { + $result["fragment"]["state"] = $params['state']; + } + + return array($params['redirect_uri'], $result); + } + + /** + * Handle the creation of access token, also issue refresh token if supported / desirable. + * + * @param $client_id client identifier related to the access token. + * @param $user_id user ID associated with the access token + * @param $scope OPTIONAL scopes to be stored in space-separated string. + * @param bool $includeRefreshToken if true, a new refresh_token will be added to the response + * + * @see http://tools.ietf.org/html/rfc6749#section-5 + * @ingroup oauth2_section_5 + */ + public function createAccessToken($client_id, $user_id, $scope = null, $includeRefreshToken = true) + { + $token = array( + "access_token" => $this->generateAccessToken(), + "expires_in" => $this->config['access_lifetime'], + "token_type" => $this->config['token_type'], + "scope" => $scope + ); + + $this->tokenStorage->setAccessToken($token["access_token"], $client_id, $user_id, $this->config['access_lifetime'] ? time() + $this->config['access_lifetime'] : null, $scope); + + /* + * Issue a refresh token also, if we support them + * + * Refresh Tokens are considered supported if an instance of OAuth2\Storage\RefreshTokenInterface + * is supplied in the constructor + */ + if ($includeRefreshToken && $this->refreshStorage) { + $token["refresh_token"] = $this->generateRefreshToken(); + $expires = 0; + if ($this->config['refresh_token_lifetime'] > 0) { + $expires = time() + $this->config['refresh_token_lifetime']; + } + $this->refreshStorage->setRefreshToken($token['refresh_token'], $client_id, $user_id, $expires, $scope); + } + + return $token; + } + + /** + * Generates an unique access token. + * + * Implementing classes may want to override this function to implement + * other access token generation schemes. + * + * @return + * An unique access token. + * + * @ingroup oauth2_section_4 + */ + protected function generateAccessToken() + { + if (function_exists('mcrypt_create_iv')) { + $randomData = mcrypt_create_iv(20, MCRYPT_DEV_URANDOM); + if ($randomData !== false && strlen($randomData) === 20) { + return bin2hex($randomData); + } + } + if (function_exists('openssl_random_pseudo_bytes')) { + $randomData = openssl_random_pseudo_bytes(20); + if ($randomData !== false && strlen($randomData) === 20) { + return bin2hex($randomData); + } + } + if (@file_exists('/dev/urandom')) { // Get 100 bytes of random data + $randomData = file_get_contents('/dev/urandom', false, null, 0, 20); + if ($randomData !== false && strlen($randomData) === 20) { + return bin2hex($randomData); + } + } + // Last resort which you probably should just get rid of: + $randomData = mt_rand() . mt_rand() . mt_rand() . mt_rand() . microtime(true) . uniqid(mt_rand(), true); + + return substr(hash('sha512', $randomData), 0, 40); + } + + /** + * Generates an unique refresh token + * + * Implementing classes may want to override this function to implement + * other refresh token generation schemes. + * + * @return + * An unique refresh. + * + * @ingroup oauth2_section_4 + * @see OAuth2::generateAccessToken() + */ + protected function generateRefreshToken() + { + return $this->generateAccessToken(); // let's reuse the same scheme for token generation + } + + /** + * Handle the revoking of refresh tokens, and access tokens if supported / desirable + * RFC7009 specifies that "If the server is unable to locate the token using + * the given hint, it MUST extend its search across all of its supported token types" + * + * @param $token + * @param null $tokenTypeHint + * @return boolean + */ + public function revokeToken($token, $tokenTypeHint = null) + { + if ($tokenTypeHint == 'refresh_token') { + if ($this->refreshStorage && $revoked = $this->refreshStorage->unsetRefreshToken($token)) { + return true; + } + } + + /** @TODO remove in v2 */ + if (!method_exists($this->tokenStorage, 'unsetAccessToken')) { + throw new \RuntimeException( + sprintf('Token storage %s must implement unsetAccessToken method', get_class($this->tokenStorage) + )); + } + + $revoked = $this->tokenStorage->unsetAccessToken($token); + + // if a typehint is supplied and fails, try other storages + // @see https://tools.ietf.org/html/rfc7009#section-2.1 + if (!$revoked && $tokenTypeHint != 'refresh_token') { + if ($this->refreshStorage) { + $revoked = $this->refreshStorage->unsetRefreshToken($token); + } + } + + return $revoked; + } +} diff --git a/library/oauth2/src/OAuth2/ResponseType/AccessTokenInterface.php b/library/oauth2/src/OAuth2/ResponseType/AccessTokenInterface.php new file mode 100644 index 000000000..4bd3928d8 --- /dev/null +++ b/library/oauth2/src/OAuth2/ResponseType/AccessTokenInterface.php @@ -0,0 +1,34 @@ + + */ +interface AccessTokenInterface extends ResponseTypeInterface +{ + /** + * Handle the creation of access token, also issue refresh token if supported / desirable. + * + * @param $client_id client identifier related to the access token. + * @param $user_id user ID associated with the access token + * @param $scope OPTONAL scopes to be stored in space-separated string. + * @param bool $includeRefreshToken if true, a new refresh_token will be added to the response + * + * @see http://tools.ietf.org/html/rfc6749#section-5 + * @ingroup oauth2_section_5 + */ + public function createAccessToken($client_id, $user_id, $scope = null, $includeRefreshToken = true); + + /** + * Handle the revoking of refresh tokens, and access tokens if supported / desirable + * + * @param $token + * @param $tokenTypeHint + * @return mixed + * + * @todo v2.0 include this method in interface. Omitted to maintain BC in v1.x + */ + //public function revokeToken($token, $tokenTypeHint); +} diff --git a/library/oauth2/src/OAuth2/ResponseType/AuthorizationCode.php b/library/oauth2/src/OAuth2/ResponseType/AuthorizationCode.php new file mode 100644 index 000000000..6a305fd75 --- /dev/null +++ b/library/oauth2/src/OAuth2/ResponseType/AuthorizationCode.php @@ -0,0 +1,100 @@ + + */ +class AuthorizationCode implements AuthorizationCodeInterface +{ + protected $storage; + protected $config; + + public function __construct(AuthorizationCodeStorageInterface $storage, array $config = array()) + { + $this->storage = $storage; + $this->config = array_merge(array( + 'enforce_redirect' => false, + 'auth_code_lifetime' => 30, + ), $config); + } + + public function getAuthorizeResponse($params, $user_id = null) + { + // build the URL to redirect to + $result = array('query' => array()); + + $params += array('scope' => null, 'state' => null); + + $result['query']['code'] = $this->createAuthorizationCode($params['client_id'], $user_id, $params['redirect_uri'], $params['scope']); + + if (isset($params['state'])) { + $result['query']['state'] = $params['state']; + } + + return array($params['redirect_uri'], $result); + } + + /** + * Handle the creation of the authorization code. + * + * @param $client_id + * Client identifier related to the authorization code + * @param $user_id + * User ID associated with the authorization code + * @param $redirect_uri + * An absolute URI to which the authorization server will redirect the + * user-agent to when the end-user authorization step is completed. + * @param $scope + * (optional) Scopes to be stored in space-separated string. + * + * @see http://tools.ietf.org/html/rfc6749#section-4 + * @ingroup oauth2_section_4 + */ + public function createAuthorizationCode($client_id, $user_id, $redirect_uri, $scope = null) + { + $code = $this->generateAuthorizationCode(); + $this->storage->setAuthorizationCode($code, $client_id, $user_id, $redirect_uri, time() + $this->config['auth_code_lifetime'], $scope); + + return $code; + } + + /** + * @return + * TRUE if the grant type requires a redirect_uri, FALSE if not + */ + public function enforceRedirect() + { + return $this->config['enforce_redirect']; + } + + /** + * Generates an unique auth code. + * + * Implementing classes may want to override this function to implement + * other auth code generation schemes. + * + * @return + * An unique auth code. + * + * @ingroup oauth2_section_4 + */ + protected function generateAuthorizationCode() + { + $tokenLen = 40; + if (function_exists('mcrypt_create_iv')) { + $randomData = mcrypt_create_iv(100, MCRYPT_DEV_URANDOM); + } elseif (function_exists('openssl_random_pseudo_bytes')) { + $randomData = openssl_random_pseudo_bytes(100); + } elseif (@file_exists('/dev/urandom')) { // Get 100 bytes of random data + $randomData = file_get_contents('/dev/urandom', false, null, 0, 100) . uniqid(mt_rand(), true); + } else { + $randomData = mt_rand() . mt_rand() . mt_rand() . mt_rand() . microtime(true) . uniqid(mt_rand(), true); + } + + return substr(hash('sha512', $randomData), 0, $tokenLen); + } +} diff --git a/library/oauth2/src/OAuth2/ResponseType/AuthorizationCodeInterface.php b/library/oauth2/src/OAuth2/ResponseType/AuthorizationCodeInterface.php new file mode 100644 index 000000000..df777e221 --- /dev/null +++ b/library/oauth2/src/OAuth2/ResponseType/AuthorizationCodeInterface.php @@ -0,0 +1,30 @@ + + */ +interface AuthorizationCodeInterface extends ResponseTypeInterface +{ + /** + * @return + * TRUE if the grant type requires a redirect_uri, FALSE if not + */ + public function enforceRedirect(); + + /** + * Handle the creation of the authorization code. + * + * @param $client_id client identifier related to the authorization code + * @param $user_id user id associated with the authorization code + * @param $redirect_uri an absolute URI to which the authorization server will redirect the + * user-agent to when the end-user authorization step is completed. + * @param $scope OPTIONAL scopes to be stored in space-separated string. + * + * @see http://tools.ietf.org/html/rfc6749#section-4 + * @ingroup oauth2_section_4 + */ + public function createAuthorizationCode($client_id, $user_id, $redirect_uri, $scope = null); +} diff --git a/library/oauth2/src/OAuth2/ResponseType/JwtAccessToken.php b/library/oauth2/src/OAuth2/ResponseType/JwtAccessToken.php new file mode 100644 index 000000000..3942fe41e --- /dev/null +++ b/library/oauth2/src/OAuth2/ResponseType/JwtAccessToken.php @@ -0,0 +1,124 @@ + + */ +class JwtAccessToken extends AccessToken +{ + protected $publicKeyStorage; + protected $encryptionUtil; + + /** + * @param $config + * - store_encrypted_token_string (bool true) + * whether the entire encrypted string is stored, + * or just the token ID is stored + */ + public function __construct(PublicKeyInterface $publicKeyStorage = null, AccessTokenStorageInterface $tokenStorage = null, RefreshTokenInterface $refreshStorage = null, array $config = array(), EncryptionInterface $encryptionUtil = null) + { + $this->publicKeyStorage = $publicKeyStorage; + $config = array_merge(array( + 'store_encrypted_token_string' => true, + 'issuer' => '' + ), $config); + if (is_null($tokenStorage)) { + // a pass-thru, so we can call the parent constructor + $tokenStorage = new Memory(); + } + if (is_null($encryptionUtil)) { + $encryptionUtil = new Jwt(); + } + $this->encryptionUtil = $encryptionUtil; + parent::__construct($tokenStorage, $refreshStorage, $config); + } + + /** + * Handle the creation of access token, also issue refresh token if supported / desirable. + * + * @param $client_id + * Client identifier related to the access token. + * @param $user_id + * User ID associated with the access token + * @param $scope + * (optional) Scopes to be stored in space-separated string. + * @param bool $includeRefreshToken + * If true, a new refresh_token will be added to the response + * + * @see http://tools.ietf.org/html/rfc6749#section-5 + * @ingroup oauth2_section_5 + */ + public function createAccessToken($client_id, $user_id, $scope = null, $includeRefreshToken = true) + { + // token to encrypt + $expires = time() + $this->config['access_lifetime']; + $id = $this->generateAccessToken(); + $jwtAccessToken = array( + 'id' => $id, // for BC (see #591) + 'jti' => $id, + 'iss' => $this->config['issuer'], + 'aud' => $client_id, + 'sub' => $user_id, + 'exp' => $expires, + 'iat' => time(), + 'token_type' => $this->config['token_type'], + 'scope' => $scope + ); + + /* + * Encode the token data into a single access_token string + */ + $access_token = $this->encodeToken($jwtAccessToken, $client_id); + + /* + * Save the token to a secondary storage. This is implemented on the + * OAuth2\Storage\JwtAccessToken side, and will not actually store anything, + * if no secondary storage has been supplied + */ + $token_to_store = $this->config['store_encrypted_token_string'] ? $access_token : $jwtAccessToken['id']; + $this->tokenStorage->setAccessToken($token_to_store, $client_id, $user_id, $this->config['access_lifetime'] ? time() + $this->config['access_lifetime'] : null, $scope); + + // token to return to the client + $token = array( + 'access_token' => $access_token, + 'expires_in' => $this->config['access_lifetime'], + 'token_type' => $this->config['token_type'], + 'scope' => $scope + ); + + /* + * Issue a refresh token also, if we support them + * + * Refresh Tokens are considered supported if an instance of OAuth2\Storage\RefreshTokenInterface + * is supplied in the constructor + */ + if ($includeRefreshToken && $this->refreshStorage) { + $refresh_token = $this->generateRefreshToken(); + $expires = 0; + if ($this->config['refresh_token_lifetime'] > 0) { + $expires = time() + $this->config['refresh_token_lifetime']; + } + $this->refreshStorage->setRefreshToken($refresh_token, $client_id, $user_id, $expires, $scope); + $token['refresh_token'] = $refresh_token; + } + + return $token; + } + + protected function encodeToken(array $token, $client_id = null) + { + $private_key = $this->publicKeyStorage->getPrivateKey($client_id); + $algorithm = $this->publicKeyStorage->getEncryptionAlgorithm($client_id); + + return $this->encryptionUtil->encode($token, $private_key, $algorithm); + } +} diff --git a/library/oauth2/src/OAuth2/ResponseType/ResponseTypeInterface.php b/library/oauth2/src/OAuth2/ResponseType/ResponseTypeInterface.php new file mode 100644 index 000000000..f8e26a5b0 --- /dev/null +++ b/library/oauth2/src/OAuth2/ResponseType/ResponseTypeInterface.php @@ -0,0 +1,8 @@ +storage = $storage; + } + + /** + * Check if everything in required scope is contained in available scope. + * + * @param $required_scope + * A space-separated string of scopes. + * + * @return + * TRUE if everything in required scope is contained in available scope, + * and FALSE if it isn't. + * + * @see http://tools.ietf.org/html/rfc6749#section-7 + * + * @ingroup oauth2_section_7 + */ + public function checkScope($required_scope, $available_scope) + { + $required_scope = explode(' ', trim($required_scope)); + $available_scope = explode(' ', trim($available_scope)); + + return (count(array_diff($required_scope, $available_scope)) == 0); + } + + /** + * Check if the provided scope exists in storage. + * + * @param $scope + * A space-separated string of scopes. + * + * @return + * TRUE if it exists, FALSE otherwise. + */ + public function scopeExists($scope) + { + // Check reserved scopes first. + $scope = explode(' ', trim($scope)); + $reservedScope = $this->getReservedScopes(); + $nonReservedScopes = array_diff($scope, $reservedScope); + if (count($nonReservedScopes) == 0) { + return true; + } else { + // Check the storage for non-reserved scopes. + $nonReservedScopes = implode(' ', $nonReservedScopes); + + return $this->storage->scopeExists($nonReservedScopes); + } + } + + public function getScopeFromRequest(RequestInterface $request) + { + // "scope" is valid if passed in either POST or QUERY + return $request->request('scope', $request->query('scope')); + } + + public function getDefaultScope($client_id = null) + { + return $this->storage->getDefaultScope($client_id); + } + + /** + * Get reserved scopes needed by the server. + * + * In case OpenID Connect is used, these scopes must include: + * 'openid', offline_access'. + * + * @return + * An array of reserved scopes. + */ + public function getReservedScopes() + { + return array('openid', 'offline_access'); + } +} diff --git a/library/oauth2/src/OAuth2/ScopeInterface.php b/library/oauth2/src/OAuth2/ScopeInterface.php new file mode 100644 index 000000000..5b60f9aee --- /dev/null +++ b/library/oauth2/src/OAuth2/ScopeInterface.php @@ -0,0 +1,40 @@ + 'OAuth2\Storage\AccessTokenInterface', + 'authorization_code' => 'OAuth2\Storage\AuthorizationCodeInterface', + 'client_credentials' => 'OAuth2\Storage\ClientCredentialsInterface', + 'client' => 'OAuth2\Storage\ClientInterface', + 'refresh_token' => 'OAuth2\Storage\RefreshTokenInterface', + 'user_credentials' => 'OAuth2\Storage\UserCredentialsInterface', + 'user_claims' => 'OAuth2\OpenID\Storage\UserClaimsInterface', + 'public_key' => 'OAuth2\Storage\PublicKeyInterface', + 'jwt_bearer' => 'OAuth2\Storage\JWTBearerInterface', + 'scope' => 'OAuth2\Storage\ScopeInterface', + ); + + protected $responseTypeMap = array( + 'token' => 'OAuth2\ResponseType\AccessTokenInterface', + 'code' => 'OAuth2\ResponseType\AuthorizationCodeInterface', + 'id_token' => 'OAuth2\OpenID\ResponseType\IdTokenInterface', + 'id_token token' => 'OAuth2\OpenID\ResponseType\IdTokenTokenInterface', + 'code id_token' => 'OAuth2\OpenID\ResponseType\CodeIdTokenInterface', + ); + + /** + * @param mixed $storage (array or OAuth2\Storage) - single object or array of objects implementing the + * required storage types (ClientCredentialsInterface and AccessTokenInterface as a minimum) + * @param array $config specify a different token lifetime, token header name, etc + * @param array $grantTypes An array of OAuth2\GrantType\GrantTypeInterface to use for granting access tokens + * @param array $responseTypes Response types to use. array keys should be "code" and and "token" for + * Access Token and Authorization Code response types + * @param OAuth2\TokenType\TokenTypeInterface $tokenType The token type object to use. Valid token types are "bearer" and "mac" + * @param OAuth2\ScopeInterface $scopeUtil The scope utility class to use to validate scope + * @param OAuth2\ClientAssertionType\ClientAssertionTypeInterface $clientAssertionType The method in which to verify the client identity. Default is HttpBasic + * + * @ingroup oauth2_section_7 + */ + public function __construct($storage = array(), array $config = array(), array $grantTypes = array(), array $responseTypes = array(), TokenTypeInterface $tokenType = null, ScopeInterface $scopeUtil = null, ClientAssertionTypeInterface $clientAssertionType = null) + { + $storage = is_array($storage) ? $storage : array($storage); + $this->storages = array(); + foreach ($storage as $key => $service) { + $this->addStorage($service, $key); + } + + // merge all config values. These get passed to our controller objects + $this->config = array_merge(array( + 'use_jwt_access_tokens' => false, + 'store_encrypted_token_string' => true, + 'use_openid_connect' => false, + 'id_lifetime' => 3600, + 'access_lifetime' => 3600, + 'www_realm' => 'Service', + 'token_param_name' => 'access_token', + 'token_bearer_header_name' => 'Bearer', + 'enforce_state' => true, + 'require_exact_redirect_uri' => true, + 'allow_implicit' => false, + 'allow_credentials_in_request_body' => true, + 'allow_public_clients' => true, + 'always_issue_new_refresh_token' => false, + 'unset_refresh_token_after_use' => true, + ), $config); + + foreach ($grantTypes as $key => $grantType) { + $this->addGrantType($grantType, $key); + } + + foreach ($responseTypes as $key => $responseType) { + $this->addResponseType($responseType, $key); + } + + $this->tokenType = $tokenType; + $this->scopeUtil = $scopeUtil; + $this->clientAssertionType = $clientAssertionType; + + if ($this->config['use_openid_connect']) { + $this->validateOpenIdConnect(); + } + } + + public function getAuthorizeController() + { + if (is_null($this->authorizeController)) { + $this->authorizeController = $this->createDefaultAuthorizeController(); + } + + return $this->authorizeController; + } + + public function getTokenController() + { + if (is_null($this->tokenController)) { + $this->tokenController = $this->createDefaultTokenController(); + } + + return $this->tokenController; + } + + public function getResourceController() + { + if (is_null($this->resourceController)) { + $this->resourceController = $this->createDefaultResourceController(); + } + + return $this->resourceController; + } + + public function getUserInfoController() + { + if (is_null($this->userInfoController)) { + $this->userInfoController = $this->createDefaultUserInfoController(); + } + + return $this->userInfoController; + } + + /** + * every getter deserves a setter + */ + public function setAuthorizeController(AuthorizeControllerInterface $authorizeController) + { + $this->authorizeController = $authorizeController; + } + + /** + * every getter deserves a setter + */ + public function setTokenController(TokenControllerInterface $tokenController) + { + $this->tokenController = $tokenController; + } + + /** + * every getter deserves a setter + */ + public function setResourceController(ResourceControllerInterface $resourceController) + { + $this->resourceController = $resourceController; + } + + /** + * every getter deserves a setter + */ + public function setUserInfoController(UserInfoControllerInterface $userInfoController) + { + $this->userInfoController = $userInfoController; + } + + /** + * Return claims about the authenticated end-user. + * This would be called from the "/UserInfo" endpoint as defined in the spec. + * + * @param $request - OAuth2\RequestInterface + * Request object to grant access token + * + * @param $response - OAuth2\ResponseInterface + * Response object containing error messages (failure) or user claims (success) + * + * @throws InvalidArgumentException + * @throws LogicException + * + * @see http://openid.net/specs/openid-connect-core-1_0.html#UserInfo + */ + public function handleUserInfoRequest(RequestInterface $request, ResponseInterface $response = null) + { + $this->response = is_null($response) ? new Response() : $response; + $this->getUserInfoController()->handleUserInfoRequest($request, $this->response); + + return $this->response; + } + + /** + * Grant or deny a requested access token. + * This would be called from the "/token" endpoint as defined in the spec. + * Obviously, you can call your endpoint whatever you want. + * + * @param $request - OAuth2\RequestInterface + * Request object to grant access token + * + * @param $response - OAuth2\ResponseInterface + * Response object containing error messages (failure) or access token (success) + * + * @throws InvalidArgumentException + * @throws LogicException + * + * @see http://tools.ietf.org/html/rfc6749#section-4 + * @see http://tools.ietf.org/html/rfc6749#section-10.6 + * @see http://tools.ietf.org/html/rfc6749#section-4.1.3 + * + * @ingroup oauth2_section_4 + */ + public function handleTokenRequest(RequestInterface $request, ResponseInterface $response = null) + { + $this->response = is_null($response) ? new Response() : $response; + $this->getTokenController()->handleTokenRequest($request, $this->response); + + return $this->response; + } + + public function grantAccessToken(RequestInterface $request, ResponseInterface $response = null) + { + $this->response = is_null($response) ? new Response() : $response; + $value = $this->getTokenController()->grantAccessToken($request, $this->response); + + return $value; + } + + /** + * Handle a revoke token request + * This would be called from the "/revoke" endpoint as defined in the draft Token Revocation spec + * + * @see https://tools.ietf.org/html/rfc7009#section-2 + * + * @param RequestInterface $request + * @param ResponseInterface $response + * @return Response|ResponseInterface + */ + public function handleRevokeRequest(RequestInterface $request, ResponseInterface $response = null) + { + $this->response = is_null($response) ? new Response() : $response; + $this->getTokenController()->handleRevokeRequest($request, $this->response); + + return $this->response; + } + + /** + * Redirect the user appropriately after approval. + * + * After the user has approved or denied the resource request the + * authorization server should call this function to redirect the user + * appropriately. + * + * @param $request + * The request should have the follow parameters set in the querystring: + * - response_type: The requested response: an access token, an + * authorization code, or both. + * - client_id: The client identifier as described in Section 2. + * - redirect_uri: An absolute URI to which the authorization server + * will redirect the user-agent to when the end-user authorization + * step is completed. + * - scope: (optional) The scope of the resource request expressed as a + * list of space-delimited strings. + * - state: (optional) An opaque value used by the client to maintain + * state between the request and callback. + * @param $is_authorized + * TRUE or FALSE depending on whether the user authorized the access. + * @param $user_id + * Identifier of user who authorized the client + * + * @see http://tools.ietf.org/html/rfc6749#section-4 + * + * @ingroup oauth2_section_4 + */ + public function handleAuthorizeRequest(RequestInterface $request, ResponseInterface $response, $is_authorized, $user_id = null) + { + $this->response = $response; + $this->getAuthorizeController()->handleAuthorizeRequest($request, $this->response, $is_authorized, $user_id); + + return $this->response; + } + + /** + * Pull the authorization request data out of the HTTP request. + * - The redirect_uri is OPTIONAL as per draft 20. But your implementation can enforce it + * by setting $config['enforce_redirect'] to true. + * - The state is OPTIONAL but recommended to enforce CSRF. Draft 21 states, however, that + * CSRF protection is MANDATORY. You can enforce this by setting the $config['enforce_state'] to true. + * + * The draft specifies that the parameters should be retrieved from GET, override the Response + * object to change this + * + * @return + * The authorization parameters so the authorization server can prompt + * the user for approval if valid. + * + * @see http://tools.ietf.org/html/rfc6749#section-4.1.1 + * @see http://tools.ietf.org/html/rfc6749#section-10.12 + * + * @ingroup oauth2_section_3 + */ + public function validateAuthorizeRequest(RequestInterface $request, ResponseInterface $response = null) + { + $this->response = is_null($response) ? new Response() : $response; + $value = $this->getAuthorizeController()->validateAuthorizeRequest($request, $this->response); + + return $value; + } + + public function verifyResourceRequest(RequestInterface $request, ResponseInterface $response = null, $scope = null) + { + $this->response = is_null($response) ? new Response() : $response; + $value = $this->getResourceController()->verifyResourceRequest($request, $this->response, $scope); + + return $value; + } + + public function getAccessTokenData(RequestInterface $request, ResponseInterface $response = null) + { + $this->response = is_null($response) ? new Response() : $response; + $value = $this->getResourceController()->getAccessTokenData($request, $this->response); + + return $value; + } + + public function addGrantType(GrantTypeInterface $grantType, $identifier = null) + { + if (!is_string($identifier)) { + $identifier = $grantType->getQuerystringIdentifier(); + } + + $this->grantTypes[$identifier] = $grantType; + + // persist added grant type down to TokenController + if (!is_null($this->tokenController)) { + $this->getTokenController()->addGrantType($grantType, $identifier); + } + } + + /** + * Set a storage object for the server + * + * @param $storage + * An object implementing one of the Storage interfaces + * @param $key + * If null, the storage is set to the key of each storage interface it implements + * + * @see storageMap + */ + public function addStorage($storage, $key = null) + { + // if explicitly set to a valid key, do not "magically" set below + if (isset($this->storageMap[$key])) { + if (!is_null($storage) && !$storage instanceof $this->storageMap[$key]) { + throw new \InvalidArgumentException(sprintf('storage of type "%s" must implement interface "%s"', $key, $this->storageMap[$key])); + } + $this->storages[$key] = $storage; + + // special logic to handle "client" and "client_credentials" strangeness + if ($key === 'client' && !isset($this->storages['client_credentials'])) { + if ($storage instanceof \OAuth2\Storage\ClientCredentialsInterface) { + $this->storages['client_credentials'] = $storage; + } + } elseif ($key === 'client_credentials' && !isset($this->storages['client'])) { + if ($storage instanceof \OAuth2\Storage\ClientInterface) { + $this->storages['client'] = $storage; + } + } + } elseif (!is_null($key) && !is_numeric($key)) { + throw new \InvalidArgumentException(sprintf('unknown storage key "%s", must be one of [%s]', $key, implode(', ', array_keys($this->storageMap)))); + } else { + $set = false; + foreach ($this->storageMap as $type => $interface) { + if ($storage instanceof $interface) { + $this->storages[$type] = $storage; + $set = true; + } + } + + if (!$set) { + throw new \InvalidArgumentException(sprintf('storage of class "%s" must implement one of [%s]', get_class($storage), implode(', ', $this->storageMap))); + } + } + } + + public function addResponseType(ResponseTypeInterface $responseType, $key = null) + { + $key = $this->normalizeResponseType($key); + + if (isset($this->responseTypeMap[$key])) { + if (!$responseType instanceof $this->responseTypeMap[$key]) { + throw new \InvalidArgumentException(sprintf('responseType of type "%s" must implement interface "%s"', $key, $this->responseTypeMap[$key])); + } + $this->responseTypes[$key] = $responseType; + } elseif (!is_null($key) && !is_numeric($key)) { + throw new \InvalidArgumentException(sprintf('unknown responseType key "%s", must be one of [%s]', $key, implode(', ', array_keys($this->responseTypeMap)))); + } else { + $set = false; + foreach ($this->responseTypeMap as $type => $interface) { + if ($responseType instanceof $interface) { + $this->responseTypes[$type] = $responseType; + $set = true; + } + } + + if (!$set) { + throw new \InvalidArgumentException(sprintf('Unknown response type %s. Please implement one of [%s]', get_class($responseType), implode(', ', $this->responseTypeMap))); + } + } + } + + public function getScopeUtil() + { + if (!$this->scopeUtil) { + $storage = isset($this->storages['scope']) ? $this->storages['scope'] : null; + $this->scopeUtil = new Scope($storage); + } + + return $this->scopeUtil; + } + + /** + * every getter deserves a setter + */ + public function setScopeUtil($scopeUtil) + { + $this->scopeUtil = $scopeUtil; + } + + protected function createDefaultAuthorizeController() + { + if (!isset($this->storages['client'])) { + throw new \LogicException("You must supply a storage object implementing OAuth2\Storage\ClientInterface to use the authorize server"); + } + if (0 == count($this->responseTypes)) { + $this->responseTypes = $this->getDefaultResponseTypes(); + } + if ($this->config['use_openid_connect'] && !isset($this->responseTypes['id_token'])) { + $this->responseTypes['id_token'] = $this->createDefaultIdTokenResponseType(); + if ($this->config['allow_implicit']) { + $this->responseTypes['id_token token'] = $this->createDefaultIdTokenTokenResponseType(); + } + } + + $config = array_intersect_key($this->config, array_flip(explode(' ', 'allow_implicit enforce_state require_exact_redirect_uri'))); + + if ($this->config['use_openid_connect']) { + return new OpenIDAuthorizeController($this->storages['client'], $this->responseTypes, $config, $this->getScopeUtil()); + } + + return new AuthorizeController($this->storages['client'], $this->responseTypes, $config, $this->getScopeUtil()); + } + + protected function createDefaultTokenController() + { + if (0 == count($this->grantTypes)) { + $this->grantTypes = $this->getDefaultGrantTypes(); + } + + if (is_null($this->clientAssertionType)) { + // see if HttpBasic assertion type is requred. If so, then create it from storage classes. + foreach ($this->grantTypes as $grantType) { + if (!$grantType instanceof ClientAssertionTypeInterface) { + if (!isset($this->storages['client_credentials'])) { + throw new \LogicException("You must supply a storage object implementing OAuth2\Storage\ClientCredentialsInterface to use the token server"); + } + $config = array_intersect_key($this->config, array_flip(explode(' ', 'allow_credentials_in_request_body allow_public_clients'))); + $this->clientAssertionType = new HttpBasic($this->storages['client_credentials'], $config); + break; + } + } + } + + if (!isset($this->storages['client'])) { + throw new \LogicException("You must supply a storage object implementing OAuth2\Storage\ClientInterface to use the token server"); + } + + $accessTokenResponseType = $this->getAccessTokenResponseType(); + + return new TokenController($accessTokenResponseType, $this->storages['client'], $this->grantTypes, $this->clientAssertionType, $this->getScopeUtil()); + } + + protected function createDefaultResourceController() + { + if ($this->config['use_jwt_access_tokens']) { + // overwrites access token storage with crypto token storage if "use_jwt_access_tokens" is set + if (!isset($this->storages['access_token']) || !$this->storages['access_token'] instanceof JwtAccessTokenInterface) { + $this->storages['access_token'] = $this->createDefaultJwtAccessTokenStorage(); + } + } elseif (!isset($this->storages['access_token'])) { + throw new \LogicException("You must supply a storage object implementing OAuth2\Storage\AccessTokenInterface or use JwtAccessTokens to use the resource server"); + } + + if (!$this->tokenType) { + $this->tokenType = $this->getDefaultTokenType(); + } + + $config = array_intersect_key($this->config, array('www_realm' => '')); + + return new ResourceController($this->tokenType, $this->storages['access_token'], $config, $this->getScopeUtil()); + } + + protected function createDefaultUserInfoController() + { + if ($this->config['use_jwt_access_tokens']) { + // overwrites access token storage with crypto token storage if "use_jwt_access_tokens" is set + if (!isset($this->storages['access_token']) || !$this->storages['access_token'] instanceof JwtAccessTokenInterface) { + $this->storages['access_token'] = $this->createDefaultJwtAccessTokenStorage(); + } + } elseif (!isset($this->storages['access_token'])) { + throw new \LogicException("You must supply a storage object implementing OAuth2\Storage\AccessTokenInterface or use JwtAccessTokens to use the UserInfo server"); + } + + if (!isset($this->storages['user_claims'])) { + throw new \LogicException("You must supply a storage object implementing OAuth2\OpenID\Storage\UserClaimsInterface to use the UserInfo server"); + } + + if (!$this->tokenType) { + $this->tokenType = $this->getDefaultTokenType(); + } + + $config = array_intersect_key($this->config, array('www_realm' => '')); + + return new UserInfoController($this->tokenType, $this->storages['access_token'], $this->storages['user_claims'], $config, $this->getScopeUtil()); + } + + protected function getDefaultTokenType() + { + $config = array_intersect_key($this->config, array_flip(explode(' ', 'token_param_name token_bearer_header_name'))); + + return new Bearer($config); + } + + protected function getDefaultResponseTypes() + { + $responseTypes = array(); + + if ($this->config['allow_implicit']) { + $responseTypes['token'] = $this->getAccessTokenResponseType(); + } + + if ($this->config['use_openid_connect']) { + $responseTypes['id_token'] = $this->getIdTokenResponseType(); + if ($this->config['allow_implicit']) { + $responseTypes['id_token token'] = $this->getIdTokenTokenResponseType(); + } + } + + if (isset($this->storages['authorization_code'])) { + $config = array_intersect_key($this->config, array_flip(explode(' ', 'enforce_redirect auth_code_lifetime'))); + if ($this->config['use_openid_connect']) { + if (!$this->storages['authorization_code'] instanceof OpenIDAuthorizationCodeInterface) { + throw new \LogicException("Your authorization_code storage must implement OAuth2\OpenID\Storage\AuthorizationCodeInterface to work when 'use_openid_connect' is true"); + } + $responseTypes['code'] = new OpenIDAuthorizationCodeResponseType($this->storages['authorization_code'], $config); + $responseTypes['code id_token'] = new CodeIdToken($responseTypes['code'], $responseTypes['id_token']); + } else { + $responseTypes['code'] = new AuthorizationCodeResponseType($this->storages['authorization_code'], $config); + } + } + + if (count($responseTypes) == 0) { + throw new \LogicException("You must supply an array of response_types in the constructor or implement a OAuth2\Storage\AuthorizationCodeInterface storage object or set 'allow_implicit' to true and implement a OAuth2\Storage\AccessTokenInterface storage object"); + } + + return $responseTypes; + } + + protected function getDefaultGrantTypes() + { + $grantTypes = array(); + + if (isset($this->storages['user_credentials'])) { + $grantTypes['password'] = new UserCredentials($this->storages['user_credentials']); + } + + if (isset($this->storages['client_credentials'])) { + $config = array_intersect_key($this->config, array('allow_credentials_in_request_body' => '')); + $grantTypes['client_credentials'] = new ClientCredentials($this->storages['client_credentials'], $config); + } + + if (isset($this->storages['refresh_token'])) { + $config = array_intersect_key($this->config, array_flip(explode(' ', 'always_issue_new_refresh_token unset_refresh_token_after_use'))); + $grantTypes['refresh_token'] = new RefreshToken($this->storages['refresh_token'], $config); + } + + if (isset($this->storages['authorization_code'])) { + if ($this->config['use_openid_connect']) { + if (!$this->storages['authorization_code'] instanceof OpenIDAuthorizationCodeInterface) { + throw new \LogicException("Your authorization_code storage must implement OAuth2\OpenID\Storage\AuthorizationCodeInterface to work when 'use_openid_connect' is true"); + } + $grantTypes['authorization_code'] = new OpenIDAuthorizationCodeGrantType($this->storages['authorization_code']); + } else { + $grantTypes['authorization_code'] = new AuthorizationCode($this->storages['authorization_code']); + } + } + + if (count($grantTypes) == 0) { + throw new \LogicException("Unable to build default grant types - You must supply an array of grant_types in the constructor"); + } + + return $grantTypes; + } + + protected function getAccessTokenResponseType() + { + if (isset($this->responseTypes['token'])) { + return $this->responseTypes['token']; + } + + if ($this->config['use_jwt_access_tokens']) { + return $this->createDefaultJwtAccessTokenResponseType(); + } + + return $this->createDefaultAccessTokenResponseType(); + } + + protected function getIdTokenResponseType() + { + if (isset($this->responseTypes['id_token'])) { + return $this->responseTypes['id_token']; + } + + return $this->createDefaultIdTokenResponseType(); + } + + protected function getIdTokenTokenResponseType() + { + if (isset($this->responseTypes['id_token token'])) { + return $this->responseTypes['id_token token']; + } + + return $this->createDefaultIdTokenTokenResponseType(); + } + + /** + * For Resource Controller + */ + protected function createDefaultJwtAccessTokenStorage() + { + if (!isset($this->storages['public_key'])) { + throw new \LogicException("You must supply a storage object implementing OAuth2\Storage\PublicKeyInterface to use crypto tokens"); + } + $tokenStorage = null; + if (!empty($this->config['store_encrypted_token_string']) && isset($this->storages['access_token'])) { + $tokenStorage = $this->storages['access_token']; + } + // wrap the access token storage as required. + return new JwtAccessTokenStorage($this->storages['public_key'], $tokenStorage); + } + + /** + * For Authorize and Token Controllers + */ + protected function createDefaultJwtAccessTokenResponseType() + { + if (!isset($this->storages['public_key'])) { + throw new \LogicException("You must supply a storage object implementing OAuth2\Storage\PublicKeyInterface to use crypto tokens"); + } + + $tokenStorage = null; + if (isset($this->storages['access_token'])) { + $tokenStorage = $this->storages['access_token']; + } + + $refreshStorage = null; + if (isset($this->storages['refresh_token'])) { + $refreshStorage = $this->storages['refresh_token']; + } + + $config = array_intersect_key($this->config, array_flip(explode(' ', 'store_encrypted_token_string issuer access_lifetime refresh_token_lifetime'))); + + return new JwtAccessToken($this->storages['public_key'], $tokenStorage, $refreshStorage, $config); + } + + protected function createDefaultAccessTokenResponseType() + { + if (!isset($this->storages['access_token'])) { + throw new \LogicException("You must supply a response type implementing OAuth2\ResponseType\AccessTokenInterface, or a storage object implementing OAuth2\Storage\AccessTokenInterface to use the token server"); + } + + $refreshStorage = null; + if (isset($this->storages['refresh_token'])) { + $refreshStorage = $this->storages['refresh_token']; + } + + $config = array_intersect_key($this->config, array_flip(explode(' ', 'access_lifetime refresh_token_lifetime'))); + $config['token_type'] = $this->tokenType ? $this->tokenType->getTokenType() : $this->getDefaultTokenType()->getTokenType(); + + return new AccessToken($this->storages['access_token'], $refreshStorage, $config); + } + + protected function createDefaultIdTokenResponseType() + { + if (!isset($this->storages['user_claims'])) { + throw new \LogicException("You must supply a storage object implementing OAuth2\OpenID\Storage\UserClaimsInterface to use openid connect"); + } + if (!isset($this->storages['public_key'])) { + throw new \LogicException("You must supply a storage object implementing OAuth2\Storage\PublicKeyInterface to use openid connect"); + } + + $config = array_intersect_key($this->config, array_flip(explode(' ', 'issuer id_lifetime'))); + + return new IdToken($this->storages['user_claims'], $this->storages['public_key'], $config); + } + + protected function createDefaultIdTokenTokenResponseType() + { + return new IdTokenToken($this->getAccessTokenResponseType(), $this->getIdTokenResponseType()); + } + + protected function validateOpenIdConnect() + { + $authCodeGrant = $this->getGrantType('authorization_code'); + if (!empty($authCodeGrant) && !$authCodeGrant instanceof OpenIDAuthorizationCodeGrantType) { + throw new \InvalidArgumentException('You have enabled OpenID Connect, but supplied a grant type that does not support it.'); + } + } + + protected function normalizeResponseType($name) + { + // for multiple-valued response types - make them alphabetical + if (!empty($name) && false !== strpos($name, ' ')) { + $types = explode(' ', $name); + sort($types); + $name = implode(' ', $types); + } + + return $name; + } + + public function getResponse() + { + return $this->response; + } + + public function getStorages() + { + return $this->storages; + } + + public function getStorage($name) + { + return isset($this->storages[$name]) ? $this->storages[$name] : null; + } + + public function getGrantTypes() + { + return $this->grantTypes; + } + + public function getGrantType($name) + { + return isset($this->grantTypes[$name]) ? $this->grantTypes[$name] : null; + } + + public function getResponseTypes() + { + return $this->responseTypes; + } + + public function getResponseType($name) + { + // for multiple-valued response types - make them alphabetical + $name = $this->normalizeResponseType($name); + + return isset($this->responseTypes[$name]) ? $this->responseTypes[$name] : null; + } + + public function getTokenType() + { + return $this->tokenType; + } + + public function getClientAssertionType() + { + return $this->clientAssertionType; + } + + public function setConfig($name, $value) + { + $this->config[$name] = $value; + } + + public function getConfig($name, $default = null) + { + return isset($this->config[$name]) ? $this->config[$name] : $default; + } +} diff --git a/library/oauth2/src/OAuth2/Storage/AccessTokenInterface.php b/library/oauth2/src/OAuth2/Storage/AccessTokenInterface.php new file mode 100644 index 000000000..1819158af --- /dev/null +++ b/library/oauth2/src/OAuth2/Storage/AccessTokenInterface.php @@ -0,0 +1,64 @@ + + */ +interface AccessTokenInterface +{ + /** + * Look up the supplied oauth_token from storage. + * + * We need to retrieve access token data as we create and verify tokens. + * + * @param $oauth_token + * oauth_token to be check with. + * + * @return + * An associative array as below, and return NULL if the supplied oauth_token + * is invalid: + * - expires: Stored expiration in unix timestamp. + * - client_id: (optional) Stored client identifier. + * - user_id: (optional) Stored user identifier. + * - scope: (optional) Stored scope values in space-separated string. + * - id_token: (optional) Stored id_token (if "use_openid_connect" is true). + * + * @ingroup oauth2_section_7 + */ + public function getAccessToken($oauth_token); + + /** + * Store the supplied access token values to storage. + * + * We need to store access token data as we create and verify tokens. + * + * @param $oauth_token oauth_token to be stored. + * @param $client_id client identifier to be stored. + * @param $user_id user identifier to be stored. + * @param int $expires expiration to be stored as a Unix timestamp. + * @param string $scope OPTIONAL Scopes to be stored in space-separated string. + * + * @ingroup oauth2_section_4 + */ + public function setAccessToken($oauth_token, $client_id, $user_id, $expires, $scope = null); + + /** + * Expire an access token. + * + * This is not explicitly required in the spec, but if defined in a draft RFC for token + * revoking (RFC 7009) https://tools.ietf.org/html/rfc7009 + * + * @param $access_token + * Access token to be expired. + * + * @return BOOL true if an access token was unset, false if not + * @ingroup oauth2_section_6 + * + * @todo v2.0 include this method in interface. Omitted to maintain BC in v1.x + */ + //public function unsetAccessToken($access_token); +} diff --git a/library/oauth2/src/OAuth2/Storage/AuthorizationCodeInterface.php b/library/oauth2/src/OAuth2/Storage/AuthorizationCodeInterface.php new file mode 100644 index 000000000..3beb0e437 --- /dev/null +++ b/library/oauth2/src/OAuth2/Storage/AuthorizationCodeInterface.php @@ -0,0 +1,86 @@ + + */ +interface AuthorizationCodeInterface +{ + /** + * The Authorization Code grant type supports a response type of "code". + * + * @var string + * @see http://tools.ietf.org/html/rfc6749#section-1.4.1 + * @see http://tools.ietf.org/html/rfc6749#section-4.2 + */ + const RESPONSE_TYPE_CODE = "code"; + + /** + * Fetch authorization code data (probably the most common grant type). + * + * Retrieve the stored data for the given authorization code. + * + * Required for OAuth2::GRANT_TYPE_AUTH_CODE. + * + * @param $code + * Authorization code to be check with. + * + * @return + * An associative array as below, and NULL if the code is invalid + * @code + * return array( + * "client_id" => CLIENT_ID, // REQUIRED Stored client identifier + * "user_id" => USER_ID, // REQUIRED Stored user identifier + * "expires" => EXPIRES, // REQUIRED Stored expiration in unix timestamp + * "redirect_uri" => REDIRECT_URI, // REQUIRED Stored redirect URI + * "scope" => SCOPE, // OPTIONAL Stored scope values in space-separated string + * ); + * @endcode + * + * @see http://tools.ietf.org/html/rfc6749#section-4.1 + * + * @ingroup oauth2_section_4 + */ + public function getAuthorizationCode($code); + + /** + * Take the provided authorization code values and store them somewhere. + * + * This function should be the storage counterpart to getAuthCode(). + * + * If storage fails for some reason, we're not currently checking for + * any sort of success/failure, so you should bail out of the script + * and provide a descriptive fail message. + * + * Required for OAuth2::GRANT_TYPE_AUTH_CODE. + * + * @param string $code Authorization code to be stored. + * @param mixed $client_id Client identifier to be stored. + * @param mixed $user_id User identifier to be stored. + * @param string $redirect_uri Redirect URI(s) to be stored in a space-separated string. + * @param int $expires Expiration to be stored as a Unix timestamp. + * @param string $scope OPTIONAL Scopes to be stored in space-separated string. + * + * @ingroup oauth2_section_4 + */ + public function setAuthorizationCode($code, $client_id, $user_id, $redirect_uri, $expires, $scope = null); + + /** + * once an Authorization Code is used, it must be exipired + * + * @see http://tools.ietf.org/html/rfc6749#section-4.1.2 + * + * The client MUST NOT use the authorization code + * more than once. If an authorization code is used more than + * once, the authorization server MUST deny the request and SHOULD + * revoke (when possible) all tokens previously issued based on + * that authorization code + * + */ + public function expireAuthorizationCode($code); +} diff --git a/library/oauth2/src/OAuth2/Storage/Cassandra.php b/library/oauth2/src/OAuth2/Storage/Cassandra.php new file mode 100644 index 000000000..602e8a058 --- /dev/null +++ b/library/oauth2/src/OAuth2/Storage/Cassandra.php @@ -0,0 +1,480 @@ + + * composer require thobbs/phpcassa:dev-master + * + * + * Once this is done, instantiate the + * + * $cassandra = new \phpcassa\Connection\ConnectionPool('oauth2_server', array('127.0.0.1:9160')); + * + * + * Then, register the storage client: + * + * $storage = new OAuth2\Storage\Cassandra($cassandra); + * $storage->setClientDetails($client_id, $client_secret, $redirect_uri); + * + * + * @see test/lib/OAuth2/Storage/Bootstrap::getCassandraStorage + */ +class Cassandra implements AuthorizationCodeInterface, + AccessTokenInterface, + ClientCredentialsInterface, + UserCredentialsInterface, + RefreshTokenInterface, + JwtBearerInterface, + ScopeInterface, + PublicKeyInterface, + UserClaimsInterface, + OpenIDAuthorizationCodeInterface +{ + + private $cache; + + /* The cassandra client */ + protected $cassandra; + + /* Configuration array */ + protected $config; + + /** + * Cassandra Storage! uses phpCassa + * + * @param \phpcassa\ConnectionPool $cassandra + * @param array $config + */ + public function __construct($connection = array(), array $config = array()) + { + if ($connection instanceof ConnectionPool) { + $this->cassandra = $connection; + } else { + if (!is_array($connection)) { + throw new \InvalidArgumentException('First argument to OAuth2\Storage\Cassandra must be an instance of phpcassa\Connection\ConnectionPool or a configuration array'); + } + $connection = array_merge(array( + 'keyspace' => 'oauth2', + 'servers' => null, + ), $connection); + + $this->cassandra = new ConnectionPool($connection['keyspace'], $connection['servers']); + } + + $this->config = array_merge(array( + // cassandra config + 'column_family' => 'auth', + + // key names + 'client_key' => 'oauth_clients:', + 'access_token_key' => 'oauth_access_tokens:', + 'refresh_token_key' => 'oauth_refresh_tokens:', + 'code_key' => 'oauth_authorization_codes:', + 'user_key' => 'oauth_users:', + 'jwt_key' => 'oauth_jwt:', + 'scope_key' => 'oauth_scopes:', + 'public_key_key' => 'oauth_public_keys:', + ), $config); + } + + protected function getValue($key) + { + if (isset($this->cache[$key])) { + return $this->cache[$key]; + } + $cf = new ColumnFamily($this->cassandra, $this->config['column_family']); + + try { + $value = $cf->get($key, new ColumnSlice("", "")); + $value = array_shift($value); + } catch (\cassandra\NotFoundException $e) { + return false; + } + + return json_decode($value, true); + } + + protected function setValue($key, $value, $expire = 0) + { + $this->cache[$key] = $value; + + $cf = new ColumnFamily($this->cassandra, $this->config['column_family']); + + $str = json_encode($value); + if ($expire > 0) { + try { + $seconds = $expire - time(); + // __data key set as C* requires a field, note: max TTL can only be 630720000 seconds + $cf->insert($key, array('__data' => $str), null, $seconds); + } catch (\Exception $e) { + return false; + } + } else { + try { + // __data key set as C* requires a field + $cf->insert($key, array('__data' => $str)); + } catch (\Exception $e) { + return false; + } + } + + return true; + } + + protected function expireValue($key) + { + unset($this->cache[$key]); + + $cf = new ColumnFamily($this->cassandra, $this->config['column_family']); + + if ($cf->get_count($key) > 0) { + try { + // __data key set as C* requires a field + $cf->remove($key, array('__data')); + } catch (\Exception $e) { + return false; + } + + return true; + } + + return false; + } + + /* AuthorizationCodeInterface */ + public function getAuthorizationCode($code) + { + return $this->getValue($this->config['code_key'] . $code); + } + + public function setAuthorizationCode($authorization_code, $client_id, $user_id, $redirect_uri, $expires, $scope = null, $id_token = null) + { + return $this->setValue( + $this->config['code_key'] . $authorization_code, + compact('authorization_code', 'client_id', 'user_id', 'redirect_uri', 'expires', 'scope', 'id_token'), + $expires + ); + } + + public function expireAuthorizationCode($code) + { + $key = $this->config['code_key'] . $code; + unset($this->cache[$key]); + + return $this->expireValue($key); + } + + /* UserCredentialsInterface */ + public function checkUserCredentials($username, $password) + { + if ($user = $this->getUser($username)) { + return $this->checkPassword($user, $password); + } + + return false; + } + + // plaintext passwords are bad! Override this for your application + protected function checkPassword($user, $password) + { + return $user['password'] == $this->hashPassword($password); + } + + // use a secure hashing algorithm when storing passwords. Override this for your application + protected function hashPassword($password) + { + return sha1($password); + } + + public function getUserDetails($username) + { + return $this->getUser($username); + } + + public function getUser($username) + { + if (!$userInfo = $this->getValue($this->config['user_key'] . $username)) { + return false; + } + + // the default behavior is to use "username" as the user_id + return array_merge(array( + 'user_id' => $username, + ), $userInfo); + } + + public function setUser($username, $password, $first_name = null, $last_name = null) + { + $password = $this->hashPassword($password); + + return $this->setValue( + $this->config['user_key'] . $username, + compact('username', 'password', 'first_name', 'last_name') + ); + } + + /* ClientCredentialsInterface */ + public function checkClientCredentials($client_id, $client_secret = null) + { + if (!$client = $this->getClientDetails($client_id)) { + return false; + } + + return isset($client['client_secret']) + && $client['client_secret'] == $client_secret; + } + + public function isPublicClient($client_id) + { + if (!$client = $this->getClientDetails($client_id)) { + return false; + } + + return empty($client['client_secret']);; + } + + /* ClientInterface */ + public function getClientDetails($client_id) + { + return $this->getValue($this->config['client_key'] . $client_id); + } + + public function setClientDetails($client_id, $client_secret = null, $redirect_uri = null, $grant_types = null, $scope = null, $user_id = null) + { + return $this->setValue( + $this->config['client_key'] . $client_id, + compact('client_id', 'client_secret', 'redirect_uri', 'grant_types', 'scope', 'user_id') + ); + } + + public function checkRestrictedGrantType($client_id, $grant_type) + { + $details = $this->getClientDetails($client_id); + if (isset($details['grant_types'])) { + $grant_types = explode(' ', $details['grant_types']); + + return in_array($grant_type, (array) $grant_types); + } + + // if grant_types are not defined, then none are restricted + return true; + } + + /* RefreshTokenInterface */ + public function getRefreshToken($refresh_token) + { + return $this->getValue($this->config['refresh_token_key'] . $refresh_token); + } + + public function setRefreshToken($refresh_token, $client_id, $user_id, $expires, $scope = null) + { + return $this->setValue( + $this->config['refresh_token_key'] . $refresh_token, + compact('refresh_token', 'client_id', 'user_id', 'expires', 'scope'), + $expires + ); + } + + public function unsetRefreshToken($refresh_token) + { + return $this->expireValue($this->config['refresh_token_key'] . $refresh_token); + } + + /* AccessTokenInterface */ + public function getAccessToken($access_token) + { + return $this->getValue($this->config['access_token_key'].$access_token); + } + + public function setAccessToken($access_token, $client_id, $user_id, $expires, $scope = null) + { + return $this->setValue( + $this->config['access_token_key'].$access_token, + compact('access_token', 'client_id', 'user_id', 'expires', 'scope'), + $expires + ); + } + + public function unsetAccessToken($access_token) + { + return $this->expireValue($this->config['access_token_key'] . $access_token); + } + + /* ScopeInterface */ + public function scopeExists($scope) + { + $scope = explode(' ', $scope); + + $result = $this->getValue($this->config['scope_key'].'supported:global'); + + $supportedScope = explode(' ', (string) $result); + + return (count(array_diff($scope, $supportedScope)) == 0); + } + + public function getDefaultScope($client_id = null) + { + if (is_null($client_id) || !$result = $this->getValue($this->config['scope_key'].'default:'.$client_id)) { + $result = $this->getValue($this->config['scope_key'].'default:global'); + } + + return $result; + } + + public function setScope($scope, $client_id = null, $type = 'supported') + { + if (!in_array($type, array('default', 'supported'))) { + throw new \InvalidArgumentException('"$type" must be one of "default", "supported"'); + } + + if (is_null($client_id)) { + $key = $this->config['scope_key'].$type.':global'; + } else { + $key = $this->config['scope_key'].$type.':'.$client_id; + } + + return $this->setValue($key, $scope); + } + + /*JWTBearerInterface */ + public function getClientKey($client_id, $subject) + { + if (!$jwt = $this->getValue($this->config['jwt_key'] . $client_id)) { + return false; + } + + if (isset($jwt['subject']) && $jwt['subject'] == $subject ) { + return $jwt['key']; + } + + return null; + } + + public function setClientKey($client_id, $key, $subject = null) + { + return $this->setValue($this->config['jwt_key'] . $client_id, array( + 'key' => $key, + 'subject' => $subject + )); + } + + /*ScopeInterface */ + public function getClientScope($client_id) + { + if (!$clientDetails = $this->getClientDetails($client_id)) { + return false; + } + + if (isset($clientDetails['scope'])) { + return $clientDetails['scope']; + } + + return null; + } + + public function getJti($client_id, $subject, $audience, $expiration, $jti) + { + //TODO: Needs cassandra implementation. + throw new \Exception('getJti() for the Cassandra driver is currently unimplemented.'); + } + + public function setJti($client_id, $subject, $audience, $expiration, $jti) + { + //TODO: Needs cassandra implementation. + throw new \Exception('setJti() for the Cassandra driver is currently unimplemented.'); + } + + /* PublicKeyInterface */ + public function getPublicKey($client_id = '') + { + $public_key = $this->getValue($this->config['public_key_key'] . $client_id); + if (is_array($public_key)) { + return $public_key['public_key']; + } + $public_key = $this->getValue($this->config['public_key_key']); + if (is_array($public_key)) { + return $public_key['public_key']; + } + } + + public function getPrivateKey($client_id = '') + { + $public_key = $this->getValue($this->config['public_key_key'] . $client_id); + if (is_array($public_key)) { + return $public_key['private_key']; + } + $public_key = $this->getValue($this->config['public_key_key']); + if (is_array($public_key)) { + return $public_key['private_key']; + } + } + + public function getEncryptionAlgorithm($client_id = null) + { + $public_key = $this->getValue($this->config['public_key_key'] . $client_id); + if (is_array($public_key)) { + return $public_key['encryption_algorithm']; + } + $public_key = $this->getValue($this->config['public_key_key']); + if (is_array($public_key)) { + return $public_key['encryption_algorithm']; + } + + return 'RS256'; + } + + /* UserClaimsInterface */ + public function getUserClaims($user_id, $claims) + { + $userDetails = $this->getUserDetails($user_id); + if (!is_array($userDetails)) { + return false; + } + + $claims = explode(' ', trim($claims)); + $userClaims = array(); + + // for each requested claim, if the user has the claim, set it in the response + $validClaims = explode(' ', self::VALID_CLAIMS); + foreach ($validClaims as $validClaim) { + if (in_array($validClaim, $claims)) { + if ($validClaim == 'address') { + // address is an object with subfields + $userClaims['address'] = $this->getUserClaim($validClaim, $userDetails['address'] ?: $userDetails); + } else { + $userClaims = array_merge($userClaims, $this->getUserClaim($validClaim, $userDetails)); + } + } + } + + return $userClaims; + } + + protected function getUserClaim($claim, $userDetails) + { + $userClaims = array(); + $claimValuesString = constant(sprintf('self::%s_CLAIM_VALUES', strtoupper($claim))); + $claimValues = explode(' ', $claimValuesString); + + foreach ($claimValues as $value) { + if ($value == 'email_verified') { + $userClaims[$value] = $userDetails[$value]=='true' ? true : false; + } else { + $userClaims[$value] = isset($userDetails[$value]) ? $userDetails[$value] : null; + } + } + + return $userClaims; + } + +} diff --git a/library/oauth2/src/OAuth2/Storage/ClientCredentialsInterface.php b/library/oauth2/src/OAuth2/Storage/ClientCredentialsInterface.php new file mode 100644 index 000000000..3318c6966 --- /dev/null +++ b/library/oauth2/src/OAuth2/Storage/ClientCredentialsInterface.php @@ -0,0 +1,49 @@ + + */ +interface ClientCredentialsInterface extends ClientInterface +{ + + /** + * Make sure that the client credentials is valid. + * + * @param $client_id + * Client identifier to be check with. + * @param $client_secret + * (optional) If a secret is required, check that they've given the right one. + * + * @return + * TRUE if the client credentials are valid, and MUST return FALSE if it isn't. + * @endcode + * + * @see http://tools.ietf.org/html/rfc6749#section-3.1 + * + * @ingroup oauth2_section_3 + */ + public function checkClientCredentials($client_id, $client_secret = null); + + /** + * Determine if the client is a "public" client, and therefore + * does not require passing credentials for certain grant types + * + * @param $client_id + * Client identifier to be check with. + * + * @return + * TRUE if the client is public, and FALSE if it isn't. + * @endcode + * + * @see http://tools.ietf.org/html/rfc6749#section-2.3 + * @see https://github.com/bshaffer/oauth2-server-php/issues/257 + * + * @ingroup oauth2_section_2 + */ + public function isPublicClient($client_id); +} diff --git a/library/oauth2/src/OAuth2/Storage/ClientInterface.php b/library/oauth2/src/OAuth2/Storage/ClientInterface.php new file mode 100644 index 000000000..09a5bffc1 --- /dev/null +++ b/library/oauth2/src/OAuth2/Storage/ClientInterface.php @@ -0,0 +1,66 @@ + + */ +interface ClientInterface +{ + /** + * Get client details corresponding client_id. + * + * OAuth says we should store request URIs for each registered client. + * Implement this function to grab the stored URI for a given client id. + * + * @param $client_id + * Client identifier to be check with. + * + * @return array + * Client details. The only mandatory key in the array is "redirect_uri". + * This function MUST return FALSE if the given client does not exist or is + * invalid. "redirect_uri" can be space-delimited to allow for multiple valid uris. + * + * return array( + * "redirect_uri" => REDIRECT_URI, // REQUIRED redirect_uri registered for the client + * "client_id" => CLIENT_ID, // OPTIONAL the client id + * "grant_types" => GRANT_TYPES, // OPTIONAL an array of restricted grant types + * "user_id" => USER_ID, // OPTIONAL the user identifier associated with this client + * "scope" => SCOPE, // OPTIONAL the scopes allowed for this client + * ); + * + * + * @ingroup oauth2_section_4 + */ + public function getClientDetails($client_id); + + /** + * Get the scope associated with this client + * + * @return + * STRING the space-delineated scope list for the specified client_id + */ + public function getClientScope($client_id); + + /** + * Check restricted grant types of corresponding client identifier. + * + * If you want to restrict clients to certain grant types, override this + * function. + * + * @param $client_id + * Client identifier to be check with. + * @param $grant_type + * Grant type to be check with + * + * @return + * TRUE if the grant type is supported by this client identifier, and + * FALSE if it isn't. + * + * @ingroup oauth2_section_4 + */ + public function checkRestrictedGrantType($client_id, $grant_type); +} diff --git a/library/oauth2/src/OAuth2/Storage/CouchbaseDB.php b/library/oauth2/src/OAuth2/Storage/CouchbaseDB.php new file mode 100755 index 000000000..1eb55f027 --- /dev/null +++ b/library/oauth2/src/OAuth2/Storage/CouchbaseDB.php @@ -0,0 +1,331 @@ + + */ +class CouchbaseDB implements AuthorizationCodeInterface, + AccessTokenInterface, + ClientCredentialsInterface, + UserCredentialsInterface, + RefreshTokenInterface, + JwtBearerInterface, + OpenIDAuthorizationCodeInterface +{ + protected $db; + protected $config; + + public function __construct($connection, $config = array()) + { + if ($connection instanceof \Couchbase) { + $this->db = $connection; + } else { + if (!is_array($connection) || !is_array($connection['servers'])) { + throw new \InvalidArgumentException('First argument to OAuth2\Storage\CouchbaseDB must be an instance of Couchbase or a configuration array containing a server array'); + } + + $this->db = new \Couchbase($connection['servers'], (!isset($connection['username'])) ? '' : $connection['username'], (!isset($connection['password'])) ? '' : $connection['password'], $connection['bucket'], false); + } + + $this->config = array_merge(array( + 'client_table' => 'oauth_clients', + 'access_token_table' => 'oauth_access_tokens', + 'refresh_token_table' => 'oauth_refresh_tokens', + 'code_table' => 'oauth_authorization_codes', + 'user_table' => 'oauth_users', + 'jwt_table' => 'oauth_jwt', + ), $config); + } + + // Helper function to access couchbase item by type: + protected function getObjectByType($name,$id) + { + return json_decode($this->db->get($this->config[$name].'-'.$id),true); + } + + // Helper function to set couchbase item by type: + protected function setObjectByType($name,$id,$array) + { + $array['type'] = $name; + + return $this->db->set($this->config[$name].'-'.$id,json_encode($array)); + } + + // Helper function to delete couchbase item by type, wait for persist to at least 1 node + protected function deleteObjectByType($name,$id) + { + $this->db->delete($this->config[$name].'-'.$id,"",1); + } + + /* ClientCredentialsInterface */ + public function checkClientCredentials($client_id, $client_secret = null) + { + if ($result = $this->getObjectByType('client_table',$client_id)) { + return $result['client_secret'] == $client_secret; + } + + return false; + } + + public function isPublicClient($client_id) + { + if (!$result = $this->getObjectByType('client_table',$client_id)) { + return false; + } + + return empty($result['client_secret']); + } + + /* ClientInterface */ + public function getClientDetails($client_id) + { + $result = $this->getObjectByType('client_table',$client_id); + + return is_null($result) ? false : $result; + } + + public function setClientDetails($client_id, $client_secret = null, $redirect_uri = null, $grant_types = null, $scope = null, $user_id = null) + { + if ($this->getClientDetails($client_id)) { + + $this->setObjectByType('client_table',$client_id, array( + 'client_id' => $client_id, + 'client_secret' => $client_secret, + 'redirect_uri' => $redirect_uri, + 'grant_types' => $grant_types, + 'scope' => $scope, + 'user_id' => $user_id, + )); + } else { + $this->setObjectByType('client_table',$client_id, array( + 'client_id' => $client_id, + 'client_secret' => $client_secret, + 'redirect_uri' => $redirect_uri, + 'grant_types' => $grant_types, + 'scope' => $scope, + 'user_id' => $user_id, + )); + } + + return true; + } + + public function checkRestrictedGrantType($client_id, $grant_type) + { + $details = $this->getClientDetails($client_id); + if (isset($details['grant_types'])) { + $grant_types = explode(' ', $details['grant_types']); + + return in_array($grant_type, $grant_types); + } + + // if grant_types are not defined, then none are restricted + return true; + } + + /* AccessTokenInterface */ + public function getAccessToken($access_token) + { + $token = $this->getObjectByType('access_token_table',$access_token); + + return is_null($token) ? false : $token; + } + + public function setAccessToken($access_token, $client_id, $user_id, $expires, $scope = null) + { + // if it exists, update it. + if ($this->getAccessToken($access_token)) { + $this->setObjectByType('access_token_table',$access_token, array( + 'access_token' => $access_token, + 'client_id' => $client_id, + 'expires' => $expires, + 'user_id' => $user_id, + 'scope' => $scope + )); + } else { + $this->setObjectByType('access_token_table',$access_token, array( + 'access_token' => $access_token, + 'client_id' => $client_id, + 'expires' => $expires, + 'user_id' => $user_id, + 'scope' => $scope + )); + } + + return true; + } + + /* AuthorizationCodeInterface */ + public function getAuthorizationCode($code) + { + $code = $this->getObjectByType('code_table',$code); + + return is_null($code) ? false : $code; + } + + public function setAuthorizationCode($code, $client_id, $user_id, $redirect_uri, $expires, $scope = null, $id_token = null) + { + // if it exists, update it. + if ($this->getAuthorizationCode($code)) { + $this->setObjectByType('code_table',$code, array( + 'authorization_code' => $code, + 'client_id' => $client_id, + 'user_id' => $user_id, + 'redirect_uri' => $redirect_uri, + 'expires' => $expires, + 'scope' => $scope, + 'id_token' => $id_token, + )); + } else { + $this->setObjectByType('code_table',$code,array( + 'authorization_code' => $code, + 'client_id' => $client_id, + 'user_id' => $user_id, + 'redirect_uri' => $redirect_uri, + 'expires' => $expires, + 'scope' => $scope, + 'id_token' => $id_token, + )); + } + + return true; + } + + public function expireAuthorizationCode($code) + { + $this->deleteObjectByType('code_table',$code); + + return true; + } + + /* UserCredentialsInterface */ + public function checkUserCredentials($username, $password) + { + if ($user = $this->getUser($username)) { + return $this->checkPassword($user, $password); + } + + return false; + } + + public function getUserDetails($username) + { + if ($user = $this->getUser($username)) { + $user['user_id'] = $user['username']; + } + + return $user; + } + + /* RefreshTokenInterface */ + public function getRefreshToken($refresh_token) + { + $token = $this->getObjectByType('refresh_token_table',$refresh_token); + + return is_null($token) ? false : $token; + } + + public function setRefreshToken($refresh_token, $client_id, $user_id, $expires, $scope = null) + { + $this->setObjectByType('refresh_token_table',$refresh_token, array( + 'refresh_token' => $refresh_token, + 'client_id' => $client_id, + 'user_id' => $user_id, + 'expires' => $expires, + 'scope' => $scope + )); + + return true; + } + + public function unsetRefreshToken($refresh_token) + { + $this->deleteObjectByType('refresh_token_table',$refresh_token); + + return true; + } + + // plaintext passwords are bad! Override this for your application + protected function checkPassword($user, $password) + { + return $user['password'] == $password; + } + + public function getUser($username) + { + $result = $this->getObjectByType('user_table',$username); + + return is_null($result) ? false : $result; + } + + public function setUser($username, $password, $firstName = null, $lastName = null) + { + if ($this->getUser($username)) { + $this->setObjectByType('user_table',$username, array( + 'username' => $username, + 'password' => $password, + 'first_name' => $firstName, + 'last_name' => $lastName + )); + + } else { + $this->setObjectByType('user_table',$username, array( + 'username' => $username, + 'password' => $password, + 'first_name' => $firstName, + 'last_name' => $lastName + )); + + } + + return true; + } + + public function getClientKey($client_id, $subject) + { + if (!$jwt = $this->getObjectByType('jwt_table',$client_id)) { + return false; + } + + if (isset($jwt['subject']) && $jwt['subject'] == $subject) { + return $jwt['key']; + } + + return false; + } + + public function getClientScope($client_id) + { + if (!$clientDetails = $this->getClientDetails($client_id)) { + return false; + } + + if (isset($clientDetails['scope'])) { + return $clientDetails['scope']; + } + + return null; + } + + public function getJti($client_id, $subject, $audience, $expiration, $jti) + { + //TODO: Needs couchbase implementation. + throw new \Exception('getJti() for the Couchbase driver is currently unimplemented.'); + } + + public function setJti($client_id, $subject, $audience, $expiration, $jti) + { + //TODO: Needs couchbase implementation. + throw new \Exception('setJti() for the Couchbase driver is currently unimplemented.'); + } +} diff --git a/library/oauth2/src/OAuth2/Storage/DynamoDB.php b/library/oauth2/src/OAuth2/Storage/DynamoDB.php new file mode 100644 index 000000000..8347ab258 --- /dev/null +++ b/library/oauth2/src/OAuth2/Storage/DynamoDB.php @@ -0,0 +1,540 @@ + + * composer require aws/aws-sdk-php:dev-master + * + * + * Once this is done, instantiate the DynamoDB client + * + * $storage = new OAuth2\Storage\Dynamodb(array("key" => "YOURKEY", "secret" => "YOURSECRET", "region" => "YOURREGION")); + * + * + * Table : + * - oauth_access_tokens (primary hash key : access_token) + * - oauth_authorization_codes (primary hash key : authorization_code) + * - oauth_clients (primary hash key : client_id) + * - oauth_jwt (primary hash key : client_id, primary range key : subject) + * - oauth_public_keys (primary hash key : client_id) + * - oauth_refresh_tokens (primary hash key : refresh_token) + * - oauth_scopes (primary hash key : scope, secondary index : is_default-index hash key is_default) + * - oauth_users (primary hash key : username) + * + * @author Frederic AUGUSTE + */ +class DynamoDB implements + AuthorizationCodeInterface, + AccessTokenInterface, + ClientCredentialsInterface, + UserCredentialsInterface, + RefreshTokenInterface, + JwtBearerInterface, + ScopeInterface, + PublicKeyInterface, + UserClaimsInterface, + OpenIDAuthorizationCodeInterface +{ + protected $client; + protected $config; + + public function __construct($connection, $config = array()) + { + if (!($connection instanceof DynamoDbClient)) { + if (!is_array($connection)) { + throw new \InvalidArgumentException('First argument to OAuth2\Storage\Dynamodb must be an instance a configuration array containt key, secret, region'); + } + if (!array_key_exists("key",$connection) || !array_key_exists("secret",$connection) || !array_key_exists("region",$connection) ) { + throw new \InvalidArgumentException('First argument to OAuth2\Storage\Dynamodb must be an instance a configuration array containt key, secret, region'); + } + $this->client = DynamoDbClient::factory(array( + 'key' => $connection["key"], + 'secret' => $connection["secret"], + 'region' =>$connection["region"] + )); + } else { + $this->client = $connection; + } + + $this->config = array_merge(array( + 'client_table' => 'oauth_clients', + 'access_token_table' => 'oauth_access_tokens', + 'refresh_token_table' => 'oauth_refresh_tokens', + 'code_table' => 'oauth_authorization_codes', + 'user_table' => 'oauth_users', + 'jwt_table' => 'oauth_jwt', + 'scope_table' => 'oauth_scopes', + 'public_key_table' => 'oauth_public_keys', + ), $config); + } + + /* OAuth2\Storage\ClientCredentialsInterface */ + public function checkClientCredentials($client_id, $client_secret = null) + { + $result = $this->client->getItem(array( + "TableName"=> $this->config['client_table'], + "Key" => array('client_id' => array('S' => $client_id)) + )); + + return $result->count()==1 && $result["Item"]["client_secret"]["S"] == $client_secret; + } + + public function isPublicClient($client_id) + { + $result = $this->client->getItem(array( + "TableName"=> $this->config['client_table'], + "Key" => array('client_id' => array('S' => $client_id)) + )); + + if ($result->count()==0) { + return false ; + } + + return empty($result["Item"]["client_secret"]); + } + + /* OAuth2\Storage\ClientInterface */ + public function getClientDetails($client_id) + { + $result = $this->client->getItem(array( + "TableName"=> $this->config['client_table'], + "Key" => array('client_id' => array('S' => $client_id)) + )); + if ($result->count()==0) { + return false ; + } + $result = $this->dynamo2array($result); + foreach (array('client_id', 'client_secret', 'redirect_uri', 'grant_types', 'scope', 'user_id') as $key => $val) { + if (!array_key_exists ($val, $result)) { + $result[$val] = null; + } + } + + return $result; + } + + public function setClientDetails($client_id, $client_secret = null, $redirect_uri = null, $grant_types = null, $scope = null, $user_id = null) + { + $clientData = compact('client_id', 'client_secret', 'redirect_uri', 'grant_types', 'scope', 'user_id'); + $clientData = array_filter($clientData, 'self::isNotEmpty'); + + $result = $this->client->putItem(array( + 'TableName' => $this->config['client_table'], + 'Item' => $this->client->formatAttributes($clientData) + )); + + return true; + } + + public function checkRestrictedGrantType($client_id, $grant_type) + { + $details = $this->getClientDetails($client_id); + if (isset($details['grant_types'])) { + $grant_types = explode(' ', $details['grant_types']); + + return in_array($grant_type, (array) $grant_types); + } + + // if grant_types are not defined, then none are restricted + return true; + } + + /* OAuth2\Storage\AccessTokenInterface */ + public function getAccessToken($access_token) + { + $result = $this->client->getItem(array( + "TableName"=> $this->config['access_token_table'], + "Key" => array('access_token' => array('S' => $access_token)) + )); + if ($result->count()==0) { + return false ; + } + $token = $this->dynamo2array($result); + if (array_key_exists ('expires', $token)) { + $token['expires'] = strtotime($token['expires']); + } + + return $token; + } + + public function setAccessToken($access_token, $client_id, $user_id, $expires, $scope = null) + { + // convert expires to datestring + $expires = date('Y-m-d H:i:s', $expires); + + $clientData = compact('access_token', 'client_id', 'user_id', 'expires', 'scope'); + $clientData = array_filter($clientData, 'self::isNotEmpty'); + + $result = $this->client->putItem(array( + 'TableName' => $this->config['access_token_table'], + 'Item' => $this->client->formatAttributes($clientData) + )); + + return true; + + } + + public function unsetAccessToken($access_token) + { + $result = $this->client->deleteItem(array( + 'TableName' => $this->config['access_token_table'], + 'Key' => $this->client->formatAttributes(array("access_token" => $access_token)), + 'ReturnValues' => 'ALL_OLD', + )); + + return null !== $result->get('Attributes'); + } + + /* OAuth2\Storage\AuthorizationCodeInterface */ + public function getAuthorizationCode($code) + { + $result = $this->client->getItem(array( + "TableName"=> $this->config['code_table'], + "Key" => array('authorization_code' => array('S' => $code)) + )); + if ($result->count()==0) { + return false ; + } + $token = $this->dynamo2array($result); + if (!array_key_exists("id_token", $token )) { + $token['id_token'] = null; + } + $token['expires'] = strtotime($token['expires']); + + return $token; + + } + + public function setAuthorizationCode($authorization_code, $client_id, $user_id, $redirect_uri, $expires, $scope = null, $id_token = null) + { + // convert expires to datestring + $expires = date('Y-m-d H:i:s', $expires); + + $clientData = compact('authorization_code', 'client_id', 'user_id', 'redirect_uri', 'expires', 'id_token', 'scope'); + $clientData = array_filter($clientData, 'self::isNotEmpty'); + + $result = $this->client->putItem(array( + 'TableName' => $this->config['code_table'], + 'Item' => $this->client->formatAttributes($clientData) + )); + + return true; + } + + public function expireAuthorizationCode($code) + { + + $result = $this->client->deleteItem(array( + 'TableName' => $this->config['code_table'], + 'Key' => $this->client->formatAttributes(array("authorization_code" => $code)) + )); + + return true; + } + + /* OAuth2\Storage\UserCredentialsInterface */ + public function checkUserCredentials($username, $password) + { + if ($user = $this->getUser($username)) { + return $this->checkPassword($user, $password); + } + + return false; + } + + public function getUserDetails($username) + { + return $this->getUser($username); + } + + /* UserClaimsInterface */ + public function getUserClaims($user_id, $claims) + { + if (!$userDetails = $this->getUserDetails($user_id)) { + return false; + } + + $claims = explode(' ', trim($claims)); + $userClaims = array(); + + // for each requested claim, if the user has the claim, set it in the response + $validClaims = explode(' ', self::VALID_CLAIMS); + foreach ($validClaims as $validClaim) { + if (in_array($validClaim, $claims)) { + if ($validClaim == 'address') { + // address is an object with subfields + $userClaims['address'] = $this->getUserClaim($validClaim, $userDetails['address'] ?: $userDetails); + } else { + $userClaims = array_merge($userClaims, $this->getUserClaim($validClaim, $userDetails)); + } + } + } + + return $userClaims; + } + + protected function getUserClaim($claim, $userDetails) + { + $userClaims = array(); + $claimValuesString = constant(sprintf('self::%s_CLAIM_VALUES', strtoupper($claim))); + $claimValues = explode(' ', $claimValuesString); + + foreach ($claimValues as $value) { + if ($value == 'email_verified') { + $userClaims[$value] = $userDetails[$value]=='true' ? true : false; + } else { + $userClaims[$value] = isset($userDetails[$value]) ? $userDetails[$value] : null; + } + } + + return $userClaims; + } + + /* OAuth2\Storage\RefreshTokenInterface */ + public function getRefreshToken($refresh_token) + { + $result = $this->client->getItem(array( + "TableName"=> $this->config['refresh_token_table'], + "Key" => array('refresh_token' => array('S' => $refresh_token)) + )); + if ($result->count()==0) { + return false ; + } + $token = $this->dynamo2array($result); + $token['expires'] = strtotime($token['expires']); + + return $token; + } + + public function setRefreshToken($refresh_token, $client_id, $user_id, $expires, $scope = null) + { + // convert expires to datestring + $expires = date('Y-m-d H:i:s', $expires); + + $clientData = compact('refresh_token', 'client_id', 'user_id', 'expires', 'scope'); + $clientData = array_filter($clientData, 'self::isNotEmpty'); + + $result = $this->client->putItem(array( + 'TableName' => $this->config['refresh_token_table'], + 'Item' => $this->client->formatAttributes($clientData) + )); + + return true; + } + + public function unsetRefreshToken($refresh_token) + { + $result = $this->client->deleteItem(array( + 'TableName' => $this->config['refresh_token_table'], + 'Key' => $this->client->formatAttributes(array("refresh_token" => $refresh_token)) + )); + + return true; + } + + // plaintext passwords are bad! Override this for your application + protected function checkPassword($user, $password) + { + return $user['password'] == $this->hashPassword($password); + } + + // use a secure hashing algorithm when storing passwords. Override this for your application + protected function hashPassword($password) + { + return sha1($password); + } + + public function getUser($username) + { + $result = $this->client->getItem(array( + "TableName"=> $this->config['user_table'], + "Key" => array('username' => array('S' => $username)) + )); + if ($result->count()==0) { + return false ; + } + $token = $this->dynamo2array($result); + $token['user_id'] = $username; + + return $token; + } + + public function setUser($username, $password, $first_name = null, $last_name = null) + { + // do not store in plaintext + $password = $this->hashPassword($password); + + $clientData = compact('username', 'password', 'first_name', 'last_name'); + $clientData = array_filter($clientData, 'self::isNotEmpty'); + + $result = $this->client->putItem(array( + 'TableName' => $this->config['user_table'], + 'Item' => $this->client->formatAttributes($clientData) + )); + + return true; + + } + + /* ScopeInterface */ + public function scopeExists($scope) + { + $scope = explode(' ', $scope); + $scope_query = array(); + $count = 0; + foreach ($scope as $key => $val) { + $result = $this->client->query(array( + 'TableName' => $this->config['scope_table'], + 'Select' => 'COUNT', + 'KeyConditions' => array( + 'scope' => array( + 'AttributeValueList' => array(array('S' => $val)), + 'ComparisonOperator' => 'EQ' + ) + ) + )); + $count += $result['Count']; + } + + return $count == count($scope); + } + + public function getDefaultScope($client_id = null) + { + + $result = $this->client->query(array( + 'TableName' => $this->config['scope_table'], + 'IndexName' => 'is_default-index', + 'Select' => 'ALL_ATTRIBUTES', + 'KeyConditions' => array( + 'is_default' => array( + 'AttributeValueList' => array(array('S' => 'true')), + 'ComparisonOperator' => 'EQ', + ), + ) + )); + $defaultScope = array(); + if ($result->count() > 0) { + $array = $result->toArray(); + foreach ($array["Items"] as $item) { + $defaultScope[] = $item['scope']['S']; + } + + return empty($defaultScope) ? null : implode(' ', $defaultScope); + } + + return null; + } + + /* JWTBearerInterface */ + public function getClientKey($client_id, $subject) + { + $result = $this->client->getItem(array( + "TableName"=> $this->config['jwt_table'], + "Key" => array('client_id' => array('S' => $client_id), 'subject' => array('S' => $subject)) + )); + if ($result->count()==0) { + return false ; + } + $token = $this->dynamo2array($result); + + return $token['public_key']; + } + + public function getClientScope($client_id) + { + if (!$clientDetails = $this->getClientDetails($client_id)) { + return false; + } + + if (isset($clientDetails['scope'])) { + return $clientDetails['scope']; + } + + return null; + } + + public function getJti($client_id, $subject, $audience, $expires, $jti) + { + //TODO not use. + } + + public function setJti($client_id, $subject, $audience, $expires, $jti) + { + //TODO not use. + } + + /* PublicKeyInterface */ + public function getPublicKey($client_id = '0') + { + + $result = $this->client->getItem(array( + "TableName"=> $this->config['public_key_table'], + "Key" => array('client_id' => array('S' => $client_id)) + )); + if ($result->count()==0) { + return false ; + } + $token = $this->dynamo2array($result); + + return $token['public_key']; + + } + + public function getPrivateKey($client_id = '0') + { + $result = $this->client->getItem(array( + "TableName"=> $this->config['public_key_table'], + "Key" => array('client_id' => array('S' => $client_id)) + )); + if ($result->count()==0) { + return false ; + } + $token = $this->dynamo2array($result); + + return $token['private_key']; + } + + public function getEncryptionAlgorithm($client_id = null) + { + $result = $this->client->getItem(array( + "TableName"=> $this->config['public_key_table'], + "Key" => array('client_id' => array('S' => $client_id)) + )); + if ($result->count()==0) { + return 'RS256' ; + } + $token = $this->dynamo2array($result); + + return $token['encryption_algorithm']; + } + + /** + * Transform dynamodb resultset to an array. + * @param $dynamodbResult + * @return $array + */ + private function dynamo2array($dynamodbResult) + { + $result = array(); + foreach ($dynamodbResult["Item"] as $key => $val) { + $result[$key] = $val["S"]; + $result[] = $val["S"]; + } + + return $result; + } + + private static function isNotEmpty($value) + { + return null !== $value && '' !== $value; + } +} diff --git a/library/oauth2/src/OAuth2/Storage/JwtAccessToken.php b/library/oauth2/src/OAuth2/Storage/JwtAccessToken.php new file mode 100644 index 000000000..75b49d301 --- /dev/null +++ b/library/oauth2/src/OAuth2/Storage/JwtAccessToken.php @@ -0,0 +1,88 @@ + + */ +class JwtAccessToken implements JwtAccessTokenInterface +{ + protected $publicKeyStorage; + protected $tokenStorage; + protected $encryptionUtil; + + /** + * @param OAuth2\Encryption\PublicKeyInterface $publicKeyStorage the public key encryption to use + * @param OAuth2\Storage\AccessTokenInterface $tokenStorage OPTIONAL persist the access token to another storage. This is useful if + * you want to retain access token grant information somewhere, but + * is not necessary when using this grant type. + * @param OAuth2\Encryption\EncryptionInterface $encryptionUtil OPTIONAL class to use for "encode" and "decode" functions. + */ + public function __construct(PublicKeyInterface $publicKeyStorage, AccessTokenInterface $tokenStorage = null, EncryptionInterface $encryptionUtil = null) + { + $this->publicKeyStorage = $publicKeyStorage; + $this->tokenStorage = $tokenStorage; + if (is_null($encryptionUtil)) { + $encryptionUtil = new Jwt; + } + $this->encryptionUtil = $encryptionUtil; + } + + public function getAccessToken($oauth_token) + { + // just decode the token, don't verify + if (!$tokenData = $this->encryptionUtil->decode($oauth_token, null, false)) { + return false; + } + + $client_id = isset($tokenData['aud']) ? $tokenData['aud'] : null; + $public_key = $this->publicKeyStorage->getPublicKey($client_id); + $algorithm = $this->publicKeyStorage->getEncryptionAlgorithm($client_id); + + // now that we have the client_id, verify the token + if (false === $this->encryptionUtil->decode($oauth_token, $public_key, array($algorithm))) { + return false; + } + + // normalize the JWT claims to the format expected by other components in this library + return $this->convertJwtToOAuth2($tokenData); + } + + public function setAccessToken($oauth_token, $client_id, $user_id, $expires, $scope = null) + { + if ($this->tokenStorage) { + return $this->tokenStorage->setAccessToken($oauth_token, $client_id, $user_id, $expires, $scope); + } + } + + public function unsetAccessToken($access_token) + { + if ($this->tokenStorage) { + return $this->tokenStorage->unsetAccessToken($access_token); + } + } + + + // converts a JWT access token into an OAuth2-friendly format + protected function convertJwtToOAuth2($tokenData) + { + $keyMapping = array( + 'aud' => 'client_id', + 'exp' => 'expires', + 'sub' => 'user_id' + ); + + foreach ($keyMapping as $jwtKey => $oauth2Key) { + if (isset($tokenData[$jwtKey])) { + $tokenData[$oauth2Key] = $tokenData[$jwtKey]; + unset($tokenData[$jwtKey]); + } + } + + return $tokenData; + } +} diff --git a/library/oauth2/src/OAuth2/Storage/JwtAccessTokenInterface.php b/library/oauth2/src/OAuth2/Storage/JwtAccessTokenInterface.php new file mode 100644 index 000000000..3abb2aa2d --- /dev/null +++ b/library/oauth2/src/OAuth2/Storage/JwtAccessTokenInterface.php @@ -0,0 +1,14 @@ + + */ +interface JwtAccessTokenInterface extends AccessTokenInterface +{ + +} diff --git a/library/oauth2/src/OAuth2/Storage/JwtBearerInterface.php b/library/oauth2/src/OAuth2/Storage/JwtBearerInterface.php new file mode 100644 index 000000000..c83aa72ea --- /dev/null +++ b/library/oauth2/src/OAuth2/Storage/JwtBearerInterface.php @@ -0,0 +1,74 @@ + + */ +interface JwtBearerInterface +{ + /** + * Get the public key associated with a client_id + * + * @param $client_id + * Client identifier to be checked with. + * + * @return + * STRING Return the public key for the client_id if it exists, and MUST return FALSE if it doesn't. + */ + public function getClientKey($client_id, $subject); + + /** + * Get a jti (JSON token identifier) by matching against the client_id, subject, audience and expiration. + * + * @param $client_id + * Client identifier to match. + * + * @param $subject + * The subject to match. + * + * @param $audience + * The audience to match. + * + * @param $expiration + * The expiration of the jti. + * + * @param $jti + * The jti to match. + * + * @return + * An associative array as below, and return NULL if the jti does not exist. + * - issuer: Stored client identifier. + * - subject: Stored subject. + * - audience: Stored audience. + * - expires: Stored expiration in unix timestamp. + * - jti: The stored jti. + */ + public function getJti($client_id, $subject, $audience, $expiration, $jti); + + /** + * Store a used jti so that we can check against it to prevent replay attacks. + * @param $client_id + * Client identifier to insert. + * + * @param $subject + * The subject to insert. + * + * @param $audience + * The audience to insert. + * + * @param $expiration + * The expiration of the jti. + * + * @param $jti + * The jti to insert. + */ + public function setJti($client_id, $subject, $audience, $expiration, $jti); +} diff --git a/library/oauth2/src/OAuth2/Storage/Memory.php b/library/oauth2/src/OAuth2/Storage/Memory.php new file mode 100644 index 000000000..42d833ccb --- /dev/null +++ b/library/oauth2/src/OAuth2/Storage/Memory.php @@ -0,0 +1,381 @@ + + */ +class Memory implements AuthorizationCodeInterface, + UserCredentialsInterface, + UserClaimsInterface, + AccessTokenInterface, + ClientCredentialsInterface, + RefreshTokenInterface, + JwtBearerInterface, + ScopeInterface, + PublicKeyInterface, + OpenIDAuthorizationCodeInterface +{ + public $authorizationCodes; + public $userCredentials; + public $clientCredentials; + public $refreshTokens; + public $accessTokens; + public $jwt; + public $jti; + public $supportedScopes; + public $defaultScope; + public $keys; + + public function __construct($params = array()) + { + $params = array_merge(array( + 'authorization_codes' => array(), + 'user_credentials' => array(), + 'client_credentials' => array(), + 'refresh_tokens' => array(), + 'access_tokens' => array(), + 'jwt' => array(), + 'jti' => array(), + 'default_scope' => null, + 'supported_scopes' => array(), + 'keys' => array(), + ), $params); + + $this->authorizationCodes = $params['authorization_codes']; + $this->userCredentials = $params['user_credentials']; + $this->clientCredentials = $params['client_credentials']; + $this->refreshTokens = $params['refresh_tokens']; + $this->accessTokens = $params['access_tokens']; + $this->jwt = $params['jwt']; + $this->jti = $params['jti']; + $this->supportedScopes = $params['supported_scopes']; + $this->defaultScope = $params['default_scope']; + $this->keys = $params['keys']; + } + + /* AuthorizationCodeInterface */ + public function getAuthorizationCode($code) + { + if (!isset($this->authorizationCodes[$code])) { + return false; + } + + return array_merge(array( + 'authorization_code' => $code, + ), $this->authorizationCodes[$code]); + } + + public function setAuthorizationCode($code, $client_id, $user_id, $redirect_uri, $expires, $scope = null, $id_token = null) + { + $this->authorizationCodes[$code] = compact('code', 'client_id', 'user_id', 'redirect_uri', 'expires', 'scope', 'id_token'); + + return true; + } + + public function setAuthorizationCodes($authorization_codes) + { + $this->authorizationCodes = $authorization_codes; + } + + public function expireAuthorizationCode($code) + { + unset($this->authorizationCodes[$code]); + } + + /* UserCredentialsInterface */ + public function checkUserCredentials($username, $password) + { + $userDetails = $this->getUserDetails($username); + + return $userDetails && $userDetails['password'] && $userDetails['password'] === $password; + } + + public function setUser($username, $password, $firstName = null, $lastName = null) + { + $this->userCredentials[$username] = array( + 'password' => $password, + 'first_name' => $firstName, + 'last_name' => $lastName, + ); + + return true; + } + + public function getUserDetails($username) + { + if (!isset($this->userCredentials[$username])) { + return false; + } + + return array_merge(array( + 'user_id' => $username, + 'password' => null, + 'first_name' => null, + 'last_name' => null, + ), $this->userCredentials[$username]); + } + + /* UserClaimsInterface */ + public function getUserClaims($user_id, $claims) + { + if (!$userDetails = $this->getUserDetails($user_id)) { + return false; + } + + $claims = explode(' ', trim($claims)); + $userClaims = array(); + + // for each requested claim, if the user has the claim, set it in the response + $validClaims = explode(' ', self::VALID_CLAIMS); + foreach ($validClaims as $validClaim) { + if (in_array($validClaim, $claims)) { + if ($validClaim == 'address') { + // address is an object with subfields + $userClaims['address'] = $this->getUserClaim($validClaim, $userDetails['address'] ?: $userDetails); + } else { + $userClaims = array_merge($userClaims, $this->getUserClaim($validClaim, $userDetails)); + } + } + } + + return $userClaims; + } + + protected function getUserClaim($claim, $userDetails) + { + $userClaims = array(); + $claimValuesString = constant(sprintf('self::%s_CLAIM_VALUES', strtoupper($claim))); + $claimValues = explode(' ', $claimValuesString); + + foreach ($claimValues as $value) { + $userClaims[$value] = isset($userDetails[$value]) ? $userDetails[$value] : null; + } + + return $userClaims; + } + + /* ClientCredentialsInterface */ + public function checkClientCredentials($client_id, $client_secret = null) + { + return isset($this->clientCredentials[$client_id]['client_secret']) && $this->clientCredentials[$client_id]['client_secret'] === $client_secret; + } + + public function isPublicClient($client_id) + { + if (!isset($this->clientCredentials[$client_id])) { + return false; + } + + return empty($this->clientCredentials[$client_id]['client_secret']); + } + + /* ClientInterface */ + public function getClientDetails($client_id) + { + if (!isset($this->clientCredentials[$client_id])) { + return false; + } + + $clientDetails = array_merge(array( + 'client_id' => $client_id, + 'client_secret' => null, + 'redirect_uri' => null, + 'scope' => null, + ), $this->clientCredentials[$client_id]); + + return $clientDetails; + } + + public function checkRestrictedGrantType($client_id, $grant_type) + { + if (isset($this->clientCredentials[$client_id]['grant_types'])) { + $grant_types = explode(' ', $this->clientCredentials[$client_id]['grant_types']); + + return in_array($grant_type, $grant_types); + } + + // if grant_types are not defined, then none are restricted + return true; + } + + public function setClientDetails($client_id, $client_secret = null, $redirect_uri = null, $grant_types = null, $scope = null, $user_id = null) + { + $this->clientCredentials[$client_id] = array( + 'client_id' => $client_id, + 'client_secret' => $client_secret, + 'redirect_uri' => $redirect_uri, + 'grant_types' => $grant_types, + 'scope' => $scope, + 'user_id' => $user_id, + ); + + return true; + } + + /* RefreshTokenInterface */ + public function getRefreshToken($refresh_token) + { + return isset($this->refreshTokens[$refresh_token]) ? $this->refreshTokens[$refresh_token] : false; + } + + public function setRefreshToken($refresh_token, $client_id, $user_id, $expires, $scope = null) + { + $this->refreshTokens[$refresh_token] = compact('refresh_token', 'client_id', 'user_id', 'expires', 'scope'); + + return true; + } + + public function unsetRefreshToken($refresh_token) + { + if (isset($this->refreshTokens[$refresh_token])) { + unset($this->refreshTokens[$refresh_token]); + + return true; + } + + return false; + } + + public function setRefreshTokens($refresh_tokens) + { + $this->refreshTokens = $refresh_tokens; + } + + /* AccessTokenInterface */ + public function getAccessToken($access_token) + { + return isset($this->accessTokens[$access_token]) ? $this->accessTokens[$access_token] : false; + } + + public function setAccessToken($access_token, $client_id, $user_id, $expires, $scope = null, $id_token = null) + { + $this->accessTokens[$access_token] = compact('access_token', 'client_id', 'user_id', 'expires', 'scope', 'id_token'); + + return true; + } + + public function unsetAccessToken($access_token) + { + if (isset($this->accessTokens[$access_token])) { + unset($this->accessTokens[$access_token]); + + return true; + } + + return false; + } + + public function scopeExists($scope) + { + $scope = explode(' ', trim($scope)); + + return (count(array_diff($scope, $this->supportedScopes)) == 0); + } + + public function getDefaultScope($client_id = null) + { + return $this->defaultScope; + } + + /*JWTBearerInterface */ + public function getClientKey($client_id, $subject) + { + if (isset($this->jwt[$client_id])) { + $jwt = $this->jwt[$client_id]; + if ($jwt) { + if ($jwt["subject"] == $subject) { + return $jwt["key"]; + } + } + } + + return false; + } + + public function getClientScope($client_id) + { + if (!$clientDetails = $this->getClientDetails($client_id)) { + return false; + } + + if (isset($clientDetails['scope'])) { + return $clientDetails['scope']; + } + + return null; + } + + public function getJti($client_id, $subject, $audience, $expires, $jti) + { + foreach ($this->jti as $storedJti) { + if ($storedJti['issuer'] == $client_id && $storedJti['subject'] == $subject && $storedJti['audience'] == $audience && $storedJti['expires'] == $expires && $storedJti['jti'] == $jti) { + return array( + 'issuer' => $storedJti['issuer'], + 'subject' => $storedJti['subject'], + 'audience' => $storedJti['audience'], + 'expires' => $storedJti['expires'], + 'jti' => $storedJti['jti'] + ); + } + } + + return null; + } + + public function setJti($client_id, $subject, $audience, $expires, $jti) + { + $this->jti[] = array('issuer' => $client_id, 'subject' => $subject, 'audience' => $audience, 'expires' => $expires, 'jti' => $jti); + } + + /*PublicKeyInterface */ + public function getPublicKey($client_id = null) + { + if (isset($this->keys[$client_id])) { + return $this->keys[$client_id]['public_key']; + } + + // use a global encryption pair + if (isset($this->keys['public_key'])) { + return $this->keys['public_key']; + } + + return false; + } + + public function getPrivateKey($client_id = null) + { + if (isset($this->keys[$client_id])) { + return $this->keys[$client_id]['private_key']; + } + + // use a global encryption pair + if (isset($this->keys['private_key'])) { + return $this->keys['private_key']; + } + + return false; + } + + public function getEncryptionAlgorithm($client_id = null) + { + if (isset($this->keys[$client_id]['encryption_algorithm'])) { + return $this->keys[$client_id]['encryption_algorithm']; + } + + // use a global encryption algorithm + if (isset($this->keys['encryption_algorithm'])) { + return $this->keys['encryption_algorithm']; + } + + return 'RS256'; + } +} diff --git a/library/oauth2/src/OAuth2/Storage/Mongo.php b/library/oauth2/src/OAuth2/Storage/Mongo.php new file mode 100644 index 000000000..cef35e5e9 --- /dev/null +++ b/library/oauth2/src/OAuth2/Storage/Mongo.php @@ -0,0 +1,339 @@ + + */ +class Mongo implements AuthorizationCodeInterface, + AccessTokenInterface, + ClientCredentialsInterface, + UserCredentialsInterface, + RefreshTokenInterface, + JwtBearerInterface, + OpenIDAuthorizationCodeInterface +{ + protected $db; + protected $config; + + public function __construct($connection, $config = array()) + { + if ($connection instanceof \MongoDB) { + $this->db = $connection; + } else { + if (!is_array($connection)) { + throw new \InvalidArgumentException('First argument to OAuth2\Storage\Mongo must be an instance of MongoDB or a configuration array'); + } + $server = sprintf('mongodb://%s:%d', $connection['host'], $connection['port']); + $m = new \MongoClient($server); + $this->db = $m->{$connection['database']}; + } + + $this->config = array_merge(array( + 'client_table' => 'oauth_clients', + 'access_token_table' => 'oauth_access_tokens', + 'refresh_token_table' => 'oauth_refresh_tokens', + 'code_table' => 'oauth_authorization_codes', + 'user_table' => 'oauth_users', + 'jwt_table' => 'oauth_jwt', + ), $config); + } + + // Helper function to access a MongoDB collection by `type`: + protected function collection($name) + { + return $this->db->{$this->config[$name]}; + } + + /* ClientCredentialsInterface */ + public function checkClientCredentials($client_id, $client_secret = null) + { + if ($result = $this->collection('client_table')->findOne(array('client_id' => $client_id))) { + return $result['client_secret'] == $client_secret; + } + + return false; + } + + public function isPublicClient($client_id) + { + if (!$result = $this->collection('client_table')->findOne(array('client_id' => $client_id))) { + return false; + } + + return empty($result['client_secret']); + } + + /* ClientInterface */ + public function getClientDetails($client_id) + { + $result = $this->collection('client_table')->findOne(array('client_id' => $client_id)); + + return is_null($result) ? false : $result; + } + + public function setClientDetails($client_id, $client_secret = null, $redirect_uri = null, $grant_types = null, $scope = null, $user_id = null) + { + if ($this->getClientDetails($client_id)) { + $this->collection('client_table')->update( + array('client_id' => $client_id), + array('$set' => array( + 'client_secret' => $client_secret, + 'redirect_uri' => $redirect_uri, + 'grant_types' => $grant_types, + 'scope' => $scope, + 'user_id' => $user_id, + )) + ); + } else { + $client = array( + 'client_id' => $client_id, + 'client_secret' => $client_secret, + 'redirect_uri' => $redirect_uri, + 'grant_types' => $grant_types, + 'scope' => $scope, + 'user_id' => $user_id, + ); + $this->collection('client_table')->insert($client); + } + + return true; + } + + public function checkRestrictedGrantType($client_id, $grant_type) + { + $details = $this->getClientDetails($client_id); + if (isset($details['grant_types'])) { + $grant_types = explode(' ', $details['grant_types']); + + return in_array($grant_type, $grant_types); + } + + // if grant_types are not defined, then none are restricted + return true; + } + + /* AccessTokenInterface */ + public function getAccessToken($access_token) + { + $token = $this->collection('access_token_table')->findOne(array('access_token' => $access_token)); + + return is_null($token) ? false : $token; + } + + public function setAccessToken($access_token, $client_id, $user_id, $expires, $scope = null) + { + // if it exists, update it. + if ($this->getAccessToken($access_token)) { + $this->collection('access_token_table')->update( + array('access_token' => $access_token), + array('$set' => array( + 'client_id' => $client_id, + 'expires' => $expires, + 'user_id' => $user_id, + 'scope' => $scope + )) + ); + } else { + $token = array( + 'access_token' => $access_token, + 'client_id' => $client_id, + 'expires' => $expires, + 'user_id' => $user_id, + 'scope' => $scope + ); + $this->collection('access_token_table')->insert($token); + } + + return true; + } + + public function unsetAccessToken($access_token) + { + $result = $this->collection('access_token_table')->remove(array( + 'access_token' => $access_token + ), array('w' => 1)); + + return $result['n'] > 0; + } + + + /* AuthorizationCodeInterface */ + public function getAuthorizationCode($code) + { + $code = $this->collection('code_table')->findOne(array('authorization_code' => $code)); + + return is_null($code) ? false : $code; + } + + public function setAuthorizationCode($code, $client_id, $user_id, $redirect_uri, $expires, $scope = null, $id_token = null) + { + // if it exists, update it. + if ($this->getAuthorizationCode($code)) { + $this->collection('code_table')->update( + array('authorization_code' => $code), + array('$set' => array( + 'client_id' => $client_id, + 'user_id' => $user_id, + 'redirect_uri' => $redirect_uri, + 'expires' => $expires, + 'scope' => $scope, + 'id_token' => $id_token, + )) + ); + } else { + $token = array( + 'authorization_code' => $code, + 'client_id' => $client_id, + 'user_id' => $user_id, + 'redirect_uri' => $redirect_uri, + 'expires' => $expires, + 'scope' => $scope, + 'id_token' => $id_token, + ); + $this->collection('code_table')->insert($token); + } + + return true; + } + + public function expireAuthorizationCode($code) + { + $this->collection('code_table')->remove(array('authorization_code' => $code)); + + return true; + } + + /* UserCredentialsInterface */ + public function checkUserCredentials($username, $password) + { + if ($user = $this->getUser($username)) { + return $this->checkPassword($user, $password); + } + + return false; + } + + public function getUserDetails($username) + { + if ($user = $this->getUser($username)) { + $user['user_id'] = $user['username']; + } + + return $user; + } + + /* RefreshTokenInterface */ + public function getRefreshToken($refresh_token) + { + $token = $this->collection('refresh_token_table')->findOne(array('refresh_token' => $refresh_token)); + + return is_null($token) ? false : $token; + } + + public function setRefreshToken($refresh_token, $client_id, $user_id, $expires, $scope = null) + { + $token = array( + 'refresh_token' => $refresh_token, + 'client_id' => $client_id, + 'user_id' => $user_id, + 'expires' => $expires, + 'scope' => $scope + ); + $this->collection('refresh_token_table')->insert($token); + + return true; + } + + public function unsetRefreshToken($refresh_token) + { + $result = $this->collection('refresh_token_table')->remove(array( + 'refresh_token' => $refresh_token + ), array('w' => 1)); + + return $result['n'] > 0; + } + + // plaintext passwords are bad! Override this for your application + protected function checkPassword($user, $password) + { + return $user['password'] == $password; + } + + public function getUser($username) + { + $result = $this->collection('user_table')->findOne(array('username' => $username)); + + return is_null($result) ? false : $result; + } + + public function setUser($username, $password, $firstName = null, $lastName = null) + { + if ($this->getUser($username)) { + $this->collection('user_table')->update( + array('username' => $username), + array('$set' => array( + 'password' => $password, + 'first_name' => $firstName, + 'last_name' => $lastName + )) + ); + } else { + $user = array( + 'username' => $username, + 'password' => $password, + 'first_name' => $firstName, + 'last_name' => $lastName + ); + $this->collection('user_table')->insert($user); + } + + return true; + } + + public function getClientKey($client_id, $subject) + { + $result = $this->collection('jwt_table')->findOne(array( + 'client_id' => $client_id, + 'subject' => $subject + )); + + return is_null($result) ? false : $result['key']; + } + + public function getClientScope($client_id) + { + if (!$clientDetails = $this->getClientDetails($client_id)) { + return false; + } + + if (isset($clientDetails['scope'])) { + return $clientDetails['scope']; + } + + return null; + } + + public function getJti($client_id, $subject, $audience, $expiration, $jti) + { + //TODO: Needs mongodb implementation. + throw new \Exception('getJti() for the MongoDB driver is currently unimplemented.'); + } + + public function setJti($client_id, $subject, $audience, $expiration, $jti) + { + //TODO: Needs mongodb implementation. + throw new \Exception('setJti() for the MongoDB driver is currently unimplemented.'); + } +} diff --git a/library/oauth2/src/OAuth2/Storage/Pdo.php b/library/oauth2/src/OAuth2/Storage/Pdo.php new file mode 100644 index 000000000..ae5107e29 --- /dev/null +++ b/library/oauth2/src/OAuth2/Storage/Pdo.php @@ -0,0 +1,553 @@ + + */ +class Pdo implements + AuthorizationCodeInterface, + AccessTokenInterface, + ClientCredentialsInterface, + UserCredentialsInterface, + RefreshTokenInterface, + JwtBearerInterface, + ScopeInterface, + PublicKeyInterface, + UserClaimsInterface, + OpenIDAuthorizationCodeInterface +{ + protected $db; + protected $config; + + public function __construct($connection, $config = array()) + { + if (!$connection instanceof \PDO) { + if (is_string($connection)) { + $connection = array('dsn' => $connection); + } + if (!is_array($connection)) { + throw new \InvalidArgumentException('First argument to OAuth2\Storage\Pdo must be an instance of PDO, a DSN string, or a configuration array'); + } + if (!isset($connection['dsn'])) { + throw new \InvalidArgumentException('configuration array must contain "dsn"'); + } + // merge optional parameters + $connection = array_merge(array( + 'username' => null, + 'password' => null, + 'options' => array(), + ), $connection); + $connection = new \PDO($connection['dsn'], $connection['username'], $connection['password'], $connection['options']); + } + $this->db = $connection; + + // debugging + $connection->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION); + + $this->config = array_merge(array( + 'client_table' => 'oauth_clients', + 'access_token_table' => 'oauth_access_tokens', + 'refresh_token_table' => 'oauth_refresh_tokens', + 'code_table' => 'oauth_authorization_codes', + 'user_table' => 'oauth_users', + 'jwt_table' => 'oauth_jwt', + 'jti_table' => 'oauth_jti', + 'scope_table' => 'oauth_scopes', + 'public_key_table' => 'oauth_public_keys', + ), $config); + } + + /* OAuth2\Storage\ClientCredentialsInterface */ + public function checkClientCredentials($client_id, $client_secret = null) + { + $stmt = $this->db->prepare(sprintf('SELECT * from %s where client_id = :client_id', $this->config['client_table'])); + $stmt->execute(compact('client_id')); + $result = $stmt->fetch(\PDO::FETCH_ASSOC); + + // make this extensible + return $result && $result['client_secret'] == $client_secret; + } + + public function isPublicClient($client_id) + { + $stmt = $this->db->prepare(sprintf('SELECT * from %s where client_id = :client_id', $this->config['client_table'])); + $stmt->execute(compact('client_id')); + + if (!$result = $stmt->fetch(\PDO::FETCH_ASSOC)) { + return false; + } + + return empty($result['client_secret']); + } + + /* OAuth2\Storage\ClientInterface */ + public function getClientDetails($client_id) + { + $stmt = $this->db->prepare(sprintf('SELECT * from %s where client_id = :client_id', $this->config['client_table'])); + $stmt->execute(compact('client_id')); + + return $stmt->fetch(\PDO::FETCH_ASSOC); + } + + public function setClientDetails($client_id, $client_secret = null, $redirect_uri = null, $grant_types = null, $scope = null, $user_id = null) + { + // if it exists, update it. + if ($this->getClientDetails($client_id)) { + $stmt = $this->db->prepare($sql = sprintf('UPDATE %s SET client_secret=:client_secret, redirect_uri=:redirect_uri, grant_types=:grant_types, scope=:scope, user_id=:user_id where client_id=:client_id', $this->config['client_table'])); + } else { + $stmt = $this->db->prepare(sprintf('INSERT INTO %s (client_id, client_secret, redirect_uri, grant_types, scope, user_id) VALUES (:client_id, :client_secret, :redirect_uri, :grant_types, :scope, :user_id)', $this->config['client_table'])); + } + + return $stmt->execute(compact('client_id', 'client_secret', 'redirect_uri', 'grant_types', 'scope', 'user_id')); + } + + public function checkRestrictedGrantType($client_id, $grant_type) + { + $details = $this->getClientDetails($client_id); + if (isset($details['grant_types'])) { + $grant_types = explode(' ', $details['grant_types']); + + return in_array($grant_type, (array) $grant_types); + } + + // if grant_types are not defined, then none are restricted + return true; + } + + /* OAuth2\Storage\AccessTokenInterface */ + public function getAccessToken($access_token) + { + $stmt = $this->db->prepare(sprintf('SELECT * from %s where access_token = :access_token', $this->config['access_token_table'])); + + $token = $stmt->execute(compact('access_token')); + if ($token = $stmt->fetch(\PDO::FETCH_ASSOC)) { + // convert date string back to timestamp + $token['expires'] = strtotime($token['expires']); + } + + return $token; + } + + public function setAccessToken($access_token, $client_id, $user_id, $expires, $scope = null) + { + // convert expires to datestring + $expires = date('Y-m-d H:i:s', $expires); + + // if it exists, update it. + if ($this->getAccessToken($access_token)) { + $stmt = $this->db->prepare(sprintf('UPDATE %s SET client_id=:client_id, expires=:expires, user_id=:user_id, scope=:scope where access_token=:access_token', $this->config['access_token_table'])); + } else { + $stmt = $this->db->prepare(sprintf('INSERT INTO %s (access_token, client_id, expires, user_id, scope) VALUES (:access_token, :client_id, :expires, :user_id, :scope)', $this->config['access_token_table'])); + } + + return $stmt->execute(compact('access_token', 'client_id', 'user_id', 'expires', 'scope')); + } + + public function unsetAccessToken($access_token) + { + $stmt = $this->db->prepare(sprintf('DELETE FROM %s WHERE access_token = :access_token', $this->config['access_token_table'])); + + $stmt->execute(compact('access_token')); + + return $stmt->rowCount() > 0; + } + + /* OAuth2\Storage\AuthorizationCodeInterface */ + public function getAuthorizationCode($code) + { + $stmt = $this->db->prepare(sprintf('SELECT * from %s where authorization_code = :code', $this->config['code_table'])); + $stmt->execute(compact('code')); + + if ($code = $stmt->fetch(\PDO::FETCH_ASSOC)) { + // convert date string back to timestamp + $code['expires'] = strtotime($code['expires']); + } + + return $code; + } + + public function setAuthorizationCode($code, $client_id, $user_id, $redirect_uri, $expires, $scope = null, $id_token = null) + { + if (func_num_args() > 6) { + // we are calling with an id token + return call_user_func_array(array($this, 'setAuthorizationCodeWithIdToken'), func_get_args()); + } + + // convert expires to datestring + $expires = date('Y-m-d H:i:s', $expires); + + // if it exists, update it. + if ($this->getAuthorizationCode($code)) { + $stmt = $this->db->prepare($sql = sprintf('UPDATE %s SET client_id=:client_id, user_id=:user_id, redirect_uri=:redirect_uri, expires=:expires, scope=:scope where authorization_code=:code', $this->config['code_table'])); + } else { + $stmt = $this->db->prepare(sprintf('INSERT INTO %s (authorization_code, client_id, user_id, redirect_uri, expires, scope) VALUES (:code, :client_id, :user_id, :redirect_uri, :expires, :scope)', $this->config['code_table'])); + } + + return $stmt->execute(compact('code', 'client_id', 'user_id', 'redirect_uri', 'expires', 'scope')); + } + + private function setAuthorizationCodeWithIdToken($code, $client_id, $user_id, $redirect_uri, $expires, $scope = null, $id_token = null) + { + // convert expires to datestring + $expires = date('Y-m-d H:i:s', $expires); + + // if it exists, update it. + if ($this->getAuthorizationCode($code)) { + $stmt = $this->db->prepare($sql = sprintf('UPDATE %s SET client_id=:client_id, user_id=:user_id, redirect_uri=:redirect_uri, expires=:expires, scope=:scope, id_token =:id_token where authorization_code=:code', $this->config['code_table'])); + } else { + $stmt = $this->db->prepare(sprintf('INSERT INTO %s (authorization_code, client_id, user_id, redirect_uri, expires, scope, id_token) VALUES (:code, :client_id, :user_id, :redirect_uri, :expires, :scope, :id_token)', $this->config['code_table'])); + } + + return $stmt->execute(compact('code', 'client_id', 'user_id', 'redirect_uri', 'expires', 'scope', 'id_token')); + } + + public function expireAuthorizationCode($code) + { + $stmt = $this->db->prepare(sprintf('DELETE FROM %s WHERE authorization_code = :code', $this->config['code_table'])); + + return $stmt->execute(compact('code')); + } + + /* OAuth2\Storage\UserCredentialsInterface */ + public function checkUserCredentials($username, $password) + { + if ($user = $this->getUser($username)) { + return $this->checkPassword($user, $password); + } + + return false; + } + + public function getUserDetails($username) + { + return $this->getUser($username); + } + + /* UserClaimsInterface */ + public function getUserClaims($user_id, $claims) + { + if (!$userDetails = $this->getUserDetails($user_id)) { + return false; + } + + $claims = explode(' ', trim($claims)); + $userClaims = array(); + + // for each requested claim, if the user has the claim, set it in the response + $validClaims = explode(' ', self::VALID_CLAIMS); + foreach ($validClaims as $validClaim) { + if (in_array($validClaim, $claims)) { + if ($validClaim == 'address') { + // address is an object with subfields + $userClaims['address'] = $this->getUserClaim($validClaim, $userDetails['address'] ?: $userDetails); + } else { + $userClaims = array_merge($userClaims, $this->getUserClaim($validClaim, $userDetails)); + } + } + } + + return $userClaims; + } + + protected function getUserClaim($claim, $userDetails) + { + $userClaims = array(); + $claimValuesString = constant(sprintf('self::%s_CLAIM_VALUES', strtoupper($claim))); + $claimValues = explode(' ', $claimValuesString); + + foreach ($claimValues as $value) { + $userClaims[$value] = isset($userDetails[$value]) ? $userDetails[$value] : null; + } + + return $userClaims; + } + + /* OAuth2\Storage\RefreshTokenInterface */ + public function getRefreshToken($refresh_token) + { + $stmt = $this->db->prepare(sprintf('SELECT * FROM %s WHERE refresh_token = :refresh_token', $this->config['refresh_token_table'])); + + $token = $stmt->execute(compact('refresh_token')); + if ($token = $stmt->fetch(\PDO::FETCH_ASSOC)) { + // convert expires to epoch time + $token['expires'] = strtotime($token['expires']); + } + + return $token; + } + + public function setRefreshToken($refresh_token, $client_id, $user_id, $expires, $scope = null) + { + // convert expires to datestring + $expires = date('Y-m-d H:i:s', $expires); + + $stmt = $this->db->prepare(sprintf('INSERT INTO %s (refresh_token, client_id, user_id, expires, scope) VALUES (:refresh_token, :client_id, :user_id, :expires, :scope)', $this->config['refresh_token_table'])); + + return $stmt->execute(compact('refresh_token', 'client_id', 'user_id', 'expires', 'scope')); + } + + public function unsetRefreshToken($refresh_token) + { + $stmt = $this->db->prepare(sprintf('DELETE FROM %s WHERE refresh_token = :refresh_token', $this->config['refresh_token_table'])); + + $stmt->execute(compact('refresh_token')); + + return $stmt->rowCount() > 0; + } + + // plaintext passwords are bad! Override this for your application + protected function checkPassword($user, $password) + { + return $user['password'] == $this->hashPassword($password); + } + + // use a secure hashing algorithm when storing passwords. Override this for your application + protected function hashPassword($password) + { + return sha1($password); + } + + public function getUser($username) + { + $stmt = $this->db->prepare($sql = sprintf('SELECT * from %s where username=:username', $this->config['user_table'])); + $stmt->execute(array('username' => $username)); + + if (!$userInfo = $stmt->fetch(\PDO::FETCH_ASSOC)) { + return false; + } + + // the default behavior is to use "username" as the user_id + return array_merge(array( + 'user_id' => $username + ), $userInfo); + } + + public function setUser($username, $password, $firstName = null, $lastName = null) + { + // do not store in plaintext + $password = $this->hashPassword($password); + + // if it exists, update it. + if ($this->getUser($username)) { + $stmt = $this->db->prepare($sql = sprintf('UPDATE %s SET password=:password, first_name=:firstName, last_name=:lastName where username=:username', $this->config['user_table'])); + } else { + $stmt = $this->db->prepare(sprintf('INSERT INTO %s (username, password, first_name, last_name) VALUES (:username, :password, :firstName, :lastName)', $this->config['user_table'])); + } + + return $stmt->execute(compact('username', 'password', 'firstName', 'lastName')); + } + + /* ScopeInterface */ + public function scopeExists($scope) + { + $scope = explode(' ', $scope); + $whereIn = implode(',', array_fill(0, count($scope), '?')); + $stmt = $this->db->prepare(sprintf('SELECT count(scope) as count FROM %s WHERE scope IN (%s)', $this->config['scope_table'], $whereIn)); + $stmt->execute($scope); + + if ($result = $stmt->fetch(\PDO::FETCH_ASSOC)) { + return $result['count'] == count($scope); + } + + return false; + } + + public function getDefaultScope($client_id = null) + { + $stmt = $this->db->prepare(sprintf('SELECT scope FROM %s WHERE is_default=:is_default', $this->config['scope_table'])); + $stmt->execute(array('is_default' => true)); + + if ($result = $stmt->fetchAll(\PDO::FETCH_ASSOC)) { + $defaultScope = array_map(function ($row) { + return $row['scope']; + }, $result); + + return implode(' ', $defaultScope); + } + + return null; + } + + /* JWTBearerInterface */ + public function getClientKey($client_id, $subject) + { + $stmt = $this->db->prepare($sql = sprintf('SELECT public_key from %s where client_id=:client_id AND subject=:subject', $this->config['jwt_table'])); + + $stmt->execute(array('client_id' => $client_id, 'subject' => $subject)); + + return $stmt->fetchColumn(); + } + + public function getClientScope($client_id) + { + if (!$clientDetails = $this->getClientDetails($client_id)) { + return false; + } + + if (isset($clientDetails['scope'])) { + return $clientDetails['scope']; + } + + return null; + } + + public function getJti($client_id, $subject, $audience, $expires, $jti) + { + $stmt = $this->db->prepare($sql = sprintf('SELECT * FROM %s WHERE issuer=:client_id AND subject=:subject AND audience=:audience AND expires=:expires AND jti=:jti', $this->config['jti_table'])); + + $stmt->execute(compact('client_id', 'subject', 'audience', 'expires', 'jti')); + + if ($result = $stmt->fetch(\PDO::FETCH_ASSOC)) { + return array( + 'issuer' => $result['issuer'], + 'subject' => $result['subject'], + 'audience' => $result['audience'], + 'expires' => $result['expires'], + 'jti' => $result['jti'], + ); + } + + return null; + } + + public function setJti($client_id, $subject, $audience, $expires, $jti) + { + $stmt = $this->db->prepare(sprintf('INSERT INTO %s (issuer, subject, audience, expires, jti) VALUES (:client_id, :subject, :audience, :expires, :jti)', $this->config['jti_table'])); + + return $stmt->execute(compact('client_id', 'subject', 'audience', 'expires', 'jti')); + } + + /* PublicKeyInterface */ + public function getPublicKey($client_id = null) + { + $stmt = $this->db->prepare($sql = sprintf('SELECT public_key FROM %s WHERE client_id=:client_id OR client_id IS NULL ORDER BY client_id IS NOT NULL DESC', $this->config['public_key_table'])); + + $stmt->execute(compact('client_id')); + if ($result = $stmt->fetch(\PDO::FETCH_ASSOC)) { + return $result['public_key']; + } + } + + public function getPrivateKey($client_id = null) + { + $stmt = $this->db->prepare($sql = sprintf('SELECT private_key FROM %s WHERE client_id=:client_id OR client_id IS NULL ORDER BY client_id IS NOT NULL DESC', $this->config['public_key_table'])); + + $stmt->execute(compact('client_id')); + if ($result = $stmt->fetch(\PDO::FETCH_ASSOC)) { + return $result['private_key']; + } + } + + public function getEncryptionAlgorithm($client_id = null) + { + $stmt = $this->db->prepare($sql = sprintf('SELECT encryption_algorithm FROM %s WHERE client_id=:client_id OR client_id IS NULL ORDER BY client_id IS NOT NULL DESC', $this->config['public_key_table'])); + + $stmt->execute(compact('client_id')); + if ($result = $stmt->fetch(\PDO::FETCH_ASSOC)) { + return $result['encryption_algorithm']; + } + + return 'RS256'; + } + + /** + * DDL to create OAuth2 database and tables for PDO storage + * + * @see https://github.com/dsquier/oauth2-server-php-mysql + */ + public function getBuildSql($dbName = 'oauth2_server_php') + { + $sql = " + CREATE TABLE {$this->config['client_table']} ( + client_id VARCHAR(80) NOT NULL, + client_secret VARCHAR(80), + redirect_uri VARCHAR(2000), + grant_types VARCHAR(80), + scope VARCHAR(4000), + user_id VARCHAR(80), + PRIMARY KEY (client_id) + ); + + CREATE TABLE {$this->config['access_token_table']} ( + access_token VARCHAR(40) NOT NULL, + client_id VARCHAR(80) NOT NULL, + user_id VARCHAR(80), + expires TIMESTAMP NOT NULL, + scope VARCHAR(4000), + PRIMARY KEY (access_token) + ); + + CREATE TABLE {$this->config['code_table']} ( + authorization_code VARCHAR(40) NOT NULL, + client_id VARCHAR(80) NOT NULL, + user_id VARCHAR(80), + redirect_uri VARCHAR(2000), + expires TIMESTAMP NOT NULL, + scope VARCHAR(4000), + id_token VARCHAR(1000), + PRIMARY KEY (authorization_code) + ); + + CREATE TABLE {$this->config['refresh_token_table']} ( + refresh_token VARCHAR(40) NOT NULL, + client_id VARCHAR(80) NOT NULL, + user_id VARCHAR(80), + expires TIMESTAMP NOT NULL, + scope VARCHAR(4000), + PRIMARY KEY (refresh_token) + ); + + CREATE TABLE {$this->config['user_table']} ( + username VARCHAR(80), + password VARCHAR(80), + first_name VARCHAR(80), + last_name VARCHAR(80), + email VARCHAR(80), + email_verified BOOLEAN, + scope VARCHAR(4000) + ); + + CREATE TABLE {$this->config['scope_table']} ( + scope VARCHAR(80) NOT NULL, + is_default BOOLEAN, + PRIMARY KEY (scope) + ); + + CREATE TABLE {$this->config['jwt_table']} ( + client_id VARCHAR(80) NOT NULL, + subject VARCHAR(80), + public_key VARCHAR(2000) NOT NULL + ); + + CREATE TABLE {$this->config['jti_table']} ( + issuer VARCHAR(80) NOT NULL, + subject VARCHAR(80), + audience VARCHAR(80), + expires TIMESTAMP NOT NULL, + jti VARCHAR(2000) NOT NULL + ); + + CREATE TABLE {$this->config['public_key_table']} ( + client_id VARCHAR(80), + public_key VARCHAR(2000), + private_key VARCHAR(2000), + encryption_algorithm VARCHAR(100) DEFAULT 'RS256' + ) +"; + + return $sql; + } +} diff --git a/library/oauth2/src/OAuth2/Storage/PublicKeyInterface.php b/library/oauth2/src/OAuth2/Storage/PublicKeyInterface.php new file mode 100644 index 000000000..108418d3a --- /dev/null +++ b/library/oauth2/src/OAuth2/Storage/PublicKeyInterface.php @@ -0,0 +1,16 @@ + + */ +interface PublicKeyInterface +{ + public function getPublicKey($client_id = null); + public function getPrivateKey($client_id = null); + public function getEncryptionAlgorithm($client_id = null); +} diff --git a/library/oauth2/src/OAuth2/Storage/Redis.php b/library/oauth2/src/OAuth2/Storage/Redis.php new file mode 100644 index 000000000..e6294e22d --- /dev/null +++ b/library/oauth2/src/OAuth2/Storage/Redis.php @@ -0,0 +1,321 @@ + + * $storage = new OAuth2\Storage\Redis($redis); + * $storage->setClientDetails($client_id, $client_secret, $redirect_uri); + * + */ +class Redis implements AuthorizationCodeInterface, + AccessTokenInterface, + ClientCredentialsInterface, + UserCredentialsInterface, + RefreshTokenInterface, + JwtBearerInterface, + ScopeInterface, + OpenIDAuthorizationCodeInterface +{ + + private $cache; + + /* The redis client */ + protected $redis; + + /* Configuration array */ + protected $config; + + /** + * Redis Storage! + * + * @param \Predis\Client $redis + * @param array $config + */ + public function __construct($redis, $config=array()) + { + $this->redis = $redis; + $this->config = array_merge(array( + 'client_key' => 'oauth_clients:', + 'access_token_key' => 'oauth_access_tokens:', + 'refresh_token_key' => 'oauth_refresh_tokens:', + 'code_key' => 'oauth_authorization_codes:', + 'user_key' => 'oauth_users:', + 'jwt_key' => 'oauth_jwt:', + 'scope_key' => 'oauth_scopes:', + ), $config); + } + + protected function getValue($key) + { + if ( isset($this->cache[$key]) ) { + return $this->cache[$key]; + } + $value = $this->redis->get($key); + if ( isset($value) ) { + return json_decode($value, true); + } else { + return false; + } + } + + protected function setValue($key, $value, $expire=0) + { + $this->cache[$key] = $value; + $str = json_encode($value); + if ($expire > 0) { + $seconds = $expire - time(); + $ret = $this->redis->setex($key, $seconds, $str); + } else { + $ret = $this->redis->set($key, $str); + } + + // check that the key was set properly + // if this fails, an exception will usually thrown, so this step isn't strictly necessary + return is_bool($ret) ? $ret : $ret->getPayload() == 'OK'; + } + + protected function expireValue($key) + { + unset($this->cache[$key]); + + return $this->redis->del($key); + } + + /* AuthorizationCodeInterface */ + public function getAuthorizationCode($code) + { + return $this->getValue($this->config['code_key'] . $code); + } + + public function setAuthorizationCode($authorization_code, $client_id, $user_id, $redirect_uri, $expires, $scope = null, $id_token = null) + { + return $this->setValue( + $this->config['code_key'] . $authorization_code, + compact('authorization_code', 'client_id', 'user_id', 'redirect_uri', 'expires', 'scope', 'id_token'), + $expires + ); + } + + public function expireAuthorizationCode($code) + { + $key = $this->config['code_key'] . $code; + unset($this->cache[$key]); + + return $this->expireValue($key); + } + + /* UserCredentialsInterface */ + public function checkUserCredentials($username, $password) + { + $user = $this->getUserDetails($username); + + return $user && $user['password'] === $password; + } + + public function getUserDetails($username) + { + return $this->getUser($username); + } + + public function getUser($username) + { + if (!$userInfo = $this->getValue($this->config['user_key'] . $username)) { + return false; + } + + // the default behavior is to use "username" as the user_id + return array_merge(array( + 'user_id' => $username, + ), $userInfo); + } + + public function setUser($username, $password, $first_name = null, $last_name = null) + { + return $this->setValue( + $this->config['user_key'] . $username, + compact('username', 'password', 'first_name', 'last_name') + ); + } + + /* ClientCredentialsInterface */ + public function checkClientCredentials($client_id, $client_secret = null) + { + if (!$client = $this->getClientDetails($client_id)) { + return false; + } + + return isset($client['client_secret']) + && $client['client_secret'] == $client_secret; + } + + public function isPublicClient($client_id) + { + if (!$client = $this->getClientDetails($client_id)) { + return false; + } + + return empty($client['client_secret']); + } + + /* ClientInterface */ + public function getClientDetails($client_id) + { + return $this->getValue($this->config['client_key'] . $client_id); + } + + public function setClientDetails($client_id, $client_secret = null, $redirect_uri = null, $grant_types = null, $scope = null, $user_id = null) + { + return $this->setValue( + $this->config['client_key'] . $client_id, + compact('client_id', 'client_secret', 'redirect_uri', 'grant_types', 'scope', 'user_id') + ); + } + + public function checkRestrictedGrantType($client_id, $grant_type) + { + $details = $this->getClientDetails($client_id); + if (isset($details['grant_types'])) { + $grant_types = explode(' ', $details['grant_types']); + + return in_array($grant_type, (array) $grant_types); + } + + // if grant_types are not defined, then none are restricted + return true; + } + + /* RefreshTokenInterface */ + public function getRefreshToken($refresh_token) + { + return $this->getValue($this->config['refresh_token_key'] . $refresh_token); + } + + public function setRefreshToken($refresh_token, $client_id, $user_id, $expires, $scope = null) + { + return $this->setValue( + $this->config['refresh_token_key'] . $refresh_token, + compact('refresh_token', 'client_id', 'user_id', 'expires', 'scope'), + $expires + ); + } + + public function unsetRefreshToken($refresh_token) + { + $result = $this->expireValue($this->config['refresh_token_key'] . $refresh_token); + + return $result > 0; + } + + /* AccessTokenInterface */ + public function getAccessToken($access_token) + { + return $this->getValue($this->config['access_token_key'].$access_token); + } + + public function setAccessToken($access_token, $client_id, $user_id, $expires, $scope = null) + { + return $this->setValue( + $this->config['access_token_key'].$access_token, + compact('access_token', 'client_id', 'user_id', 'expires', 'scope'), + $expires + ); + } + + public function unsetAccessToken($access_token) + { + $result = $this->expireValue($this->config['access_token_key'] . $access_token); + + return $result > 0; + } + + /* ScopeInterface */ + public function scopeExists($scope) + { + $scope = explode(' ', $scope); + + $result = $this->getValue($this->config['scope_key'].'supported:global'); + + $supportedScope = explode(' ', (string) $result); + + return (count(array_diff($scope, $supportedScope)) == 0); + } + + public function getDefaultScope($client_id = null) + { + if (is_null($client_id) || !$result = $this->getValue($this->config['scope_key'].'default:'.$client_id)) { + $result = $this->getValue($this->config['scope_key'].'default:global'); + } + + return $result; + } + + public function setScope($scope, $client_id = null, $type = 'supported') + { + if (!in_array($type, array('default', 'supported'))) { + throw new \InvalidArgumentException('"$type" must be one of "default", "supported"'); + } + + if (is_null($client_id)) { + $key = $this->config['scope_key'].$type.':global'; + } else { + $key = $this->config['scope_key'].$type.':'.$client_id; + } + + return $this->setValue($key, $scope); + } + + /*JWTBearerInterface */ + public function getClientKey($client_id, $subject) + { + if (!$jwt = $this->getValue($this->config['jwt_key'] . $client_id)) { + return false; + } + + if (isset($jwt['subject']) && $jwt['subject'] == $subject) { + return $jwt['key']; + } + + return null; + } + + public function setClientKey($client_id, $key, $subject = null) + { + return $this->setValue($this->config['jwt_key'] . $client_id, array( + 'key' => $key, + 'subject' => $subject + )); + } + + public function getClientScope($client_id) + { + if (!$clientDetails = $this->getClientDetails($client_id)) { + return false; + } + + if (isset($clientDetails['scope'])) { + return $clientDetails['scope']; + } + + return null; + } + + public function getJti($client_id, $subject, $audience, $expiration, $jti) + { + //TODO: Needs redis implementation. + throw new \Exception('getJti() for the Redis driver is currently unimplemented.'); + } + + public function setJti($client_id, $subject, $audience, $expiration, $jti) + { + //TODO: Needs redis implementation. + throw new \Exception('setJti() for the Redis driver is currently unimplemented.'); + } +} diff --git a/library/oauth2/src/OAuth2/Storage/RefreshTokenInterface.php b/library/oauth2/src/OAuth2/Storage/RefreshTokenInterface.php new file mode 100644 index 000000000..0273f2125 --- /dev/null +++ b/library/oauth2/src/OAuth2/Storage/RefreshTokenInterface.php @@ -0,0 +1,82 @@ + + */ +interface RefreshTokenInterface +{ + /** + * Grant refresh access tokens. + * + * Retrieve the stored data for the given refresh token. + * + * Required for OAuth2::GRANT_TYPE_REFRESH_TOKEN. + * + * @param $refresh_token + * Refresh token to be check with. + * + * @return + * An associative array as below, and NULL if the refresh_token is + * invalid: + * - refresh_token: Refresh token identifier. + * - client_id: Client identifier. + * - user_id: User identifier. + * - expires: Expiration unix timestamp, or 0 if the token doesn't expire. + * - scope: (optional) Scope values in space-separated string. + * + * @see http://tools.ietf.org/html/rfc6749#section-6 + * + * @ingroup oauth2_section_6 + */ + public function getRefreshToken($refresh_token); + + /** + * Take the provided refresh token values and store them somewhere. + * + * This function should be the storage counterpart to getRefreshToken(). + * + * If storage fails for some reason, we're not currently checking for + * any sort of success/failure, so you should bail out of the script + * and provide a descriptive fail message. + * + * Required for OAuth2::GRANT_TYPE_REFRESH_TOKEN. + * + * @param $refresh_token + * Refresh token to be stored. + * @param $client_id + * Client identifier to be stored. + * @param $user_id + * User identifier to be stored. + * @param $expires + * Expiration timestamp to be stored. 0 if the token doesn't expire. + * @param $scope + * (optional) Scopes to be stored in space-separated string. + * + * @ingroup oauth2_section_6 + */ + public function setRefreshToken($refresh_token, $client_id, $user_id, $expires, $scope = null); + + /** + * Expire a used refresh token. + * + * This is not explicitly required in the spec, but is almost implied. + * After granting a new refresh token, the old one is no longer useful and + * so should be forcibly expired in the data store so it can't be used again. + * + * If storage fails for some reason, we're not currently checking for + * any sort of success/failure, so you should bail out of the script + * and provide a descriptive fail message. + * + * @param $refresh_token + * Refresh token to be expirse. + * + * @ingroup oauth2_section_6 + */ + public function unsetRefreshToken($refresh_token); +} diff --git a/library/oauth2/src/OAuth2/Storage/ScopeInterface.php b/library/oauth2/src/OAuth2/Storage/ScopeInterface.php new file mode 100644 index 000000000..a8292269b --- /dev/null +++ b/library/oauth2/src/OAuth2/Storage/ScopeInterface.php @@ -0,0 +1,46 @@ + + */ +interface ScopeInterface +{ + /** + * Check if the provided scope exists. + * + * @param $scope + * A space-separated string of scopes. + * + * @return + * TRUE if it exists, FALSE otherwise. + */ + public function scopeExists($scope); + + /** + * The default scope to use in the event the client + * does not request one. By returning "false", a + * request_error is returned by the server to force a + * scope request by the client. By returning "null", + * opt out of requiring scopes + * + * @param $client_id + * An optional client id that can be used to return customized default scopes. + * + * @return + * string representation of default scope, null if + * scopes are not defined, or false to force scope + * request by the client + * + * ex: + * 'default' + * ex: + * null + */ + public function getDefaultScope($client_id = null); +} diff --git a/library/oauth2/src/OAuth2/Storage/UserCredentialsInterface.php b/library/oauth2/src/OAuth2/Storage/UserCredentialsInterface.php new file mode 100644 index 000000000..6e0fd7bad --- /dev/null +++ b/library/oauth2/src/OAuth2/Storage/UserCredentialsInterface.php @@ -0,0 +1,52 @@ + + */ +interface UserCredentialsInterface +{ + /** + * Grant access tokens for basic user credentials. + * + * Check the supplied username and password for validity. + * + * You can also use the $client_id param to do any checks required based + * on a client, if you need that. + * + * Required for OAuth2::GRANT_TYPE_USER_CREDENTIALS. + * + * @param $username + * Username to be check with. + * @param $password + * Password to be check with. + * + * @return + * TRUE if the username and password are valid, and FALSE if it isn't. + * Moreover, if the username and password are valid, and you want to + * + * @see http://tools.ietf.org/html/rfc6749#section-4.3 + * + * @ingroup oauth2_section_4 + */ + public function checkUserCredentials($username, $password); + + /** + * @return + * ARRAY the associated "user_id" and optional "scope" values + * This function MUST return FALSE if the requested user does not exist or is + * invalid. "scope" is a space-separated list of restricted scopes. + * @code + * return array( + * "user_id" => USER_ID, // REQUIRED user_id to be stored with the authorization code or access token + * "scope" => SCOPE // OPTIONAL space-separated list of restricted scopes + * ); + * @endcode + */ + public function getUserDetails($username); +} diff --git a/library/oauth2/src/OAuth2/TokenType/Bearer.php b/library/oauth2/src/OAuth2/TokenType/Bearer.php new file mode 100644 index 000000000..8ac8596ac --- /dev/null +++ b/library/oauth2/src/OAuth2/TokenType/Bearer.php @@ -0,0 +1,130 @@ +config = array_merge(array( + 'token_param_name' => 'access_token', + 'token_bearer_header_name' => 'Bearer', + ), $config); + } + + public function getTokenType() + { + return 'Bearer'; + } + + /** + * Check if the request has supplied token + * + * @see https://github.com/bshaffer/oauth2-server-php/issues/349#issuecomment-37993588 + */ + public function requestHasToken(RequestInterface $request) + { + $headers = $request->headers('AUTHORIZATION'); + + // check the header, then the querystring, then the request body + return !empty($headers) || (bool) ($request->request($this->config['token_param_name'])) || (bool) ($request->query($this->config['token_param_name'])); + } + + /** + * This is a convenience function that can be used to get the token, which can then + * be passed to getAccessTokenData(). The constraints specified by the draft are + * attempted to be adheared to in this method. + * + * As per the Bearer spec (draft 8, section 2) - there are three ways for a client + * to specify the bearer token, in order of preference: Authorization Header, + * POST and GET. + * + * NB: Resource servers MUST accept tokens via the Authorization scheme + * (http://tools.ietf.org/html/rfc6750#section-2). + * + * @todo Should we enforce TLS/SSL in this function? + * + * @see http://tools.ietf.org/html/rfc6750#section-2.1 + * @see http://tools.ietf.org/html/rfc6750#section-2.2 + * @see http://tools.ietf.org/html/rfc6750#section-2.3 + * + * Old Android version bug (at least with version 2.2) + * @see http://code.google.com/p/android/issues/detail?id=6684 + * + */ + public function getAccessTokenParameter(RequestInterface $request, ResponseInterface $response) + { + $headers = $request->headers('AUTHORIZATION'); + + /** + * Ensure more than one method is not used for including an + * access token + * + * @see http://tools.ietf.org/html/rfc6750#section-3.1 + */ + $methodsUsed = !empty($headers) + (bool) ($request->query($this->config['token_param_name'])) + (bool) ($request->request($this->config['token_param_name'])); + if ($methodsUsed > 1) { + $response->setError(400, 'invalid_request', 'Only one method may be used to authenticate at a time (Auth header, GET or POST)'); + + return null; + } + + /** + * If no authentication is provided, set the status code + * to 401 and return no other error information + * + * @see http://tools.ietf.org/html/rfc6750#section-3.1 + */ + if ($methodsUsed == 0) { + $response->setStatusCode(401); + + return null; + } + + // HEADER: Get the access token from the header + if (!empty($headers)) { + if (!preg_match('/' . $this->config['token_bearer_header_name'] . '\s(\S+)/i', $headers, $matches)) { + $response->setError(400, 'invalid_request', 'Malformed auth header'); + + return null; + } + + return $matches[1]; + } + + if ($request->request($this->config['token_param_name'])) { + // // POST: Get the token from POST data + if (!in_array(strtolower($request->server('REQUEST_METHOD')), array('post', 'put'))) { + $response->setError(400, 'invalid_request', 'When putting the token in the body, the method must be POST or PUT', '#section-2.2'); + + return null; + } + + $contentType = $request->server('CONTENT_TYPE'); + if (false !== $pos = strpos($contentType, ';')) { + $contentType = substr($contentType, 0, $pos); + } + + if ($contentType !== null && $contentType != 'application/x-www-form-urlencoded') { + // IETF specifies content-type. NB: Not all webservers populate this _SERVER variable + // @see http://tools.ietf.org/html/rfc6750#section-2.2 + $response->setError(400, 'invalid_request', 'The content type for POST requests must be "application/x-www-form-urlencoded"'); + + return null; + } + + return $request->request($this->config['token_param_name']); + } + + // GET method + return $request->query($this->config['token_param_name']); + } +} diff --git a/library/oauth2/src/OAuth2/TokenType/Mac.php b/library/oauth2/src/OAuth2/TokenType/Mac.php new file mode 100644 index 000000000..fe6a86aa6 --- /dev/null +++ b/library/oauth2/src/OAuth2/TokenType/Mac.php @@ -0,0 +1,22 @@ +assertTrue(class_exists('OAuth2\Server')); + $this->assertTrue(class_exists('OAuth2\Request')); + $this->assertTrue(class_exists('OAuth2\Response')); + $this->assertTrue(class_exists('OAuth2\GrantType\UserCredentials')); + $this->assertTrue(interface_exists('OAuth2\Storage\AccessTokenInterface')); + } +} diff --git a/library/oauth2/test/OAuth2/Controller/AuthorizeControllerTest.php b/library/oauth2/test/OAuth2/Controller/AuthorizeControllerTest.php new file mode 100644 index 000000000..3bfc760e4 --- /dev/null +++ b/library/oauth2/test/OAuth2/Controller/AuthorizeControllerTest.php @@ -0,0 +1,492 @@ +getTestServer(); + $request = new Request(); + $server->handleAuthorizeRequest($request, $response = new Response(), false); + + $this->assertEquals($response->getStatusCode(), 400); + $this->assertEquals($response->getParameter('error'), 'invalid_client'); + $this->assertEquals($response->getParameter('error_description'), 'No client id supplied'); + } + + public function testInvalidClientIdResponse() + { + $server = $this->getTestServer(); + $request = new Request(array( + 'client_id' => 'Fake Client ID', // invalid client id + )); + $server->handleAuthorizeRequest($request, $response = new Response(), false); + + $this->assertEquals($response->getStatusCode(), 400); + $this->assertEquals($response->getParameter('error'), 'invalid_client'); + $this->assertEquals($response->getParameter('error_description'), 'The client id supplied is invalid'); + } + + public function testNoRedirectUriSuppliedOrStoredResponse() + { + $server = $this->getTestServer(); + $request = new Request(array( + 'client_id' => 'Test Client ID', // valid client id + )); + $server->handleAuthorizeRequest($request, $response = new Response(), false); + + $this->assertEquals($response->getStatusCode(), 400); + $this->assertEquals($response->getParameter('error'), 'invalid_uri'); + $this->assertEquals($response->getParameter('error_description'), 'No redirect URI was supplied or stored'); + } + + public function testNoResponseTypeResponse() + { + $server = $this->getTestServer(); + $request = new Request(array( + 'client_id' => 'Test Client ID', // valid client id + 'redirect_uri' => 'http://adobe.com', // valid redirect URI + )); + $server->handleAuthorizeRequest($request, $response = new Response(), false); + + $this->assertEquals($response->getStatusCode(), 302); + $location = $response->getHttpHeader('Location'); + $parts = parse_url($location); + parse_str($parts['query'], $query); + + $this->assertEquals($query['error'], 'invalid_request'); + $this->assertEquals($query['error_description'], 'Invalid or missing response type'); + } + + public function testInvalidResponseTypeResponse() + { + $server = $this->getTestServer(); + $request = new Request(array( + 'client_id' => 'Test Client ID', // valid client id + 'redirect_uri' => 'http://adobe.com', // valid redirect URI + 'response_type' => 'invalid', // invalid response type + )); + $server->handleAuthorizeRequest($request, $response = new Response(), false); + + $this->assertEquals($response->getStatusCode(), 302); + $location = $response->getHttpHeader('Location'); + $parts = parse_url($location); + parse_str($parts['query'], $query); + + $this->assertEquals($query['error'], 'invalid_request'); + $this->assertEquals($query['error_description'], 'Invalid or missing response type'); + } + + public function testRedirectUriFragmentResponse() + { + $server = $this->getTestServer(); + $request = new Request(array( + 'client_id' => 'Test Client ID', // valid client id + 'redirect_uri' => 'http://adobe.com#fragment', // valid redirect URI + 'response_type' => 'code', // invalid response type + )); + $server->handleAuthorizeRequest($request, $response = new Response(), true); + + $this->assertEquals($response->getStatusCode(), 400); + $this->assertEquals($response->getParameter('error'), 'invalid_uri'); + $this->assertEquals($response->getParameter('error_description'), 'The redirect URI must not contain a fragment'); + } + + public function testEnforceState() + { + $server = $this->getTestServer(array('enforce_state' => true)); + $request = new Request(array( + 'client_id' => 'Test Client ID', // valid client id + 'redirect_uri' => 'http://adobe.com', // valid redirect URI + 'response_type' => 'code', + )); + $server->handleAuthorizeRequest($request, $response = new Response(), true); + + $this->assertEquals($response->getStatusCode(), 302); + $location = $response->getHttpHeader('Location'); + $parts = parse_url($location); + parse_str($parts['query'], $query); + + $this->assertEquals($query['error'], 'invalid_request'); + $this->assertEquals($query['error_description'], 'The state parameter is required'); + } + + public function testDoNotEnforceState() + { + $server = $this->getTestServer(array('enforce_state' => false)); + $request = new Request(array( + 'client_id' => 'Test Client ID', // valid client id + 'redirect_uri' => 'http://adobe.com', // valid redirect URI + 'response_type' => 'code', + )); + $server->handleAuthorizeRequest($request, $response = new Response(), true); + + $this->assertEquals($response->getStatusCode(), 302); + $this->assertNotContains('error', $response->getHttpHeader('Location')); + } + + public function testEnforceScope() + { + $server = $this->getTestServer(); + $scopeStorage = new Memory(array('default_scope' => false, 'supported_scopes' => array('testscope'))); + $server->setScopeUtil(new Scope($scopeStorage)); + + $request = new Request(array( + 'client_id' => 'Test Client ID', // valid client id + 'redirect_uri' => 'http://adobe.com', // valid redirect URI + 'response_type' => 'code', + 'state' => 'xyz', + )); + $server->handleAuthorizeRequest($request, $response = new Response(), true); + + $this->assertEquals($response->getStatusCode(), 302); + $parts = parse_url($response->getHttpHeader('Location')); + parse_str($parts['query'], $query); + + $this->assertEquals($query['error'], 'invalid_client'); + $this->assertEquals($query['error_description'], 'This application requires you specify a scope parameter'); + + $request->query['scope'] = 'testscope'; + $server->handleAuthorizeRequest($request, $response = new Response(), true); + + $this->assertEquals($response->getStatusCode(), 302); + $this->assertNotContains('error', $response->getHttpHeader('Location')); + } + + public function testInvalidRedirectUri() + { + $server = $this->getTestServer(); + $request = new Request(array( + 'client_id' => 'Test Client ID with Redirect Uri', // valid client id + 'redirect_uri' => 'http://adobe.com', // invalid redirect URI + 'response_type' => 'code', + )); + $server->handleAuthorizeRequest($request, $response = new Response(), true); + + $this->assertEquals($response->getStatusCode(), 400); + $this->assertEquals($response->getParameter('error'), 'redirect_uri_mismatch'); + $this->assertEquals($response->getParameter('error_description'), 'The redirect URI provided is missing or does not match'); + } + + public function testInvalidRedirectUriApprovedByBuggyRegisteredUri() + { + $server = $this->getTestServer(); + $server->setConfig('require_exact_redirect_uri', false); + $request = new Request(array( + 'client_id' => 'Test Client ID with Buggy Redirect Uri', // valid client id + 'redirect_uri' => 'http://adobe.com', // invalid redirect URI + 'response_type' => 'code', + )); + $server->handleAuthorizeRequest($request, $response = new Response(), true); + + $this->assertEquals($response->getStatusCode(), 400); + $this->assertEquals($response->getParameter('error'), 'redirect_uri_mismatch'); + $this->assertEquals($response->getParameter('error_description'), 'The redirect URI provided is missing or does not match'); + } + + public function testNoRedirectUriWithMultipleRedirectUris() + { + $server = $this->getTestServer(); + + // create a request with no "redirect_uri" in querystring + $request = new Request(array( + 'client_id' => 'Test Client ID with Multiple Redirect Uris', // valid client id + 'response_type' => 'code', + )); + + $server->handleAuthorizeRequest($request, $response = new Response(), true); + + $this->assertEquals($response->getStatusCode(), 400); + $this->assertEquals($response->getParameter('error'), 'invalid_uri'); + $this->assertEquals($response->getParameter('error_description'), 'A redirect URI must be supplied when multiple redirect URIs are registered'); + } + + public function testRedirectUriWithValidRedirectUri() + { + $server = $this->getTestServer(); + + // create a request with no "redirect_uri" in querystring + $request = new Request(array( + 'client_id' => 'Test Client ID with Redirect Uri Parts', // valid client id + 'response_type' => 'code', + 'redirect_uri' => 'http://user:pass@brentertainment.com:2222/authorize/cb?auth_type=oauth&test=true', + 'state' => 'xyz', + )); + + $server->handleAuthorizeRequest($request, $response = new Response(), true); + + $this->assertEquals($response->getStatusCode(), 302); + $this->assertContains('code', $response->getHttpHeader('Location')); + } + + public function testRedirectUriWithDifferentQueryAndExactMatchRequired() + { + $server = $this->getTestServer(array('require_exact_redirect_uri' => true)); + + // create a request with no "redirect_uri" in querystring + $request = new Request(array( + 'client_id' => 'Test Client ID with Redirect Uri Parts', // valid client id + 'response_type' => 'code', + 'redirect_uri' => 'http://user:pass@brentertainment.com:2222/authorize/cb?auth_type=oauth&test=true&hereisa=querystring', + )); + + $server->handleAuthorizeRequest($request, $response = new Response(), true); + + $this->assertEquals($response->getStatusCode(), 400); + $this->assertEquals($response->getParameter('error'), 'redirect_uri_mismatch'); + $this->assertEquals($response->getParameter('error_description'), 'The redirect URI provided is missing or does not match'); + } + + public function testRedirectUriWithDifferentQueryAndExactMatchNotRequired() + { + $server = $this->getTestServer(array('require_exact_redirect_uri' => false)); + + // create a request with no "redirect_uri" in querystring + $request = new Request(array( + 'client_id' => 'Test Client ID with Redirect Uri Parts', // valid client id + 'response_type' => 'code', + 'redirect_uri' => 'http://user:pass@brentertainment.com:2222/authorize/cb?auth_type=oauth&test=true&hereisa=querystring', + 'state' => 'xyz', + )); + + $server->handleAuthorizeRequest($request, $response = new Response(), true); + + $this->assertEquals($response->getStatusCode(), 302); + $this->assertContains('code', $response->getHttpHeader('Location')); + } + + public function testMultipleRedirectUris() + { + $server = $this->getTestServer(); + $request = new Request(array( + 'client_id' => 'Test Client ID with Multiple Redirect Uris', // valid client id + 'redirect_uri' => 'http://brentertainment.com', // valid redirect URI + 'response_type' => 'code', + 'state' => 'xyz' + )); + + $server->handleAuthorizeRequest($request, $response = new Response(), true); + $this->assertEquals($response->getStatusCode(), 302); + $this->assertContains('code', $response->getHttpHeader('Location')); + + // call again with different (but still valid) redirect URI + $request->query['redirect_uri'] = 'http://morehazards.com'; + + $server->handleAuthorizeRequest($request, $response = new Response(), true); + $this->assertEquals($response->getStatusCode(), 302); + $this->assertContains('code', $response->getHttpHeader('Location')); + } + + /** + * @see http://tools.ietf.org/html/rfc6749#section-4.1.3 + * @see https://github.com/bshaffer/oauth2-server-php/issues/163 + */ + public function testNoRedirectUriSuppliedDoesNotRequireTokenRedirectUri() + { + $server = $this->getTestServer(); + $request = new Request(array( + 'client_id' => 'Test Client ID with Redirect Uri', // valid client id + 'response_type' => 'code', + 'state' => 'xyz', + )); + + $server->handleAuthorizeRequest($request, $response = new Response(), true); + $this->assertEquals($response->getStatusCode(), 302); + $this->assertContains('state', $response->getHttpHeader('Location')); + $this->assertStringStartsWith('http://brentertainment.com?code=', $response->getHttpHeader('Location')); + + $parts = parse_url($response->getHttpHeader('Location')); + parse_str($parts['query'], $query); + + // call token endpoint with no redirect_uri supplied + $request = TestRequest::createPost(array( + 'client_id' => 'Test Client ID with Redirect Uri', // valid client id + 'client_secret' => 'TestSecret2', + 'grant_type' => 'authorization_code', + 'code' => $query['code'], + )); + + $server->handleTokenRequest($request, $response = new Response(), true); + $this->assertEquals($response->getStatusCode(), 200); + $this->assertNotNull($response->getParameter('access_token')); + } + + public function testUserDeniesAccessResponse() + { + $server = $this->getTestServer(); + $request = new Request(array( + 'client_id' => 'Test Client ID', // valid client id + 'redirect_uri' => 'http://adobe.com', // valid redirect URI + 'response_type' => 'code', + 'state' => 'xyz', + )); + $server->handleAuthorizeRequest($request, $response = new Response(), false); + + $this->assertEquals($response->getStatusCode(), 302); + $location = $response->getHttpHeader('Location'); + $parts = parse_url($location); + parse_str($parts['query'], $query); + + $this->assertEquals($query['error'], 'access_denied'); + $this->assertEquals($query['error_description'], 'The user denied access to your application'); + } + + public function testCodeQueryParamIsSet() + { + $server = $this->getTestServer(); + $request = new Request(array( + 'client_id' => 'Test Client ID', // valid client id + 'redirect_uri' => 'http://adobe.com', // valid redirect URI + 'response_type' => 'code', + 'state' => 'xyz', + )); + $server->handleAuthorizeRequest($request, $response = new Response(), true); + + $this->assertEquals($response->getStatusCode(), 302); + $location = $response->getHttpHeader('Location'); + $parts = parse_url($location); + parse_str($parts['query'], $query); + + $location = $response->getHttpHeader('Location'); + $parts = parse_url($location); + + $this->assertEquals('http', $parts['scheme']); // same as passed in to redirect_uri + $this->assertEquals('adobe.com', $parts['host']); // same as passed in to redirect_uri + $this->assertArrayHasKey('query', $parts); + $this->assertFalse(isset($parts['fragment'])); + + // assert fragment is in "application/x-www-form-urlencoded" format + parse_str($parts['query'], $query); + $this->assertNotNull($query); + $this->assertArrayHasKey('code', $query); + + // ensure no id_token was saved, since the openid scope wasn't requested + $storage = $server->getStorage('authorization_code'); + $code = $storage->getAuthorizationCode($query['code']); + $this->assertTrue(empty($code['id_token'])); + + // ensure no error was returned + $this->assertFalse(isset($query['error'])); + $this->assertFalse(isset($query['error_description'])); + } + + public function testSuccessfulRequestReturnsStateParameter() + { + $server = $this->getTestServer(array('allow_implicit' => true)); + $request = new Request(array( + 'client_id' => 'Test Client ID', // valid client id + 'redirect_uri' => 'http://adobe.com', // valid redirect URI + 'response_type' => 'code', + 'state' => 'test', // valid state string (just needs to be passed back to us) + )); + $server->handleAuthorizeRequest($request, $response = new Response(), true); + + $this->assertEquals($response->getStatusCode(), 302); + + $location = $response->getHttpHeader('Location'); + $parts = parse_url($location); + $this->assertArrayHasKey('query', $parts); + parse_str($parts['query'], $query); + + $this->assertArrayHasKey('state', $query); + $this->assertEquals($query['state'], 'test'); + + // ensure no error was returned + $this->assertFalse(isset($query['error'])); + $this->assertFalse(isset($query['error_description'])); + } + + public function testSuccessfulRequestStripsExtraParameters() + { + $server = $this->getTestServer(array('allow_implicit' => true)); + $request = new Request(array( + 'client_id' => 'Test Client ID', // valid client id + 'redirect_uri' => 'http://adobe.com', // valid redirect URI + 'response_type' => 'code', + 'state' => 'test', // valid state string (just needs to be passed back to us) + 'fake' => 'something', // extra query param + )); + $server->handleAuthorizeRequest($request, $response = new Response(), true); + + $this->assertEquals($response->getStatusCode(), 302); + $location = $response->getHttpHeader('Location'); + $this->assertNotContains('error', $location); + + $parts = parse_url($location); + $this->assertFalse(isset($parts['fake'])); + $this->assertArrayHasKey('query', $parts); + parse_str($parts['query'], $query); + + $this->assertFalse(isset($parmas['fake'])); + $this->assertArrayHasKey('state', $query); + $this->assertEquals($query['state'], 'test'); + } + + public function testSuccessfulOpenidConnectRequest() + { + $server = $this->getTestServer(array( + 'use_openid_connect' => true, + 'issuer' => 'bojanz', + )); + + $request = new Request(array( + 'client_id' => 'Test Client ID', + 'redirect_uri' => 'http://adobe.com', + 'response_type' => 'code', + 'state' => 'xyz', + 'scope' => 'openid', + )); + $server->handleAuthorizeRequest($request, $response = new Response(), true); + + $this->assertEquals($response->getStatusCode(), 302); + $location = $response->getHttpHeader('Location'); + $parts = parse_url($location); + parse_str($parts['query'], $query); + + $location = $response->getHttpHeader('Location'); + $parts = parse_url($location); + $this->assertArrayHasKey('query', $parts); + $this->assertFalse(isset($parts['fragment'])); + + // assert fragment is in "application/x-www-form-urlencoded" format + parse_str($parts['query'], $query); + $this->assertNotNull($query); + $this->assertArrayHasKey('code', $query); + + // ensure no error was returned + $this->assertFalse(isset($query['error'])); + $this->assertFalse(isset($query['error_description'])); + + // confirm that the id_token has been created. + $storage = $server->getStorage('authorization_code'); + $code = $storage->getAuthorizationCode($query['code']); + $this->assertTrue(!empty($code['id_token'])); + } + + public function testCreateController() + { + $storage = Bootstrap::getInstance()->getMemoryStorage(); + $controller = new AuthorizeController($storage); + } + + private function getTestServer($config = array()) + { + $storage = Bootstrap::getInstance()->getMemoryStorage(); + $server = new Server($storage, $config); + + // Add the two types supported for authorization grant + $server->addGrantType(new AuthorizationCode($storage)); + + return $server; + } +} diff --git a/library/oauth2/test/OAuth2/Controller/ResourceControllerTest.php b/library/oauth2/test/OAuth2/Controller/ResourceControllerTest.php new file mode 100644 index 000000000..ee6d96ff8 --- /dev/null +++ b/library/oauth2/test/OAuth2/Controller/ResourceControllerTest.php @@ -0,0 +1,175 @@ +getTestServer(); + $request = Request::createFromGlobals(); + $allow = $server->verifyResourceRequest($request, $response = new Response()); + $this->assertFalse($allow); + + $this->assertEquals($response->getStatusCode(), 401); + $this->assertNull($response->getParameter('error')); + $this->assertNull($response->getParameter('error_description')); + } + + public function testMalformedHeader() + { + $server = $this->getTestServer(); + $request = Request::createFromGlobals(); + $request->headers['AUTHORIZATION'] = 'tH1s i5 B0gU5'; + $allow = $server->verifyResourceRequest($request, $response = new Response()); + $this->assertFalse($allow); + + $this->assertEquals($response->getStatusCode(), 400); + $this->assertEquals($response->getParameter('error'), 'invalid_request'); + $this->assertEquals($response->getParameter('error_description'), 'Malformed auth header'); + } + + public function testMultipleTokensSubmitted() + { + $server = $this->getTestServer(); + $request = Request::createFromGlobals(); + $request->request['access_token'] = 'TEST'; + $request->query['access_token'] = 'TEST'; + $allow = $server->verifyResourceRequest($request, $response = new Response()); + $this->assertFalse($allow); + + $this->assertEquals($response->getStatusCode(), 400); + $this->assertEquals($response->getParameter('error'), 'invalid_request'); + $this->assertEquals($response->getParameter('error_description'), 'Only one method may be used to authenticate at a time (Auth header, GET or POST)'); + } + + public function testInvalidRequestMethod() + { + $server = $this->getTestServer(); + $request = Request::createFromGlobals(); + $request->server['REQUEST_METHOD'] = 'GET'; + $request->request['access_token'] = 'TEST'; + $allow = $server->verifyResourceRequest($request, $response = new Response()); + $this->assertFalse($allow); + + $this->assertEquals($response->getStatusCode(), 400); + $this->assertEquals($response->getParameter('error'), 'invalid_request'); + $this->assertEquals($response->getParameter('error_description'), 'When putting the token in the body, the method must be POST or PUT'); + } + + public function testInvalidContentType() + { + $server = $this->getTestServer(); + $request = Request::createFromGlobals(); + $request->server['REQUEST_METHOD'] = 'POST'; + $request->server['CONTENT_TYPE'] = 'application/json'; + $request->request['access_token'] = 'TEST'; + $allow = $server->verifyResourceRequest($request, $response = new Response()); + $this->assertFalse($allow); + + $this->assertEquals($response->getStatusCode(), 400); + $this->assertEquals($response->getParameter('error'), 'invalid_request'); + $this->assertEquals($response->getParameter('error_description'), 'The content type for POST requests must be "application/x-www-form-urlencoded"'); + } + + public function testInvalidToken() + { + $server = $this->getTestServer(); + $request = Request::createFromGlobals(); + $request->headers['AUTHORIZATION'] = 'Bearer TESTTOKEN'; + $allow = $server->verifyResourceRequest($request, $response = new Response()); + $this->assertFalse($allow); + + $this->assertEquals($response->getStatusCode(), 401); + $this->assertEquals($response->getParameter('error'), 'invalid_token'); + $this->assertEquals($response->getParameter('error_description'), 'The access token provided is invalid'); + } + + public function testExpiredToken() + { + $server = $this->getTestServer(); + $request = Request::createFromGlobals(); + $request->headers['AUTHORIZATION'] = 'Bearer accesstoken-expired'; + $allow = $server->verifyResourceRequest($request, $response = new Response()); + $this->assertFalse($allow); + + $this->assertEquals($response->getStatusCode(), 401); + $this->assertEquals($response->getParameter('error'), 'expired_token'); + $this->assertEquals($response->getParameter('error_description'), 'The access token provided has expired'); + } + + public function testOutOfScopeToken() + { + $server = $this->getTestServer(); + $request = Request::createFromGlobals(); + $request->headers['AUTHORIZATION'] = 'Bearer accesstoken-scope'; + $scope = 'outofscope'; + $allow = $server->verifyResourceRequest($request, $response = new Response(), $scope); + $this->assertFalse($allow); + + $this->assertEquals($response->getStatusCode(), 403); + $this->assertEquals($response->getParameter('error'), 'insufficient_scope'); + $this->assertEquals($response->getParameter('error_description'), 'The request requires higher privileges than provided by the access token'); + + // verify the "scope" has been set in the "WWW-Authenticate" header + preg_match('/scope="(.*?)"/', $response->getHttpHeader('WWW-Authenticate'), $matches); + $this->assertEquals(2, count($matches)); + $this->assertEquals($matches[1], 'outofscope'); + } + + public function testMalformedToken() + { + $server = $this->getTestServer(); + $request = Request::createFromGlobals(); + $request->headers['AUTHORIZATION'] = 'Bearer accesstoken-malformed'; + $allow = $server->verifyResourceRequest($request, $response = new Response()); + $this->assertFalse($allow); + + $this->assertEquals($response->getStatusCode(), 401); + $this->assertEquals($response->getParameter('error'), 'malformed_token'); + $this->assertEquals($response->getParameter('error_description'), 'Malformed token (missing "expires")'); + } + + public function testValidToken() + { + $server = $this->getTestServer(); + $request = Request::createFromGlobals(); + $request->headers['AUTHORIZATION'] = 'Bearer accesstoken-scope'; + $allow = $server->verifyResourceRequest($request, $response = new Response()); + $this->assertTrue($allow); + } + + public function testValidTokenWithScopeParam() + { + $server = $this->getTestServer(); + $request = Request::createFromGlobals(); + $request->headers['AUTHORIZATION'] = 'Bearer accesstoken-scope'; + $request->query['scope'] = 'testscope'; + $allow = $server->verifyResourceRequest($request, $response = new Response()); + $this->assertTrue($allow); + } + + public function testCreateController() + { + $storage = Bootstrap::getInstance()->getMemoryStorage(); + $tokenType = new \OAuth2\TokenType\Bearer(); + $controller = new ResourceController($tokenType, $storage); + } + + private function getTestServer($config = array()) + { + $storage = Bootstrap::getInstance()->getMemoryStorage(); + $server = new Server($storage, $config); + + // Add the two types supported for authorization grant + $server->addGrantType(new AuthorizationCode($storage)); + + return $server; + } +} diff --git a/library/oauth2/test/OAuth2/Controller/TokenControllerTest.php b/library/oauth2/test/OAuth2/Controller/TokenControllerTest.php new file mode 100644 index 000000000..4a217bd55 --- /dev/null +++ b/library/oauth2/test/OAuth2/Controller/TokenControllerTest.php @@ -0,0 +1,289 @@ +getTestServer(); + $server->handleTokenRequest(TestRequest::createPost(), $response = new Response()); + + $this->assertEquals($response->getStatusCode(), 400); + $this->assertEquals($response->getParameter('error'), 'invalid_request'); + $this->assertEquals($response->getParameter('error_description'), 'The grant type was not specified in the request'); + } + + public function testInvalidGrantType() + { + // add the test parameters in memory + $server = $this->getTestServer(); + $request = TestRequest::createPost(array( + 'grant_type' => 'invalid_grant_type', // invalid grant type + )); + $server->handleTokenRequest($request, $response = new Response()); + + $this->assertEquals($response->getStatusCode(), 400); + $this->assertEquals($response->getParameter('error'), 'unsupported_grant_type'); + $this->assertEquals($response->getParameter('error_description'), 'Grant type "invalid_grant_type" not supported'); + } + + public function testNoClientId() + { + // add the test parameters in memory + $server = $this->getTestServer(); + $request = TestRequest::createPost(array( + 'grant_type' => 'authorization_code', // valid grant type + 'code' => 'testcode', + )); + $server->handleTokenRequest($request, $response = new Response()); + + $this->assertEquals($response->getStatusCode(), 400); + $this->assertEquals($response->getParameter('error'), 'invalid_client'); + $this->assertEquals($response->getParameter('error_description'), 'Client credentials were not found in the headers or body'); + } + + public function testNoClientSecretWithConfidentialClient() + { + // add the test parameters in memory + $server = $this->getTestServer(); + $request = TestRequest::createPost(array( + 'grant_type' => 'authorization_code', // valid grant type + 'code' => 'testcode', + 'client_id' => 'Test Client ID', // valid client id + )); + $server->handleTokenRequest($request, $response = new Response()); + + $this->assertEquals($response->getStatusCode(), 400); + $this->assertEquals($response->getParameter('error'), 'invalid_client'); + $this->assertEquals($response->getParameter('error_description'), 'This client is invalid or must authenticate using a client secret'); + } + + public function testNoClientSecretWithEmptySecret() + { + // add the test parameters in memory + $server = $this->getTestServer(); + $request = TestRequest::createPost(array( + 'grant_type' => 'authorization_code', // valid grant type + 'code' => 'testcode-empty-secret', + 'client_id' => 'Test Client ID Empty Secret', // valid client id + )); + $server->handleTokenRequest($request, $response = new Response()); + + $this->assertEquals($response->getStatusCode(), 200); + } + + public function testInvalidClientId() + { + // add the test parameters in memory + $server = $this->getTestServer(); + $request = TestRequest::createPost(array( + 'grant_type' => 'authorization_code', // valid grant type + 'code' => 'testcode', + 'client_id' => 'Fake Client ID', // invalid client id + 'client_secret' => 'TestSecret', // valid client secret + )); + $server->handleTokenRequest($request, $response = new Response()); + + $this->assertEquals($response->getStatusCode(), 400); + $this->assertEquals($response->getParameter('error'), 'invalid_client'); + $this->assertEquals($response->getParameter('error_description'), 'The client credentials are invalid'); + } + + public function testInvalidClientSecret() + { + // add the test parameters in memory + $server = $this->getTestServer(); + $request = TestRequest::createPost(array( + 'grant_type' => 'authorization_code', // valid grant type + 'code' => 'testcode', + 'client_id' => 'Test Client ID', // valid client id + 'client_secret' => 'Fake Client Secret', // invalid client secret + )); + $server->handleTokenRequest($request, $response = new Response()); + + $this->assertEquals($response->getStatusCode(), 400); + $this->assertEquals($response->getParameter('error'), 'invalid_client'); + $this->assertEquals($response->getParameter('error_description'), 'The client credentials are invalid'); + } + + public function testValidTokenResponse() + { + // add the test parameters in memory + $server = $this->getTestServer(); + $request = TestRequest::createPost(array( + 'grant_type' => 'authorization_code', // valid grant type + 'client_id' => 'Test Client ID', // valid client id + 'client_secret' => 'TestSecret', // valid client secret + 'code' => 'testcode', // valid authorization code + )); + $server->handleTokenRequest($request, $response = new Response()); + + $this->assertTrue($response instanceof Response); + $this->assertEquals($response->getStatusCode(), 200); + $this->assertNull($response->getParameter('error')); + $this->assertNull($response->getParameter('error_description')); + $this->assertNotNull($response->getParameter('access_token')); + $this->assertNotNull($response->getParameter('expires_in')); + $this->assertNotNull($response->getParameter('token_type')); + } + + public function testValidClientIdScope() + { + // add the test parameters in memory + $server = $this->getTestServer(); + $request = TestRequest::createPost(array( + 'grant_type' => 'authorization_code', // valid grant type + 'code' => 'testcode', + 'client_id' => 'Test Client ID', // valid client id + 'client_secret' => 'TestSecret', // valid client secret + 'scope' => 'clientscope1 clientscope2' + )); + $server->handleTokenRequest($request, $response = new Response()); + + $this->assertEquals($response->getStatusCode(), 200); + $this->assertNull($response->getParameter('error')); + $this->assertNull($response->getParameter('error_description')); + $this->assertEquals('clientscope1 clientscope2', $response->getParameter('scope')); + } + + public function testInvalidClientIdScope() + { + // add the test parameters in memory + $server = $this->getTestServer(); + $request = TestRequest::createPost(array( + 'grant_type' => 'authorization_code', // valid grant type + 'code' => 'testcode-with-scope', + 'client_id' => 'Test Client ID', // valid client id + 'client_secret' => 'TestSecret', // valid client secret + 'scope' => 'clientscope3' + )); + $server->handleTokenRequest($request, $response = new Response()); + + $this->assertEquals($response->getStatusCode(), 400); + $this->assertEquals($response->getParameter('error'), 'invalid_scope'); + $this->assertEquals($response->getParameter('error_description'), 'The scope requested is invalid for this request'); + } + + public function testEnforceScope() + { + $storage = Bootstrap::getInstance()->getMemoryStorage(); + $server = new Server($storage); + $server->addGrantType(new ClientCredentials($storage)); + + $scope = new Scope(array( + 'default_scope' => false, + 'supported_scopes' => array('testscope') + )); + $server->setScopeUtil($scope); + + $request = TestRequest::createPost(array( + 'grant_type' => 'client_credentials', // valid grant type + 'client_id' => 'Test Client ID', // valid client id + 'client_secret' => 'TestSecret', // valid client secret + )); + $response = $server->handleTokenRequest($request); + + $this->assertEquals($response->getStatusCode(), 400); + $this->assertEquals($response->getParameter('error'), 'invalid_scope'); + $this->assertEquals($response->getParameter('error_description'), 'This application requires you specify a scope parameter'); + } + + public function testCanReceiveAccessTokenUsingPasswordGrantTypeWithoutClientSecret() + { + // add the test parameters in memory + $storage = Bootstrap::getInstance()->getMemoryStorage(); + $server = new Server($storage); + $server->addGrantType(new UserCredentials($storage)); + + $request = TestRequest::createPost(array( + 'grant_type' => 'password', // valid grant type + 'client_id' => 'Test Client ID For Password Grant', // valid client id + 'username' => 'johndoe', // valid username + 'password' => 'password', // valid password for username + )); + $server->handleTokenRequest($request, $response = new Response()); + + $this->assertTrue($response instanceof Response); + $this->assertEquals(200, $response->getStatusCode(), var_export($response, 1)); + $this->assertNull($response->getParameter('error')); + $this->assertNull($response->getParameter('error_description')); + $this->assertNotNull($response->getParameter('access_token')); + $this->assertNotNull($response->getParameter('expires_in')); + $this->assertNotNull($response->getParameter('token_type')); + } + + public function testInvalidTokenTypeHintForRevoke() + { + $server = $this->getTestServer(); + + $request = TestRequest::createPost(array( + 'token_type_hint' => 'foo', + 'token' => 'sometoken' + )); + + $server->handleRevokeRequest($request, $response = new Response()); + + $this->assertTrue($response instanceof Response); + $this->assertEquals(400, $response->getStatusCode(), var_export($response, 1)); + $this->assertEquals($response->getParameter('error'), 'invalid_request'); + $this->assertEquals($response->getParameter('error_description'), 'Token type hint must be either \'access_token\' or \'refresh_token\''); + } + + public function testMissingTokenForRevoke() + { + $server = $this->getTestServer(); + + $request = TestRequest::createPost(array( + 'token_type_hint' => 'access_token' + )); + + $server->handleRevokeRequest($request, $response = new Response()); + $this->assertTrue($response instanceof Response); + $this->assertEquals(400, $response->getStatusCode(), var_export($response, 1)); + $this->assertEquals($response->getParameter('error'), 'invalid_request'); + $this->assertEquals($response->getParameter('error_description'), 'Missing token parameter to revoke'); + } + + public function testInvalidRequestMethodForRevoke() + { + $server = $this->getTestServer(); + + $request = new TestRequest(); + $request->setQuery(array( + 'token_type_hint' => 'access_token' + )); + + $server->handleRevokeRequest($request, $response = new Response()); + $this->assertTrue($response instanceof Response); + $this->assertEquals(405, $response->getStatusCode(), var_export($response, 1)); + $this->assertEquals($response->getParameter('error'), 'invalid_request'); + $this->assertEquals($response->getParameter('error_description'), 'The request method must be POST when revoking an access token'); + } + + public function testCreateController() + { + $storage = Bootstrap::getInstance()->getMemoryStorage(); + $accessToken = new \OAuth2\ResponseType\AccessToken($storage); + $controller = new TokenController($accessToken, $storage); + } + + private function getTestServer() + { + $storage = Bootstrap::getInstance()->getMemoryStorage(); + $server = new Server($storage); + $server->addGrantType(new AuthorizationCode($storage)); + + return $server; + } +} diff --git a/library/oauth2/test/OAuth2/Encryption/FirebaseJwtTest.php b/library/oauth2/test/OAuth2/Encryption/FirebaseJwtTest.php new file mode 100644 index 000000000..d34136767 --- /dev/null +++ b/library/oauth2/test/OAuth2/Encryption/FirebaseJwtTest.php @@ -0,0 +1,102 @@ +privateKey = << $client_id, + 'exp' => time() + 1000, + 'iat' => time(), + 'sub' => 'testuser@ourdomain.com', + 'aud' => 'http://myapp.com/oauth/auth', + 'scope' => null, + ); + + $encoded = $jwtUtil->encode($params, $this->privateKey, 'RS256'); + + // test BC behaviour of trusting the algorithm in the header + $payload = $jwtUtil->decode($encoded, $client_key, array('RS256')); + $this->assertEquals($params, $payload); + + // test BC behaviour of not verifying by passing false + $payload = $jwtUtil->decode($encoded, $client_key, false); + $this->assertEquals($params, $payload); + + // test the new restricted algorithms header + $payload = $jwtUtil->decode($encoded, $client_key, array('RS256')); + $this->assertEquals($params, $payload); + } + + public function testInvalidJwt() + { + $jwtUtil = new FirebaseJwt(); + + $this->assertFalse($jwtUtil->decode('goob')); + $this->assertFalse($jwtUtil->decode('go.o.b')); + } + + /** @dataProvider provideClientCredentials */ + public function testInvalidJwtHeader($client_id, $client_key) + { + $jwtUtil = new FirebaseJwt(); + + $params = array( + 'iss' => $client_id, + 'exp' => time() + 1000, + 'iat' => time(), + 'sub' => 'testuser@ourdomain.com', + 'aud' => 'http://myapp.com/oauth/auth', + 'scope' => null, + ); + + // testing for algorithm tampering when only RSA256 signing is allowed + // @see https://auth0.com/blog/2015/03/31/critical-vulnerabilities-in-json-web-token-libraries/ + $tampered = $jwtUtil->encode($params, $client_key, 'HS256'); + + $payload = $jwtUtil->decode($tampered, $client_key, array('RS256')); + + $this->assertFalse($payload); + } + + public function provideClientCredentials() + { + $storage = Bootstrap::getInstance()->getMemoryStorage(); + $client_id = 'Test Client ID'; + $client_key = $storage->getClientKey($client_id, "testuser@ourdomain.com"); + + return array( + array($client_id, $client_key), + ); + } +} diff --git a/library/oauth2/test/OAuth2/Encryption/JwtTest.php b/library/oauth2/test/OAuth2/Encryption/JwtTest.php new file mode 100644 index 000000000..214eebac8 --- /dev/null +++ b/library/oauth2/test/OAuth2/Encryption/JwtTest.php @@ -0,0 +1,102 @@ +privateKey = << $client_id, + 'exp' => time() + 1000, + 'iat' => time(), + 'sub' => 'testuser@ourdomain.com', + 'aud' => 'http://myapp.com/oauth/auth', + 'scope' => null, + ); + + $encoded = $jwtUtil->encode($params, $this->privateKey, 'RS256'); + + // test BC behaviour of trusting the algorithm in the header + $payload = $jwtUtil->decode($encoded, $client_key); + $this->assertEquals($params, $payload); + + // test BC behaviour of not verifying by passing false + $payload = $jwtUtil->decode($encoded, $client_key, false); + $this->assertEquals($params, $payload); + + // test the new restricted algorithms header + $payload = $jwtUtil->decode($encoded, $client_key, array('RS256')); + $this->assertEquals($params, $payload); + } + + public function testInvalidJwt() + { + $jwtUtil = new Jwt(); + + $this->assertFalse($jwtUtil->decode('goob')); + $this->assertFalse($jwtUtil->decode('go.o.b')); + } + + /** @dataProvider provideClientCredentials */ + public function testInvalidJwtHeader($client_id, $client_key) + { + $jwtUtil = new Jwt(); + + $params = array( + 'iss' => $client_id, + 'exp' => time() + 1000, + 'iat' => time(), + 'sub' => 'testuser@ourdomain.com', + 'aud' => 'http://myapp.com/oauth/auth', + 'scope' => null, + ); + + // testing for algorithm tampering when only RSA256 signing is allowed + // @see https://auth0.com/blog/2015/03/31/critical-vulnerabilities-in-json-web-token-libraries/ + $tampered = $jwtUtil->encode($params, $client_key, 'HS256'); + + $payload = $jwtUtil->decode($tampered, $client_key, array('RS256')); + + $this->assertFalse($payload); + } + + public function provideClientCredentials() + { + $storage = Bootstrap::getInstance()->getMemoryStorage(); + $client_id = 'Test Client ID'; + $client_key = $storage->getClientKey($client_id, "testuser@ourdomain.com"); + + return array( + array($client_id, $client_key), + ); + } +} diff --git a/library/oauth2/test/OAuth2/GrantType/AuthorizationCodeTest.php b/library/oauth2/test/OAuth2/GrantType/AuthorizationCodeTest.php new file mode 100644 index 000000000..740989635 --- /dev/null +++ b/library/oauth2/test/OAuth2/GrantType/AuthorizationCodeTest.php @@ -0,0 +1,207 @@ +getTestServer(); + $request = TestRequest::createPost(array( + 'grant_type' => 'authorization_code', // valid grant type + 'client_id' => 'Test Client ID', // valid client id + 'client_secret' => 'TestSecret', // valid client secret + )); + $server->handleTokenRequest($request, $response = new Response()); + + $this->assertEquals($response->getStatusCode(), 400); + $this->assertEquals($response->getParameter('error'), 'invalid_request'); + $this->assertEquals($response->getParameter('error_description'), 'Missing parameter: "code" is required'); + } + + public function testInvalidCode() + { + $server = $this->getTestServer(); + $request = TestRequest::createPost(array( + 'grant_type' => 'authorization_code', // valid grant type + 'client_id' => 'Test Client ID', // valid client id + 'client_secret' => 'TestSecret', // valid client secret + 'code' => 'InvalidCode', // invalid authorization code + )); + $server->handleTokenRequest($request, $response = new Response()); + + $this->assertEquals($response->getStatusCode(), 400); + $this->assertEquals($response->getParameter('error'), 'invalid_grant'); + $this->assertEquals($response->getParameter('error_description'), 'Authorization code doesn\'t exist or is invalid for the client'); + } + + public function testCodeCannotBeUsedTwice() + { + $server = $this->getTestServer(); + $request = TestRequest::createPost(array( + 'grant_type' => 'authorization_code', // valid grant type + 'client_id' => 'Test Client ID', // valid client id + 'client_secret' => 'TestSecret', // valid client secret + 'code' => 'testcode', // valid code + )); + $server->handleTokenRequest($request, $response = new Response()); + + $this->assertEquals($response->getStatusCode(), 200); + $this->assertNotNull($response->getParameter('access_token')); + + // try to use the same code again + $server->handleTokenRequest($request, $response = new Response()); + + $this->assertEquals($response->getStatusCode(), 400); + $this->assertEquals($response->getParameter('error'), 'invalid_grant'); + $this->assertEquals($response->getParameter('error_description'), 'Authorization code doesn\'t exist or is invalid for the client'); + } + + public function testExpiredCode() + { + $server = $this->getTestServer(); + $request = TestRequest::createPost(array( + 'grant_type' => 'authorization_code', // valid grant type + 'client_id' => 'Test Client ID', // valid client id + 'client_secret' => 'TestSecret', // valid client secret + 'code' => 'testcode-expired', // expired authorization code + )); + $server->handleTokenRequest($request, $response = new Response()); + + $this->assertEquals($response->getStatusCode(), 400); + $this->assertEquals($response->getParameter('error'), 'invalid_grant'); + $this->assertEquals($response->getParameter('error_description'), 'The authorization code has expired'); + } + + public function testValidCode() + { + $server = $this->getTestServer(); + $request = TestRequest::createPost(array( + 'grant_type' => 'authorization_code', // valid grant type + 'client_id' => 'Test Client ID', // valid client id + 'client_secret' => 'TestSecret', // valid client secret + 'code' => 'testcode', // valid code + )); + $token = $server->grantAccessToken($request, new Response()); + + $this->assertNotNull($token); + $this->assertArrayHasKey('access_token', $token); + } + + public function testValidCodeNoScope() + { + $server = $this->getTestServer(); + $request = TestRequest::createPost(array( + 'grant_type' => 'authorization_code', // valid grant type + 'client_id' => 'Test Client ID', // valid client id + 'client_secret' => 'TestSecret', // valid client secret + 'code' => 'testcode-with-scope', // valid code + )); + $token = $server->grantAccessToken($request, new Response()); + + $this->assertNotNull($token); + $this->assertArrayHasKey('access_token', $token); + $this->assertArrayHasKey('scope', $token); + $this->assertEquals($token['scope'], 'scope1 scope2'); + } + + public function testValidCodeSameScope() + { + $server = $this->getTestServer(); + $request = TestRequest::createPost(array( + 'grant_type' => 'authorization_code', // valid grant type + 'client_id' => 'Test Client ID', // valid client id + 'client_secret' => 'TestSecret', // valid client secret + 'code' => 'testcode-with-scope', // valid code + 'scope' => 'scope2 scope1', + )); + $token = $server->grantAccessToken($request, new Response()); + + $this->assertNotNull($token); + $this->assertArrayHasKey('access_token', $token); + $this->assertArrayHasKey('scope', $token); + $this->assertEquals($token['scope'], 'scope2 scope1'); + } + + public function testValidCodeLessScope() + { + $server = $this->getTestServer(); + $request = TestRequest::createPost(array( + 'grant_type' => 'authorization_code', // valid grant type + 'client_id' => 'Test Client ID', // valid client id + 'client_secret' => 'TestSecret', // valid client secret + 'code' => 'testcode-with-scope', // valid code + 'scope' => 'scope1', + )); + $token = $server->grantAccessToken($request, new Response()); + + $this->assertNotNull($token); + $this->assertArrayHasKey('access_token', $token); + $this->assertArrayHasKey('scope', $token); + $this->assertEquals($token['scope'], 'scope1'); + } + + public function testValidCodeDifferentScope() + { + $server = $this->getTestServer(); + $request = TestRequest::createPost(array( + 'grant_type' => 'authorization_code', // valid grant type + 'client_id' => 'Test Client ID', // valid client id + 'client_secret' => 'TestSecret', // valid client secret + 'code' => 'testcode-with-scope', // valid code + 'scope' => 'scope3', + )); + $token = $server->grantAccessToken($request, $response = new Response()); + + $this->assertEquals($response->getStatusCode(), 400); + $this->assertEquals($response->getParameter('error'), 'invalid_scope'); + $this->assertEquals($response->getParameter('error_description'), 'The scope requested is invalid for this request'); + } + + public function testValidCodeInvalidScope() + { + $server = $this->getTestServer(); + $request = TestRequest::createPost(array( + 'grant_type' => 'authorization_code', // valid grant type + 'client_id' => 'Test Client ID', // valid client id + 'client_secret' => 'TestSecret', // valid client secret + 'code' => 'testcode-with-scope', // valid code + 'scope' => 'invalid-scope', + )); + $token = $server->grantAccessToken($request, $response = new Response()); + + $this->assertEquals($response->getStatusCode(), 400); + $this->assertEquals($response->getParameter('error'), 'invalid_scope'); + $this->assertEquals($response->getParameter('error_description'), 'The scope requested is invalid for this request'); + } + + public function testValidClientDifferentCode() + { + $server = $this->getTestServer(); + $request = TestRequest::createPost(array( + 'grant_type' => 'authorization_code', // valid grant type + 'client_id' => 'Test Some Other Client', // valid client id + 'client_secret' => 'TestSecret3', // valid client secret + 'code' => 'testcode', // valid code + )); + $token = $server->grantAccessToken($request, $response = new Response()); + + $this->assertEquals($response->getStatusCode(), 400); + $this->assertEquals($response->getParameter('error'), 'invalid_grant'); + $this->assertEquals($response->getParameter('error_description'), 'authorization_code doesn\'t exist or is invalid for the client'); + } + + private function getTestServer() + { + $storage = Bootstrap::getInstance()->getMemoryStorage(); + $server = new Server($storage); + $server->addGrantType(new AuthorizationCode($storage)); + + return $server; + } +} diff --git a/library/oauth2/test/OAuth2/GrantType/ClientCredentialsTest.php b/library/oauth2/test/OAuth2/GrantType/ClientCredentialsTest.php new file mode 100644 index 000000000..f0d46ccb3 --- /dev/null +++ b/library/oauth2/test/OAuth2/GrantType/ClientCredentialsTest.php @@ -0,0 +1,159 @@ +getTestServer(); + $request = TestRequest::createPost(array( + 'grant_type' => 'client_credentials', // valid grant type + 'client_id' => 'Test Client ID', // valid client id + 'client_secret' => 'FakeSecret', // valid client secret + )); + $server->handleTokenRequest($request, $response = new Response()); + + $this->assertEquals($response->getStatusCode(), 400); + $this->assertEquals($response->getParameter('error'), 'invalid_client'); + $this->assertEquals($response->getParameter('error_description'), 'The client credentials are invalid'); + } + + public function testValidCredentials() + { + $server = $this->getTestServer(); + $request = TestRequest::createPost(array( + 'grant_type' => 'client_credentials', // valid grant type + 'client_id' => 'Test Client ID', // valid client id + 'client_secret' => 'TestSecret', // valid client secret + )); + $token = $server->grantAccessToken($request, new Response()); + + $this->assertNotNull($token); + $this->assertArrayHasKey('scope', $token); + $this->assertNull($token['scope']); + } + + public function testValidCredentialsWithScope() + { + $server = $this->getTestServer(); + $request = TestRequest::createPost(array( + 'grant_type' => 'client_credentials', // valid grant type + 'client_id' => 'Test Client ID', // valid client id + 'client_secret' => 'TestSecret', // valid client secret + 'scope' => 'scope1', + )); + $token = $server->grantAccessToken($request, new Response()); + + $this->assertNotNull($token); + $this->assertArrayHasKey('access_token', $token); + $this->assertArrayHasKey('scope', $token); + $this->assertEquals($token['scope'], 'scope1'); + } + + public function testValidCredentialsInvalidScope() + { + $server = $this->getTestServer(); + $request = TestRequest::createPost(array( + 'grant_type' => 'client_credentials', // valid grant type + 'client_id' => 'Test Client ID', // valid client id + 'client_secret' => 'TestSecret', // valid client secret + 'scope' => 'invalid-scope', + )); + $token = $server->grantAccessToken($request, $response = new Response()); + + $this->assertEquals($response->getStatusCode(), 400); + $this->assertEquals($response->getParameter('error'), 'invalid_scope'); + $this->assertEquals($response->getParameter('error_description'), 'An unsupported scope was requested'); + } + + public function testValidCredentialsInHeader() + { + // create with HTTP_AUTHORIZATION in header + $server = $this->getTestServer(); + $headers = array('HTTP_AUTHORIZATION' => 'Basic '.base64_encode('Test Client ID:TestSecret'), 'REQUEST_METHOD' => 'POST'); + $params = array('grant_type' => 'client_credentials'); + $request = new Request(array(), $params, array(), array(), array(), $headers); + $token = $server->grantAccessToken($request, new Response()); + + $this->assertNotNull($token); + $this->assertArrayHasKey('access_token', $token); + $this->assertNotNull($token['access_token']); + + // create using PHP Authorization Globals + $headers = array('PHP_AUTH_USER' => 'Test Client ID', 'PHP_AUTH_PW' => 'TestSecret', 'REQUEST_METHOD' => 'POST'); + $params = array('grant_type' => 'client_credentials'); + $request = new Request(array(), $params, array(), array(), array(), $headers); + $token = $server->grantAccessToken($request, new Response()); + + $this->assertNotNull($token); + $this->assertArrayHasKey('access_token', $token); + $this->assertNotNull($token['access_token']); + } + + public function testValidCredentialsInRequest() + { + $server = $this->getTestServer(); + $request = TestRequest::createPost(array( + 'grant_type' => 'client_credentials', // valid grant type + 'client_id' => 'Test Client ID', // valid client id + 'client_secret' => 'TestSecret', // valid client secret + )); + $token = $server->grantAccessToken($request, new Response()); + + $this->assertNotNull($token); + $this->assertArrayHasKey('access_token', $token); + $this->assertNotNull($token['access_token']); + } + + public function testValidCredentialsInQuerystring() + { + $server = $this->getTestServer(); + $request = TestRequest::createPost(array( + 'grant_type' => 'client_credentials', // valid grant type + 'client_id' => 'Test Client ID', // valid client id + 'client_secret' => 'TestSecret', // valid client secret + )); + $token = $server->grantAccessToken($request, new Response()); + + $this->assertNotNull($token); + $this->assertArrayHasKey('access_token', $token); + $this->assertNotNull($token['access_token']); + } + + public function testClientUserIdIsSetInAccessToken() + { + $server = $this->getTestServer(); + $request = TestRequest::createPost(array( + 'grant_type' => 'client_credentials', // valid grant type + 'client_id' => 'Client ID With User ID', // valid client id + 'client_secret' => 'TestSecret', // valid client secret + )); + $token = $server->grantAccessToken($request, new Response()); + + $this->assertNotNull($token); + $this->assertArrayHasKey('access_token', $token); + + // verify the user_id was associated with the token + $storage = $server->getStorage('client'); + $token = $storage->getAccessToken($token['access_token']); + $this->assertNotNull($token); + $this->assertArrayHasKey('user_id', $token); + $this->assertEquals($token['user_id'], 'brent@brentertainment.com'); + } + + private function getTestServer() + { + $storage = Bootstrap::getInstance()->getMemoryStorage(); + $server = new Server($storage); + $server->addGrantType(new ClientCredentials($storage)); + + return $server; + } +} diff --git a/library/oauth2/test/OAuth2/GrantType/ImplicitTest.php b/library/oauth2/test/OAuth2/GrantType/ImplicitTest.php new file mode 100644 index 000000000..a47aae3e8 --- /dev/null +++ b/library/oauth2/test/OAuth2/GrantType/ImplicitTest.php @@ -0,0 +1,143 @@ +getTestServer(); + $request = new Request(array( + 'client_id' => 'Test Client ID', // valid client id + 'redirect_uri' => 'http://adobe.com', // valid redirect URI + 'response_type' => 'token', // invalid response type + )); + $server->handleAuthorizeRequest($request, $response = new Response(), false); + + $this->assertEquals($response->getStatusCode(), 302); + $location = $response->getHttpHeader('Location'); + $parts = parse_url($location); + parse_str($parts['query'], $query); + + $this->assertEquals($query['error'], 'unsupported_response_type'); + $this->assertEquals($query['error_description'], 'implicit grant type not supported'); + } + + public function testUserDeniesAccessResponse() + { + $server = $this->getTestServer(array('allow_implicit' => true)); + $request = new Request(array( + 'client_id' => 'Test Client ID', // valid client id + 'redirect_uri' => 'http://adobe.com', // valid redirect URI + 'response_type' => 'token', // valid response type + 'state' => 'xyz', + )); + $server->handleAuthorizeRequest($request, $response = new Response(), false); + + $this->assertEquals($response->getStatusCode(), 302); + $location = $response->getHttpHeader('Location'); + $parts = parse_url($location); + parse_str($parts['query'], $query); + + $this->assertEquals($query['error'], 'access_denied'); + $this->assertEquals($query['error_description'], 'The user denied access to your application'); + } + + public function testSuccessfulRequestFragmentParameter() + { + $server = $this->getTestServer(array('allow_implicit' => true)); + $request = new Request(array( + 'client_id' => 'Test Client ID', // valid client id + 'redirect_uri' => 'http://adobe.com', // valid redirect URI + 'response_type' => 'token', // valid response type + 'state' => 'xyz', + )); + $server->handleAuthorizeRequest($request, $response = new Response(), true); + + $this->assertEquals($response->getStatusCode(), 302); + $this->assertNull($response->getParameter('error')); + $this->assertNull($response->getParameter('error_description')); + + $location = $response->getHttpHeader('Location'); + $parts = parse_url($location); + + $this->assertEquals('http', $parts['scheme']); // same as passed in to redirect_uri + $this->assertEquals('adobe.com', $parts['host']); // same as passed in to redirect_uri + $this->assertArrayHasKey('fragment', $parts); + $this->assertFalse(isset($parts['query'])); + + // assert fragment is in "application/x-www-form-urlencoded" format + parse_str($parts['fragment'], $params); + $this->assertNotNull($params); + $this->assertArrayHasKey('access_token', $params); + $this->assertArrayHasKey('expires_in', $params); + $this->assertArrayHasKey('token_type', $params); + } + + public function testSuccessfulRequestReturnsStateParameter() + { + $server = $this->getTestServer(array('allow_implicit' => true)); + $request = new Request(array( + 'client_id' => 'Test Client ID', // valid client id + 'redirect_uri' => 'http://adobe.com', // valid redirect URI + 'response_type' => 'token', // valid response type + 'state' => 'test', // valid state string (just needs to be passed back to us) + )); + $server->handleAuthorizeRequest($request, $response = new Response(), true); + + $this->assertEquals($response->getStatusCode(), 302); + $this->assertNull($response->getParameter('error')); + $this->assertNull($response->getParameter('error_description')); + + $location = $response->getHttpHeader('Location'); + $parts = parse_url($location); + $this->assertArrayHasKey('fragment', $parts); + parse_str($parts['fragment'], $params); + + $this->assertArrayHasKey('state', $params); + $this->assertEquals($params['state'], 'test'); + } + + public function testSuccessfulRequestStripsExtraParameters() + { + $server = $this->getTestServer(array('allow_implicit' => true)); + $request = new Request(array( + 'client_id' => 'Test Client ID', // valid client id + 'redirect_uri' => 'http://adobe.com?fake=something', // valid redirect URI + 'response_type' => 'token', // valid response type + 'state' => 'test', // valid state string (just needs to be passed back to us) + 'fake' => 'something', // add extra param to querystring + )); + $server->handleAuthorizeRequest($request, $response = new Response(), true); + + $this->assertEquals($response->getStatusCode(), 302); + $this->assertNull($response->getParameter('error')); + $this->assertNull($response->getParameter('error_description')); + + $location = $response->getHttpHeader('Location'); + $parts = parse_url($location); + $this->assertFalse(isset($parts['fake'])); + $this->assertArrayHasKey('fragment', $parts); + parse_str($parts['fragment'], $params); + + $this->assertFalse(isset($params['fake'])); + $this->assertArrayHasKey('state', $params); + $this->assertEquals($params['state'], 'test'); + } + + private function getTestServer($config = array()) + { + $storage = Bootstrap::getInstance()->getMemoryStorage(); + $server = new Server($storage, $config); + + // Add the two types supported for authorization grant + $server->addGrantType(new AuthorizationCode($storage)); + + return $server; + } +} diff --git a/library/oauth2/test/OAuth2/GrantType/JwtBearerTest.php b/library/oauth2/test/OAuth2/GrantType/JwtBearerTest.php new file mode 100644 index 000000000..0a6c4b827 --- /dev/null +++ b/library/oauth2/test/OAuth2/GrantType/JwtBearerTest.php @@ -0,0 +1,360 @@ +privateKey = <<getTestServer(); + $request = TestRequest::createPost(array( + 'grant_type' => 'urn:ietf:params:oauth:grant-type:jwt-bearer', // valid grant type + )); + + //Get the jwt and break it + $jwt = $this->getJWT(); + $jwt = substr_replace($jwt, 'broken', 3, 6); + + $request->request['assertion'] = $jwt; + + $server->grantAccessToken($request, $response = new Response()); + + $this->assertEquals($response->getStatusCode(), 400); + $this->assertEquals($response->getParameter('error'), 'invalid_request'); + $this->assertEquals($response->getParameter('error_description'), 'JWT is malformed'); + } + + public function testBrokenSignature() + { + $server = $this->getTestServer(); + $request = TestRequest::createPost(array( + 'grant_type' => 'urn:ietf:params:oauth:grant-type:jwt-bearer', // valid grant type + )); + + //Get the jwt and break signature + $jwt = $this->getJWT() . 'notSupposeToBeHere'; + $request->request['assertion'] = $jwt; + + $server->grantAccessToken($request, $response = new Response()); + + $this->assertEquals($response->getStatusCode(), 400); + $this->assertEquals($response->getParameter('error'), 'invalid_grant'); + $this->assertEquals($response->getParameter('error_description'), 'JWT failed signature verification'); + } + + public function testExpiredJWT() + { + $server = $this->getTestServer(); + $request = TestRequest::createPost(array( + 'grant_type' => 'urn:ietf:params:oauth:grant-type:jwt-bearer', // valid grant type + )); + + //Get an expired JWT + $jwt = $this->getJWT(1234); + $request->request['assertion'] = $jwt; + + $server->grantAccessToken($request, $response = new Response()); + + $this->assertEquals($response->getStatusCode(), 400); + $this->assertEquals($response->getParameter('error'), 'invalid_grant'); + $this->assertEquals($response->getParameter('error_description'), 'JWT has expired'); + } + + public function testBadExp() + { + $server = $this->getTestServer(); + $request = TestRequest::createPost(array( + 'grant_type' => 'urn:ietf:params:oauth:grant-type:jwt-bearer', // valid grant type + )); + + //Get an expired JWT + $jwt = $this->getJWT('badtimestamp'); + $request->request['assertion'] = $jwt; + + $server->grantAccessToken($request, $response = new Response()); + + $this->assertEquals($response->getStatusCode(), 400); + $this->assertEquals($response->getParameter('error'), 'invalid_grant'); + $this->assertEquals($response->getParameter('error_description'), 'Expiration (exp) time must be a unix time stamp'); + } + + public function testNoAssert() + { + $server = $this->getTestServer(); + $request = TestRequest::createPost(array( + 'grant_type' => 'urn:ietf:params:oauth:grant-type:jwt-bearer', // valid grant type + )); + + //Do not pass the assert (JWT) + + $server->grantAccessToken($request, $response = new Response()); + + $this->assertEquals($response->getStatusCode(), 400); + $this->assertEquals($response->getParameter('error'), 'invalid_request'); + $this->assertEquals($response->getParameter('error_description'), 'Missing parameters: "assertion" required'); + } + + public function testNotBefore() + { + $server = $this->getTestServer(); + $request = TestRequest::createPost(array( + 'grant_type' => 'urn:ietf:params:oauth:grant-type:jwt-bearer', // valid grant type + )); + + //Get a future NBF + $jwt = $this->getJWT(null, time() + 10000); + $request->request['assertion'] = $jwt; + + $server->grantAccessToken($request, $response = new Response()); + + $this->assertEquals($response->getStatusCode(), 400); + $this->assertEquals($response->getParameter('error'), 'invalid_grant'); + $this->assertEquals($response->getParameter('error_description'), 'JWT cannot be used before the Not Before (nbf) time'); + } + + public function testBadNotBefore() + { + $server = $this->getTestServer(); + $request = TestRequest::createPost(array( + 'grant_type' => 'urn:ietf:params:oauth:grant-type:jwt-bearer', // valid grant type + )); + + //Get a non timestamp nbf + $jwt = $this->getJWT(null, 'notatimestamp'); + $request->request['assertion'] = $jwt; + + $server->grantAccessToken($request, $response = new Response()); + + $this->assertEquals($response->getStatusCode(), 400); + $this->assertEquals($response->getParameter('error'), 'invalid_grant'); + $this->assertEquals($response->getParameter('error_description'), 'Not Before (nbf) time must be a unix time stamp'); + } + + public function testNonMatchingAudience() + { + $server = $this->getTestServer('http://google.com/oauth/o/auth'); + $request = TestRequest::createPost(array( + 'grant_type' => 'urn:ietf:params:oauth:grant-type:jwt-bearer', // valid grant type + 'assertion' => $this->getJWT(), + )); + + $server->grantAccessToken($request, $response = new Response()); + + $this->assertEquals($response->getStatusCode(), 400); + $this->assertEquals($response->getParameter('error'), 'invalid_grant'); + $this->assertEquals($response->getParameter('error_description'), 'Invalid audience (aud)'); + } + + public function testBadClientID() + { + $server = $this->getTestServer(); + $request = TestRequest::createPost(array( + 'grant_type' => 'urn:ietf:params:oauth:grant-type:jwt-bearer', // valid grant type + 'assertion' => $this->getJWT(null, null, null, 'bad_client_id'), + )); + + $server->grantAccessToken($request, $response = new Response()); + + $this->assertEquals($response->getStatusCode(), 400); + $this->assertEquals($response->getParameter('error'), 'invalid_grant'); + $this->assertEquals($response->getParameter('error_description'), 'Invalid issuer (iss) or subject (sub) provided'); + } + + public function testBadSubject() + { + $server = $this->getTestServer(); + $request = TestRequest::createPost(array( + 'grant_type' => 'urn:ietf:params:oauth:grant-type:jwt-bearer', // valid grant type + 'assertion' => $this->getJWT(null, null, 'anotheruser@ourdomain,com'), + )); + + $server->grantAccessToken($request, $response = new Response()); + + $this->assertEquals($response->getStatusCode(), 400); + $this->assertEquals($response->getParameter('error'), 'invalid_grant'); + $this->assertEquals($response->getParameter('error_description'), 'Invalid issuer (iss) or subject (sub) provided'); + } + + public function testMissingKey() + { + $server = $this->getTestServer(); + $request = TestRequest::createPost(array( + 'grant_type' => 'urn:ietf:params:oauth:grant-type:jwt-bearer', // valid grant type + 'assertion' => $this->getJWT(null, null, null, 'Missing Key Cli,nt'), + )); + + $server->grantAccessToken($request, $response = new Response()); + + $this->assertEquals($response->getStatusCode(), 400); + $this->assertEquals($response->getParameter('error'), 'invalid_grant'); + $this->assertEquals($response->getParameter('error_description'), 'Invalid issuer (iss) or subject (sub) provided'); + } + + public function testValidJwt() + { + $server = $this->getTestServer(); + $request = TestRequest::createPost(array( + 'grant_type' => 'urn:ietf:params:oauth:grant-type:jwt-bearer', // valid grant type + 'assertion' => $this->getJWT(), // valid assertion + )); + + $token = $server->grantAccessToken($request, new Response()); + $this->assertNotNull($token); + $this->assertArrayHasKey('access_token', $token); + } + + public function testValidJwtWithScope() + { + $server = $this->getTestServer(); + $request = TestRequest::createPost(array( + 'grant_type' => 'urn:ietf:params:oauth:grant-type:jwt-bearer', // valid grant type + 'assertion' => $this->getJWT(null, null, null, 'Test Client ID'), // valid assertion + 'scope' => 'scope1', // valid scope + )); + $token = $server->grantAccessToken($request, new Response()); + + $this->assertNotNull($token); + $this->assertArrayHasKey('access_token', $token); + $this->assertArrayHasKey('scope', $token); + $this->assertEquals($token['scope'], 'scope1'); + } + + public function testValidJwtInvalidScope() + { + $server = $this->getTestServer(); + $request = TestRequest::createPost(array( + 'grant_type' => 'urn:ietf:params:oauth:grant-type:jwt-bearer', // valid grant type + 'assertion' => $this->getJWT(null, null, null, 'Test Client ID'), // valid assertion + 'scope' => 'invalid-scope', // invalid scope + )); + $token = $server->grantAccessToken($request, $response = new Response()); + + $this->assertEquals($response->getStatusCode(), 400); + $this->assertEquals($response->getParameter('error'), 'invalid_scope'); + $this->assertEquals($response->getParameter('error_description'), 'An unsupported scope was requested'); + } + + public function testValidJti() + { + $server = $this->getTestServer(); + $request = TestRequest::createPost(array( + 'grant_type' => 'urn:ietf:params:oauth:grant-type:jwt-bearer', // valid grant type + 'assertion' => $this->getJWT(null, null, 'testuser@ourdomain.com', 'Test Client ID', 'unused_jti'), // valid assertion with invalid scope + )); + $token = $server->grantAccessToken($request, $response = new Response()); + + $this->assertNotNull($token); + $this->assertArrayHasKey('access_token', $token); + } + + public function testInvalidJti() + { + $server = $this->getTestServer(); + $request = TestRequest::createPost(array( + 'grant_type' => 'urn:ietf:params:oauth:grant-type:jwt-bearer', // valid grant type + 'assertion' => $this->getJWT(99999999900, null, 'testuser@ourdomain.com', 'Test Client ID', 'used_jti'), // valid assertion with invalid scope + )); + $token = $server->grantAccessToken($request, $response = new Response()); + + $this->assertEquals($response->getStatusCode(), 400); + $this->assertEquals($response->getParameter('error'), 'invalid_grant'); + $this->assertEquals($response->getParameter('error_description'), 'JSON Token Identifier (jti) has already been used'); + } + + public function testJtiReplayAttack() + { + $server = $this->getTestServer(); + $request = TestRequest::createPost(array( + 'grant_type' => 'urn:ietf:params:oauth:grant-type:jwt-bearer', // valid grant type + 'assertion' => $this->getJWT(99999999900, null, 'testuser@ourdomain.com', 'Test Client ID', 'totally_new_jti'), // valid assertion with invalid scope + )); + $token = $server->grantAccessToken($request, $response = new Response()); + + $this->assertNotNull($token); + $this->assertArrayHasKey('access_token', $token); + + //Replay the same request + $token = $server->grantAccessToken($request, $response = new Response()); + + $this->assertEquals($response->getStatusCode(), 400); + $this->assertEquals($response->getParameter('error'), 'invalid_grant'); + $this->assertEquals($response->getParameter('error_description'), 'JSON Token Identifier (jti) has already been used'); + } + + /** + * Generates a JWT + * @param $exp The expiration date. If the current time is greater than the exp, the JWT is invalid. + * @param $nbf The "not before" time. If the current time is less than the nbf, the JWT is invalid. + * @param $sub The subject we are acting on behalf of. This could be the email address of the user in the system. + * @param $iss The issuer, usually the client_id. + * @return string + */ + private function getJWT($exp = null, $nbf = null, $sub = null, $iss = 'Test Client ID', $jti = null) + { + if (!$exp) { + $exp = time() + 1000; + } + + if (!$sub) { + $sub = "testuser@ourdomain.com"; + } + + $params = array( + 'iss' => $iss, + 'exp' => $exp, + 'iat' => time(), + 'sub' => $sub, + 'aud' => 'http://myapp.com/oauth/auth', + ); + + if ($nbf) { + $params['nbf'] = $nbf; + } + + if ($jti) { + $params['jti'] = $jti; + } + + $jwtUtil = new Jwt(); + + return $jwtUtil->encode($params, $this->privateKey, 'RS256'); + } + + private function getTestServer($audience = 'http://myapp.com/oauth/auth') + { + $storage = Bootstrap::getInstance()->getMemoryStorage(); + $server = new Server($storage); + $server->addGrantType(new JwtBearer($storage, $audience, new Jwt())); + + return $server; + } +} diff --git a/library/oauth2/test/OAuth2/GrantType/RefreshTokenTest.php b/library/oauth2/test/OAuth2/GrantType/RefreshTokenTest.php new file mode 100644 index 000000000..a458aad8a --- /dev/null +++ b/library/oauth2/test/OAuth2/GrantType/RefreshTokenTest.php @@ -0,0 +1,204 @@ +getTestServer(); + $server->addGrantType(new RefreshToken($this->storage)); + + $request = TestRequest::createPost(array( + 'grant_type' => 'refresh_token', // valid grant type + 'client_id' => 'Test Client ID', // valid client id + 'client_secret' => 'TestSecret', // valid client secret + )); + $server->grantAccessToken($request, $response = new Response()); + + $this->assertEquals($response->getStatusCode(), 400); + $this->assertEquals($response->getParameter('error'), 'invalid_request'); + $this->assertEquals($response->getParameter('error_description'), 'Missing parameter: "refresh_token" is required'); + } + + public function testInvalidRefreshToken() + { + $server = $this->getTestServer(); + $server->addGrantType(new RefreshToken($this->storage)); + + $request = TestRequest::createPost(array( + 'grant_type' => 'refresh_token', // valid grant type + 'client_id' => 'Test Client ID', // valid client id + 'client_secret' => 'TestSecret', // valid client secret + 'refresh_token' => 'fake-token', // invalid refresh token + )); + $server->grantAccessToken($request, $response = new Response()); + + $this->assertEquals($response->getStatusCode(), 400); + $this->assertEquals($response->getParameter('error'), 'invalid_grant'); + $this->assertEquals($response->getParameter('error_description'), 'Invalid refresh token'); + } + + public function testValidRefreshTokenWithNewRefreshTokenInResponse() + { + $server = $this->getTestServer(); + $server->addGrantType(new RefreshToken($this->storage, array('always_issue_new_refresh_token' => true))); + + $request = TestRequest::createPost(array( + 'grant_type' => 'refresh_token', // valid grant type + 'client_id' => 'Test Client ID', // valid client id + 'client_secret' => 'TestSecret', // valid client secret + 'refresh_token' => 'test-refreshtoken', // valid refresh token + )); + $token = $server->grantAccessToken($request, new Response()); + $this->assertTrue(isset($token['refresh_token']), 'refresh token should always refresh'); + + $refresh_token = $this->storage->getRefreshToken($token['refresh_token']); + $this->assertNotNull($refresh_token); + $this->assertEquals($refresh_token['refresh_token'], $token['refresh_token']); + $this->assertEquals($refresh_token['client_id'], $request->request('client_id')); + $this->assertTrue($token['refresh_token'] != 'test-refreshtoken', 'the refresh token returned is not the one used'); + $used_token = $this->storage->getRefreshToken('test-refreshtoken'); + $this->assertFalse($used_token, 'the refresh token used is no longer valid'); + } + + public function testValidRefreshTokenDoesNotUnsetToken() + { + $server = $this->getTestServer(); + $server->addGrantType(new RefreshToken($this->storage, array( + 'always_issue_new_refresh_token' => true, + 'unset_refresh_token_after_use' => false, + ))); + + $request = TestRequest::createPost(array( + 'grant_type' => 'refresh_token', // valid grant type + 'client_id' => 'Test Client ID', // valid client id + 'client_secret' => 'TestSecret', // valid client secret + 'refresh_token' => 'test-refreshtoken', // valid refresh token + )); + $token = $server->grantAccessToken($request, new Response()); + $this->assertTrue(isset($token['refresh_token']), 'refresh token should always refresh'); + + $used_token = $this->storage->getRefreshToken('test-refreshtoken'); + $this->assertNotNull($used_token, 'the refresh token used is still valid'); + } + + public function testValidRefreshTokenWithNoRefreshTokenInResponse() + { + $server = $this->getTestServer(); + $server->addGrantType(new RefreshToken($this->storage, array('always_issue_new_refresh_token' => false))); + + $request = TestRequest::createPost(array( + 'grant_type' => 'refresh_token', // valid grant type + 'client_id' => 'Test Client ID', // valid client id + 'client_secret' => 'TestSecret', // valid client secret + 'refresh_token' => 'test-refreshtoken', // valid refresh token + )); + $token = $server->grantAccessToken($request, new Response()); + $this->assertFalse(isset($token['refresh_token']), 'refresh token should not be returned'); + + $used_token = $this->storage->getRefreshToken('test-refreshtoken'); + $this->assertNotNull($used_token, 'the refresh token used is still valid'); + } + + public function testValidRefreshTokenSameScope() + { + $server = $this->getTestServer(); + $request = TestRequest::createPost(array( + 'grant_type' => 'refresh_token', // valid grant type + 'client_id' => 'Test Client ID', // valid client id + 'client_secret' => 'TestSecret', // valid client secret + 'refresh_token' => 'test-refreshtoken-with-scope', // valid refresh token (with scope) + 'scope' => 'scope2 scope1', + )); + $token = $server->grantAccessToken($request, new Response()); + + $this->assertNotNull($token); + $this->assertArrayHasKey('access_token', $token); + $this->assertArrayHasKey('scope', $token); + $this->assertEquals($token['scope'], 'scope2 scope1'); + } + + public function testValidRefreshTokenLessScope() + { + $server = $this->getTestServer(); + $request = TestRequest::createPost(array( + 'grant_type' => 'refresh_token', // valid grant type + 'client_id' => 'Test Client ID', // valid client id + 'client_secret' => 'TestSecret', // valid client secret + 'refresh_token' => 'test-refreshtoken-with-scope', // valid refresh token (with scope) + 'scope' => 'scope1', + )); + $token = $server->grantAccessToken($request, new Response()); + + $this->assertNotNull($token); + $this->assertArrayHasKey('access_token', $token); + $this->assertArrayHasKey('scope', $token); + $this->assertEquals($token['scope'], 'scope1'); + } + + public function testValidRefreshTokenDifferentScope() + { + $server = $this->getTestServer(); + $request = TestRequest::createPost(array( + 'grant_type' => 'refresh_token', // valid grant type + 'client_id' => 'Test Client ID', // valid client id + 'client_secret' => 'TestSecret', // valid client secret + 'refresh_token' => 'test-refreshtoken-with-scope', // valid refresh token (with scope) + 'scope' => 'scope3', + )); + $token = $server->grantAccessToken($request, $response = new Response()); + + $this->assertEquals($response->getStatusCode(), 400); + $this->assertEquals($response->getParameter('error'), 'invalid_scope'); + $this->assertEquals($response->getParameter('error_description'), 'The scope requested is invalid for this request'); + } + + public function testValidRefreshTokenInvalidScope() + { + $server = $this->getTestServer(); + $request = TestRequest::createPost(array( + 'grant_type' => 'refresh_token', // valid grant type + 'client_id' => 'Test Client ID', // valid client id + 'client_secret' => 'TestSecret', // valid client secret + 'refresh_token' => 'test-refreshtoken-with-scope', // valid refresh token (with scope) + 'scope' => 'invalid-scope', + )); + $token = $server->grantAccessToken($request, $response = new Response()); + + $this->assertEquals($response->getStatusCode(), 400); + $this->assertEquals($response->getParameter('error'), 'invalid_scope'); + $this->assertEquals($response->getParameter('error_description'), 'The scope requested is invalid for this request'); + } + + public function testValidClientDifferentRefreshToken() + { + $server = $this->getTestServer(); + $request = TestRequest::createPost(array( + 'grant_type' => 'refresh_token', // valid grant type + 'client_id' => 'Test Some Other Client', // valid client id + 'client_secret' => 'TestSecret3', // valid client secret + 'refresh_token' => 'test-refreshtoken', // valid refresh token + )); + $token = $server->grantAccessToken($request, $response = new Response()); + + $this->assertEquals($response->getStatusCode(), 400); + $this->assertEquals($response->getParameter('error'), 'invalid_grant'); + $this->assertEquals($response->getParameter('error_description'), 'refresh_token doesn\'t exist or is invalid for the client'); + } + + private function getTestServer() + { + $this->storage = Bootstrap::getInstance()->getMemoryStorage(); + $server = new Server($this->storage); + + return $server; + } +} diff --git a/library/oauth2/test/OAuth2/GrantType/UserCredentialsTest.php b/library/oauth2/test/OAuth2/GrantType/UserCredentialsTest.php new file mode 100644 index 000000000..18943d055 --- /dev/null +++ b/library/oauth2/test/OAuth2/GrantType/UserCredentialsTest.php @@ -0,0 +1,172 @@ +getTestServer(); + $request = TestRequest::createPost(array( + 'grant_type' => 'password', // valid grant type + 'client_id' => 'Test Client ID', // valid client id + 'client_secret' => 'TestSecret', // valid client secret + 'password' => 'testpass', // valid password + )); + $server->grantAccessToken($request, $response = new Response()); + + $this->assertEquals($response->getStatusCode(), 400); + $this->assertEquals($response->getParameter('error'), 'invalid_request'); + $this->assertEquals($response->getParameter('error_description'), 'Missing parameters: "username" and "password" required'); + } + + public function testNoPassword() + { + $server = $this->getTestServer(); + $request = TestRequest::createPost(array( + 'grant_type' => 'password', // valid grant type + 'client_id' => 'Test Client ID', // valid client id + 'client_secret' => 'TestSecret', // valid client secret + 'username' => 'test-username', // valid username + )); + $server->grantAccessToken($request, $response = new Response()); + + $this->assertEquals($response->getStatusCode(), 400); + $this->assertEquals($response->getParameter('error'), 'invalid_request'); + $this->assertEquals($response->getParameter('error_description'), 'Missing parameters: "username" and "password" required'); + } + + public function testInvalidUsername() + { + $server = $this->getTestServer(); + $request = TestRequest::createPost(array( + 'grant_type' => 'password', // valid grant type + 'client_id' => 'Test Client ID', // valid client id + 'client_secret' => 'TestSecret', // valid client secret + 'username' => 'fake-username', // valid username + 'password' => 'testpass', // valid password + )); + $token = $server->grantAccessToken($request, $response = new Response()); + + $this->assertEquals($response->getStatusCode(), 401); + $this->assertEquals($response->getParameter('error'), 'invalid_grant'); + $this->assertEquals($response->getParameter('error_description'), 'Invalid username and password combination'); + } + + public function testInvalidPassword() + { + $server = $this->getTestServer(); + $request = TestRequest::createPost(array( + 'grant_type' => 'password', // valid grant type + 'client_id' => 'Test Client ID', // valid client id + 'client_secret' => 'TestSecret', // valid client secret + 'username' => 'test-username', // valid username + 'password' => 'fakepass', // invalid password + )); + $token = $server->grantAccessToken($request, $response = new Response()); + + $this->assertEquals($response->getStatusCode(), 401); + $this->assertEquals($response->getParameter('error'), 'invalid_grant'); + $this->assertEquals($response->getParameter('error_description'), 'Invalid username and password combination'); + } + + public function testValidCredentials() + { + $server = $this->getTestServer(); + $request = TestRequest::createPost(array( + 'grant_type' => 'password', // valid grant type + 'client_id' => 'Test Client ID', // valid client id + 'client_secret' => 'TestSecret', // valid client secret + 'username' => 'test-username', // valid username + 'password' => 'testpass', // valid password + )); + $token = $server->grantAccessToken($request, new Response()); + + $this->assertNotNull($token); + $this->assertArrayHasKey('access_token', $token); + } + + public function testValidCredentialsWithScope() + { + $server = $this->getTestServer(); + $request = TestRequest::createPost(array( + 'grant_type' => 'password', // valid grant type + 'client_id' => 'Test Client ID', // valid client id + 'client_secret' => 'TestSecret', // valid client secret + 'username' => 'test-username', // valid username + 'password' => 'testpass', // valid password + 'scope' => 'scope1', // valid scope + )); + $token = $server->grantAccessToken($request, new Response()); + + $this->assertNotNull($token); + $this->assertArrayHasKey('access_token', $token); + $this->assertArrayHasKey('scope', $token); + $this->assertEquals($token['scope'], 'scope1'); + } + + public function testValidCredentialsInvalidScope() + { + $server = $this->getTestServer(); + $request = TestRequest::createPost(array( + 'grant_type' => 'password', // valid grant type + 'client_id' => 'Test Client ID', // valid client id + 'client_secret' => 'TestSecret', // valid client secret + 'username' => 'test-username', // valid username + 'password' => 'testpass', // valid password + 'scope' => 'invalid-scope', + )); + $token = $server->grantAccessToken($request, $response = new Response()); + + $this->assertEquals($response->getStatusCode(), 400); + $this->assertEquals($response->getParameter('error'), 'invalid_scope'); + $this->assertEquals($response->getParameter('error_description'), 'An unsupported scope was requested'); + } + + public function testNoSecretWithPublicClient() + { + $server = $this->getTestServer(); + $request = TestRequest::createPost(array( + 'grant_type' => 'password', // valid grant type + 'client_id' => 'Test Client ID Empty Secret', // valid public client + 'username' => 'test-username', // valid username + 'password' => 'testpass', // valid password + )); + + $token = $server->grantAccessToken($request, $response = new Response()); + + $this->assertNotNull($token); + $this->assertArrayHasKey('access_token', $token); + } + + public function testNoSecretWithConfidentialClient() + { + $server = $this->getTestServer(); + $request = TestRequest::createPost(array( + 'grant_type' => 'password', // valid grant type + 'client_id' => 'Test Client ID', // valid public client + 'username' => 'test-username', // valid username + 'password' => 'testpass', // valid password + )); + + $token = $server->grantAccessToken($request, $response = new Response()); + + $this->assertEquals($response->getStatusCode(), 400); + $this->assertEquals($response->getParameter('error'), 'invalid_client'); + $this->assertEquals($response->getParameter('error_description'), 'This client is invalid or must authenticate using a client secret'); + } + + private function getTestServer() + { + $storage = Bootstrap::getInstance()->getMemoryStorage(); + $server = new Server($storage); + $server->addGrantType(new UserCredentials($storage)); + + return $server; + } +} diff --git a/library/oauth2/test/OAuth2/OpenID/Controller/AuthorizeControllerTest.php b/library/oauth2/test/OAuth2/OpenID/Controller/AuthorizeControllerTest.php new file mode 100644 index 000000000..46de936d8 --- /dev/null +++ b/library/oauth2/test/OAuth2/OpenID/Controller/AuthorizeControllerTest.php @@ -0,0 +1,182 @@ +getTestServer(); + + $response = new Response(); + $request = new Request(array( + 'client_id' => 'Test Client ID', // valid client id + 'redirect_uri' => 'http://adobe.com', // valid redirect URI + 'response_type' => 'id_token', + 'state' => 'af0ifjsldkj', + 'nonce' => 'n-0S6_WzA2Mj', + )); + + // Test valid id_token request + $server->handleAuthorizeRequest($request, $response, true); + + $parts = parse_url($response->getHttpHeader('Location')); + parse_str($parts['fragment'], $query); + + $this->assertEquals('n-0S6_WzA2Mj', $server->getAuthorizeController()->getNonce()); + $this->assertEquals($query['state'], 'af0ifjsldkj'); + + $this->assertArrayHasKey('id_token', $query); + $this->assertArrayHasKey('state', $query); + $this->assertArrayNotHasKey('access_token', $query); + $this->assertArrayNotHasKey('expires_in', $query); + $this->assertArrayNotHasKey('token_type', $query); + + // Test valid token id_token request + $request->query['response_type'] = 'id_token token'; + $server->handleAuthorizeRequest($request, $response, true); + + $parts = parse_url($response->getHttpHeader('Location')); + parse_str($parts['fragment'], $query); + + $this->assertEquals('n-0S6_WzA2Mj', $server->getAuthorizeController()->getNonce()); + $this->assertEquals($query['state'], 'af0ifjsldkj'); + + $this->assertArrayHasKey('access_token', $query); + $this->assertArrayHasKey('expires_in', $query); + $this->assertArrayHasKey('token_type', $query); + $this->assertArrayHasKey('state', $query); + $this->assertArrayHasKey('id_token', $query); + + // assert that with multiple-valued response types, order does not matter + $request->query['response_type'] = 'token id_token'; + $server->handleAuthorizeRequest($request, $response, true); + + $parts = parse_url($response->getHttpHeader('Location')); + parse_str($parts['fragment'], $query); + + $this->assertEquals('n-0S6_WzA2Mj', $server->getAuthorizeController()->getNonce()); + $this->assertEquals($query['state'], 'af0ifjsldkj'); + + $this->assertArrayHasKey('access_token', $query); + $this->assertArrayHasKey('expires_in', $query); + $this->assertArrayHasKey('token_type', $query); + $this->assertArrayHasKey('state', $query); + $this->assertArrayHasKey('id_token', $query); + + // assert that with multiple-valued response types with extra spaces do not matter + $request->query['response_type'] = ' token id_token '; + $server->handleAuthorizeRequest($request, $response, true); + + $parts = parse_url($response->getHttpHeader('Location')); + parse_str($parts['fragment'], $query); + + $this->assertEquals('n-0S6_WzA2Mj', $server->getAuthorizeController()->getNonce()); + $this->assertEquals($query['state'], 'af0ifjsldkj'); + + $this->assertArrayHasKey('access_token', $query); + $this->assertArrayHasKey('expires_in', $query); + $this->assertArrayHasKey('token_type', $query); + $this->assertArrayHasKey('state', $query); + $this->assertArrayHasKey('id_token', $query); + } + + public function testMissingNonce() + { + $server = $this->getTestServer(); + $authorize = $server->getAuthorizeController(); + + $response = new Response(); + $request = new Request(array( + 'client_id' => 'Test Client ID', // valid client id + 'redirect_uri' => 'http://adobe.com', // valid redirect URI + 'response_type' => 'id_token', + 'state' => 'xyz', + )); + + // Test missing nonce for 'id_token' response type + $server->handleAuthorizeRequest($request, $response, true); + $params = $response->getParameters(); + + $this->assertEquals($params['error'], 'invalid_nonce'); + $this->assertEquals($params['error_description'], 'This application requires you specify a nonce parameter'); + + // Test missing nonce for 'id_token token' response type + $request->query['response_type'] = 'id_token token'; + $server->handleAuthorizeRequest($request, $response, true); + $params = $response->getParameters(); + + $this->assertEquals($params['error'], 'invalid_nonce'); + $this->assertEquals($params['error_description'], 'This application requires you specify a nonce parameter'); + } + + public function testNotGrantedApplication() + { + $server = $this->getTestServer(); + + $response = new Response(); + $request = new Request(array( + 'client_id' => 'Test Client ID', // valid client id + 'redirect_uri' => 'http://adobe.com', // valid redirect URI + 'response_type' => 'id_token', + 'state' => 'af0ifjsldkj', + 'nonce' => 'n-0S6_WzA2Mj', + )); + + // Test not approved application + $server->handleAuthorizeRequest($request, $response, false); + + $params = $response->getParameters(); + + $this->assertEquals($params['error'], 'consent_required'); + $this->assertEquals($params['error_description'], 'The user denied access to your application'); + + // Test not approved application with prompt parameter + $request->query['prompt'] = 'none'; + $server->handleAuthorizeRequest($request, $response, false); + + $params = $response->getParameters(); + + $this->assertEquals($params['error'], 'login_required'); + $this->assertEquals($params['error_description'], 'The user must log in'); + + // Test not approved application with user_id set + $request->query['prompt'] = 'none'; + $server->handleAuthorizeRequest($request, $response, false, 'some-user-id'); + + $params = $response->getParameters(); + + $this->assertEquals($params['error'], 'interaction_required'); + $this->assertEquals($params['error_description'], 'The user must grant access to your application'); + } + + public function testNeedsIdToken() + { + $server = $this->getTestServer(); + $authorize = $server->getAuthorizeController(); + + $this->assertTrue($authorize->needsIdToken('openid')); + $this->assertTrue($authorize->needsIdToken('openid profile')); + $this->assertFalse($authorize->needsIdToken('')); + $this->assertFalse($authorize->needsIdToken('some-scope')); + } + + private function getTestServer($config = array()) + { + $config += array( + 'use_openid_connect' => true, + 'issuer' => 'phpunit', + 'allow_implicit' => true + ); + + $storage = Bootstrap::getInstance()->getMemoryStorage(); + $server = new Server($storage, $config); + + return $server; + } +} diff --git a/library/oauth2/test/OAuth2/OpenID/Controller/UserInfoControllerTest.php b/library/oauth2/test/OAuth2/OpenID/Controller/UserInfoControllerTest.php new file mode 100644 index 000000000..b1b687077 --- /dev/null +++ b/library/oauth2/test/OAuth2/OpenID/Controller/UserInfoControllerTest.php @@ -0,0 +1,44 @@ +handleUserInfoRequest(new Request(), $response); + $this->assertEquals(401, $response->getStatusCode()); + } + + public function testValidToken() + { + $server = $this->getTestServer(); + $request = Request::createFromGlobals(); + $request->headers['AUTHORIZATION'] = 'Bearer accesstoken-openid-connect'; + $response = new Response(); + + $server->handleUserInfoRequest($request, $response); + $parameters = $response->getParameters(); + $this->assertEquals($parameters['sub'], 'testuser'); + $this->assertEquals($parameters['email'], 'testuser@test.com'); + $this->assertEquals($parameters['email_verified'], true); + } + + private function getTestServer($config = array()) + { + $storage = Bootstrap::getInstance()->getMemoryStorage(); + $server = new Server($storage, $config); + + return $server; + } +} diff --git a/library/oauth2/test/OAuth2/OpenID/GrantType/AuthorizationCodeTest.php b/library/oauth2/test/OAuth2/OpenID/GrantType/AuthorizationCodeTest.php new file mode 100644 index 000000000..776002d1e --- /dev/null +++ b/library/oauth2/test/OAuth2/OpenID/GrantType/AuthorizationCodeTest.php @@ -0,0 +1,57 @@ +getTestServer(); + $request = TestRequest::createPost(array( + 'grant_type' => 'authorization_code', // valid grant type + 'client_id' => 'Test Client ID', // valid client id + 'client_secret' => 'TestSecret', // valid client secret + 'code' => 'testcode-openid', // valid code + )); + $token = $server->grantAccessToken($request, new Response()); + + $this->assertNotNull($token); + $this->assertArrayHasKey('id_token', $token); + $this->assertEquals('test_id_token', $token['id_token']); + + // this is only true if "offline_access" was requested + $this->assertFalse(isset($token['refresh_token'])); + } + + public function testOfflineAccess() + { + $server = $this->getTestServer(); + $request = TestRequest::createPost(array( + 'grant_type' => 'authorization_code', // valid grant type + 'client_id' => 'Test Client ID', // valid client id + 'client_secret' => 'TestSecret', // valid client secret + 'code' => 'testcode-openid', // valid code + 'scope' => 'offline_access', // valid code + )); + $token = $server->grantAccessToken($request, new Response()); + + $this->assertNotNull($token); + $this->assertArrayHasKey('id_token', $token); + $this->assertEquals('test_id_token', $token['id_token']); + $this->assertTrue(isset($token['refresh_token'])); + } + + private function getTestServer() + { + $storage = Bootstrap::getInstance()->getMemoryStorage(); + $server = new Server($storage, array('use_openid_connect' => true)); + $server->addGrantType(new AuthorizationCode($storage)); + + return $server; + } +} diff --git a/library/oauth2/test/OAuth2/OpenID/ResponseType/CodeIdTokenTest.php b/library/oauth2/test/OAuth2/OpenID/ResponseType/CodeIdTokenTest.php new file mode 100644 index 000000000..b0311434a --- /dev/null +++ b/library/oauth2/test/OAuth2/OpenID/ResponseType/CodeIdTokenTest.php @@ -0,0 +1,182 @@ +getTestServer(); + + $request = new Request(array( + 'response_type' => 'code id_token', + 'redirect_uri' => 'http://adobe.com', + 'client_id' => 'Test Client ID', + 'scope' => 'openid', + 'state' => 'test', + 'nonce' => 'test', + )); + + $server->handleAuthorizeRequest($request, $response = new Response(), true); + + $this->assertEquals($response->getStatusCode(), 302); + $location = $response->getHttpHeader('Location'); + $this->assertNotContains('error', $location); + + $parts = parse_url($location); + $this->assertArrayHasKey('query', $parts); + + // assert fragment is in "application/x-www-form-urlencoded" format + parse_str($parts['query'], $params); + $this->assertNotNull($params); + $this->assertArrayHasKey('id_token', $params); + $this->assertArrayHasKey('code', $params); + + // validate ID Token + $parts = explode('.', $params['id_token']); + foreach ($parts as &$part) { + // Each part is a base64url encoded json string. + $part = str_replace(array('-', '_'), array('+', '/'), $part); + $part = base64_decode($part); + $part = json_decode($part, true); + } + list($header, $claims, $signature) = $parts; + + $this->assertArrayHasKey('iss', $claims); + $this->assertArrayHasKey('sub', $claims); + $this->assertArrayHasKey('aud', $claims); + $this->assertArrayHasKey('iat', $claims); + $this->assertArrayHasKey('exp', $claims); + $this->assertArrayHasKey('auth_time', $claims); + $this->assertArrayHasKey('nonce', $claims); + + // only exists if an access token was granted along with the id_token + $this->assertArrayNotHasKey('at_hash', $claims); + + $this->assertEquals($claims['iss'], 'test'); + $this->assertEquals($claims['aud'], 'Test Client ID'); + $this->assertEquals($claims['nonce'], 'test'); + $duration = $claims['exp'] - $claims['iat']; + $this->assertEquals($duration, 3600); + } + + public function testUserClaimsWithUserId() + { + // add the test parameters in memory + $server = $this->getTestServer(); + + $request = new Request(array( + 'response_type' => 'code id_token', + 'redirect_uri' => 'http://adobe.com', + 'client_id' => 'Test Client ID', + 'scope' => 'openid email', + 'state' => 'test', + 'nonce' => 'test', + )); + + $userId = 'testuser'; + $server->handleAuthorizeRequest($request, $response = new Response(), true, $userId); + + $this->assertEquals($response->getStatusCode(), 302); + $location = $response->getHttpHeader('Location'); + $this->assertNotContains('error', $location); + + $parts = parse_url($location); + $this->assertArrayHasKey('query', $parts); + + // assert fragment is in "application/x-www-form-urlencoded" format + parse_str($parts['query'], $params); + $this->assertNotNull($params); + $this->assertArrayHasKey('id_token', $params); + $this->assertArrayHasKey('code', $params); + + // validate ID Token + $parts = explode('.', $params['id_token']); + foreach ($parts as &$part) { + // Each part is a base64url encoded json string. + $part = str_replace(array('-', '_'), array('+', '/'), $part); + $part = base64_decode($part); + $part = json_decode($part, true); + } + list($header, $claims, $signature) = $parts; + + $this->assertArrayHasKey('email', $claims); + $this->assertArrayHasKey('email_verified', $claims); + $this->assertNotNull($claims['email']); + $this->assertNotNull($claims['email_verified']); + } + + public function testUserClaimsWithoutUserId() + { + // add the test parameters in memory + $server = $this->getTestServer(); + + $request = new Request(array( + 'response_type' => 'code id_token', + 'redirect_uri' => 'http://adobe.com', + 'client_id' => 'Test Client ID', + 'scope' => 'openid email', + 'state' => 'test', + 'nonce' => 'test', + )); + + $userId = null; + $server->handleAuthorizeRequest($request, $response = new Response(), true, $userId); + + $this->assertEquals($response->getStatusCode(), 302); + $location = $response->getHttpHeader('Location'); + $this->assertNotContains('error', $location); + + $parts = parse_url($location); + $this->assertArrayHasKey('query', $parts); + + // assert fragment is in "application/x-www-form-urlencoded" format + parse_str($parts['query'], $params); + $this->assertNotNull($params); + $this->assertArrayHasKey('id_token', $params); + $this->assertArrayHasKey('code', $params); + + // validate ID Token + $parts = explode('.', $params['id_token']); + foreach ($parts as &$part) { + // Each part is a base64url encoded json string. + $part = str_replace(array('-', '_'), array('+', '/'), $part); + $part = base64_decode($part); + $part = json_decode($part, true); + } + list($header, $claims, $signature) = $parts; + + $this->assertArrayNotHasKey('email', $claims); + $this->assertArrayNotHasKey('email_verified', $claims); + } + + private function getTestServer($config = array()) + { + $config += array( + 'use_openid_connect' => true, + 'issuer' => 'test', + 'id_lifetime' => 3600, + 'allow_implicit' => true, + ); + + $memoryStorage = Bootstrap::getInstance()->getMemoryStorage(); + $memoryStorage->supportedScopes[] = 'email'; + $responseTypes = array( + 'code' => $code = new AuthorizationCode($memoryStorage), + 'id_token' => $idToken = new IdToken($memoryStorage, $memoryStorage, $config), + 'code id_token' => new CodeIdToken($code, $idToken), + ); + + $server = new Server($memoryStorage, $config, array(), $responseTypes); + $server->addGrantType(new ClientCredentials($memoryStorage)); + + return $server; + } +} diff --git a/library/oauth2/test/OAuth2/OpenID/ResponseType/IdTokenTest.php b/library/oauth2/test/OAuth2/OpenID/ResponseType/IdTokenTest.php new file mode 100644 index 000000000..e772f6be4 --- /dev/null +++ b/library/oauth2/test/OAuth2/OpenID/ResponseType/IdTokenTest.php @@ -0,0 +1,184 @@ + 'id_token', + 'redirect_uri' => 'http://adobe.com', + 'client_id' => 'Test Client ID', + 'scope' => 'openid', + 'state' => 'test', + ); + + // attempt to do the request without a nonce. + $server = $this->getTestServer(array('allow_implicit' => true)); + $request = new Request($query); + $valid = $server->validateAuthorizeRequest($request, $response = new Response()); + + // Add a nonce and retry. + $query['nonce'] = 'test'; + $request = new Request($query); + $valid = $server->validateAuthorizeRequest($request, $response = new Response()); + $this->assertTrue($valid); + } + + public function testHandleAuthorizeRequest() + { + // add the test parameters in memory + $server = $this->getTestServer(array('allow_implicit' => true)); + $request = new Request(array( + 'response_type' => 'id_token', + 'redirect_uri' => 'http://adobe.com', + 'client_id' => 'Test Client ID', + 'scope' => 'openid email', + 'state' => 'test', + 'nonce' => 'test', + )); + + $user_id = 'testuser'; + $server->handleAuthorizeRequest($request, $response = new Response(), true, $user_id); + + $this->assertEquals($response->getStatusCode(), 302); + $location = $response->getHttpHeader('Location'); + $this->assertNotContains('error', $location); + + $parts = parse_url($location); + $this->assertArrayHasKey('fragment', $parts); + $this->assertFalse(isset($parts['query'])); + + // assert fragment is in "application/x-www-form-urlencoded" format + parse_str($parts['fragment'], $params); + $this->assertNotNull($params); + $this->assertArrayHasKey('id_token', $params); + $this->assertArrayNotHasKey('access_token', $params); + $this->validateIdToken($params['id_token']); + } + + public function testPassInAuthTime() + { + $server = $this->getTestServer(array('allow_implicit' => true)); + $request = new Request(array( + 'response_type' => 'id_token', + 'redirect_uri' => 'http://adobe.com', + 'client_id' => 'Test Client ID', + 'scope' => 'openid email', + 'state' => 'test', + 'nonce' => 'test', + )); + + // test with a scalar user id + $user_id = 'testuser123'; + $server->handleAuthorizeRequest($request, $response = new Response(), true, $user_id); + + list($header, $payload, $signature) = $this->extractTokenDataFromResponse($response); + + $this->assertTrue(is_array($payload)); + $this->assertArrayHasKey('sub', $payload); + $this->assertEquals($user_id, $payload['sub']); + $this->assertArrayHasKey('auth_time', $payload); + + // test with an array of user info + $userInfo = array( + 'user_id' => 'testuser1234', + 'auth_time' => date('Y-m-d H:i:s', strtotime('20 minutes ago') + )); + + $server->handleAuthorizeRequest($request, $response = new Response(), true, $userInfo); + + list($header, $payload, $signature) = $this->extractTokenDataFromResponse($response); + + $this->assertTrue(is_array($payload)); + $this->assertArrayHasKey('sub', $payload); + $this->assertEquals($userInfo['user_id'], $payload['sub']); + $this->assertArrayHasKey('auth_time', $payload); + $this->assertEquals($userInfo['auth_time'], $payload['auth_time']); + } + + private function extractTokenDataFromResponse(Response $response) + { + $this->assertEquals($response->getStatusCode(), 302); + $location = $response->getHttpHeader('Location'); + $this->assertNotContains('error', $location); + + $parts = parse_url($location); + $this->assertArrayHasKey('fragment', $parts); + $this->assertFalse(isset($parts['query'])); + + parse_str($parts['fragment'], $params); + $this->assertNotNull($params); + $this->assertArrayHasKey('id_token', $params); + $this->assertArrayNotHasKey('access_token', $params); + + list($headb64, $payloadb64, $signature) = explode('.', $params['id_token']); + + $jwt = new Jwt(); + $header = json_decode($jwt->urlSafeB64Decode($headb64), true); + $payload = json_decode($jwt->urlSafeB64Decode($payloadb64), true); + + return array($header, $payload, $signature); + } + + private function validateIdToken($id_token) + { + $parts = explode('.', $id_token); + foreach ($parts as &$part) { + // Each part is a base64url encoded json string. + $part = str_replace(array('-', '_'), array('+', '/'), $part); + $part = base64_decode($part); + $part = json_decode($part, true); + } + list($header, $claims, $signature) = $parts; + + $this->assertArrayHasKey('iss', $claims); + $this->assertArrayHasKey('sub', $claims); + $this->assertArrayHasKey('aud', $claims); + $this->assertArrayHasKey('iat', $claims); + $this->assertArrayHasKey('exp', $claims); + $this->assertArrayHasKey('auth_time', $claims); + $this->assertArrayHasKey('nonce', $claims); + $this->assertArrayHasKey('email', $claims); + $this->assertArrayHasKey('email_verified', $claims); + + $this->assertEquals($claims['iss'], 'test'); + $this->assertEquals($claims['aud'], 'Test Client ID'); + $this->assertEquals($claims['nonce'], 'test'); + $this->assertEquals($claims['email'], 'testuser@test.com'); + $duration = $claims['exp'] - $claims['iat']; + $this->assertEquals($duration, 3600); + } + + private function getTestServer($config = array()) + { + $config += array( + 'use_openid_connect' => true, + 'issuer' => 'test', + 'id_lifetime' => 3600, + ); + + $memoryStorage = Bootstrap::getInstance()->getMemoryStorage(); + $memoryStorage->supportedScopes[] = 'email'; + $storage = array( + 'client' => $memoryStorage, + 'scope' => $memoryStorage, + ); + $responseTypes = array( + 'id_token' => new IdToken($memoryStorage, $memoryStorage, $config), + ); + + $server = new Server($storage, $config, array(), $responseTypes); + $server->addGrantType(new ClientCredentials($memoryStorage)); + + return $server; + } +} diff --git a/library/oauth2/test/OAuth2/OpenID/ResponseType/IdTokenTokenTest.php b/library/oauth2/test/OAuth2/OpenID/ResponseType/IdTokenTokenTest.php new file mode 100644 index 000000000..bc564d37b --- /dev/null +++ b/library/oauth2/test/OAuth2/OpenID/ResponseType/IdTokenTokenTest.php @@ -0,0 +1,91 @@ +getTestServer(array('allow_implicit' => true)); + + $request = new Request(array( + 'response_type' => 'id_token token', + 'redirect_uri' => 'http://adobe.com', + 'client_id' => 'Test Client ID', + 'scope' => 'openid', + 'state' => 'test', + 'nonce' => 'test', + )); + + $server->handleAuthorizeRequest($request, $response = new Response(), true); + + $this->assertEquals($response->getStatusCode(), 302); + $location = $response->getHttpHeader('Location'); + $this->assertNotContains('error', $location); + + $parts = parse_url($location); + $this->assertArrayHasKey('fragment', $parts); + $this->assertFalse(isset($parts['query'])); + + // assert fragment is in "application/x-www-form-urlencoded" format + parse_str($parts['fragment'], $params); + $this->assertNotNull($params); + $this->assertArrayHasKey('id_token', $params); + $this->assertArrayHasKey('access_token', $params); + + // validate ID Token + $parts = explode('.', $params['id_token']); + foreach ($parts as &$part) { + // Each part is a base64url encoded json string. + $part = str_replace(array('-', '_'), array('+', '/'), $part); + $part = base64_decode($part); + $part = json_decode($part, true); + } + list($header, $claims, $signature) = $parts; + + $this->assertArrayHasKey('iss', $claims); + $this->assertArrayHasKey('sub', $claims); + $this->assertArrayHasKey('aud', $claims); + $this->assertArrayHasKey('iat', $claims); + $this->assertArrayHasKey('exp', $claims); + $this->assertArrayHasKey('auth_time', $claims); + $this->assertArrayHasKey('nonce', $claims); + $this->assertArrayHasKey('at_hash', $claims); + + $this->assertEquals($claims['iss'], 'test'); + $this->assertEquals($claims['aud'], 'Test Client ID'); + $this->assertEquals($claims['nonce'], 'test'); + $duration = $claims['exp'] - $claims['iat']; + $this->assertEquals($duration, 3600); + } + + private function getTestServer($config = array()) + { + $config += array( + 'use_openid_connect' => true, + 'issuer' => 'test', + 'id_lifetime' => 3600, + ); + + $memoryStorage = Bootstrap::getInstance()->getMemoryStorage(); + $responseTypes = array( + 'token' => $token = new AccessToken($memoryStorage, $memoryStorage), + 'id_token' => $idToken = new IdToken($memoryStorage, $memoryStorage, $config), + 'id_token token' => new IdTokenToken($token, $idToken), + ); + + $server = new Server($memoryStorage, $config, array(), $responseTypes); + $server->addGrantType(new ClientCredentials($memoryStorage)); + + return $server; + } +} diff --git a/library/oauth2/test/OAuth2/OpenID/Storage/AuthorizationCodeTest.php b/library/oauth2/test/OAuth2/OpenID/Storage/AuthorizationCodeTest.php new file mode 100644 index 000000000..bdfb085e3 --- /dev/null +++ b/library/oauth2/test/OAuth2/OpenID/Storage/AuthorizationCodeTest.php @@ -0,0 +1,95 @@ +markTestSkipped('Skipped Storage: ' . $storage->getMessage()); + + return; + } + + if (!$storage instanceof AuthorizationCodeInterface) { + return; + } + + // assert code we are about to add does not exist + $code = $storage->getAuthorizationCode('new-openid-code'); + $this->assertFalse($code); + + // add new code + $expires = time() + 20; + $scope = null; + $id_token = 'fake_id_token'; + $success = $storage->setAuthorizationCode('new-openid-code', 'client ID', 'SOMEUSERID', 'http://example.com', $expires, $scope, $id_token); + $this->assertTrue($success); + + $code = $storage->getAuthorizationCode('new-openid-code'); + $this->assertNotNull($code); + $this->assertArrayHasKey('authorization_code', $code); + $this->assertArrayHasKey('client_id', $code); + $this->assertArrayHasKey('user_id', $code); + $this->assertArrayHasKey('redirect_uri', $code); + $this->assertArrayHasKey('expires', $code); + $this->assertEquals($code['authorization_code'], 'new-openid-code'); + $this->assertEquals($code['client_id'], 'client ID'); + $this->assertEquals($code['user_id'], 'SOMEUSERID'); + $this->assertEquals($code['redirect_uri'], 'http://example.com'); + $this->assertEquals($code['expires'], $expires); + $this->assertEquals($code['id_token'], $id_token); + + // change existing code + $expires = time() + 42; + $new_id_token = 'fake_id_token-2'; + $success = $storage->setAuthorizationCode('new-openid-code', 'client ID2', 'SOMEOTHERID', 'http://example.org', $expires, $scope, $new_id_token); + $this->assertTrue($success); + + $code = $storage->getAuthorizationCode('new-openid-code'); + $this->assertNotNull($code); + $this->assertArrayHasKey('authorization_code', $code); + $this->assertArrayHasKey('client_id', $code); + $this->assertArrayHasKey('user_id', $code); + $this->assertArrayHasKey('redirect_uri', $code); + $this->assertArrayHasKey('expires', $code); + $this->assertEquals($code['authorization_code'], 'new-openid-code'); + $this->assertEquals($code['client_id'], 'client ID2'); + $this->assertEquals($code['user_id'], 'SOMEOTHERID'); + $this->assertEquals($code['redirect_uri'], 'http://example.org'); + $this->assertEquals($code['expires'], $expires); + $this->assertEquals($code['id_token'], $new_id_token); + } + + /** @dataProvider provideStorage */ + public function testRemoveIdTokenFromAuthorizationCode($storage) + { + // add new code + $expires = time() + 20; + $scope = null; + $id_token = 'fake_id_token_to_remove'; + $authcode = 'new-openid-code-'.rand(); + $success = $storage->setAuthorizationCode($authcode, 'client ID', 'SOMEUSERID', 'http://example.com', $expires, $scope, $id_token); + $this->assertTrue($success); + + // verify params were set + $code = $storage->getAuthorizationCode($authcode); + $this->assertNotNull($code); + $this->assertArrayHasKey('id_token', $code); + $this->assertEquals($code['id_token'], $id_token); + + // remove the id_token + $success = $storage->setAuthorizationCode($authcode, 'client ID', 'SOMEUSERID', 'http://example.com', $expires, $scope, null); + + // verify the "id_token" is now null + $code = $storage->getAuthorizationCode($authcode); + $this->assertNotNull($code); + $this->assertArrayHasKey('id_token', $code); + $this->assertEquals($code['id_token'], null); + } +} diff --git a/library/oauth2/test/OAuth2/OpenID/Storage/UserClaimsTest.php b/library/oauth2/test/OAuth2/OpenID/Storage/UserClaimsTest.php new file mode 100644 index 000000000..840f6c566 --- /dev/null +++ b/library/oauth2/test/OAuth2/OpenID/Storage/UserClaimsTest.php @@ -0,0 +1,41 @@ +markTestSkipped('Skipped Storage: ' . $storage->getMessage()); + + return; + } + + if (!$storage instanceof UserClaimsInterface) { + // incompatible storage + return; + } + + // invalid user + $claims = $storage->getUserClaims('fake-user', ''); + $this->assertFalse($claims); + + // valid user (no scope) + $claims = $storage->getUserClaims('testuser', ''); + + /* assert the decoded token is the same */ + $this->assertFalse(isset($claims['email'])); + + // valid user + $claims = $storage->getUserClaims('testuser', 'email'); + + /* assert the decoded token is the same */ + $this->assertEquals($claims['email'], "testuser@test.com"); + $this->assertEquals($claims['email_verified'], true); + } +} diff --git a/library/oauth2/test/OAuth2/RequestTest.php b/library/oauth2/test/OAuth2/RequestTest.php new file mode 100644 index 000000000..10db3215c --- /dev/null +++ b/library/oauth2/test/OAuth2/RequestTest.php @@ -0,0 +1,98 @@ +getTestServer(); + + // Smoke test for override request class + // $server->handleTokenRequest($request, $response = new Response()); + // $this->assertInstanceOf('Response', $response); + // $server->handleAuthorizeRequest($request, $response = new Response(), true); + // $this->assertInstanceOf('Response', $response); + // $response = $server->verifyResourceRequest($request, $response = new Response()); + // $this->assertTrue(is_bool($response)); + + /*** make some valid requests ***/ + + // Valid Token Request + $request->setPost(array( + 'grant_type' => 'authorization_code', + 'client_id' => 'Test Client ID', + 'client_secret' => 'TestSecret', + 'code' => 'testcode', + )); + $server->handleTokenRequest($request, $response = new Response()); + $this->assertEquals($response->getStatusCode(), 200); + $this->assertNull($response->getParameter('error')); + $this->assertNotNUll($response->getParameter('access_token')); + } + + public function testHeadersReturnsValueByKey() + { + $request = new Request( + array(), + array(), + array(), + array(), + array(), + array(), + array(), + array('AUTHORIZATION' => 'Basic secret') + ); + + $this->assertEquals('Basic secret', $request->headers('AUTHORIZATION')); + } + + public function testHeadersReturnsDefaultIfHeaderNotPresent() + { + $request = new Request(); + + $this->assertEquals('Bearer', $request->headers('AUTHORIZATION', 'Bearer')); + } + + public function testHeadersIsCaseInsensitive() + { + $request = new Request( + array(), + array(), + array(), + array(), + array(), + array(), + array(), + array('AUTHORIZATION' => 'Basic secret') + ); + + $this->assertEquals('Basic secret', $request->headers('Authorization')); + } + + public function testRequestReturnsPostParamIfNoQueryParamAvailable() + { + $request = new Request( + array(), + array('client_id' => 'correct') + ); + + $this->assertEquals('correct', $request->query('client_id', $request->request('client_id'))); + } + + private function getTestServer($config = array()) + { + $storage = Bootstrap::getInstance()->getMemoryStorage(); + $server = new Server($storage, $config); + + // Add the two types supported for authorization grant + $server->addGrantType(new AuthorizationCode($storage)); + + return $server; + } +} diff --git a/library/oauth2/test/OAuth2/ResponseTest.php b/library/oauth2/test/OAuth2/ResponseTest.php new file mode 100644 index 000000000..b8149005d --- /dev/null +++ b/library/oauth2/test/OAuth2/ResponseTest.php @@ -0,0 +1,17 @@ + 'bar', + 'halland' => 'oates', + )); + + $string = $response->getResponseBody('xml'); + $this->assertContains('baroates', $string); + } +} diff --git a/library/oauth2/test/OAuth2/ResponseType/AccessTokenTest.php b/library/oauth2/test/OAuth2/ResponseType/AccessTokenTest.php new file mode 100644 index 000000000..0ed1c82fc --- /dev/null +++ b/library/oauth2/test/OAuth2/ResponseType/AccessTokenTest.php @@ -0,0 +1,107 @@ + array( + 'revoke' => array('mytoken'), + ), + )); + + $this->assertEquals(array('mytoken'), $tokenStorage->getAccessToken('revoke')); + $accessToken = new AccessToken($tokenStorage); + $accessToken->revokeToken('revoke', 'access_token'); + $this->assertFalse($tokenStorage->getAccessToken('revoke')); + } + + public function testRevokeAccessTokenWithoutTypeHint() + { + $tokenStorage = new Memory(array( + 'access_tokens' => array( + 'revoke' => array('mytoken'), + ), + )); + + $this->assertEquals(array('mytoken'), $tokenStorage->getAccessToken('revoke')); + $accessToken = new AccessToken($tokenStorage); + $accessToken->revokeToken('revoke'); + $this->assertFalse($tokenStorage->getAccessToken('revoke')); + } + + public function testRevokeRefreshTokenWithTypeHint() + { + $tokenStorage = new Memory(array( + 'refresh_tokens' => array( + 'revoke' => array('mytoken'), + ), + )); + + $this->assertEquals(array('mytoken'), $tokenStorage->getRefreshToken('revoke')); + $accessToken = new AccessToken(new Memory, $tokenStorage); + $accessToken->revokeToken('revoke', 'refresh_token'); + $this->assertFalse($tokenStorage->getRefreshToken('revoke')); + } + + public function testRevokeRefreshTokenWithoutTypeHint() + { + $tokenStorage = new Memory(array( + 'refresh_tokens' => array( + 'revoke' => array('mytoken'), + ), + )); + + $this->assertEquals(array('mytoken'), $tokenStorage->getRefreshToken('revoke')); + $accessToken = new AccessToken(new Memory, $tokenStorage); + $accessToken->revokeToken('revoke'); + $this->assertFalse($tokenStorage->getRefreshToken('revoke')); + } + + public function testRevokeAccessTokenWithRefreshTokenTypeHint() + { + $tokenStorage = new Memory(array( + 'access_tokens' => array( + 'revoke' => array('mytoken'), + ), + )); + + $this->assertEquals(array('mytoken'), $tokenStorage->getAccessToken('revoke')); + $accessToken = new AccessToken($tokenStorage); + $accessToken->revokeToken('revoke', 'refresh_token'); + $this->assertFalse($tokenStorage->getAccessToken('revoke')); + } + + public function testRevokeAccessTokenWithBogusTypeHint() + { + $tokenStorage = new Memory(array( + 'access_tokens' => array( + 'revoke' => array('mytoken'), + ), + )); + + $this->assertEquals(array('mytoken'), $tokenStorage->getAccessToken('revoke')); + $accessToken = new AccessToken($tokenStorage); + $accessToken->revokeToken('revoke', 'foo'); + $this->assertFalse($tokenStorage->getAccessToken('revoke')); + } + + public function testRevokeRefreshTokenWithBogusTypeHint() + { + $tokenStorage = new Memory(array( + 'refresh_tokens' => array( + 'revoke' => array('mytoken'), + ), + )); + + $this->assertEquals(array('mytoken'), $tokenStorage->getRefreshToken('revoke')); + $accessToken = new AccessToken(new Memory, $tokenStorage); + $accessToken->revokeToken('revoke', 'foo'); + $this->assertFalse($tokenStorage->getRefreshToken('revoke')); + } +} diff --git a/library/oauth2/test/OAuth2/ResponseType/JwtAccessTokenTest.php b/library/oauth2/test/OAuth2/ResponseType/JwtAccessTokenTest.php new file mode 100644 index 000000000..51b01a927 --- /dev/null +++ b/library/oauth2/test/OAuth2/ResponseType/JwtAccessTokenTest.php @@ -0,0 +1,160 @@ +getTestServer(); + $jwtResponseType = $server->getResponseType('token'); + + $accessToken = $jwtResponseType->createAccessToken('Test Client ID', 123, 'test', false); + $jwt = new Jwt; + $decodedAccessToken = $jwt->decode($accessToken['access_token'], null, false); + + $this->assertArrayHasKey('id', $decodedAccessToken); + $this->assertArrayHasKey('jti', $decodedAccessToken); + $this->assertArrayHasKey('iss', $decodedAccessToken); + $this->assertArrayHasKey('aud', $decodedAccessToken); + $this->assertArrayHasKey('exp', $decodedAccessToken); + $this->assertArrayHasKey('iat', $decodedAccessToken); + $this->assertArrayHasKey('token_type', $decodedAccessToken); + $this->assertArrayHasKey('scope', $decodedAccessToken); + + $this->assertEquals('https://api.example.com', $decodedAccessToken['iss']); + $this->assertEquals('Test Client ID', $decodedAccessToken['aud']); + $this->assertEquals(123, $decodedAccessToken['sub']); + $delta = $decodedAccessToken['exp'] - $decodedAccessToken['iat']; + $this->assertEquals(3600, $delta); + $this->assertEquals($decodedAccessToken['id'], $decodedAccessToken['jti']); + } + + public function testGrantJwtAccessToken() + { + // add the test parameters in memory + $server = $this->getTestServer(); + $request = TestRequest::createPost(array( + 'grant_type' => 'client_credentials', // valid grant type + 'client_id' => 'Test Client ID', // valid client id + 'client_secret' => 'TestSecret', // valid client secret + )); + $server->handleTokenRequest($request, $response = new Response()); + + $this->assertNotNull($response->getParameter('access_token')); + $this->assertEquals(2, substr_count($response->getParameter('access_token'), '.')); + } + + public function testAccessResourceWithJwtAccessToken() + { + // add the test parameters in memory + $server = $this->getTestServer(); + $request = TestRequest::createPost(array( + 'grant_type' => 'client_credentials', // valid grant type + 'client_id' => 'Test Client ID', // valid client id + 'client_secret' => 'TestSecret', // valid client secret + )); + $server->handleTokenRequest($request, $response = new Response()); + $this->assertNotNull($JwtAccessToken = $response->getParameter('access_token')); + + // make a call to the resource server using the crypto token + $request = TestRequest::createPost(array( + 'access_token' => $JwtAccessToken, + )); + + $this->assertTrue($server->verifyResourceRequest($request)); + } + + public function testAccessResourceWithJwtAccessTokenUsingSecondaryStorage() + { + // add the test parameters in memory + $server = $this->getTestServer(); + $request = TestRequest::createPost(array( + 'grant_type' => 'client_credentials', // valid grant type + 'client_id' => 'Test Client ID', // valid client id + 'client_secret' => 'TestSecret', // valid client secret + )); + $server->handleTokenRequest($request, $response = new Response()); + $this->assertNotNull($JwtAccessToken = $response->getParameter('access_token')); + + // make a call to the resource server using the crypto token + $request = TestRequest::createPost(array( + 'access_token' => $JwtAccessToken, + )); + + // create a resource server with the "memory" storage from the grant server + $resourceServer = new Server($server->getStorage('client_credentials')); + + $this->assertTrue($resourceServer->verifyResourceRequest($request)); + } + + public function testJwtAccessTokenWithRefreshToken() + { + $server = $this->getTestServer(); + + // add "UserCredentials" grant type and "JwtAccessToken" response type + // and ensure "JwtAccessToken" response type has "RefreshToken" storage + $memoryStorage = Bootstrap::getInstance()->getMemoryStorage(); + $server->addGrantType(new UserCredentials($memoryStorage)); + $server->addGrantType(new RefreshToken($memoryStorage)); + $server->addResponseType(new JwtAccessToken($memoryStorage, $memoryStorage, $memoryStorage), 'token'); + + $request = TestRequest::createPost(array( + 'grant_type' => 'password', // valid grant type + 'client_id' => 'Test Client ID', // valid client id + 'client_secret' => 'TestSecret', // valid client secret + 'username' => 'test-username', // valid username + 'password' => 'testpass', // valid password + )); + + // make the call to grant a crypto token + $server->handleTokenRequest($request, $response = new Response()); + $this->assertNotNull($JwtAccessToken = $response->getParameter('access_token')); + $this->assertNotNull($refreshToken = $response->getParameter('refresh_token')); + + // decode token and make sure refresh_token isn't set + list($header, $payload, $signature) = explode('.', $JwtAccessToken); + $decodedToken = json_decode(base64_decode($payload), true); + $this->assertFalse(array_key_exists('refresh_token', $decodedToken)); + + // use the refresh token to get another access token + $request = TestRequest::createPost(array( + 'grant_type' => 'refresh_token', + 'client_id' => 'Test Client ID', // valid client id + 'client_secret' => 'TestSecret', // valid client secret + 'refresh_token' => $refreshToken, + )); + + $server->handleTokenRequest($request, $response = new Response()); + $this->assertNotNull($response->getParameter('access_token')); + } + + private function getTestServer() + { + $memoryStorage = Bootstrap::getInstance()->getMemoryStorage(); + + $storage = array( + 'access_token' => new JwtAccessTokenStorage($memoryStorage), + 'client' => $memoryStorage, + 'client_credentials' => $memoryStorage, + ); + $server = new Server($storage); + $server->addGrantType(new ClientCredentials($memoryStorage)); + + // make the "token" response type a JwtAccessToken + $config = array('issuer' => 'https://api.example.com'); + $server->addResponseType(new JwtAccessToken($memoryStorage, $memoryStorage, null, $config)); + + return $server; + } +} diff --git a/library/oauth2/test/OAuth2/ScopeTest.php b/library/oauth2/test/OAuth2/ScopeTest.php new file mode 100644 index 000000000..99f9cf6eb --- /dev/null +++ b/library/oauth2/test/OAuth2/ScopeTest.php @@ -0,0 +1,42 @@ +assertFalse($scopeUtil->checkScope('invalid', 'list of scopes')); + $this->assertTrue($scopeUtil->checkScope('valid', 'valid and-some other-scopes')); + $this->assertTrue($scopeUtil->checkScope('valid another-valid', 'valid another-valid and-some other-scopes')); + // all scopes must match + $this->assertFalse($scopeUtil->checkScope('valid invalid', 'valid and-some other-scopes')); + $this->assertFalse($scopeUtil->checkScope('valid valid2 invalid', 'valid valid2 and-some other-scopes')); + } + + public function testScopeStorage() + { + $scopeUtil = new Scope(); + $this->assertEquals($scopeUtil->getDefaultScope(), null); + + $scopeUtil = new Scope(array( + 'default_scope' => 'default', + 'supported_scopes' => array('this', 'that', 'another'), + )); + $this->assertEquals($scopeUtil->getDefaultScope(), 'default'); + $this->assertTrue($scopeUtil->scopeExists('this that another', 'client_id')); + + $memoryStorage = new Memory(array( + 'default_scope' => 'base', + 'supported_scopes' => array('only-this-one'), + )); + $scopeUtil = new Scope($memoryStorage); + + $this->assertEquals($scopeUtil->getDefaultScope(), 'base'); + $this->assertTrue($scopeUtil->scopeExists('only-this-one', 'client_id')); + } +} diff --git a/library/oauth2/test/OAuth2/ServerTest.php b/library/oauth2/test/OAuth2/ServerTest.php new file mode 100644 index 000000000..747e120f5 --- /dev/null +++ b/library/oauth2/test/OAuth2/ServerTest.php @@ -0,0 +1,684 @@ +getAuthorizeController(); + } + + /** + * @expectedException LogicException OAuth2\Storage\AccessTokenInterface + **/ + public function testGetAuthorizeControllerWithNoAccessTokenStorageThrowsException() + { + // must set AccessToken or AuthorizationCode + $server = new Server(); + $server->addStorage($this->getMock('OAuth2\Storage\ClientInterface')); + $server->getAuthorizeController(); + } + + public function testGetAuthorizeControllerWithClientStorageAndAccessTokenResponseType() + { + // must set AccessToken or AuthorizationCode + $server = new Server(); + $server->addStorage($this->getMock('OAuth2\Storage\ClientInterface')); + $server->addResponseType($this->getMock('OAuth2\ResponseType\AccessTokenInterface')); + + $this->assertNotNull($server->getAuthorizeController()); + } + + public function testGetAuthorizeControllerWithClientStorageAndAuthorizationCodeResponseType() + { + // must set AccessToken or AuthorizationCode + $server = new Server(); + $server->addStorage($this->getMock('OAuth2\Storage\ClientInterface')); + $server->addResponseType($this->getMock('OAuth2\ResponseType\AuthorizationCodeInterface')); + + $this->assertNotNull($server->getAuthorizeController()); + } + + /** + * @expectedException LogicException allow_implicit + **/ + public function testGetAuthorizeControllerWithClientStorageAndAccessTokenStorageThrowsException() + { + // must set AuthorizationCode or AccessToken / implicit + $server = new Server(); + $server->addStorage($this->getMock('OAuth2\Storage\ClientInterface')); + $server->addStorage($this->getMock('OAuth2\Storage\AccessTokenInterface')); + + $this->assertNotNull($server->getAuthorizeController()); + } + + public function testGetAuthorizeControllerWithClientStorageAndAccessTokenStorage() + { + // must set AuthorizationCode or AccessToken / implicit + $server = new Server(array(), array('allow_implicit' => true)); + $server->addStorage($this->getMock('OAuth2\Storage\ClientInterface')); + $server->addStorage($this->getMock('OAuth2\Storage\AccessTokenInterface')); + + $this->assertNotNull($server->getAuthorizeController()); + } + + public function testGetAuthorizeControllerWithClientStorageAndAuthorizationCodeStorage() + { + // must set AccessToken or AuthorizationCode + $server = new Server(); + $server->addStorage($this->getMock('OAuth2\Storage\ClientInterface')); + $server->addStorage($this->getMock('OAuth2\Storage\AuthorizationCodeInterface')); + + $this->assertNotNull($server->getAuthorizeController()); + } + + /** + * @expectedException LogicException grant_types + **/ + public function testGetTokenControllerWithGrantTypeStorageThrowsException() + { + $server = new Server(); + $server->getTokenController(); + } + + /** + * @expectedException LogicException OAuth2\Storage\ClientCredentialsInterface + **/ + public function testGetTokenControllerWithNoClientCredentialsStorageThrowsException() + { + $server = new Server(); + $server->addStorage($this->getMock('OAuth2\Storage\UserCredentialsInterface')); + $server->getTokenController(); + } + + /** + * @expectedException LogicException OAuth2\Storage\AccessTokenInterface + **/ + public function testGetTokenControllerWithNoAccessTokenStorageThrowsException() + { + $server = new Server(); + $server->addStorage($this->getMock('OAuth2\Storage\ClientCredentialsInterface')); + $server->getTokenController(); + } + + public function testGetTokenControllerWithAccessTokenAndClientCredentialsStorage() + { + $server = new Server(); + $server->addStorage($this->getMock('OAuth2\Storage\AccessTokenInterface')); + $server->addStorage($this->getMock('OAuth2\Storage\ClientCredentialsInterface')); + $server->getTokenController(); + } + + public function testGetTokenControllerAccessTokenStorageAndClientCredentialsStorageAndGrantTypes() + { + $server = new Server(); + $server->addStorage($this->getMock('OAuth2\Storage\AccessTokenInterface')); + $server->addStorage($this->getMock('OAuth2\Storage\ClientCredentialsInterface')); + $server->addGrantType($this->getMockBuilder('OAuth2\GrantType\AuthorizationCode')->disableOriginalConstructor()->getMock()); + $server->getTokenController(); + } + + /** + * @expectedException LogicException OAuth2\Storage\AccessTokenInterface + **/ + public function testGetResourceControllerWithNoAccessTokenStorageThrowsException() + { + $server = new Server(); + $server->getResourceController(); + } + + public function testGetResourceControllerWithAccessTokenStorage() + { + $server = new Server(); + $server->addStorage($this->getMock('OAuth2\Storage\AccessTokenInterface')); + $server->getResourceController(); + } + + /** + * @expectedException InvalidArgumentException OAuth2\Storage\AccessTokenInterface + **/ + public function testAddingStorageWithInvalidClass() + { + $server = new Server(); + $server->addStorage(new \StdClass()); + } + + /** + * @expectedException InvalidArgumentException access_token + **/ + public function testAddingStorageWithInvalidKey() + { + $server = new Server(); + $server->addStorage($this->getMock('OAuth2\Storage\AccessTokenInterface'), 'nonexistant_storage'); + } + + /** + * @expectedException InvalidArgumentException OAuth2\Storage\AuthorizationCodeInterface + **/ + public function testAddingStorageWithInvalidKeyStorageCombination() + { + $server = new Server(); + $server->addStorage($this->getMock('OAuth2\Storage\AccessTokenInterface'), 'authorization_code'); + } + + public function testAddingStorageWithValidKeyOnlySetsThatKey() + { + $server = new Server(); + $server->addStorage($this->getMock('OAuth2\Storage\Memory'), 'access_token'); + + $reflection = new \ReflectionClass($server); + $prop = $reflection->getProperty('storages'); + $prop->setAccessible(true); + + $storages = $prop->getValue($server); // get the private "storages" property + + $this->assertEquals(1, count($storages)); + $this->assertTrue(isset($storages['access_token'])); + $this->assertFalse(isset($storages['authorization_code'])); + } + + public function testAddingClientStorageSetsClientCredentialsStorageByDefault() + { + $server = new Server(); + $memory = $this->getMock('OAuth2\Storage\Memory'); + $server->addStorage($memory, 'client'); + + $client_credentials = $server->getStorage('client_credentials'); + + $this->assertNotNull($client_credentials); + $this->assertEquals($client_credentials, $memory); + } + + public function testAddStorageWithNullValue() + { + $memory = $this->getMock('OAuth2\Storage\Memory'); + $server = new Server($memory); + $server->addStorage(null, 'refresh_token'); + + $client_credentials = $server->getStorage('client_credentials'); + + $this->assertNotNull($client_credentials); + $this->assertEquals($client_credentials, $memory); + + $refresh_token = $server->getStorage('refresh_token'); + + $this->assertNull($refresh_token); + } + + public function testNewServerWithNullStorageValue() + { + $memory = $this->getMock('OAuth2\Storage\Memory'); + $server = new Server(array( + 'client_credentials' => $memory, + 'refresh_token' => null, + )); + + $client_credentials = $server->getStorage('client_credentials'); + + $this->assertNotNull($client_credentials); + $this->assertEquals($client_credentials, $memory); + + $refresh_token = $server->getStorage('refresh_token'); + + $this->assertNull($refresh_token); + } + + public function testAddingClientCredentialsStorageSetsClientStorageByDefault() + { + $server = new Server(); + $memory = $this->getMock('OAuth2\Storage\Memory'); + $server->addStorage($memory, 'client_credentials'); + + $client = $server->getStorage('client'); + + $this->assertNotNull($client); + $this->assertEquals($client, $memory); + } + + public function testSettingClientStorageByDefaultDoesNotOverrideSetStorage() + { + $server = new Server(); + $pdo = $this->getMockBuilder('OAuth2\Storage\Pdo') + ->disableOriginalConstructor()->getMock(); + + $memory = $this->getMock('OAuth2\Storage\Memory'); + + $server->addStorage($pdo, 'client'); + $server->addStorage($memory, 'client_credentials'); + + $client = $server->getStorage('client'); + $client_credentials = $server->getStorage('client_credentials'); + + $this->assertEquals($client, $pdo); + $this->assertEquals($client_credentials, $memory); + } + + public function testAddingResponseType() + { + $storage = $this->getMock('OAuth2\Storage\Memory'); + $storage + ->expects($this->any()) + ->method('getClientDetails') + ->will($this->returnValue(array('client_id' => 'some_client'))); + $storage + ->expects($this->any()) + ->method('checkRestrictedGrantType') + ->will($this->returnValue(true)); + + // add with the "code" key explicitly set + $codeType = new AuthorizationCode($storage); + $server = new Server(); + $server->addStorage($storage); + $server->addResponseType($codeType); + $request = new Request(array( + 'response_type' => 'code', + 'client_id' => 'some_client', + 'redirect_uri' => 'http://example.com', + 'state' => 'xyx', + )); + $server->handleAuthorizeRequest($request, $response = new Response(), true); + + // the response is successful + $this->assertEquals($response->getStatusCode(), 302); + $parts = parse_url($response->getHttpHeader('Location')); + parse_str($parts['query'], $query); + $this->assertTrue(isset($query['code'])); + $this->assertFalse(isset($query['error'])); + + // add with the "code" key not set + $codeType = new AuthorizationCode($storage); + $server = new Server(array($storage), array(), array(), array($codeType)); + $request = new Request(array( + 'response_type' => 'code', + 'client_id' => 'some_client', + 'redirect_uri' => 'http://example.com', + 'state' => 'xyx', + )); + $server->handleAuthorizeRequest($request, $response = new Response(), true); + + // the response is successful + $this->assertEquals($response->getStatusCode(), 302); + $parts = parse_url($response->getHttpHeader('Location')); + parse_str($parts['query'], $query); + $this->assertTrue(isset($query['code'])); + $this->assertFalse(isset($query['error'])); + } + + public function testCustomClientAssertionType() + { + $request = TestRequest::createPost(array( + 'grant_type' => 'authorization_code', + 'client_id' =>'Test Client ID', + 'code' => 'testcode', + )); + // verify the mock clientAssertionType was called as expected + $clientAssertionType = $this->getMock('OAuth2\ClientAssertionType\ClientAssertionTypeInterface', array('validateRequest', 'getClientId')); + $clientAssertionType + ->expects($this->once()) + ->method('validateRequest') + ->will($this->returnValue(true)); + $clientAssertionType + ->expects($this->once()) + ->method('getClientId') + ->will($this->returnValue('Test Client ID')); + + // create mock storage + $storage = Bootstrap::getInstance()->getMemoryStorage(); + $server = new Server(array($storage), array(), array(), array(), null, null, $clientAssertionType); + $server->handleTokenRequest($request, $response = new Response()); + } + + public function testHttpBasicConfig() + { + // create mock storage + $storage = Bootstrap::getInstance()->getMemoryStorage(); + $server = new Server(array($storage), array( + 'allow_credentials_in_request_body' => false, + 'allow_public_clients' => false + )); + $server->getTokenController(); + $httpBasic = $server->getClientAssertionType(); + + $reflection = new \ReflectionClass($httpBasic); + $prop = $reflection->getProperty('config'); + $prop->setAccessible(true); + + $config = $prop->getValue($httpBasic); // get the private "config" property + + $this->assertEquals($config['allow_credentials_in_request_body'], false); + $this->assertEquals($config['allow_public_clients'], false); + } + + public function testRefreshTokenConfig() + { + // create mock storage + $storage = Bootstrap::getInstance()->getMemoryStorage(); + $server1 = new Server(array($storage)); + $server2 = new Server(array($storage), array('always_issue_new_refresh_token' => true, 'unset_refresh_token_after_use' => false)); + + $server1->getTokenController(); + $refreshToken1 = $server1->getGrantType('refresh_token'); + + $server2->getTokenController(); + $refreshToken2 = $server2->getGrantType('refresh_token'); + + $reflection1 = new \ReflectionClass($refreshToken1); + $prop1 = $reflection1->getProperty('config'); + $prop1->setAccessible(true); + + $reflection2 = new \ReflectionClass($refreshToken2); + $prop2 = $reflection2->getProperty('config'); + $prop2->setAccessible(true); + + // get the private "config" property + $config1 = $prop1->getValue($refreshToken1); + $config2 = $prop2->getValue($refreshToken2); + + $this->assertEquals($config1['always_issue_new_refresh_token'], false); + $this->assertEquals($config2['always_issue_new_refresh_token'], true); + + $this->assertEquals($config1['unset_refresh_token_after_use'], true); + $this->assertEquals($config2['unset_refresh_token_after_use'], false); + } + + /** + * Test setting "always_issue_new_refresh_token" on a server level + * + * @see test/OAuth2/GrantType/RefreshTokenTest::testValidRefreshTokenWithNewRefreshTokenInResponse + **/ + public function testValidRefreshTokenWithNewRefreshTokenInResponse() + { + $storage = Bootstrap::getInstance()->getMemoryStorage(); + $server = new Server($storage, array('always_issue_new_refresh_token' => true)); + + $request = TestRequest::createPost(array( + 'grant_type' => 'refresh_token', // valid grant type + 'client_id' => 'Test Client ID', // valid client id + 'client_secret' => 'TestSecret', // valid client secret + 'refresh_token' => 'test-refreshtoken', // valid refresh token + )); + $token = $server->grantAccessToken($request, new Response()); + $this->assertTrue(isset($token['refresh_token']), 'refresh token should always refresh'); + + $refresh_token = $storage->getRefreshToken($token['refresh_token']); + $this->assertNotNull($refresh_token); + $this->assertEquals($refresh_token['refresh_token'], $token['refresh_token']); + $this->assertEquals($refresh_token['client_id'], $request->request('client_id')); + $this->assertTrue($token['refresh_token'] != 'test-refreshtoken', 'the refresh token returned is not the one used'); + $used_token = $storage->getRefreshToken('test-refreshtoken'); + $this->assertFalse($used_token, 'the refresh token used is no longer valid'); + } + + /** + * @expectedException InvalidArgumentException OAuth2\ResponseType\AuthorizationCodeInterface + **/ + public function testAddingUnknownResponseTypeThrowsException() + { + $server = new Server(); + $server->addResponseType($this->getMock('OAuth2\ResponseType\ResponseTypeInterface')); + } + + /** + * @expectedException LogicException OAuth2\Storage\PublicKeyInterface + **/ + public function testUsingJwtAccessTokensWithoutPublicKeyStorageThrowsException() + { + $server = new Server(array(), array('use_jwt_access_tokens' => true)); + $server->addGrantType($this->getMock('OAuth2\GrantType\GrantTypeInterface')); + $server->addStorage($this->getMock('OAuth2\Storage\ClientCredentialsInterface')); + $server->addStorage($this->getMock('OAuth2\Storage\ClientCredentialsInterface')); + + $server->getTokenController(); + } + + public function testUsingJustJwtAccessTokenStorageWithResourceControllerIsOkay() + { + $pubkey = $this->getMock('OAuth2\Storage\PublicKeyInterface'); + $server = new Server(array($pubkey), array('use_jwt_access_tokens' => true)); + + $this->assertNotNull($server->getResourceController()); + $this->assertInstanceOf('OAuth2\Storage\PublicKeyInterface', $server->getStorage('public_key')); + } + + /** + * @expectedException LogicException OAuth2\Storage\ClientInterface + **/ + public function testUsingJustJwtAccessTokenStorageWithAuthorizeControllerThrowsException() + { + $pubkey = $this->getMock('OAuth2\Storage\PublicKeyInterface'); + $server = new Server(array($pubkey), array('use_jwt_access_tokens' => true)); + $this->assertNotNull($server->getAuthorizeController()); + } + + /** + * @expectedException LogicException grant_types + **/ + public function testUsingJustJwtAccessTokenStorageWithTokenControllerThrowsException() + { + $pubkey = $this->getMock('OAuth2\Storage\PublicKeyInterface'); + $server = new Server(array($pubkey), array('use_jwt_access_tokens' => true)); + $server->getTokenController(); + } + + public function testUsingJwtAccessTokenAndClientStorageWithAuthorizeControllerIsOkay() + { + $pubkey = $this->getMock('OAuth2\Storage\PublicKeyInterface'); + $client = $this->getMock('OAuth2\Storage\ClientInterface'); + $server = new Server(array($pubkey, $client), array('use_jwt_access_tokens' => true, 'allow_implicit' => true)); + $this->assertNotNull($server->getAuthorizeController()); + + $this->assertInstanceOf('OAuth2\ResponseType\JwtAccessToken', $server->getResponseType('token')); + } + + /** + * @expectedException LogicException UserClaims + **/ + public function testUsingOpenIDConnectWithoutUserClaimsThrowsException() + { + $client = $this->getMock('OAuth2\Storage\ClientInterface'); + $server = new Server($client, array('use_openid_connect' => true)); + + $server->getAuthorizeController(); + } + + /** + * @expectedException LogicException PublicKeyInterface + **/ + public function testUsingOpenIDConnectWithoutPublicKeyThrowsException() + { + $client = $this->getMock('OAuth2\Storage\ClientInterface'); + $userclaims = $this->getMock('OAuth2\OPenID\Storage\UserClaimsInterface'); + $server = new Server(array($client, $userclaims), array('use_openid_connect' => true)); + + $server->getAuthorizeController(); + } + + /** + * @expectedException LogicException issuer + **/ + public function testUsingOpenIDConnectWithoutIssuerThrowsException() + { + $client = $this->getMock('OAuth2\Storage\ClientInterface'); + $userclaims = $this->getMock('OAuth2\OpenID\Storage\UserClaimsInterface'); + $pubkey = $this->getMock('OAuth2\Storage\PublicKeyInterface'); + $server = new Server(array($client, $userclaims, $pubkey), array('use_openid_connect' => true)); + + $server->getAuthorizeController(); + } + + public function testUsingOpenIDConnectWithIssuerPublicKeyAndUserClaimsIsOkay() + { + $client = $this->getMock('OAuth2\Storage\ClientInterface'); + $userclaims = $this->getMock('OAuth2\OpenID\Storage\UserClaimsInterface'); + $pubkey = $this->getMock('OAuth2\Storage\PublicKeyInterface'); + $server = new Server(array($client, $userclaims, $pubkey), array( + 'use_openid_connect' => true, + 'issuer' => 'someguy', + )); + + $server->getAuthorizeController(); + + $this->assertInstanceOf('OAuth2\OpenID\ResponseType\IdTokenInterface', $server->getResponseType('id_token')); + $this->assertNull($server->getResponseType('id_token token')); + } + + /** + * @expectedException LogicException OAuth2\ResponseType\AccessTokenInterface + **/ + public function testUsingOpenIDConnectWithAllowImplicitWithoutTokenStorageThrowsException() + { + $client = $this->getMock('OAuth2\Storage\ClientInterface'); + $userclaims = $this->getMock('OAuth2\OpenID\Storage\UserClaimsInterface'); + $pubkey = $this->getMock('OAuth2\Storage\PublicKeyInterface'); + $server = new Server(array($client, $userclaims, $pubkey), array( + 'use_openid_connect' => true, + 'issuer' => 'someguy', + 'allow_implicit' => true, + )); + + $server->getAuthorizeController(); + } + + public function testUsingOpenIDConnectWithAllowImplicitAndUseJwtAccessTokensIsOkay() + { + $client = $this->getMock('OAuth2\Storage\ClientInterface'); + $userclaims = $this->getMock('OAuth2\OpenID\Storage\UserClaimsInterface'); + $pubkey = $this->getMock('OAuth2\Storage\PublicKeyInterface'); + $server = new Server(array($client, $userclaims, $pubkey), array( + 'use_openid_connect' => true, + 'issuer' => 'someguy', + 'allow_implicit' => true, + 'use_jwt_access_tokens' => true, + )); + + $server->getAuthorizeController(); + + $this->assertInstanceOf('OAuth2\OpenID\ResponseType\IdTokenInterface', $server->getResponseType('id_token')); + $this->assertInstanceOf('OAuth2\OpenID\ResponseType\IdTokenTokenInterface', $server->getResponseType('id_token token')); + } + + public function testUsingOpenIDConnectWithAllowImplicitAndAccessTokenStorageIsOkay() + { + $client = $this->getMock('OAuth2\Storage\ClientInterface'); + $userclaims = $this->getMock('OAuth2\OpenID\Storage\UserClaimsInterface'); + $pubkey = $this->getMock('OAuth2\Storage\PublicKeyInterface'); + $token = $this->getMock('OAuth2\Storage\AccessTokenInterface'); + $server = new Server(array($client, $userclaims, $pubkey, $token), array( + 'use_openid_connect' => true, + 'issuer' => 'someguy', + 'allow_implicit' => true, + )); + + $server->getAuthorizeController(); + + $this->assertInstanceOf('OAuth2\OpenID\ResponseType\IdTokenInterface', $server->getResponseType('id_token')); + $this->assertInstanceOf('OAuth2\OpenID\ResponseType\IdTokenTokenInterface', $server->getResponseType('id_token token')); + } + + public function testUsingOpenIDConnectWithAllowImplicitAndAccessTokenResponseTypeIsOkay() + { + $client = $this->getMock('OAuth2\Storage\ClientInterface'); + $userclaims = $this->getMock('OAuth2\OpenID\Storage\UserClaimsInterface'); + $pubkey = $this->getMock('OAuth2\Storage\PublicKeyInterface'); + // $token = $this->getMock('OAuth2\Storage\AccessTokenInterface'); + $server = new Server(array($client, $userclaims, $pubkey), array( + 'use_openid_connect' => true, + 'issuer' => 'someguy', + 'allow_implicit' => true, + )); + + $token = $this->getMock('OAuth2\ResponseType\AccessTokenInterface'); + $server->addResponseType($token, 'token'); + + $server->getAuthorizeController(); + + $this->assertInstanceOf('OAuth2\OpenID\ResponseType\IdTokenInterface', $server->getResponseType('id_token')); + $this->assertInstanceOf('OAuth2\OpenID\ResponseType\IdTokenTokenInterface', $server->getResponseType('id_token token')); + } + + /** + * @expectedException LogicException OAuth2\OpenID\Storage\AuthorizationCodeInterface + **/ + public function testUsingOpenIDConnectWithAuthorizationCodeStorageThrowsException() + { + $client = $this->getMock('OAuth2\Storage\ClientCredentialsInterface'); + $userclaims = $this->getMock('OAuth2\OpenID\Storage\UserClaimsInterface'); + $pubkey = $this->getMock('OAuth2\Storage\PublicKeyInterface'); + $token = $this->getMock('OAuth2\Storage\AccessTokenInterface'); + $authcode = $this->getMock('OAuth2\Storage\AuthorizationCodeInterface'); + + $server = new Server(array($client, $userclaims, $pubkey, $token, $authcode), array( + 'use_openid_connect' => true, + 'issuer' => 'someguy' + )); + + $server->getTokenController(); + + $this->assertInstanceOf('OAuth2\OpenID\GrantType\AuthorizationCode', $server->getGrantType('authorization_code')); + } + + public function testUsingOpenIDConnectWithOpenIDAuthorizationCodeStorageCreatesOpenIDAuthorizationCodeGrantType() + { + $client = $this->getMock('OAuth2\Storage\ClientCredentialsInterface'); + $userclaims = $this->getMock('OAuth2\OpenID\Storage\UserClaimsInterface'); + $pubkey = $this->getMock('OAuth2\Storage\PublicKeyInterface'); + $token = $this->getMock('OAuth2\Storage\AccessTokenInterface'); + $authcode = $this->getMock('OAuth2\OpenID\Storage\AuthorizationCodeInterface'); + + $server = new Server(array($client, $userclaims, $pubkey, $token, $authcode), array( + 'use_openid_connect' => true, + 'issuer' => 'someguy' + )); + + $server->getTokenController(); + + $this->assertInstanceOf('OAuth2\OpenID\GrantType\AuthorizationCode', $server->getGrantType('authorization_code')); + } + + public function testMultipleValuedResponseTypeOrderDoesntMatter() + { + $responseType = $this->getMock('OAuth2\OpenID\ResponseType\IdTokenTokenInterface'); + $server = new Server(array(), array(), array(), array( + 'token id_token' => $responseType, + )); + + $this->assertEquals($responseType, $server->getResponseType('id_token token')); + } + + public function testAddGrantTypeWithoutKey() + { + $server = new Server(); + $server->addGrantType(new \OAuth2\GrantType\AuthorizationCode($this->getMock('OAuth2\Storage\AuthorizationCodeInterface'))); + + $grantTypes = $server->getGrantTypes(); + $this->assertEquals('authorization_code', key($grantTypes)); + } + + public function testAddGrantTypeWithKey() + { + $server = new Server(); + $server->addGrantType(new \OAuth2\GrantType\AuthorizationCode($this->getMock('OAuth2\Storage\AuthorizationCodeInterface')), 'ac'); + + $grantTypes = $server->getGrantTypes(); + $this->assertEquals('ac', key($grantTypes)); + } + + public function testAddGrantTypeWithKeyNotString() + { + $server = new Server(); + $server->addGrantType(new \OAuth2\GrantType\AuthorizationCode($this->getMock('OAuth2\Storage\AuthorizationCodeInterface')), 42); + + $grantTypes = $server->getGrantTypes(); + $this->assertEquals('authorization_code', key($grantTypes)); + } +} diff --git a/library/oauth2/test/OAuth2/Storage/AccessTokenTest.php b/library/oauth2/test/OAuth2/Storage/AccessTokenTest.php new file mode 100644 index 000000000..b34e0bfc0 --- /dev/null +++ b/library/oauth2/test/OAuth2/Storage/AccessTokenTest.php @@ -0,0 +1,102 @@ +markTestSkipped('Skipped Storage: ' . $storage->getMessage()); + + return; + } + + // assert token we are about to add does not exist + $token = $storage->getAccessToken('newtoken'); + $this->assertFalse($token); + + // add new token + $expires = time() + 20; + $success = $storage->setAccessToken('newtoken', 'client ID', 'SOMEUSERID', $expires); + $this->assertTrue($success); + + $token = $storage->getAccessToken('newtoken'); + $this->assertNotNull($token); + $this->assertArrayHasKey('access_token', $token); + $this->assertArrayHasKey('client_id', $token); + $this->assertArrayHasKey('user_id', $token); + $this->assertArrayHasKey('expires', $token); + $this->assertEquals($token['access_token'], 'newtoken'); + $this->assertEquals($token['client_id'], 'client ID'); + $this->assertEquals($token['user_id'], 'SOMEUSERID'); + $this->assertEquals($token['expires'], $expires); + + // change existing token + $expires = time() + 42; + $success = $storage->setAccessToken('newtoken', 'client ID2', 'SOMEOTHERID', $expires); + $this->assertTrue($success); + + $token = $storage->getAccessToken('newtoken'); + $this->assertNotNull($token); + $this->assertArrayHasKey('access_token', $token); + $this->assertArrayHasKey('client_id', $token); + $this->assertArrayHasKey('user_id', $token); + $this->assertArrayHasKey('expires', $token); + $this->assertEquals($token['access_token'], 'newtoken'); + $this->assertEquals($token['client_id'], 'client ID2'); + $this->assertEquals($token['user_id'], 'SOMEOTHERID'); + $this->assertEquals($token['expires'], $expires); + + // add token with scope having an empty string value + $expires = time() + 42; + $success = $storage->setAccessToken('newtoken', 'client ID', 'SOMEOTHERID', $expires, ''); + $this->assertTrue($success); + } + + /** @dataProvider provideStorage */ + public function testUnsetAccessToken(AccessTokenInterface $storage) + { + if ($storage instanceof NullStorage || !method_exists($storage, 'unsetAccessToken')) { + $this->markTestSkipped('Skipped Storage: ' . $storage->getMessage()); + + return; + } + + // assert token we are about to unset does not exist + $token = $storage->getAccessToken('revokabletoken'); + $this->assertFalse($token); + + // add new token + $expires = time() + 20; + $success = $storage->setAccessToken('revokabletoken', 'client ID', 'SOMEUSERID', $expires); + $this->assertTrue($success); + + // assert unsetAccessToken returns true + $result = $storage->unsetAccessToken('revokabletoken'); + $this->assertTrue($result); + + // assert token we unset does not exist + $token = $storage->getAccessToken('revokabletoken'); + $this->assertFalse($token); + } + + /** @dataProvider provideStorage */ + public function testUnsetAccessTokenReturnsFalse(AccessTokenInterface $storage) + { + if ($storage instanceof NullStorage || !method_exists($storage, 'unsetAccessToken')) { + $this->markTestSkipped('Skipped Storage: ' . $storage->getMessage()); + + return; + } + + // assert token we are about to unset does not exist + $token = $storage->getAccessToken('nonexistanttoken'); + $this->assertFalse($token); + + // assert unsetAccessToken returns false + $result = $storage->unsetAccessToken('nonexistanttoken'); + $this->assertFalse($result); + } +} diff --git a/library/oauth2/test/OAuth2/Storage/AuthorizationCodeTest.php b/library/oauth2/test/OAuth2/Storage/AuthorizationCodeTest.php new file mode 100644 index 000000000..2d901b501 --- /dev/null +++ b/library/oauth2/test/OAuth2/Storage/AuthorizationCodeTest.php @@ -0,0 +1,106 @@ +markTestSkipped('Skipped Storage: ' . $storage->getMessage()); + + return; + } + + // nonexistant client_id + $details = $storage->getAuthorizationCode('faketoken'); + $this->assertFalse($details); + + // valid client_id + $details = $storage->getAuthorizationCode('testtoken'); + $this->assertNotNull($details); + } + + /** @dataProvider provideStorage */ + public function testSetAuthorizationCode(AuthorizationCodeInterface $storage) + { + if ($storage instanceof NullStorage) { + $this->markTestSkipped('Skipped Storage: ' . $storage->getMessage()); + + return; + } + + // assert code we are about to add does not exist + $code = $storage->getAuthorizationCode('newcode'); + $this->assertFalse($code); + + // add new code + $expires = time() + 20; + $success = $storage->setAuthorizationCode('newcode', 'client ID', 'SOMEUSERID', 'http://example.com', $expires); + $this->assertTrue($success); + + $code = $storage->getAuthorizationCode('newcode'); + $this->assertNotNull($code); + $this->assertArrayHasKey('authorization_code', $code); + $this->assertArrayHasKey('client_id', $code); + $this->assertArrayHasKey('user_id', $code); + $this->assertArrayHasKey('redirect_uri', $code); + $this->assertArrayHasKey('expires', $code); + $this->assertEquals($code['authorization_code'], 'newcode'); + $this->assertEquals($code['client_id'], 'client ID'); + $this->assertEquals($code['user_id'], 'SOMEUSERID'); + $this->assertEquals($code['redirect_uri'], 'http://example.com'); + $this->assertEquals($code['expires'], $expires); + + // change existing code + $expires = time() + 42; + $success = $storage->setAuthorizationCode('newcode', 'client ID2', 'SOMEOTHERID', 'http://example.org', $expires); + $this->assertTrue($success); + + $code = $storage->getAuthorizationCode('newcode'); + $this->assertNotNull($code); + $this->assertArrayHasKey('authorization_code', $code); + $this->assertArrayHasKey('client_id', $code); + $this->assertArrayHasKey('user_id', $code); + $this->assertArrayHasKey('redirect_uri', $code); + $this->assertArrayHasKey('expires', $code); + $this->assertEquals($code['authorization_code'], 'newcode'); + $this->assertEquals($code['client_id'], 'client ID2'); + $this->assertEquals($code['user_id'], 'SOMEOTHERID'); + $this->assertEquals($code['redirect_uri'], 'http://example.org'); + $this->assertEquals($code['expires'], $expires); + + // add new code with scope having an empty string value + $expires = time() + 20; + $success = $storage->setAuthorizationCode('newcode', 'client ID', 'SOMEUSERID', 'http://example.com', $expires, ''); + $this->assertTrue($success); + } + + /** @dataProvider provideStorage */ + public function testExpireAccessToken(AccessTokenInterface $storage) + { + if ($storage instanceof NullStorage) { + $this->markTestSkipped('Skipped Storage: ' . $storage->getMessage()); + + return; + } + + // create a valid code + $expires = time() + 20; + $success = $storage->setAuthorizationCode('code-to-expire', 'client ID', 'SOMEUSERID', 'http://example.com', time() + 20); + $this->assertTrue($success); + + // verify the new code exists + $code = $storage->getAuthorizationCode('code-to-expire'); + $this->assertNotNull($code); + + $this->assertArrayHasKey('authorization_code', $code); + $this->assertEquals($code['authorization_code'], 'code-to-expire'); + + // now expire the code and ensure it's no longer available + $storage->expireAuthorizationCode('code-to-expire'); + $code = $storage->getAuthorizationCode('code-to-expire'); + $this->assertFalse($code); + } +} diff --git a/library/oauth2/test/OAuth2/Storage/ClientCredentialsTest.php b/library/oauth2/test/OAuth2/Storage/ClientCredentialsTest.php new file mode 100644 index 000000000..15289af30 --- /dev/null +++ b/library/oauth2/test/OAuth2/Storage/ClientCredentialsTest.php @@ -0,0 +1,28 @@ +markTestSkipped('Skipped Storage: ' . $storage->getMessage()); + + return; + } + + // nonexistant client_id + $pass = $storage->checkClientCredentials('fakeclient', 'testpass'); + $this->assertFalse($pass); + + // invalid password + $pass = $storage->checkClientCredentials('oauth_test_client', 'invalidcredentials'); + $this->assertFalse($pass); + + // valid credentials + $pass = $storage->checkClientCredentials('oauth_test_client', 'testpass'); + $this->assertTrue($pass); + } +} diff --git a/library/oauth2/test/OAuth2/Storage/ClientTest.php b/library/oauth2/test/OAuth2/Storage/ClientTest.php new file mode 100644 index 000000000..6a5cc0b49 --- /dev/null +++ b/library/oauth2/test/OAuth2/Storage/ClientTest.php @@ -0,0 +1,110 @@ +markTestSkipped('Skipped Storage: ' . $storage->getMessage()); + + return; + } + + // nonexistant client_id + $details = $storage->getClientDetails('fakeclient'); + $this->assertFalse($details); + + // valid client_id + $details = $storage->getClientDetails('oauth_test_client'); + $this->assertNotNull($details); + $this->assertArrayHasKey('client_id', $details); + $this->assertArrayHasKey('client_secret', $details); + $this->assertArrayHasKey('redirect_uri', $details); + } + + /** @dataProvider provideStorage */ + public function testCheckRestrictedGrantType(ClientInterface $storage) + { + if ($storage instanceof NullStorage) { + $this->markTestSkipped('Skipped Storage: ' . $storage->getMessage()); + + return; + } + + // Check invalid + $pass = $storage->checkRestrictedGrantType('oauth_test_client', 'authorization_code'); + $this->assertFalse($pass); + + // Check valid + $pass = $storage->checkRestrictedGrantType('oauth_test_client', 'implicit'); + $this->assertTrue($pass); + } + + /** @dataProvider provideStorage */ + public function testGetAccessToken(ClientInterface $storage) + { + if ($storage instanceof NullStorage) { + $this->markTestSkipped('Skipped Storage: ' . $storage->getMessage()); + + return; + } + + // nonexistant client_id + $details = $storage->getAccessToken('faketoken'); + $this->assertFalse($details); + + // valid client_id + $details = $storage->getAccessToken('testtoken'); + $this->assertNotNull($details); + } + + /** @dataProvider provideStorage */ + public function testIsPublicClient(ClientInterface $storage) + { + if ($storage instanceof NullStorage) { + $this->markTestSkipped('Skipped Storage: ' . $storage->getMessage()); + + return; + } + + $publicClientId = 'public-client-'.rand(); + $confidentialClientId = 'confidential-client-'.rand(); + + // create a new client + $success1 = $storage->setClientDetails($publicClientId, ''); + $success2 = $storage->setClientDetails($confidentialClientId, 'some-secret'); + $this->assertTrue($success1); + $this->assertTrue($success2); + + // assert isPublicClient for both + $this->assertTrue($storage->isPublicClient($publicClientId)); + $this->assertFalse($storage->isPublicClient($confidentialClientId)); + } + + /** @dataProvider provideStorage */ + public function testSaveClient(ClientInterface $storage) + { + if ($storage instanceof NullStorage) { + $this->markTestSkipped('Skipped Storage: ' . $storage->getMessage()); + + return; + } + + $clientId = 'some-client-'.rand(); + + // create a new client + $success = $storage->setClientDetails($clientId, 'somesecret', 'http://test.com', 'client_credentials', 'clientscope1', 'brent@brentertainment.com'); + $this->assertTrue($success); + + // valid client_id + $details = $storage->getClientDetails($clientId); + $this->assertEquals($details['client_secret'], 'somesecret'); + $this->assertEquals($details['redirect_uri'], 'http://test.com'); + $this->assertEquals($details['grant_types'], 'client_credentials'); + $this->assertEquals($details['scope'], 'clientscope1'); + $this->assertEquals($details['user_id'], 'brent@brentertainment.com'); + } +} diff --git a/library/oauth2/test/OAuth2/Storage/DynamoDBTest.php b/library/oauth2/test/OAuth2/Storage/DynamoDBTest.php new file mode 100644 index 000000000..2147f0914 --- /dev/null +++ b/library/oauth2/test/OAuth2/Storage/DynamoDBTest.php @@ -0,0 +1,40 @@ +getMockBuilder('\Aws\DynamoDb\DynamoDbClient') + ->disableOriginalConstructor() + ->setMethods(array('query')) + ->getMock(); + + $return = $this->getMockBuilder('\Guzzle\Service\Resource\Model') + ->setMethods(array('count', 'toArray')) + ->getMock(); + + $data = array( + 'Items' => array(), + 'Count' => 0, + 'ScannedCount'=> 0 + ); + + $return->expects($this->once()) + ->method('count') + ->will($this->returnValue(count($data))); + + $return->expects($this->once()) + ->method('toArray') + ->will($this->returnValue($data)); + + // should return null default scope if none is set in database + $client->expects($this->once()) + ->method('query') + ->will($this->returnValue($return)); + + $storage = new DynamoDB($client); + $this->assertNull($storage->getDefaultScope()); + } +} diff --git a/library/oauth2/test/OAuth2/Storage/JwtAccessTokenTest.php b/library/oauth2/test/OAuth2/Storage/JwtAccessTokenTest.php new file mode 100644 index 000000000..a6acbea1f --- /dev/null +++ b/library/oauth2/test/OAuth2/Storage/JwtAccessTokenTest.php @@ -0,0 +1,41 @@ +getMemoryStorage(); + $encryptionUtil = new Jwt(); + + $jwtAccessToken = array( + 'access_token' => rand(), + 'expires' => time() + 100, + 'scope' => 'foo', + ); + + $token = $encryptionUtil->encode($jwtAccessToken, $storage->getPrivateKey(), $storage->getEncryptionAlgorithm()); + + $this->assertNotNull($token); + + $tokenData = $crypto->getAccessToken($token); + + $this->assertTrue(is_array($tokenData)); + + /* assert the decoded token is the same */ + $this->assertEquals($tokenData['access_token'], $jwtAccessToken['access_token']); + $this->assertEquals($tokenData['expires'], $jwtAccessToken['expires']); + $this->assertEquals($tokenData['scope'], $jwtAccessToken['scope']); + } +} diff --git a/library/oauth2/test/OAuth2/Storage/JwtBearerTest.php b/library/oauth2/test/OAuth2/Storage/JwtBearerTest.php new file mode 100644 index 000000000..d0ab9b899 --- /dev/null +++ b/library/oauth2/test/OAuth2/Storage/JwtBearerTest.php @@ -0,0 +1,25 @@ +markTestSkipped('Skipped Storage: ' . $storage->getMessage()); + + return; + } + + // nonexistant client_id + $key = $storage->getClientKey('this-is-not-real', 'nor-is-this'); + $this->assertFalse($key); + + // valid client_id and subject + $key = $storage->getClientKey('oauth_test_client', 'test_subject'); + $this->assertNotNull($key); + $this->assertEquals($key, Bootstrap::getInstance()->getTestPublicKey()); + } +} diff --git a/library/oauth2/test/OAuth2/Storage/PdoTest.php b/library/oauth2/test/OAuth2/Storage/PdoTest.php new file mode 100644 index 000000000..57eb39072 --- /dev/null +++ b/library/oauth2/test/OAuth2/Storage/PdoTest.php @@ -0,0 +1,39 @@ +getSqliteDir())); + $storage = new Pdo($pdo); + + $this->assertNotNull($storage->getClientDetails('oauth_test_client')); + } + + public function testCreatePdoStorageUsingDSN() + { + $dsn = sprintf('sqlite://%s', Bootstrap::getInstance()->getSqliteDir()); + $storage = new Pdo($dsn); + + $this->assertNotNull($storage->getClientDetails('oauth_test_client')); + } + + public function testCreatePdoStorageUsingConfig() + { + $config = array('dsn' => sprintf('sqlite://%s', Bootstrap::getInstance()->getSqliteDir())); + $storage = new Pdo($config); + + $this->assertNotNull($storage->getClientDetails('oauth_test_client')); + } + + /** + * @expectedException InvalidArgumentException dsn + */ + public function testCreatePdoStorageWithoutDSNThrowsException() + { + $config = array('username' => 'brent', 'password' => 'brentisaballer'); + $storage = new Pdo($config); + } +} diff --git a/library/oauth2/test/OAuth2/Storage/PublicKeyTest.php b/library/oauth2/test/OAuth2/Storage/PublicKeyTest.php new file mode 100644 index 000000000..f85195870 --- /dev/null +++ b/library/oauth2/test/OAuth2/Storage/PublicKeyTest.php @@ -0,0 +1,29 @@ +markTestSkipped('Skipped Storage: ' . $storage->getMessage()); + + return; + } + + if (!$storage instanceof PublicKeyInterface) { + // incompatible storage + return; + } + + $configDir = Bootstrap::getInstance()->getConfigDir(); + $globalPublicKey = file_get_contents($configDir.'/keys/id_rsa.pub'); + $globalPrivateKey = file_get_contents($configDir.'/keys/id_rsa'); + + /* assert values from storage */ + $this->assertEquals($storage->getPublicKey(), $globalPublicKey); + $this->assertEquals($storage->getPrivateKey(), $globalPrivateKey); + } +} diff --git a/library/oauth2/test/OAuth2/Storage/RefreshTokenTest.php b/library/oauth2/test/OAuth2/Storage/RefreshTokenTest.php new file mode 100644 index 000000000..314c93195 --- /dev/null +++ b/library/oauth2/test/OAuth2/Storage/RefreshTokenTest.php @@ -0,0 +1,41 @@ +markTestSkipped('Skipped Storage: ' . $storage->getMessage()); + + return; + } + + // assert token we are about to add does not exist + $token = $storage->getRefreshToken('refreshtoken'); + $this->assertFalse($token); + + // add new token + $expires = time() + 20; + $success = $storage->setRefreshToken('refreshtoken', 'client ID', 'SOMEUSERID', $expires); + $this->assertTrue($success); + + $token = $storage->getRefreshToken('refreshtoken'); + $this->assertNotNull($token); + $this->assertArrayHasKey('refresh_token', $token); + $this->assertArrayHasKey('client_id', $token); + $this->assertArrayHasKey('user_id', $token); + $this->assertArrayHasKey('expires', $token); + $this->assertEquals($token['refresh_token'], 'refreshtoken'); + $this->assertEquals($token['client_id'], 'client ID'); + $this->assertEquals($token['user_id'], 'SOMEUSERID'); + $this->assertEquals($token['expires'], $expires); + + // add token with scope having an empty string value + $expires = time() + 20; + $success = $storage->setRefreshToken('refreshtoken2', 'client ID', 'SOMEUSERID', $expires, ''); + $this->assertTrue($success); + } +} diff --git a/library/oauth2/test/OAuth2/Storage/ScopeTest.php b/library/oauth2/test/OAuth2/Storage/ScopeTest.php new file mode 100644 index 000000000..fd1edeb93 --- /dev/null +++ b/library/oauth2/test/OAuth2/Storage/ScopeTest.php @@ -0,0 +1,53 @@ +markTestSkipped('Skipped Storage: ' . $storage->getMessage()); + + return; + } + + if (!$storage instanceof ScopeInterface) { + // incompatible storage + return; + } + + //Test getting scopes + $scopeUtil = new Scope($storage); + $this->assertTrue($scopeUtil->scopeExists('supportedscope1')); + $this->assertTrue($scopeUtil->scopeExists('supportedscope1 supportedscope2 supportedscope3')); + $this->assertFalse($scopeUtil->scopeExists('fakescope')); + $this->assertFalse($scopeUtil->scopeExists('supportedscope1 supportedscope2 supportedscope3 fakescope')); + } + + /** @dataProvider provideStorage */ + public function testGetDefaultScope($storage) + { + if ($storage instanceof NullStorage) { + $this->markTestSkipped('Skipped Storage: ' . $storage->getMessage()); + + return; + } + + if (!$storage instanceof ScopeInterface) { + // incompatible storage + return; + } + + // test getting default scope + $scopeUtil = new Scope($storage); + $expected = explode(' ', $scopeUtil->getDefaultScope()); + $actual = explode(' ', 'defaultscope1 defaultscope2'); + sort($expected); + sort($actual); + $this->assertEquals($expected, $actual); + } +} diff --git a/library/oauth2/test/OAuth2/Storage/UserCredentialsTest.php b/library/oauth2/test/OAuth2/Storage/UserCredentialsTest.php new file mode 100644 index 000000000..65655a6b2 --- /dev/null +++ b/library/oauth2/test/OAuth2/Storage/UserCredentialsTest.php @@ -0,0 +1,40 @@ +markTestSkipped('Skipped Storage: ' . $storage->getMessage()); + + return; + } + + // create a new user for testing + $success = $storage->setUser('testusername', 'testpass', 'Test', 'User'); + $this->assertTrue($success); + + // correct credentials + $this->assertTrue($storage->checkUserCredentials('testusername', 'testpass')); + // invalid password + $this->assertFalse($storage->checkUserCredentials('testusername', 'fakepass')); + // invalid username + $this->assertFalse($storage->checkUserCredentials('fakeusername', 'testpass')); + + // invalid username + $this->assertFalse($storage->getUserDetails('fakeusername')); + + // ensure all properties are set + $user = $storage->getUserDetails('testusername'); + $this->assertTrue($user !== false); + $this->assertArrayHasKey('user_id', $user); + $this->assertArrayHasKey('first_name', $user); + $this->assertArrayHasKey('last_name', $user); + $this->assertEquals($user['user_id'], 'testusername'); + $this->assertEquals($user['first_name'], 'Test'); + $this->assertEquals($user['last_name'], 'User'); + } +} diff --git a/library/oauth2/test/OAuth2/TokenType/BearerTest.php b/library/oauth2/test/OAuth2/TokenType/BearerTest.php new file mode 100644 index 000000000..a2e000e22 --- /dev/null +++ b/library/oauth2/test/OAuth2/TokenType/BearerTest.php @@ -0,0 +1,58 @@ + 'ThisIsMyAccessToken' + )); + $request->server['CONTENT_TYPE'] = 'application/x-www-form-urlencoded; charset=UTF-8'; + + $param = $bearer->getAccessTokenParameter($request, $response = new Response()); + $this->assertEquals($param, 'ThisIsMyAccessToken'); + } + + public function testInvalidContentType() + { + $bearer = new Bearer(); + $request = TestRequest::createPost(array( + 'access_token' => 'ThisIsMyAccessToken' + )); + $request->server['CONTENT_TYPE'] = 'application/json; charset=UTF-8'; + + $param = $bearer->getAccessTokenParameter($request, $response = new Response()); + $this->assertNull($param); + $this->assertEquals($response->getStatusCode(), 400); + $this->assertEquals($response->getParameter('error'), 'invalid_request'); + $this->assertEquals($response->getParameter('error_description'), 'The content type for POST requests must be "application/x-www-form-urlencoded"'); + } + + public function testValidRequestUsingAuthorizationHeader() + { + $bearer = new Bearer(); + $request = new TestRequest(); + $request->headers['AUTHORIZATION'] = 'Bearer MyToken'; + $request->server['CONTENT_TYPE'] = 'application/x-www-form-urlencoded; charset=UTF-8'; + + $param = $bearer->getAccessTokenParameter($request, $response = new Response()); + $this->assertEquals('MyToken', $param); + } + + public function testValidRequestUsingAuthorizationHeaderCaseInsensitive() + { + $bearer = new Bearer(); + $request = new TestRequest(); + $request->server['CONTENT_TYPE'] = 'application/x-www-form-urlencoded; charset=UTF-8'; + $request->headers['Authorization'] = 'Bearer MyToken'; + + $param = $bearer->getAccessTokenParameter($request, $response = new Response()); + $this->assertEquals('MyToken', $param); + } +} diff --git a/library/oauth2/test/bootstrap.php b/library/oauth2/test/bootstrap.php new file mode 100644 index 000000000..0a4af0716 --- /dev/null +++ b/library/oauth2/test/bootstrap.php @@ -0,0 +1,12 @@ +cleanupTravisDynamoDb(); diff --git a/library/oauth2/test/config/keys/id_rsa b/library/oauth2/test/config/keys/id_rsa new file mode 100644 index 000000000..e8b9eff2d --- /dev/null +++ b/library/oauth2/test/config/keys/id_rsa @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXQIBAAKBgQC8fpi06NfVYHAOAnxNMVnTXr/ptsLsNjP+uAt2eO0cc5J9H5XV +8lFVujOrRu/JWi1TDmAvOaf/6A3BphIA1Pwp0AAqlZdwizIum8j0KzpsGYH5qReN +QDwF3oUSKMsQCCGCDHrDYifG/pRi9bN1ZVjEXPr35HJuBe+FQpZTs8DewwIDAQAB +AoGARfNxNknmtx/n1bskZ/01iZRzAge6BLEE0LV6Q4gS7mkRZu/Oyiv39Sl5vUlA ++WdGxLjkBwKNjxGN8Vxw9/ASd8rSsqeAUYIwAeifXrHhj5DBPQT/pDPkeFnp9B1w +C6jo+3AbBQ4/b0ONSIEnCL2xGGglSIAxO17T1ViXp7lzXPECQQDe63nkRdWM0OCb +oaHQPT3E26224maIstrGFUdt9yw3yJf4bOF7TtiPLlLuHsTTge3z+fG6ntC0xG56 +1cl37C3ZAkEA2HdVcRGugNp/qmVz4LJTpD+WZKi73PLAO47wDOrYh9Pn2I6fcEH0 +CPnggt1ko4ujvGzFTvRH64HXa6aPCv1j+wJBAMQMah3VQPNf/DlDVFEUmw9XeBZg +VHaifX851aEjgXLp6qVj9IYCmLiLsAmVa9rr6P7p8asD418nZlaHUHE0eDkCQQCr +uxis6GMx1Ka971jcJX2X696LoxXPd0KsvXySMupv79yagKPa8mgBiwPjrnK+EPVo +cj6iochA/bSCshP/mwFrAkBHEKPi6V6gb94JinCT7x3weahbdp6bJ6/nzBH/p9VA +HoT1JtwNFhGv9BCjmDydshQHfSWpY9NxlccBKL7ITm8R +-----END RSA PRIVATE KEY----- \ No newline at end of file diff --git a/library/oauth2/test/config/keys/id_rsa.pub b/library/oauth2/test/config/keys/id_rsa.pub new file mode 100644 index 000000000..1ac15f5eb --- /dev/null +++ b/library/oauth2/test/config/keys/id_rsa.pub @@ -0,0 +1,16 @@ +-----BEGIN CERTIFICATE----- +MIICiDCCAfGgAwIBAgIBADANBgkqhkiG9w0BAQQFADA9MQswCQYDVQQGEwJVUzEL +MAkGA1UECBMCVVQxITAfBgNVBAoTGFZpZ25ldHRlIENvcnBvcmF0aW9uIFNCWDAe +Fw0xMTEwMTUwMzE4MjdaFw0zMTEwMTAwMzE4MjdaMD0xCzAJBgNVBAYTAlVTMQsw +CQYDVQQIEwJVVDEhMB8GA1UEChMYVmlnbmV0dGUgQ29ycG9yYXRpb24gU0JYMIGf +MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC8fpi06NfVYHAOAnxNMVnTXr/ptsLs +NjP+uAt2eO0cc5J9H5XV8lFVujOrRu/JWi1TDmAvOaf/6A3BphIA1Pwp0AAqlZdw +izIum8j0KzpsGYH5qReNQDwF3oUSKMsQCCGCDHrDYifG/pRi9bN1ZVjEXPr35HJu +Be+FQpZTs8DewwIDAQABo4GXMIGUMB0GA1UdDgQWBBRe8hrEXm+Yim4YlD5Nx+1K +vCYs9DBlBgNVHSMEXjBcgBRe8hrEXm+Yim4YlD5Nx+1KvCYs9KFBpD8wPTELMAkG +A1UEBhMCVVMxCzAJBgNVBAgTAlVUMSEwHwYDVQQKExhWaWduZXR0ZSBDb3Jwb3Jh +dGlvbiBTQliCAQAwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQQFAAOBgQBjhyRD +lM7vnLn6drgQVftW5V9nDFAyPAuiGvMIKFSbiAf1PxXCRn5sfJquwWKsJUi4ZGNl +aViXdFmN6/F13PSM+yg63tpKy0fYqMbTM+Oe5WuSHkSW1VuYNHV+24adgNk/FRDL +FRrlM1f6s9VTLWvwGItjfrof0Ba8Uq7ZDSb9Xg== +-----END CERTIFICATE----- \ No newline at end of file diff --git a/library/oauth2/test/config/storage.json b/library/oauth2/test/config/storage.json new file mode 100644 index 000000000..a31d3bca2 --- /dev/null +++ b/library/oauth2/test/config/storage.json @@ -0,0 +1,181 @@ +{ + "authorization_codes": { + "testcode": { + "client_id": "Test Client ID", + "user_id": "", + "redirect_uri": "", + "expires": "9999999999", + "id_token": "IDTOKEN" + }, + "testcode-with-scope": { + "client_id": "Test Client ID", + "user_id": "", + "redirect_uri": "", + "expires": "9999999999", + "scope": "scope1 scope2" + }, + "testcode-expired": { + "client_id": "Test Client ID", + "user_id": "", + "redirect_uri": "", + "expires": "1356998400" + }, + "testcode-empty-secret": { + "client_id": "Test Client ID Empty Secret", + "user_id": "", + "redirect_uri": "", + "expires": "9999999999" + }, + "testcode-openid": { + "client_id": "Test Client ID", + "user_id": "", + "redirect_uri": "", + "expires": "9999999999", + "id_token": "test_id_token" + } + }, + "client_credentials" : { + "Test Client ID": { + "client_secret": "TestSecret" + }, + "Test Client ID with Redirect Uri": { + "client_secret": "TestSecret2", + "redirect_uri": "http://brentertainment.com" + }, + "Test Client ID with Buggy Redirect Uri": { + "client_secret": "TestSecret2", + "redirect_uri": " http://brentertainment.com" + }, + "Test Client ID with Multiple Redirect Uris": { + "client_secret": "TestSecret3", + "redirect_uri": "http://brentertainment.com http://morehazards.com" + }, + "Test Client ID with Redirect Uri Parts": { + "client_secret": "TestSecret4", + "redirect_uri": "http://user:pass@brentertainment.com:2222/authorize/cb?auth_type=oauth&test=true" + }, + "Test Some Other Client": { + "client_secret": "TestSecret3" + }, + "Test Client ID Empty Secret": { + "client_secret": "" + }, + "Test Client ID For Password Grant": { + "grant_types": "password", + "client_secret": "" + }, + "Client ID With User ID": { + "client_secret": "TestSecret", + "user_id": "brent@brentertainment.com" + }, + "oauth_test_client": { + "client_secret": "testpass", + "grant_types": "implicit password" + } + }, + "user_credentials" : { + "test-username": { + "password": "testpass" + }, + "testusername": { + "password": "testpass" + }, + "testuser": { + "password": "password", + "email": "testuser@test.com", + "email_verified": true + }, + "johndoe": { + "password": "password" + } + }, + "refresh_tokens" : { + "test-refreshtoken": { + "refresh_token": "test-refreshtoken", + "client_id": "Test Client ID", + "user_id": "test-username", + "expires": 0, + "scope": null + }, + "test-refreshtoken-with-scope": { + "refresh_token": "test-refreshtoken", + "client_id": "Test Client ID", + "user_id": "test-username", + "expires": 0, + "scope": "scope1 scope2" + } + }, + "access_tokens" : { + "accesstoken-expired": { + "access_token": "accesstoken-expired", + "client_id": "Test Client ID", + "expires": 1234567, + "scope": null + }, + "accesstoken-scope": { + "access_token": "accesstoken-scope", + "client_id": "Test Client ID", + "expires": 99999999900, + "scope": "testscope" + }, + "accesstoken-openid-connect": { + "access_token": "accesstoken-openid-connect", + "client_id": "Test Client ID", + "user_id": "testuser", + "expires": 99999999900, + "scope": "openid email" + }, + "accesstoken-malformed": { + "access_token": "accesstoken-mallformed", + "expires": 99999999900, + "scope": "testscope" + } + }, + "jwt": { + "Test Client ID": { + "key": "-----BEGIN PUBLIC KEY-----\nMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC5/SxVlE8gnpFqCxgl2wjhzY7u\ncEi00s0kUg3xp7lVEvgLgYcAnHiWp+gtSjOFfH2zsvpiWm6Lz5f743j/FEzHIO1o\nwR0p4d9pOaJK07d01+RzoQLOIQAgXrr4T1CCWUesncwwPBVCyy2Mw3Nmhmr9MrF8\nUlvdRKBxriRnlP3qJQIDAQAB\n-----END PUBLIC KEY-----", + "subject": "testuser@ourdomain.com" + }, + "Test Client ID PHP-5.2": { + "key": "mysecretkey", + "subject": "testuser@ourdomain.com" + }, + "Missing Key Client": { + "key": null, + "subject": "testuser@ourdomain.com" + }, + "Missing Key Client PHP-5.2": { + "key": null, + "subject": "testuser@ourdomain.com" + }, + "oauth_test_client": { + "key": "-----BEGIN CERTIFICATE-----\nMIICiDCCAfGgAwIBAgIBADANBgkqhkiG9w0BAQQFADA9MQswCQYDVQQGEwJVUzEL\nMAkGA1UECBMCVVQxITAfBgNVBAoTGFZpZ25ldHRlIENvcnBvcmF0aW9uIFNCWDAe\nFw0xMTEwMTUwMzE4MjdaFw0zMTEwMTAwMzE4MjdaMD0xCzAJBgNVBAYTAlVTMQsw\nCQYDVQQIEwJVVDEhMB8GA1UEChMYVmlnbmV0dGUgQ29ycG9yYXRpb24gU0JYMIGf\nMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC8fpi06NfVYHAOAnxNMVnTXr/ptsLs\nNjP+uAt2eO0cc5J9H5XV8lFVujOrRu/JWi1TDmAvOaf/6A3BphIA1Pwp0AAqlZdw\nizIum8j0KzpsGYH5qReNQDwF3oUSKMsQCCGCDHrDYifG/pRi9bN1ZVjEXPr35HJu\nBe+FQpZTs8DewwIDAQABo4GXMIGUMB0GA1UdDgQWBBRe8hrEXm+Yim4YlD5Nx+1K\nvCYs9DBlBgNVHSMEXjBcgBRe8hrEXm+Yim4YlD5Nx+1KvCYs9KFBpD8wPTELMAkG\nA1UEBhMCVVMxCzAJBgNVBAgTAlVUMSEwHwYDVQQKExhWaWduZXR0ZSBDb3Jwb3Jh\ndGlvbiBTQliCAQAwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQQFAAOBgQBjhyRD\nlM7vnLn6drgQVftW5V9nDFAyPAuiGvMIKFSbiAf1PxXCRn5sfJquwWKsJUi4ZGNl\naViXdFmN6/F13PSM+yg63tpKy0fYqMbTM+Oe5WuSHkSW1VuYNHV+24adgNk/FRDL\nFRrlM1f6s9VTLWvwGItjfrof0Ba8Uq7ZDSb9Xg==\n-----END CERTIFICATE-----", + "subject": "test_subject" + } + }, + "jti": [ + { + "issuer": "Test Client ID", + "subject": "testuser@ourdomain.com", + "audience": "http://myapp.com/oauth/auth", + "expires": 99999999900, + "jti": "used_jti" + } + ], + "supported_scopes" : [ + "scope1", + "scope2", + "scope3", + "clientscope1", + "clientscope2", + "clientscope3", + "supportedscope1", + "supportedscope2", + "supportedscope3", + "supportedscope4" + ], + "keys": { + "public_key": "-----BEGIN CERTIFICATE-----\nMIICiDCCAfGgAwIBAgIBADANBgkqhkiG9w0BAQQFADA9MQswCQYDVQQGEwJVUzEL\nMAkGA1UECBMCVVQxITAfBgNVBAoTGFZpZ25ldHRlIENvcnBvcmF0aW9uIFNCWDAe\nFw0xMTEwMTUwMzE4MjdaFw0zMTEwMTAwMzE4MjdaMD0xCzAJBgNVBAYTAlVTMQsw\nCQYDVQQIEwJVVDEhMB8GA1UEChMYVmlnbmV0dGUgQ29ycG9yYXRpb24gU0JYMIGf\nMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC8fpi06NfVYHAOAnxNMVnTXr/ptsLs\nNjP+uAt2eO0cc5J9H5XV8lFVujOrRu/JWi1TDmAvOaf/6A3BphIA1Pwp0AAqlZdw\nizIum8j0KzpsGYH5qReNQDwF3oUSKMsQCCGCDHrDYifG/pRi9bN1ZVjEXPr35HJu\nBe+FQpZTs8DewwIDAQABo4GXMIGUMB0GA1UdDgQWBBRe8hrEXm+Yim4YlD5Nx+1K\nvCYs9DBlBgNVHSMEXjBcgBRe8hrEXm+Yim4YlD5Nx+1KvCYs9KFBpD8wPTELMAkG\nA1UEBhMCVVMxCzAJBgNVBAgTAlVUMSEwHwYDVQQKExhWaWduZXR0ZSBDb3Jwb3Jh\ndGlvbiBTQliCAQAwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQQFAAOBgQBjhyRD\nlM7vnLn6drgQVftW5V9nDFAyPAuiGvMIKFSbiAf1PxXCRn5sfJquwWKsJUi4ZGNl\naViXdFmN6/F13PSM+yg63tpKy0fYqMbTM+Oe5WuSHkSW1VuYNHV+24adgNk/FRDL\nFRrlM1f6s9VTLWvwGItjfrof0Ba8Uq7ZDSb9Xg==\n-----END CERTIFICATE-----", + "private_key": "-----BEGIN RSA PRIVATE KEY-----\nMIICXQIBAAKBgQC8fpi06NfVYHAOAnxNMVnTXr/ptsLsNjP+uAt2eO0cc5J9H5XV\n8lFVujOrRu/JWi1TDmAvOaf/6A3BphIA1Pwp0AAqlZdwizIum8j0KzpsGYH5qReN\nQDwF3oUSKMsQCCGCDHrDYifG/pRi9bN1ZVjEXPr35HJuBe+FQpZTs8DewwIDAQAB\nAoGARfNxNknmtx/n1bskZ/01iZRzAge6BLEE0LV6Q4gS7mkRZu/Oyiv39Sl5vUlA\n+WdGxLjkBwKNjxGN8Vxw9/ASd8rSsqeAUYIwAeifXrHhj5DBPQT/pDPkeFnp9B1w\nC6jo+3AbBQ4/b0ONSIEnCL2xGGglSIAxO17T1ViXp7lzXPECQQDe63nkRdWM0OCb\noaHQPT3E26224maIstrGFUdt9yw3yJf4bOF7TtiPLlLuHsTTge3z+fG6ntC0xG56\n1cl37C3ZAkEA2HdVcRGugNp/qmVz4LJTpD+WZKi73PLAO47wDOrYh9Pn2I6fcEH0\nCPnggt1ko4ujvGzFTvRH64HXa6aPCv1j+wJBAMQMah3VQPNf/DlDVFEUmw9XeBZg\nVHaifX851aEjgXLp6qVj9IYCmLiLsAmVa9rr6P7p8asD418nZlaHUHE0eDkCQQCr\nuxis6GMx1Ka971jcJX2X696LoxXPd0KsvXySMupv79yagKPa8mgBiwPjrnK+EPVo\ncj6iochA/bSCshP/mwFrAkBHEKPi6V6gb94JinCT7x3weahbdp6bJ6/nzBH/p9VA\nHoT1JtwNFhGv9BCjmDydshQHfSWpY9NxlccBKL7ITm8R\n-----END RSA PRIVATE KEY-----" + } +} diff --git a/library/oauth2/test/lib/OAuth2/Request/TestRequest.php b/library/oauth2/test/lib/OAuth2/Request/TestRequest.php new file mode 100644 index 000000000..7bbce28a4 --- /dev/null +++ b/library/oauth2/test/lib/OAuth2/Request/TestRequest.php @@ -0,0 +1,61 @@ +query = $_GET; + $this->request = $_POST; + $this->server = $_SERVER; + $this->headers = array(); + } + + public function query($name, $default = null) + { + return isset($this->query[$name]) ? $this->query[$name] : $default; + } + + public function request($name, $default = null) + { + return isset($this->request[$name]) ? $this->request[$name] : $default; + } + + public function server($name, $default = null) + { + return isset($this->server[$name]) ? $this->server[$name] : $default; + } + + public function getAllQueryParameters() + { + return $this->query; + } + + public function setQuery(array $query) + { + $this->query = $query; + } + + public function setPost(array $params) + { + $this->server['REQUEST_METHOD'] = 'POST'; + $this->request = $params; + } + + public static function createPost(array $params = array()) + { + $request = new self(); + $request->setPost($params); + + return $request; + } +} diff --git a/library/oauth2/test/lib/OAuth2/Storage/BaseTest.php b/library/oauth2/test/lib/OAuth2/Storage/BaseTest.php new file mode 100755 index 000000000..921d52500 --- /dev/null +++ b/library/oauth2/test/lib/OAuth2/Storage/BaseTest.php @@ -0,0 +1,34 @@ +getMemoryStorage(); + $sqlite = Bootstrap::getInstance()->getSqlitePdo(); + $mysql = Bootstrap::getInstance()->getMysqlPdo(); + $postgres = Bootstrap::getInstance()->getPostgresPdo(); + $mongo = Bootstrap::getInstance()->getMongo(); + $redis = Bootstrap::getInstance()->getRedisStorage(); + $cassandra = Bootstrap::getInstance()->getCassandraStorage(); + $dynamodb = Bootstrap::getInstance()->getDynamoDbStorage(); + $couchbase = Bootstrap::getInstance()->getCouchbase(); + + /* hack until we can fix "default_scope" dependencies in other tests */ + $memory->defaultScope = 'defaultscope1 defaultscope2'; + + return array( + array($memory), + array($sqlite), + array($mysql), + array($postgres), + array($mongo), + array($redis), + array($cassandra), + array($dynamodb), + array($couchbase), + ); + } +} diff --git a/library/oauth2/test/lib/OAuth2/Storage/Bootstrap.php b/library/oauth2/test/lib/OAuth2/Storage/Bootstrap.php new file mode 100755 index 000000000..4ac9022b1 --- /dev/null +++ b/library/oauth2/test/lib/OAuth2/Storage/Bootstrap.php @@ -0,0 +1,888 @@ +configDir = __DIR__.'/../../../config'; + } + + public static function getInstance() + { + if (!self::$instance) { + self::$instance = new self(); + } + + return self::$instance; + } + + public function getSqlitePdo() + { + if (!$this->sqlite) { + $this->removeSqliteDb(); + $pdo = new \PDO(sprintf('sqlite://%s', $this->getSqliteDir())); + $pdo->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION); + $this->createSqliteDb($pdo); + + $this->sqlite = new Pdo($pdo); + } + + return $this->sqlite; + } + + public function getPostgresPdo() + { + if (!$this->postgres) { + if (in_array('pgsql', \PDO::getAvailableDrivers())) { + $this->removePostgresDb(); + $this->createPostgresDb(); + if ($pdo = $this->getPostgresDriver()) { + $pdo->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION); + $this->populatePostgresDb($pdo); + $this->postgres = new Pdo($pdo); + } + } else { + $this->postgres = new NullStorage('Postgres', 'Missing postgres PDO extension.'); + } + } + + return $this->postgres; + } + + public function getPostgresDriver() + { + try { + $pdo = new \PDO('pgsql:host=localhost;dbname=oauth2_server_php', 'postgres'); + + return $pdo; + } catch (\PDOException $e) { + $this->postgres = new NullStorage('Postgres', $e->getMessage()); + } + } + + public function getMemoryStorage() + { + return new Memory(json_decode(file_get_contents($this->configDir. '/storage.json'), true)); + } + + public function getRedisStorage() + { + if (!$this->redis) { + if (class_exists('Predis\Client')) { + $redis = new \Predis\Client(); + if ($this->testRedisConnection($redis)) { + $redis->flushdb(); + $this->redis = new Redis($redis); + $this->createRedisDb($this->redis); + } else { + $this->redis = new NullStorage('Redis', 'Unable to connect to redis server on port 6379'); + } + } else { + $this->redis = new NullStorage('Redis', 'Missing redis library. Please run "composer.phar require predis/predis:dev-master"'); + } + } + + return $this->redis; + } + + private function testRedisConnection(\Predis\Client $redis) + { + try { + $redis->connect(); + } catch (\Predis\CommunicationException $exception) { + // we were unable to connect to the redis server + return false; + } + + return true; + } + + public function getMysqlPdo() + { + if (!$this->mysql) { + $pdo = null; + try { + $pdo = new \PDO('mysql:host=localhost;', 'root'); + } catch (\PDOException $e) { + $this->mysql = new NullStorage('MySQL', 'Unable to connect to MySQL on root@localhost'); + } + + if ($pdo) { + $pdo->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION); + $this->removeMysqlDb($pdo); + $this->createMysqlDb($pdo); + + $this->mysql = new Pdo($pdo); + } + } + + return $this->mysql; + } + + public function getMongo() + { + if (!$this->mongo) { + $skipMongo = $this->getEnvVar('SKIP_MONGO_TESTS'); + if (!$skipMongo && class_exists('MongoClient')) { + $mongo = new \MongoClient('mongodb://localhost:27017', array('connect' => false)); + if ($this->testMongoConnection($mongo)) { + $db = $mongo->oauth2_server_php; + $this->removeMongoDb($db); + $this->createMongoDb($db); + + $this->mongo = new Mongo($db); + } else { + $this->mongo = new NullStorage('Mongo', 'Unable to connect to mongo server on "localhost:27017"'); + } + } else { + $this->mongo = new NullStorage('Mongo', 'Missing mongo php extension. Please install mongo.so'); + } + } + + return $this->mongo; + } + + private function testMongoConnection(\MongoClient $mongo) + { + try { + $mongo->connect(); + } catch (\MongoConnectionException $e) { + return false; + } + + return true; + } + + public function getCouchbase() + { + if (!$this->couchbase) { + if ($this->getEnvVar('SKIP_COUCHBASE_TESTS')) { + $this->couchbase = new NullStorage('Couchbase', 'Skipping Couchbase tests'); + } elseif (!class_exists('Couchbase')) { + $this->couchbase = new NullStorage('Couchbase', 'Missing Couchbase php extension. Please install couchbase.so'); + } else { + // round-about way to make sure couchbase is working + // this is required because it throws a "floating point exception" otherwise + $code = "new \Couchbase(array('localhost:8091'), '', '', 'auth', false);"; + $exec = sprintf('php -r "%s"', $code); + $ret = exec($exec, $test, $var); + if ($ret != 0) { + $couchbase = new \Couchbase(array('localhost:8091'), '', '', 'auth', false); + if ($this->testCouchbaseConnection($couchbase)) { + $this->clearCouchbase($couchbase); + $this->createCouchbaseDB($couchbase); + + $this->couchbase = new CouchbaseDB($couchbase); + } else { + $this->couchbase = new NullStorage('Couchbase', 'Unable to connect to Couchbase server on "localhost:8091"'); + } + } else { + $this->couchbase = new NullStorage('Couchbase', 'Error while trying to connect to Couchbase'); + } + } + } + + return $this->couchbase; + } + + private function testCouchbaseConnection(\Couchbase $couchbase) + { + try { + if (count($couchbase->getServers()) > 0) { + return true; + } + } catch (\CouchbaseException $e) { + return false; + } + + return true; + } + + public function getCassandraStorage() + { + if (!$this->cassandra) { + if (class_exists('phpcassa\ColumnFamily')) { + $cassandra = new \phpcassa\Connection\ConnectionPool('oauth2_test', array('127.0.0.1:9160')); + if ($this->testCassandraConnection($cassandra)) { + $this->removeCassandraDb(); + $this->cassandra = new Cassandra($cassandra); + $this->createCassandraDb($this->cassandra); + } else { + $this->cassandra = new NullStorage('Cassandra', 'Unable to connect to cassandra server on "127.0.0.1:9160"'); + } + } else { + $this->cassandra = new NullStorage('Cassandra', 'Missing cassandra library. Please run "composer.phar require thobbs/phpcassa:dev-master"'); + } + } + + return $this->cassandra; + } + + private function testCassandraConnection(\phpcassa\Connection\ConnectionPool $cassandra) + { + try { + new \phpcassa\SystemManager('localhost:9160'); + } catch (\Exception $e) { + return false; + } + + return true; + } + + private function removeCassandraDb() + { + $sys = new \phpcassa\SystemManager('localhost:9160'); + + try { + $sys->drop_keyspace('oauth2_test'); + } catch (\cassandra\InvalidRequestException $e) { + + } + } + + private function createCassandraDb(Cassandra $storage) + { + // create the cassandra keyspace and column family + $sys = new \phpcassa\SystemManager('localhost:9160'); + + $sys->create_keyspace('oauth2_test', array( + "strategy_class" => \phpcassa\Schema\StrategyClass::SIMPLE_STRATEGY, + "strategy_options" => array('replication_factor' => '1') + )); + + $sys->create_column_family('oauth2_test', 'auth'); + $cassandra = new \phpcassa\Connection\ConnectionPool('oauth2_test', array('127.0.0.1:9160')); + $cf = new \phpcassa\ColumnFamily($cassandra, 'auth'); + + // populate the data + $storage->setClientDetails("oauth_test_client", "testpass", "http://example.com", 'implicit password'); + $storage->setAccessToken("testtoken", "Some Client", '', time() + 1000); + $storage->setAuthorizationCode("testcode", "Some Client", '', '', time() + 1000); + + $storage->setScope('supportedscope1 supportedscope2 supportedscope3 supportedscope4'); + $storage->setScope('defaultscope1 defaultscope2', null, 'default'); + + $storage->setScope('clientscope1 clientscope2', 'Test Client ID'); + $storage->setScope('clientscope1 clientscope2', 'Test Client ID', 'default'); + + $storage->setScope('clientscope1 clientscope2 clientscope3', 'Test Client ID 2'); + $storage->setScope('clientscope1 clientscope2', 'Test Client ID 2', 'default'); + + $storage->setScope('clientscope1 clientscope2', 'Test Default Scope Client ID'); + $storage->setScope('clientscope1 clientscope2', 'Test Default Scope Client ID', 'default'); + + $storage->setScope('clientscope1 clientscope2 clientscope3', 'Test Default Scope Client ID 2'); + $storage->setScope('clientscope3', 'Test Default Scope Client ID 2', 'default'); + + $storage->setClientKey('oauth_test_client', $this->getTestPublicKey(), 'test_subject'); + + $cf->insert("oauth_public_keys:ClientID_One", array('__data' => json_encode(array("public_key" => "client_1_public", "private_key" => "client_1_private", "encryption_algorithm" => "RS256")))); + $cf->insert("oauth_public_keys:ClientID_Two", array('__data' => json_encode(array("public_key" => "client_2_public", "private_key" => "client_2_private", "encryption_algorithm" => "RS256")))); + $cf->insert("oauth_public_keys:", array('__data' => json_encode(array("public_key" => $this->getTestPublicKey(), "private_key" => $this->getTestPrivateKey(), "encryption_algorithm" => "RS256")))); + + $cf->insert("oauth_users:testuser", array('__data' =>json_encode(array("password" => "password", "email" => "testuser@test.com", "email_verified" => true)))); + + } + + private function createSqliteDb(\PDO $pdo) + { + $this->runPdoSql($pdo); + } + + private function removeSqliteDb() + { + if (file_exists($this->getSqliteDir())) { + unlink($this->getSqliteDir()); + } + } + + private function createMysqlDb(\PDO $pdo) + { + $pdo->exec('CREATE DATABASE oauth2_server_php'); + $pdo->exec('USE oauth2_server_php'); + $this->runPdoSql($pdo); + } + + private function removeMysqlDb(\PDO $pdo) + { + $pdo->exec('DROP DATABASE IF EXISTS oauth2_server_php'); + } + + private function createPostgresDb() + { + if (!`psql postgres -tAc "SELECT 1 FROM pg_roles WHERE rolname='postgres'"`) { + `createuser -s -r postgres`; + } + + `createdb -O postgres oauth2_server_php`; + } + + private function populatePostgresDb(\PDO $pdo) + { + $this->runPdoSql($pdo); + } + + private function removePostgresDb() + { + if (trim(`psql -l | grep oauth2_server_php | wc -l`)) { + `dropdb oauth2_server_php`; + } + } + + public function runPdoSql(\PDO $pdo) + { + $storage = new Pdo($pdo); + foreach (explode(';', $storage->getBuildSql()) as $statement) { + $result = $pdo->exec($statement); + } + + // set up scopes + $sql = 'INSERT INTO oauth_scopes (scope) VALUES (?)'; + foreach (explode(' ', 'supportedscope1 supportedscope2 supportedscope3 supportedscope4 clientscope1 clientscope2 clientscope3') as $supportedScope) { + $pdo->prepare($sql)->execute(array($supportedScope)); + } + + $sql = 'INSERT INTO oauth_scopes (scope, is_default) VALUES (?, ?)'; + foreach (array('defaultscope1', 'defaultscope2') as $defaultScope) { + $pdo->prepare($sql)->execute(array($defaultScope, true)); + } + + // set up clients + $sql = 'INSERT INTO oauth_clients (client_id, client_secret, scope, grant_types) VALUES (?, ?, ?, ?)'; + $pdo->prepare($sql)->execute(array('Test Client ID', 'TestSecret', 'clientscope1 clientscope2', null)); + $pdo->prepare($sql)->execute(array('Test Client ID 2', 'TestSecret', 'clientscope1 clientscope2 clientscope3', null)); + $pdo->prepare($sql)->execute(array('Test Default Scope Client ID', 'TestSecret', 'clientscope1 clientscope2', null)); + $pdo->prepare($sql)->execute(array('oauth_test_client', 'testpass', null, 'implicit password')); + + // set up misc + $sql = 'INSERT INTO oauth_access_tokens (access_token, client_id, expires, user_id) VALUES (?, ?, ?, ?)'; + $pdo->prepare($sql)->execute(array('testtoken', 'Some Client', date('Y-m-d H:i:s', strtotime('+1 hour')), null)); + $pdo->prepare($sql)->execute(array('accesstoken-openid-connect', 'Some Client', date('Y-m-d H:i:s', strtotime('+1 hour')), 'testuser')); + + $sql = 'INSERT INTO oauth_authorization_codes (authorization_code, client_id, expires) VALUES (?, ?, ?)'; + $pdo->prepare($sql)->execute(array('testcode', 'Some Client', date('Y-m-d H:i:s', strtotime('+1 hour')))); + + $sql = 'INSERT INTO oauth_users (username, password, email, email_verified) VALUES (?, ?, ?, ?)'; + $pdo->prepare($sql)->execute(array('testuser', 'password', 'testuser@test.com', true)); + + $sql = 'INSERT INTO oauth_public_keys (client_id, public_key, private_key, encryption_algorithm) VALUES (?, ?, ?, ?)'; + $pdo->prepare($sql)->execute(array('ClientID_One', 'client_1_public', 'client_1_private', 'RS256')); + $pdo->prepare($sql)->execute(array('ClientID_Two', 'client_2_public', 'client_2_private', 'RS256')); + + $sql = 'INSERT INTO oauth_public_keys (client_id, public_key, private_key, encryption_algorithm) VALUES (?, ?, ?, ?)'; + $pdo->prepare($sql)->execute(array(null, $this->getTestPublicKey(), $this->getTestPrivateKey(), 'RS256')); + + $sql = 'INSERT INTO oauth_jwt (client_id, subject, public_key) VALUES (?, ?, ?)'; + $pdo->prepare($sql)->execute(array('oauth_test_client', 'test_subject', $this->getTestPublicKey())); + } + + public function getSqliteDir() + { + return $this->configDir. '/test.sqlite'; + } + + public function getConfigDir() + { + return $this->configDir; + } + + private function createCouchbaseDB(\Couchbase $db) + { + $db->set('oauth_clients-oauth_test_client',json_encode(array( + 'client_id' => "oauth_test_client", + 'client_secret' => "testpass", + 'redirect_uri' => "http://example.com", + 'grant_types' => 'implicit password' + ))); + + $db->set('oauth_access_tokens-testtoken',json_encode(array( + 'access_token' => "testtoken", + 'client_id' => "Some Client" + ))); + + $db->set('oauth_authorization_codes-testcode',json_encode(array( + 'access_token' => "testcode", + 'client_id' => "Some Client" + ))); + + $db->set('oauth_users-testuser',json_encode(array( + 'username' => 'testuser', + 'password' => 'password', + 'email' => 'testuser@test.com', + 'email_verified' => true, + ))); + + $db->set('oauth_jwt-oauth_test_client',json_encode(array( + 'client_id' => 'oauth_test_client', + 'key' => $this->getTestPublicKey(), + 'subject' => 'test_subject', + ))); + } + + private function clearCouchbase(\Couchbase $cb) + { + $cb->delete('oauth_authorization_codes-new-openid-code'); + $cb->delete('oauth_access_tokens-newtoken'); + $cb->delete('oauth_authorization_codes-newcode'); + $cb->delete('oauth_refresh_tokens-refreshtoken'); + } + + private function createMongoDb(\MongoDB $db) + { + $db->oauth_clients->insert(array( + 'client_id' => "oauth_test_client", + 'client_secret' => "testpass", + 'redirect_uri' => "http://example.com", + 'grant_types' => 'implicit password' + )); + + $db->oauth_access_tokens->insert(array( + 'access_token' => "testtoken", + 'client_id' => "Some Client" + )); + + $db->oauth_authorization_codes->insert(array( + 'authorization_code' => "testcode", + 'client_id' => "Some Client" + )); + + $db->oauth_users->insert(array( + 'username' => 'testuser', + 'password' => 'password', + 'email' => 'testuser@test.com', + 'email_verified' => true, + )); + + $db->oauth_jwt->insert(array( + 'client_id' => 'oauth_test_client', + 'key' => $this->getTestPublicKey(), + 'subject' => 'test_subject', + )); + } + + private function createRedisDb(Redis $storage) + { + $storage->setClientDetails("oauth_test_client", "testpass", "http://example.com", 'implicit password'); + $storage->setAccessToken("testtoken", "Some Client", '', time() + 1000); + $storage->setAuthorizationCode("testcode", "Some Client", '', '', time() + 1000); + $storage->setUser("testuser", "password"); + + $storage->setScope('supportedscope1 supportedscope2 supportedscope3 supportedscope4'); + $storage->setScope('defaultscope1 defaultscope2', null, 'default'); + + $storage->setScope('clientscope1 clientscope2', 'Test Client ID'); + $storage->setScope('clientscope1 clientscope2', 'Test Client ID', 'default'); + + $storage->setScope('clientscope1 clientscope2 clientscope3', 'Test Client ID 2'); + $storage->setScope('clientscope1 clientscope2', 'Test Client ID 2', 'default'); + + $storage->setScope('clientscope1 clientscope2', 'Test Default Scope Client ID'); + $storage->setScope('clientscope1 clientscope2', 'Test Default Scope Client ID', 'default'); + + $storage->setScope('clientscope1 clientscope2 clientscope3', 'Test Default Scope Client ID 2'); + $storage->setScope('clientscope3', 'Test Default Scope Client ID 2', 'default'); + + $storage->setClientKey('oauth_test_client', $this->getTestPublicKey(), 'test_subject'); + } + + public function removeMongoDb(\MongoDB $db) + { + $db->drop(); + } + + public function getTestPublicKey() + { + return file_get_contents(__DIR__.'/../../../config/keys/id_rsa.pub'); + } + + private function getTestPrivateKey() + { + return file_get_contents(__DIR__.'/../../../config/keys/id_rsa'); + } + + public function getDynamoDbStorage() + { + if (!$this->dynamodb) { + // only run once per travis build + if (true == $this->getEnvVar('TRAVIS')) { + if (self::DYNAMODB_PHP_VERSION != $this->getEnvVar('TRAVIS_PHP_VERSION')) { + $this->dynamodb = new NullStorage('DynamoDb', 'Skipping for travis.ci - only run once per build'); + + return; + } + } + if (class_exists('\Aws\DynamoDb\DynamoDbClient')) { + if ($client = $this->getDynamoDbClient()) { + // travis runs a unique set of tables per build, to avoid conflict + $prefix = ''; + if ($build_id = $this->getEnvVar('TRAVIS_JOB_NUMBER')) { + $prefix = sprintf('build_%s_', $build_id); + } else { + if (!$this->deleteDynamoDb($client, $prefix, true)) { + return $this->dynamodb = new NullStorage('DynamoDb', 'Timed out while waiting for DynamoDB deletion (30 seconds)'); + } + } + $this->createDynamoDb($client, $prefix); + $this->populateDynamoDb($client, $prefix); + $config = array( + 'client_table' => $prefix.'oauth_clients', + 'access_token_table' => $prefix.'oauth_access_tokens', + 'refresh_token_table' => $prefix.'oauth_refresh_tokens', + 'code_table' => $prefix.'oauth_authorization_codes', + 'user_table' => $prefix.'oauth_users', + 'jwt_table' => $prefix.'oauth_jwt', + 'scope_table' => $prefix.'oauth_scopes', + 'public_key_table' => $prefix.'oauth_public_keys', + ); + $this->dynamodb = new DynamoDB($client, $config); + } elseif (!$this->dynamodb) { + $this->dynamodb = new NullStorage('DynamoDb', 'unable to connect to DynamoDB'); + } + } else { + $this->dynamodb = new NullStorage('DynamoDb', 'Missing DynamoDB library. Please run "composer.phar require aws/aws-sdk-php:dev-master'); + } + } + + return $this->dynamodb; + } + + private function getDynamoDbClient() + { + $config = array(); + // check for environment variables + if (($key = $this->getEnvVar('AWS_ACCESS_KEY_ID')) && ($secret = $this->getEnvVar('AWS_SECRET_KEY'))) { + $config['key'] = $key; + $config['secret'] = $secret; + } else { + // fall back on ~/.aws/credentials file + // @see http://docs.aws.amazon.com/aws-sdk-php/guide/latest/credentials.html#credential-profiles + if (!file_exists($this->getEnvVar('HOME') . '/.aws/credentials')) { + $this->dynamodb = new NullStorage('DynamoDb', 'No aws credentials file found, and no AWS_ACCESS_KEY_ID or AWS_SECRET_KEY environment variable set'); + + return; + } + + // set profile in AWS_PROFILE environment variable, defaults to "default" + $config['profile'] = $this->getEnvVar('AWS_PROFILE', 'default'); + } + + // set region in AWS_REGION environment variable, defaults to "us-east-1" + $config['region'] = $this->getEnvVar('AWS_REGION', \Aws\Common\Enum\Region::US_EAST_1); + + return \Aws\DynamoDb\DynamoDbClient::factory($config); + } + + private function deleteDynamoDb(\Aws\DynamoDb\DynamoDbClient $client, $prefix = null, $waitForDeletion = false) + { + $tablesList = explode(' ', 'oauth_access_tokens oauth_authorization_codes oauth_clients oauth_jwt oauth_public_keys oauth_refresh_tokens oauth_scopes oauth_users'); + $nbTables = count($tablesList); + + // Delete all table. + foreach ($tablesList as $key => $table) { + try { + $client->deleteTable(array('TableName' => $prefix.$table)); + } catch (\Aws\DynamoDb\Exception\DynamoDbException $e) { + // Table does not exist : nothing to do + } + } + + // Wait for deleting + if ($waitForDeletion) { + $retries = 5; + $nbTableDeleted = 0; + while ($nbTableDeleted != $nbTables) { + $nbTableDeleted = 0; + foreach ($tablesList as $key => $table) { + try { + $result = $client->describeTable(array('TableName' => $prefix.$table)); + } catch (\Aws\DynamoDb\Exception\DynamoDbException $e) { + // Table does not exist : nothing to do + $nbTableDeleted++; + } + } + if ($nbTableDeleted != $nbTables) { + if ($retries < 0) { + // we are tired of waiting + return false; + } + sleep(5); + echo "Sleeping 5 seconds for DynamoDB ($retries more retries)...\n"; + $retries--; + } + } + } + + return true; + } + + private function createDynamoDb(\Aws\DynamoDb\DynamoDbClient $client, $prefix = null) + { + $tablesList = explode(' ', 'oauth_access_tokens oauth_authorization_codes oauth_clients oauth_jwt oauth_public_keys oauth_refresh_tokens oauth_scopes oauth_users'); + $nbTables = count($tablesList); + $client->createTable(array( + 'TableName' => $prefix.'oauth_access_tokens', + 'AttributeDefinitions' => array( + array('AttributeName' => 'access_token','AttributeType' => 'S') + ), + 'KeySchema' => array(array('AttributeName' => 'access_token','KeyType' => 'HASH')), + 'ProvisionedThroughput' => array('ReadCapacityUnits' => 1,'WriteCapacityUnits' => 1) + )); + + $client->createTable(array( + 'TableName' => $prefix.'oauth_authorization_codes', + 'AttributeDefinitions' => array( + array('AttributeName' => 'authorization_code','AttributeType' => 'S') + ), + 'KeySchema' => array(array('AttributeName' => 'authorization_code','KeyType' => 'HASH')), + 'ProvisionedThroughput' => array('ReadCapacityUnits' => 1,'WriteCapacityUnits' => 1) + )); + + $client->createTable(array( + 'TableName' => $prefix.'oauth_clients', + 'AttributeDefinitions' => array( + array('AttributeName' => 'client_id','AttributeType' => 'S') + ), + 'KeySchema' => array(array('AttributeName' => 'client_id','KeyType' => 'HASH')), + 'ProvisionedThroughput' => array('ReadCapacityUnits' => 1,'WriteCapacityUnits' => 1) + )); + + $client->createTable(array( + 'TableName' => $prefix.'oauth_jwt', + 'AttributeDefinitions' => array( + array('AttributeName' => 'client_id','AttributeType' => 'S'), + array('AttributeName' => 'subject','AttributeType' => 'S') + ), + 'KeySchema' => array( + array('AttributeName' => 'client_id','KeyType' => 'HASH'), + array('AttributeName' => 'subject','KeyType' => 'RANGE') + ), + 'ProvisionedThroughput' => array('ReadCapacityUnits' => 1,'WriteCapacityUnits' => 1) + )); + + $client->createTable(array( + 'TableName' => $prefix.'oauth_public_keys', + 'AttributeDefinitions' => array( + array('AttributeName' => 'client_id','AttributeType' => 'S') + ), + 'KeySchema' => array(array('AttributeName' => 'client_id','KeyType' => 'HASH')), + 'ProvisionedThroughput' => array('ReadCapacityUnits' => 1,'WriteCapacityUnits' => 1) + )); + + $client->createTable(array( + 'TableName' => $prefix.'oauth_refresh_tokens', + 'AttributeDefinitions' => array( + array('AttributeName' => 'refresh_token','AttributeType' => 'S') + ), + 'KeySchema' => array(array('AttributeName' => 'refresh_token','KeyType' => 'HASH')), + 'ProvisionedThroughput' => array('ReadCapacityUnits' => 1,'WriteCapacityUnits' => 1) + )); + + $client->createTable(array( + 'TableName' => $prefix.'oauth_scopes', + 'AttributeDefinitions' => array( + array('AttributeName' => 'scope','AttributeType' => 'S'), + array('AttributeName' => 'is_default','AttributeType' => 'S') + ), + 'KeySchema' => array(array('AttributeName' => 'scope','KeyType' => 'HASH')), + 'GlobalSecondaryIndexes' => array( + array( + 'IndexName' => 'is_default-index', + 'KeySchema' => array(array('AttributeName' => 'is_default', 'KeyType' => 'HASH')), + 'Projection' => array('ProjectionType' => 'ALL'), + 'ProvisionedThroughput' => array('ReadCapacityUnits' => 1,'WriteCapacityUnits' => 1) + ), + ), + 'ProvisionedThroughput' => array('ReadCapacityUnits' => 1,'WriteCapacityUnits' => 1) + )); + + $client->createTable(array( + 'TableName' => $prefix.'oauth_users', + 'AttributeDefinitions' => array(array('AttributeName' => 'username','AttributeType' => 'S')), + 'KeySchema' => array(array('AttributeName' => 'username','KeyType' => 'HASH')), + 'ProvisionedThroughput' => array('ReadCapacityUnits' => 1,'WriteCapacityUnits' => 1) + )); + + // Wait for creation + $nbTableCreated = 0; + while ($nbTableCreated != $nbTables) { + $nbTableCreated = 0; + foreach ($tablesList as $key => $table) { + try { + $result = $client->describeTable(array('TableName' => $prefix.$table)); + if ($result['Table']['TableStatus'] == 'ACTIVE') { + $nbTableCreated++; + } + } catch (\Aws\DynamoDb\Exception\DynamoDbException $e) { + // Table does not exist : nothing to do + $nbTableCreated++; + } + } + if ($nbTableCreated != $nbTables) { + sleep(1); + } + } + } + + private function populateDynamoDb($client, $prefix = null) + { + // set up scopes + foreach (explode(' ', 'supportedscope1 supportedscope2 supportedscope3 supportedscope4 clientscope1 clientscope2 clientscope3') as $supportedScope) { + $client->putItem(array( + 'TableName' => $prefix.'oauth_scopes', + 'Item' => array('scope' => array('S' => $supportedScope)) + )); + } + + foreach (array('defaultscope1', 'defaultscope2') as $defaultScope) { + $client->putItem(array( + 'TableName' => $prefix.'oauth_scopes', + 'Item' => array('scope' => array('S' => $defaultScope), 'is_default' => array('S' => "true")) + )); + } + + $client->putItem(array( + 'TableName' => $prefix.'oauth_clients', + 'Item' => array( + 'client_id' => array('S' => 'Test Client ID'), + 'client_secret' => array('S' => 'TestSecret'), + 'scope' => array('S' => 'clientscope1 clientscope2') + ) + )); + + $client->putItem(array( + 'TableName' => $prefix.'oauth_clients', + 'Item' => array( + 'client_id' => array('S' => 'Test Client ID 2'), + 'client_secret' => array('S' => 'TestSecret'), + 'scope' => array('S' => 'clientscope1 clientscope2 clientscope3') + ) + )); + + $client->putItem(array( + 'TableName' => $prefix.'oauth_clients', + 'Item' => array( + 'client_id' => array('S' => 'Test Default Scope Client ID'), + 'client_secret' => array('S' => 'TestSecret'), + 'scope' => array('S' => 'clientscope1 clientscope2') + ) + )); + + $client->putItem(array( + 'TableName' => $prefix.'oauth_clients', + 'Item' => array( + 'client_id' => array('S' => 'oauth_test_client'), + 'client_secret' => array('S' => 'testpass'), + 'grant_types' => array('S' => 'implicit password') + ) + )); + + $client->putItem(array( + 'TableName' => $prefix.'oauth_access_tokens', + 'Item' => array( + 'access_token' => array('S' => 'testtoken'), + 'client_id' => array('S' => 'Some Client'), + ) + )); + + $client->putItem(array( + 'TableName' => $prefix.'oauth_access_tokens', + 'Item' => array( + 'access_token' => array('S' => 'accesstoken-openid-connect'), + 'client_id' => array('S' => 'Some Client'), + 'user_id' => array('S' => 'testuser'), + ) + )); + + $client->putItem(array( + 'TableName' => $prefix.'oauth_authorization_codes', + 'Item' => array( + 'authorization_code' => array('S' => 'testcode'), + 'client_id' => array('S' => 'Some Client'), + ) + )); + + $client->putItem(array( + 'TableName' => $prefix.'oauth_users', + 'Item' => array( + 'username' => array('S' => 'testuser'), + 'password' => array('S' => 'password'), + 'email' => array('S' => 'testuser@test.com'), + 'email_verified' => array('S' => 'true'), + ) + )); + + $client->putItem(array( + 'TableName' => $prefix.'oauth_public_keys', + 'Item' => array( + 'client_id' => array('S' => 'ClientID_One'), + 'public_key' => array('S' => 'client_1_public'), + 'private_key' => array('S' => 'client_1_private'), + 'encryption_algorithm' => array('S' => 'RS256'), + ) + )); + + $client->putItem(array( + 'TableName' => $prefix.'oauth_public_keys', + 'Item' => array( + 'client_id' => array('S' => 'ClientID_Two'), + 'public_key' => array('S' => 'client_2_public'), + 'private_key' => array('S' => 'client_2_private'), + 'encryption_algorithm' => array('S' => 'RS256'), + ) + )); + + $client->putItem(array( + 'TableName' => $prefix.'oauth_public_keys', + 'Item' => array( + 'client_id' => array('S' => '0'), + 'public_key' => array('S' => $this->getTestPublicKey()), + 'private_key' => array('S' => $this->getTestPrivateKey()), + 'encryption_algorithm' => array('S' => 'RS256'), + ) + )); + + $client->putItem(array( + 'TableName' => $prefix.'oauth_jwt', + 'Item' => array( + 'client_id' => array('S' => 'oauth_test_client'), + 'subject' => array('S' => 'test_subject'), + 'public_key' => array('S' => $this->getTestPublicKey()), + ) + )); + } + + public function cleanupTravisDynamoDb($prefix = null) + { + if (is_null($prefix)) { + // skip this when not applicable + if (!$this->getEnvVar('TRAVIS') || self::DYNAMODB_PHP_VERSION != $this->getEnvVar('TRAVIS_PHP_VERSION')) { + return; + } + + $prefix = sprintf('build_%s_', $this->getEnvVar('TRAVIS_JOB_NUMBER')); + } + + $client = $this->getDynamoDbClient(); + $this->deleteDynamoDb($client, $prefix); + } + + private function getEnvVar($var, $default = null) + { + return isset($_SERVER[$var]) ? $_SERVER[$var] : (getenv($var) ?: $default); + } +} diff --git a/library/oauth2/test/lib/OAuth2/Storage/NullStorage.php b/library/oauth2/test/lib/OAuth2/Storage/NullStorage.php new file mode 100644 index 000000000..6caa62068 --- /dev/null +++ b/library/oauth2/test/lib/OAuth2/Storage/NullStorage.php @@ -0,0 +1,32 @@ +name = $name; + $this->description = $description; + } + + public function __toString() + { + return $this->name; + } + + public function getMessage() + { + if ($this->description) { + return $this->description; + } + + return $this->name; + } +} diff --git a/library/sticky-kit/sticky-kit.js b/library/sticky-kit/sticky-kit.js new file mode 100644 index 000000000..eb2ea8a26 --- /dev/null +++ b/library/sticky-kit/sticky-kit.js @@ -0,0 +1,265 @@ +// Generated by CoffeeScript 1.10.0 + +/** +@license Sticky-kit v1.1.3 | MIT | Leaf Corcoran 2015 | http://leafo.net + */ + +(function() { + var $, win; + + $ = window.jQuery; + + win = $(window); + + $.fn.stick_in_parent = function(opts) { + var doc, elm, enable_bottoming, fn, i, inner_scrolling, len, manual_spacer, offset_top, outer_width, parent_selector, recalc_every, sticky_class; + if (opts == null) { + opts = {}; + } + sticky_class = opts.sticky_class, inner_scrolling = opts.inner_scrolling, recalc_every = opts.recalc_every, parent_selector = opts.parent, offset_top = opts.offset_top, manual_spacer = opts.spacer, enable_bottoming = opts.bottoming; + if (offset_top == null) { + offset_top = 0; + } + if (parent_selector == null) { + parent_selector = void 0; + } + if (inner_scrolling == null) { + inner_scrolling = true; + } + if (sticky_class == null) { + sticky_class = "is_stuck"; + } + doc = $(document); + if (enable_bottoming == null) { + enable_bottoming = true; + } + outer_width = function(el) { + var _el, computed, w; + if (window.getComputedStyle) { + _el = el[0]; + computed = window.getComputedStyle(el[0]); + w = parseFloat(computed.getPropertyValue("width")) + parseFloat(computed.getPropertyValue("margin-left")) + parseFloat(computed.getPropertyValue("margin-right")); + if (computed.getPropertyValue("box-sizing") !== "border-box") { + w += parseFloat(computed.getPropertyValue("border-left-width")) + parseFloat(computed.getPropertyValue("border-right-width")) + parseFloat(computed.getPropertyValue("padding-left")) + parseFloat(computed.getPropertyValue("padding-right")); + } + return w; + } else { + return el.outerWidth(true); + } + }; + fn = function(elm, padding_bottom, parent_top, parent_height, top, height, el_float, detached) { + var bottomed, detach, fixed, last_pos, last_scroll_height, offset, parent, recalc, recalc_and_tick, recalc_counter, spacer, tick; + if (elm.data("sticky_kit")) { + return; + } + elm.data("sticky_kit", true); + last_scroll_height = doc.height(); + parent = elm.parent(); + if (parent_selector != null) { + parent = parent.closest(parent_selector); + } + if (!parent.length) { + throw "failed to find stick parent"; + } + fixed = false; + bottomed = false; + spacer = manual_spacer != null ? manual_spacer && elm.closest(manual_spacer) : $("
        "); + if (spacer) { + spacer.css('position', elm.css('position')); + } + recalc = function() { + var border_top, padding_top, restore; + if (detached) { + return; + } + last_scroll_height = doc.height(); + border_top = parseInt(parent.css("border-top-width"), 10); + padding_top = parseInt(parent.css("padding-top"), 10); + padding_bottom = parseInt(parent.css("padding-bottom"), 10); + parent_top = parent.offset().top + border_top + padding_top; + parent_height = parent.outerHeight(true); + if (fixed) { + fixed = false; + bottomed = false; + if (manual_spacer == null) { + elm.insertAfter(spacer); + spacer.detach(); + } + elm.css({ + position: "", + top: "", + width: "", + bottom: "" + }).removeClass(sticky_class); + restore = true; + } + top = elm.offset().top - (parseInt(elm.css("margin-top"), 10) || 0) - offset_top; + height = elm.outerHeight(true); + el_float = elm.css("float"); + if (spacer) { + spacer.css({ + width: outer_width(elm), + height: height, + display: elm.css("display"), + "vertical-align": elm.css("vertical-align"), + "float": el_float + }); + } + if (restore) { + return tick(); + } + }; + recalc(); + if (height === parent_height) { + return; + } + last_pos = void 0; + offset = offset_top; + recalc_counter = recalc_every; + tick = function() { + var css, delta, recalced, scroll, will_bottom, win_height; + if (detached) { + return; + } + recalced = false; + if (recalc_counter != null) { + recalc_counter -= 1; + if (recalc_counter <= 0) { + recalc_counter = recalc_every; + recalc(); + recalced = true; + } + } + if (!recalced && doc.height() !== last_scroll_height) { + recalc(); + recalced = true; + } + scroll = win.scrollTop(); + if (last_pos != null) { + delta = scroll - last_pos; + } + last_pos = scroll; + if (fixed) { + if (enable_bottoming) { + will_bottom = scroll + height + offset > parent_height + parent_top; + if (bottomed && !will_bottom) { + bottomed = false; + elm.css({ + position: "fixed", + bottom: "", + top: offset + }).trigger("sticky_kit:unbottom"); + } + } + if (scroll < top) { + fixed = false; + offset = offset_top; + if (manual_spacer == null) { + if (el_float === "left" || el_float === "right") { + elm.insertAfter(spacer); + } + spacer.detach(); + } + css = { + position: "", + width: "", + top: "" + }; + elm.css(css).removeClass(sticky_class).trigger("sticky_kit:unstick"); + } + if (inner_scrolling) { + win_height = win.height(); + if (height + offset_top > win_height) { + if (!bottomed) { + offset -= delta; + offset = Math.max(win_height - height, offset); + offset = Math.min(offset_top, offset); + if (fixed) { + elm.css({ + top: offset + "px" + }); + } + } + } + } + } else { + if (scroll > top) { + fixed = true; + css = { + position: "fixed", + top: offset + }; + css.width = elm.css("box-sizing") === "border-box" ? elm.outerWidth() + "px" : elm.width() + "px"; + elm.css(css).addClass(sticky_class); + if (manual_spacer == null) { + elm.after(spacer); + if (el_float === "left" || el_float === "right") { + spacer.append(elm); + } + } + elm.trigger("sticky_kit:stick"); + } + } + if (fixed && enable_bottoming) { + if (will_bottom == null) { + will_bottom = scroll + height + offset > parent_height + parent_top; + } + if (!bottomed && will_bottom) { + bottomed = true; + if (parent.css("position") === "static") { + parent.css({ + position: "relative" + }); + } + return elm.css({ + position: "absolute", + bottom: padding_bottom, + top: "auto" + }).trigger("sticky_kit:bottom"); + } + } + }; + recalc_and_tick = function() { + recalc(); + return tick(); + }; + detach = function() { + detached = true; + win.off("touchmove", tick); + win.off("scroll", tick); + win.off("resize", recalc_and_tick); + $(document.body).off("sticky_kit:recalc", recalc_and_tick); + elm.off("sticky_kit:detach", detach); + elm.removeData("sticky_kit"); + elm.css({ + position: "", + bottom: "", + top: "", + width: "" + }); + parent.position("position", ""); + if (fixed) { + if (manual_spacer == null) { + if (el_float === "left" || el_float === "right") { + elm.insertAfter(spacer); + } + spacer.remove(); + } + return elm.removeClass(sticky_class); + } + }; + win.on("touchmove", tick); + win.on("scroll", tick); + win.on("resize", recalc_and_tick); + $(document.body).on("sticky_kit:recalc", recalc_and_tick); + elm.on("sticky_kit:detach", detach); + return setTimeout(tick, 0); + }; + for (i = 0, len = this.length; i < len; i++) { + elm = this[i]; + fn($(elm)); + } + return this; + }; + +}).call(this); diff --git a/library/sticky-kit/sticky-kit.min.js b/library/sticky-kit/sticky-kit.min.js new file mode 100644 index 000000000..c4d7f2e3b --- /dev/null +++ b/library/sticky-kit/sticky-kit.min.js @@ -0,0 +1,10 @@ +/* + Sticky-kit v1.1.3 | MIT | Leaf Corcoran 2015 | http://leafo.net +*/ +(function(){var c,f;c=window.jQuery;f=c(window);c.fn.stick_in_parent=function(b){var A,w,J,n,B,K,p,q,L,k,E,t;null==b&&(b={});t=b.sticky_class;B=b.inner_scrolling;E=b.recalc_every;k=b.parent;q=b.offset_top;p=b.spacer;w=b.bottoming;null==q&&(q=0);null==k&&(k=void 0);null==B&&(B=!0);null==t&&(t="is_stuck");A=c(document);null==w&&(w=!0);L=function(a){var b;return window.getComputedStyle?(a=window.getComputedStyle(a[0]),b=parseFloat(a.getPropertyValue("width"))+parseFloat(a.getPropertyValue("margin-left"))+ +parseFloat(a.getPropertyValue("margin-right")),"border-box"!==a.getPropertyValue("box-sizing")&&(b+=parseFloat(a.getPropertyValue("border-left-width"))+parseFloat(a.getPropertyValue("border-right-width"))+parseFloat(a.getPropertyValue("padding-left"))+parseFloat(a.getPropertyValue("padding-right"))),b):a.outerWidth(!0)};J=function(a,b,n,C,F,u,r,G){var v,H,m,D,I,d,g,x,y,z,h,l;if(!a.data("sticky_kit")){a.data("sticky_kit",!0);I=A.height();g=a.parent();null!=k&&(g=g.closest(k));if(!g.length)throw"failed to find stick parent"; +v=m=!1;(h=null!=p?p&&a.closest(p):c("
        "))&&h.css("position",a.css("position"));x=function(){var d,f,e;if(!G&&(I=A.height(),d=parseInt(g.css("border-top-width"),10),f=parseInt(g.css("padding-top"),10),b=parseInt(g.css("padding-bottom"),10),n=g.offset().top+d+f,C=g.height(),m&&(v=m=!1,null==p&&(a.insertAfter(h),h.detach()),a.css({position:"",top:"",width:"",bottom:""}).removeClass(t),e=!0),F=a.offset().top-(parseInt(a.css("margin-top"),10)||0)-q,u=a.outerHeight(!0),r=a.css("float"),h&&h.css({width:L(a), +height:u,display:a.css("display"),"vertical-align":a.css("vertical-align"),"float":r}),e))return l()};x();if(u!==C)return D=void 0,d=q,z=E,l=function(){var c,l,e,k;if(!G&&(e=!1,null!=z&&(--z,0>=z&&(z=E,x(),e=!0)),e||A.height()===I||x(),e=f.scrollTop(),null!=D&&(l=e-D),D=e,m?(w&&(k=e+u+d>C+n,v&&!k&&(v=!1,a.css({position:"fixed",bottom:"",top:d}).trigger("sticky_kit:unbottom"))),ec&&!v&&(d-=l,d=Math.max(c-u,d),d=Math.min(q,d),m&&a.css({top:d+"px"})))):e>F&&(m=!0,c={position:"fixed",top:d},c.width="border-box"===a.css("box-sizing")?a.outerWidth()+"px":a.width()+"px",a.css(c).addClass(t),null==p&&(a.after(h),"left"!==r&&"right"!==r||h.append(a)),a.trigger("sticky_kit:stick")),m&&w&&(null==k&&(k=e+u+d>C+n),!v&&k)))return v=!0,"static"===g.css("position")&&g.css({position:"relative"}),a.css({position:"absolute",bottom:b,top:"auto"}).trigger("sticky_kit:bottom")}, +y=function(){x();return l()},H=function(){G=!0;f.off("touchmove",l);f.off("scroll",l);f.off("resize",y);c(document.body).off("sticky_kit:recalc",y);a.off("sticky_kit:detach",H);a.removeData("sticky_kit");a.css({position:"",bottom:"",top:"",width:""});g.position("position","");if(m)return null==p&&("left"!==r&&"right"!==r||a.insertAfter(h),h.remove()),a.removeClass(t)},f.on("touchmove",l),f.on("scroll",l),f.on("resize",y),c(document.body).on("sticky_kit:recalc",y),a.on("sticky_kit:detach",H),setTimeout(l, +0)}};n=0;for(K=this.length;nassertEquals($text, $retext); } - - /** - * xmlify and put in a document - */ - public function testXmlifyDocument() { - $tag="I want to break"; + + /** + * xmlify and put in a document + */ + public function testXmlifyDocument() { + $tag="I want to break"; $xml=xmlify($tag); - $text=''.$xml.''; - - $xml_parser=xml_parser_create(); + $text=''.$xml.''; + + $xml_parser=xml_parser_create(); //should be possible to parse it - $values=array(); $index=array(); - $this->assertEquals(1, xml_parse_into_struct($xml_parser, $text, $values, $index)); - - $this->assertEquals(array('TEXT'=>array(0)), - $index); - $this->assertEquals(array(array('tag'=>'TEXT', 'type'=>'complete', 'level'=>1, 'value'=>$tag)), + $values=array(); $index=array(); + $this->assertEquals(1, xml_parse_into_struct($xml_parser, $text, $values, $index)); + + $this->assertEquals(array('TEXT'=>array(0)), + $index); + $this->assertEquals(array(array('tag'=>'TEXT', 'type'=>'complete', 'level'=>1, 'value'=>$tag)), $values); - - xml_parser_free($xml_parser); + + xml_parser_free($xml_parser); } /** diff --git a/tests/autoname_test.php b/tests/unit/AutonameTest.php similarity index 89% rename from tests/autoname_test.php rename to tests/unit/AutonameTest.php index 702e05bef..9f92f736f 100644 --- a/tests/autoname_test.php +++ b/tests/unit/AutonameTest.php @@ -1,76 +1,78 @@ assertNotEquals($autoname1, $autoname2); - } - - /** - *autonames should be random, odd length - */ - public function testAutonameOdd() { - $autoname1=autoname(9); - $autoname2=autoname(9); - - $this->assertNotEquals($autoname1, $autoname2); - } - - /** - * try to fail autonames - */ - public function testAutonameNoLength() { - $autoname1=autoname(0); - $this->assertEquals(0, strlen($autoname1)); - } - +class AutonameTest extends TestCase { + /** + *autonames should be random, even length + */ + public function testAutonameEven() { + $autoname1=autoname(10); + $autoname2=autoname(10); + + $this->assertNotEquals($autoname1, $autoname2); + } + + /** + *autonames should be random, odd length + */ + public function testAutonameOdd() { + $autoname1=autoname(9); + $autoname2=autoname(9); + + $this->assertNotEquals($autoname1, $autoname2); + } + + /** + * try to fail autonames + */ + public function testAutonameNoLength() { + $autoname1=autoname(0); + $this->assertEquals(0, strlen($autoname1)); + } + /** * try to fail it with invalid input - * + * * TODO: What's corect behaviour here? An exception? - */ - public function testAutonameNegativeLength() { - $autoname1=autoname(-23); - $this->assertEquals(0, strlen($autoname1)); - } - - // public function testAutonameMaxLength() { - // $autoname2=autoname(PHP_INT_MAX); - // $this->assertEquals(PHP_INT_MAX, count($autoname2)); - // } - + */ + public function testAutonameNegativeLength() { + $autoname1=autoname(-23); + $this->assertEquals(0, strlen($autoname1)); + } + + // public function testAutonameMaxLength() { + // $autoname2=autoname(PHP_INT_MAX); + // $this->assertEquals(PHP_INT_MAX, count($autoname2)); + // } + /** * test with a length, that may be too short - */ - public function testAutonameLength1() { - $autoname1=autoname(1); + */ + public function testAutonameLength1() { + $autoname1=autoname(1); $this->assertEquals(1, count($autoname1)); - - $autoname2=autoname(1); + + $autoname2=autoname(1); $this->assertEquals(1, count($autoname2)); // The following test is problematic, with only 26 possibilities // generating the same thing twice happens often aka // birthday paradox -// $this->assertFalse($autoname1==$autoname2); +// $this->assertFalse($autoname1==$autoname2); } } \ No newline at end of file diff --git a/tests/contains_attribute_test.php b/tests/unit/ContainsAttributeTest.php similarity index 91% rename from tests/contains_attribute_test.php rename to tests/unit/ContainsAttributeTest.php index b0bb06acf..0930d9837 100644 --- a/tests/contains_attribute_test.php +++ b/tests/unit/ContainsAttributeTest.php @@ -1,51 +1,53 @@ assertTrue(attribute_contains($testAttr, "class3")); - $this->assertFalse(attribute_contains($testAttr, "class2")); - } - - /** - * test attribute contains - */ - public function testAttributeContains2() { - $testAttr="class1 not-class2 class3"; - $this->assertTrue(attribute_contains($testAttr, "class3")); - $this->assertFalse(attribute_contains($testAttr, "class2")); - } - +/** + * this test tests the contains_attribute function + * + * @package test.util + */ + +use PHPUnit\Framework\TestCase; + +/** required, it is the file under test */ +require_once('include/text.php'); + +/** + * TestCase for the contains_attribute function + * + * @author Alexander Kampmann + * @package test.util + */ +class ContainsAttributeTest extends TestCase { + /** + * test attribute contains + */ + public function testAttributeContains1() { + $testAttr="class1 notclass2 class3"; + $this->assertTrue(attribute_contains($testAttr, "class3")); + $this->assertFalse(attribute_contains($testAttr, "class2")); + } + + /** + * test attribute contains + */ + public function testAttributeContains2() { + $testAttr="class1 not-class2 class3"; + $this->assertTrue(attribute_contains($testAttr, "class3")); + $this->assertFalse(attribute_contains($testAttr, "class2")); + } + /** * test with empty input - */ - public function testAttributeContainsEmpty() { - $testAttr=""; - $this->assertFalse(attribute_contains($testAttr, "class2")); - } - + */ + public function testAttributeContainsEmpty() { + $testAttr=""; + $this->assertFalse(attribute_contains($testAttr, "class2")); + } + /** * test input with special chars - */ - public function testAttributeContainsSpecialChars() { - $testAttr="--... %\$ä() /(=?}"; - $this->assertFalse(attribute_contains($testAttr, "class2")); + */ + public function testAttributeContainsSpecialChars() { + $testAttr="--... %\$ä() /(=?}"; + $this->assertFalse(attribute_contains($testAttr, "class2")); } } \ No newline at end of file diff --git a/tests/unit/Lib/PermissionDescriptionTest.php b/tests/unit/Lib/PermissionDescriptionTest.php new file mode 100644 index 000000000..b1da5a0fd --- /dev/null +++ b/tests/unit/Lib/PermissionDescriptionTest.php @@ -0,0 +1,110 @@ +assertEquals($permDesc, $permDesc2); + $this->assertNotEquals($permDesc, $permDesc3); + } + + public function testFromStandalonePermission() { + $permDescUnknown = PermissionDescription::fromStandalonePermission(-1); + $permDescSelf = PermissionDescription::fromStandalonePermission(0); + + $this->assertNull($permDescUnknown); + $this->assertNotNull($permDescSelf); + } + + public function testFromGlobalPermission() { + //$permDesc = PermissionDescription::fromGlobalPermission('view_profile'); + + $this->markTestIncomplete( + 'For this test we need more stubs...' + ); + } + + public function testGetPermissionDescription() { + + // fromStandalonePermission uses get_permission_description(), so that will not help + //$permDescSelf = PermissionDescription::fromStandalonePermission(0); + //$permDescPublic = PermissionDescription::fromStandalonePermission(PERMS_PUBLIC); + + $this->markTestIncomplete( + 'For this test we need a mock of PermissionDescription...' + ); + //$permDescSelf = + //$this->assertEquals($permDescSelf->, 'Only me'); + //$this->assertEquals($permDescPublic, 'Public'); + } + } +} diff --git a/tests/text_test.php b/tests/unit/TextTest.php similarity index 89% rename from tests/text_test.php rename to tests/unit/TextTest.php index d1e210b68..48c04bc54 100644 --- a/tests/text_test.php +++ b/tests/unit/TextTest.php @@ -1,20 +1,22 @@ assertTrue(valid_email_regex('ken@spaz.org')); } diff --git a/tests/unit/UnitTestCase.php b/tests/unit/UnitTestCase.php new file mode 100644 index 000000000..7d706d5be --- /dev/null +++ b/tests/unit/UnitTestCase.php @@ -0,0 +1,38 @@ +assertEquals("audio/ogg", z_mime_content_type($multidots)); diff --git a/tests/expand_acl_test.php b/tests/unit/expand_acl_test.php similarity index 100% rename from tests/expand_acl_test.php rename to tests/unit/expand_acl_test.php diff --git a/tests/get_tags_test.php b/tests/unit/get_tags_test.php similarity index 100% rename from tests/get_tags_test.php rename to tests/unit/get_tags_test.php diff --git a/tests/template_test.php b/tests/unit/template_test.php similarity index 100% rename from tests/template_test.php rename to tests/unit/template_test.php diff --git a/util/Doxyfile b/util/Doxyfile index 55acd46eb..f6c0692ee 100644 --- a/util/Doxyfile +++ b/util/Doxyfile @@ -1,8 +1,8 @@ -INPUT = README.md index.php boot.php mod/ include/ util/ view/ version.inc +INPUT = README.md index.php boot.php include/ install/ util/ view/ Zotlabs/ RECURSIVE = YES PROJECT_NAME = "The Hubzilla" PROJECT_LOGO = images/rm-64.png -EXCLUDE = .htconfig.php library/ doc/ vendor/ .git/ util/zotsh/easywebdav/ +EXCLUDE = .htconfig.php library/ doc/ store/ vendor/ .git/ util/zotsh/easywebdav/ util/generate-hooks-index/ EXCLUDE_PATTERNS = *smarty3* *strings.php *.out *test* OUTPUT_DIRECTORY = doc GENERATE_HTML = YES @@ -21,3 +21,5 @@ ALIASES += "fixme=\xrefitem fixme \"Fixme\" \"Fixme List\"" ALIASES += "FIXME=\fixme" ALIASES += "TODO=\todo" ALIASES += "BUG=\bug" +ALIASES += "hooks=\xrefitem hooks \"Hooks\" \"Hooks List\"" +ALIASES += "HOOKS=\hooks" diff --git a/util/connect b/util/connect new file mode 100755 index 000000000..eed14961c --- /dev/null +++ b/util/connect @@ -0,0 +1,64 @@ +#!/usr/bin/env php +') . PHP_EOL; + exit(1); +} + +require_once('include/cli_startup.php'); +require_once('include/follow.php'); + +cli_startup(); + + + if($argc != 3) { + echo t('Usage: util/connect channel_id|channel_address channel[@hub]'); + exit(1); + } + + if(ctype_digit($argv[1])) { + $c = channelx_by_n($argv[1]); + } + else { + $c = channelx_by_nick($argv[1]); + } + + if(! $c) { + echo t('Source channel not found.'); + exit(1); + } + + $result = new_contact($c['channel_id'],$argv[2],$c,false,false); + + if($result['success'] == false) { + echo $result['message']; + exit(1); + } + + $clone = array(); + foreach($result['abook'] as $k => $v) { + if(strpos($k,'abook_') === 0) { + $clone[$k] = $v; + } + } + unset($clone['abook_id']); + unset($clone['abook_account']); + unset($clone['abook_channel']); + + $abconfig = load_abconfig($c['channel_id'],$clone['abook_xchan']); + if($abconfig) + $clone['abconfig'] = $abconfig; + build_sync_packet($c['channel_id'], array('abook' => array($clone)), true); + + $can_view_stream = intval(get_abconfig($c['channel_id'],$clone['abook_xchan'],'their_perms','view_stream')); + + // If we can view their stream, pull in some posts + + if(($can_view_stream) || ($result['abook']['xchan_network'] === 'rss')) + \Zotlabs\Daemon\Master::Summon(array('Onepoll',$result['abook']['abook_id'])); + + + exit(0); diff --git a/util/hmessages.po b/util/hmessages.po index 737d7c385..5d0ffd75a 100644 --- a/util/hmessages.po +++ b/util/hmessages.po @@ -1,14 +1,14 @@ -# Hubzilla Project -# Copyright (C) 2012-2014 the Hubzilla Project -# This file is distributed under the same license as the Red package. +# hubzilla +# Copyright (C) 2012-2016 hubzilla +# This file is distributed under the same license as the hubzilla package. # Mike Macgirvin, 2012 # #, fuzzy msgid "" msgstr "" -"Project-Id-Version: \n" +"Project-Id-Version: 1.15.2\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-10-14 00:02-0700\n" +"POT-Creation-Date: 2016-12-09 00:05-0800\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -17,151 +17,155 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../../Zotlabs/Access/PermissionRoles.php:182 +#: ../../Zotlabs/Access/PermissionRoles.php:227 #: ../../include/permissions.php:945 msgid "Social Networking" msgstr "" -#: ../../Zotlabs/Access/PermissionRoles.php:183 +#: ../../Zotlabs/Access/PermissionRoles.php:228 #: ../../include/permissions.php:945 msgid "Social - Mostly Public" msgstr "" -#: ../../Zotlabs/Access/PermissionRoles.php:184 +#: ../../Zotlabs/Access/PermissionRoles.php:229 #: ../../include/permissions.php:945 msgid "Social - Restricted" msgstr "" -#: ../../Zotlabs/Access/PermissionRoles.php:185 +#: ../../Zotlabs/Access/PermissionRoles.php:230 #: ../../include/permissions.php:945 msgid "Social - Private" msgstr "" -#: ../../Zotlabs/Access/PermissionRoles.php:188 +#: ../../Zotlabs/Access/PermissionRoles.php:233 #: ../../include/permissions.php:946 msgid "Community Forum" msgstr "" -#: ../../Zotlabs/Access/PermissionRoles.php:189 +#: ../../Zotlabs/Access/PermissionRoles.php:234 #: ../../include/permissions.php:946 msgid "Forum - Mostly Public" msgstr "" -#: ../../Zotlabs/Access/PermissionRoles.php:190 +#: ../../Zotlabs/Access/PermissionRoles.php:235 #: ../../include/permissions.php:946 msgid "Forum - Restricted" msgstr "" -#: ../../Zotlabs/Access/PermissionRoles.php:191 +#: ../../Zotlabs/Access/PermissionRoles.php:236 #: ../../include/permissions.php:946 msgid "Forum - Private" msgstr "" -#: ../../Zotlabs/Access/PermissionRoles.php:194 +#: ../../Zotlabs/Access/PermissionRoles.php:239 #: ../../include/permissions.php:947 msgid "Feed Republish" msgstr "" -#: ../../Zotlabs/Access/PermissionRoles.php:195 +#: ../../Zotlabs/Access/PermissionRoles.php:240 #: ../../include/permissions.php:947 msgid "Feed - Mostly Public" msgstr "" -#: ../../Zotlabs/Access/PermissionRoles.php:196 +#: ../../Zotlabs/Access/PermissionRoles.php:241 #: ../../include/permissions.php:947 msgid "Feed - Restricted" msgstr "" -#: ../../Zotlabs/Access/PermissionRoles.php:199 +#: ../../Zotlabs/Access/PermissionRoles.php:244 #: ../../include/permissions.php:948 msgid "Special Purpose" msgstr "" -#: ../../Zotlabs/Access/PermissionRoles.php:200 +#: ../../Zotlabs/Access/PermissionRoles.php:245 #: ../../include/permissions.php:948 msgid "Special - Celebrity/Soapbox" msgstr "" -#: ../../Zotlabs/Access/PermissionRoles.php:201 +#: ../../Zotlabs/Access/PermissionRoles.php:246 #: ../../include/permissions.php:948 msgid "Special - Group Repository" msgstr "" -#: ../../Zotlabs/Access/PermissionRoles.php:204 -#: ../../Zotlabs/Module/Settings/Channel.php:442 +#: ../../Zotlabs/Access/PermissionRoles.php:249 #: ../../Zotlabs/Module/Register.php:213 -#: ../../Zotlabs/Module/New_channel.php:132 ../../include/selectors.php:49 -#: ../../include/selectors.php:66 ../../include/selectors.php:104 -#: ../../include/selectors.php:140 ../../include/permissions.php:949 +#: ../../Zotlabs/Module/New_channel.php:132 +#: ../../Zotlabs/Module/Settings/Channel.php:445 +#: ../../extend/addon/addon/cdav/cdav.php:277 +#: ../../extend/addon/addon/cdav/cdav.php:284 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1148 +#: ../../include/selectors.php:49 ../../include/selectors.php:66 +#: ../../include/selectors.php:104 ../../include/selectors.php:140 +#: ../../include/permissions.php:949 msgid "Other" msgstr "" -#: ../../Zotlabs/Access/PermissionRoles.php:205 +#: ../../Zotlabs/Access/PermissionRoles.php:250 #: ../../include/permissions.php:949 msgid "Custom/Expert Mode" msgstr "" -#: ../../Zotlabs/Access/Permissions.php:30 +#: ../../Zotlabs/Access/Permissions.php:46 msgid "Can view my channel stream and posts" msgstr "" -#: ../../Zotlabs/Access/Permissions.php:31 ../../include/permissions.php:42 +#: ../../Zotlabs/Access/Permissions.php:47 ../../include/permissions.php:42 msgid "Can send me their channel stream and posts" msgstr "" -#: ../../Zotlabs/Access/Permissions.php:32 ../../include/permissions.php:36 +#: ../../Zotlabs/Access/Permissions.php:48 ../../include/permissions.php:36 msgid "Can view my default channel profile" msgstr "" -#: ../../Zotlabs/Access/Permissions.php:33 ../../include/permissions.php:37 +#: ../../Zotlabs/Access/Permissions.php:49 ../../include/permissions.php:37 msgid "Can view my connections" msgstr "" -#: ../../Zotlabs/Access/Permissions.php:34 ../../include/permissions.php:38 +#: ../../Zotlabs/Access/Permissions.php:50 ../../include/permissions.php:38 msgid "Can view my file storage and photos" msgstr "" -#: ../../Zotlabs/Access/Permissions.php:35 +#: ../../Zotlabs/Access/Permissions.php:51 msgid "Can upload/modify my file storage and photos" msgstr "" -#: ../../Zotlabs/Access/Permissions.php:36 +#: ../../Zotlabs/Access/Permissions.php:52 msgid "Can view my channel webpages" msgstr "" -#: ../../Zotlabs/Access/Permissions.php:37 +#: ../../Zotlabs/Access/Permissions.php:53 msgid "Can create/edit my channel webpages" msgstr "" -#: ../../Zotlabs/Access/Permissions.php:38 +#: ../../Zotlabs/Access/Permissions.php:54 msgid "Can post on my channel (wall) page" msgstr "" -#: ../../Zotlabs/Access/Permissions.php:39 ../../include/permissions.php:44 +#: ../../Zotlabs/Access/Permissions.php:55 ../../include/permissions.php:44 msgid "Can comment on or like my posts" msgstr "" -#: ../../Zotlabs/Access/Permissions.php:40 ../../include/permissions.php:45 +#: ../../Zotlabs/Access/Permissions.php:56 ../../include/permissions.php:45 msgid "Can send me private mail messages" msgstr "" -#: ../../Zotlabs/Access/Permissions.php:41 +#: ../../Zotlabs/Access/Permissions.php:57 msgid "Can like/dislike profiles and profile things" msgstr "" -#: ../../Zotlabs/Access/Permissions.php:42 +#: ../../Zotlabs/Access/Permissions.php:58 msgid "Can forward to all my channel connections via @+ mentions in posts" msgstr "" -#: ../../Zotlabs/Access/Permissions.php:43 +#: ../../Zotlabs/Access/Permissions.php:59 msgid "Can chat with me" msgstr "" -#: ../../Zotlabs/Access/Permissions.php:44 ../../include/permissions.php:53 +#: ../../Zotlabs/Access/Permissions.php:60 ../../include/permissions.php:53 msgid "Can source my public posts in derived channels" msgstr "" -#: ../../Zotlabs/Access/Permissions.php:45 +#: ../../Zotlabs/Access/Permissions.php:61 msgid "Can administer my channel" msgstr "" @@ -169,7 +173,7 @@ msgstr "" msgid "parent" msgstr "" -#: ../../Zotlabs/Storage/Browser.php:130 ../../include/text.php:2723 +#: ../../Zotlabs/Storage/Browser.php:130 ../../include/text.php:2682 msgid "Collection" msgstr "" @@ -196,14 +200,17 @@ msgstr "" #: ../../Zotlabs/Storage/Browser.php:163 ../../Zotlabs/Module/Photos.php:789 #: ../../Zotlabs/Module/Photos.php:1249 #: ../../Zotlabs/Module/Embedphotos.php:145 ../../Zotlabs/Lib/Apps.php:490 -#: ../../Zotlabs/Lib/Apps.php:565 ../../include/widgets.php:1682 -#: ../../include/conversation.php:1031 +#: ../../Zotlabs/Lib/Apps.php:565 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:745 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:746 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:753 +#: ../../include/widgets.php:1754 ../../include/conversation.php:1047 msgid "Unknown" msgstr "" #: ../../Zotlabs/Storage/Browser.php:224 ../../Zotlabs/Module/Fbrowser.php:85 #: ../../Zotlabs/Lib/Apps.php:217 ../../include/nav.php:96 -#: ../../include/conversation.php:1679 +#: ../../include/conversation.php:1699 msgid "Files" msgstr "" @@ -217,33 +224,43 @@ msgstr "" #: ../../Zotlabs/Storage/Browser.php:228 ../../Zotlabs/Storage/Browser.php:321 #: ../../Zotlabs/Module/Menu.php:118 ../../Zotlabs/Module/New_channel.php:147 -#: ../../Zotlabs/Module/Webpages.php:239 ../../Zotlabs/Module/Blocks.php:159 -#: ../../Zotlabs/Module/Layouts.php:184 +#: ../../Zotlabs/Module/Blocks.php:159 ../../Zotlabs/Module/Layouts.php:184 +#: ../../Zotlabs/Module/Webpages.php:239 +#: ../../extend/addon/addon/cdav/include/widgets.php:127 +#: ../../extend/addon/addon/cdav/include/widgets.php:164 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1151 +#: ../../include/widgets.php:969 msgid "Create" msgstr "" #: ../../Zotlabs/Storage/Browser.php:229 ../../Zotlabs/Storage/Browser.php:323 #: ../../Zotlabs/Module/Cover_photo.php:357 -#: ../../Zotlabs/Module/Profile_photo.php:390 #: ../../Zotlabs/Module/Photos.php:816 ../../Zotlabs/Module/Photos.php:1370 -#: ../../Zotlabs/Module/Embedphotos.php:157 ../../include/widgets.php:1695 +#: ../../Zotlabs/Module/Profile_photo.php:410 +#: ../../Zotlabs/Module/Embedphotos.php:157 +#: ../../extend/addon/addon/cdav/include/widgets.php:132 +#: ../../extend/addon/addon/cdav/include/widgets.php:168 +#: ../../include/widgets.php:1767 msgid "Upload" msgstr "" #: ../../Zotlabs/Storage/Browser.php:233 +#: ../../Zotlabs/Module/Admin/Channels.php:159 +#: ../../Zotlabs/Module/Sharedwithme.php:99 ../../Zotlabs/Module/Wiki.php:151 #: ../../Zotlabs/Module/Settings/Oauth.php:89 #: ../../Zotlabs/Module/Settings/Oauth.php:115 -#: ../../Zotlabs/Module/Admin/Channels.php:159 -#: ../../Zotlabs/Module/Sharedwithme.php:99 ../../Zotlabs/Module/Chat.php:250 +#: ../../Zotlabs/Module/Chat.php:250 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1136 +#: ../../extend/addon/addon/rendezvous/rendezvous.php:132 msgid "Name" msgstr "" -#: ../../Zotlabs/Storage/Browser.php:234 +#: ../../Zotlabs/Storage/Browser.php:234 ../../Zotlabs/Module/Wiki.php:152 msgid "Type" msgstr "" #: ../../Zotlabs/Storage/Browser.php:235 -#: ../../Zotlabs/Module/Sharedwithme.php:101 ../../include/text.php:1397 +#: ../../Zotlabs/Module/Sharedwithme.php:101 ../../include/text.php:1390 msgid "Size" msgstr "" @@ -255,35 +272,40 @@ msgstr "" #: ../../Zotlabs/Storage/Browser.php:238 #: ../../Zotlabs/Module/Connections.php:290 #: ../../Zotlabs/Module/Connections.php:310 -#: ../../Zotlabs/Module/Settings/Oauth.php:149 +#: ../../Zotlabs/Module/Admin/Profs.php:154 #: ../../Zotlabs/Module/Editlayout.php:114 #: ../../Zotlabs/Module/Editwebpage.php:145 ../../Zotlabs/Module/Menu.php:112 -#: ../../Zotlabs/Module/Editpost.php:84 -#: ../../Zotlabs/Module/Admin/Profs.php:154 -#: ../../Zotlabs/Module/Editblock.php:109 -#: ../../Zotlabs/Module/Webpages.php:240 ../../Zotlabs/Module/Blocks.php:160 -#: ../../Zotlabs/Module/Layouts.php:192 ../../Zotlabs/Module/Thing.php:260 -#: ../../Zotlabs/Lib/Apps.php:341 ../../Zotlabs/Lib/ThreadItem.php:106 +#: ../../Zotlabs/Module/Editblock.php:109 ../../Zotlabs/Module/Editpost.php:84 +#: ../../Zotlabs/Module/Blocks.php:160 ../../Zotlabs/Module/Layouts.php:192 +#: ../../Zotlabs/Module/Webpages.php:240 ../../Zotlabs/Module/Wiki.php:144 +#: ../../Zotlabs/Module/Wiki.php:252 +#: ../../Zotlabs/Module/Settings/Oauth.php:149 +#: ../../Zotlabs/Module/Thing.php:260 ../../Zotlabs/Lib/Apps.php:341 +#: ../../Zotlabs/Lib/ThreadItem.php:106 +#: ../../extend/addon/addon/cdav/include/widgets.php:125 +#: ../../extend/addon/addon/cdav/include/widgets.php:161 +#: ../../include/channel.php:961 ../../include/channel.php:965 #: ../../include/page_widgets.php:9 ../../include/page_widgets.php:39 -#: ../../include/menu.php:113 ../../include/channel.php:961 -#: ../../include/channel.php:965 +#: ../../include/menu.php:113 ../../include/widgets.php:965 msgid "Edit" msgstr "" -#: ../../Zotlabs/Storage/Browser.php:239 +#: ../../Zotlabs/Storage/Browser.php:239 ../../Zotlabs/Module/Connedit.php:635 #: ../../Zotlabs/Module/Connections.php:263 -#: ../../Zotlabs/Module/Settings/Oauth.php:150 -#: ../../Zotlabs/Module/Editlayout.php:137 -#: ../../Zotlabs/Module/Editwebpage.php:170 -#: ../../Zotlabs/Module/Connedit.php:607 #: ../../Zotlabs/Module/Admin/Profs.php:155 #: ../../Zotlabs/Module/Admin/Accounts.php:173 #: ../../Zotlabs/Module/Admin/Channels.php:149 -#: ../../Zotlabs/Module/Editblock.php:134 -#: ../../Zotlabs/Module/Webpages.php:242 ../../Zotlabs/Module/Blocks.php:162 -#: ../../Zotlabs/Module/Group.php:177 ../../Zotlabs/Module/Thing.php:261 -#: ../../Zotlabs/Module/Photos.php:1179 ../../Zotlabs/Lib/Apps.php:342 -#: ../../Zotlabs/Lib/ThreadItem.php:126 ../../include/conversation.php:660 +#: ../../Zotlabs/Module/Editlayout.php:137 +#: ../../Zotlabs/Module/Editwebpage.php:170 +#: ../../Zotlabs/Module/Editblock.php:134 ../../Zotlabs/Module/Group.php:177 +#: ../../Zotlabs/Module/Photos.php:1179 ../../Zotlabs/Module/Blocks.php:162 +#: ../../Zotlabs/Module/Webpages.php:242 +#: ../../Zotlabs/Module/Settings/Oauth.php:150 +#: ../../Zotlabs/Module/Thing.php:261 ../../Zotlabs/Lib/Apps.php:342 +#: ../../Zotlabs/Lib/ThreadItem.php:126 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:864 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1153 +#: ../../include/conversation.php:676 msgid "Delete" msgstr "" @@ -313,105 +335,117 @@ msgstr "" msgid "Drop files here to immediately upload" msgstr "" -#: ../../Zotlabs/Web/WebServer.php:127 -#: ../../Zotlabs/Module/Import_items.php:114 ../../Zotlabs/Module/Like.php:283 -#: ../../Zotlabs/Module/Dreport.php:10 ../../Zotlabs/Module/Dreport.php:68 -#: ../../Zotlabs/Module/Group.php:72 ../../Zotlabs/Module/Subthread.php:62 -#: ../../Zotlabs/Module/Profperm.php:28 ../../include/items.php:399 -msgid "Permission denied" -msgstr "" - -#: ../../Zotlabs/Web/WebServer.php:128 ../../Zotlabs/Web/Router.php:67 -#: ../../Zotlabs/Module/Achievements.php:34 ../../Zotlabs/Module/Rate.php:113 -#: ../../Zotlabs/Module/Authtest.php:16 ../../Zotlabs/Module/Network.php:15 -#: ../../Zotlabs/Module/Bookmarks.php:61 ../../Zotlabs/Module/Invite.php:17 -#: ../../Zotlabs/Module/Invite.php:94 ../../Zotlabs/Module/Manage.php:10 -#: ../../Zotlabs/Module/Page.php:35 ../../Zotlabs/Module/Page.php:91 +#: ../../Zotlabs/Web/Router.php:67 ../../Zotlabs/Web/WebServer.php:128 +#: ../../Zotlabs/Module/Achievements.php:34 +#: ../../Zotlabs/Module/Register.php:77 ../../Zotlabs/Module/Connedit.php:397 +#: ../../Zotlabs/Module/Authtest.php:16 ../../Zotlabs/Module/Bookmarks.php:61 +#: ../../Zotlabs/Module/Locs.php:87 ../../Zotlabs/Module/Page.php:35 +#: ../../Zotlabs/Module/Page.php:91 ../../Zotlabs/Module/Manage.php:10 #: ../../Zotlabs/Module/Connections.php:33 #: ../../Zotlabs/Module/Cover_photo.php:277 -#: ../../Zotlabs/Module/Cover_photo.php:290 ../../Zotlabs/Module/Item.php:216 -#: ../../Zotlabs/Module/Item.php:224 ../../Zotlabs/Module/Item.php:1072 +#: ../../Zotlabs/Module/Cover_photo.php:290 #: ../../Zotlabs/Module/Editlayout.php:67 #: ../../Zotlabs/Module/Editlayout.php:90 #: ../../Zotlabs/Module/Editwebpage.php:68 #: ../../Zotlabs/Module/Editwebpage.php:89 #: ../../Zotlabs/Module/Editwebpage.php:104 -#: ../../Zotlabs/Module/Editwebpage.php:126 ../../Zotlabs/Module/Menu.php:78 -#: ../../Zotlabs/Module/Appman.php:75 ../../Zotlabs/Module/Register.php:77 -#: ../../Zotlabs/Module/Connedit.php:395 +#: ../../Zotlabs/Module/Editwebpage.php:126 +#: ../../Zotlabs/Module/Channel.php:107 ../../Zotlabs/Module/Channel.php:237 +#: ../../Zotlabs/Module/Channel.php:277 ../../Zotlabs/Module/Network.php:15 +#: ../../Zotlabs/Module/Menu.php:78 ../../Zotlabs/Module/Appman.php:75 #: ../../Zotlabs/Module/Filestorage.php:23 #: ../../Zotlabs/Module/Filestorage.php:78 #: ../../Zotlabs/Module/Filestorage.php:93 -#: ../../Zotlabs/Module/Filestorage.php:120 -#: ../../Zotlabs/Module/Pdledit.php:29 ../../Zotlabs/Module/Editpost.php:17 -#: ../../Zotlabs/Module/Profiles.php:197 ../../Zotlabs/Module/Profiles.php:595 -#: ../../Zotlabs/Module/Channel.php:106 ../../Zotlabs/Module/Channel.php:231 -#: ../../Zotlabs/Module/Channel.php:271 ../../Zotlabs/Module/Block.php:26 -#: ../../Zotlabs/Module/Block.php:76 ../../Zotlabs/Module/Mail.php:121 -#: ../../Zotlabs/Module/Locs.php:87 ../../Zotlabs/Module/Like.php:181 +#: ../../Zotlabs/Module/Filestorage.php:120 ../../Zotlabs/Module/Item.php:220 +#: ../../Zotlabs/Module/Item.php:230 ../../Zotlabs/Module/Item.php:1098 +#: ../../Zotlabs/Module/Settings.php:59 ../../Zotlabs/Module/Mail.php:135 +#: ../../Zotlabs/Module/Block.php:26 ../../Zotlabs/Module/Block.php:76 +#: ../../Zotlabs/Module/Invite.php:17 ../../Zotlabs/Module/Invite.php:94 +#: ../../Zotlabs/Module/Editblock.php:67 ../../Zotlabs/Module/Group.php:13 #: ../../Zotlabs/Module/Mitem.php:115 ../../Zotlabs/Module/Message.php:18 -#: ../../Zotlabs/Module/Mood.php:116 ../../Zotlabs/Module/Setup.php:218 -#: ../../Zotlabs/Module/Editblock.php:67 +#: ../../Zotlabs/Module/Mood.php:116 ../../Zotlabs/Module/Photos.php:73 +#: ../../Zotlabs/Module/Setup.php:212 ../../Zotlabs/Module/Editpost.php:17 #: ../../Zotlabs/Module/New_channel.php:77 #: ../../Zotlabs/Module/New_channel.php:104 #: ../../Zotlabs/Module/Notifications.php:11 ../../Zotlabs/Module/Poke.php:137 -#: ../../Zotlabs/Module/Webpages.php:116 ../../Zotlabs/Module/Profile.php:68 -#: ../../Zotlabs/Module/Profile.php:76 ../../Zotlabs/Module/Blocks.php:73 -#: ../../Zotlabs/Module/Blocks.php:80 ../../Zotlabs/Module/Layouts.php:71 -#: ../../Zotlabs/Module/Layouts.php:78 ../../Zotlabs/Module/Layouts.php:89 -#: ../../Zotlabs/Module/Settings.php:59 -#: ../../Zotlabs/Module/Profile_photo.php:265 -#: ../../Zotlabs/Module/Profile_photo.php:278 -#: ../../Zotlabs/Module/Events.php:264 ../../Zotlabs/Module/Common.php:39 -#: ../../Zotlabs/Module/Api.php:12 ../../Zotlabs/Module/Regmod.php:21 -#: ../../Zotlabs/Module/Group.php:13 +#: ../../Zotlabs/Module/Profiles.php:197 ../../Zotlabs/Module/Profiles.php:595 +#: ../../Zotlabs/Module/Profile.php:68 ../../Zotlabs/Module/Profile.php:76 +#: ../../Zotlabs/Module/Blocks.php:73 ../../Zotlabs/Module/Blocks.php:80 +#: ../../Zotlabs/Module/Layouts.php:71 ../../Zotlabs/Module/Layouts.php:78 +#: ../../Zotlabs/Module/Layouts.php:89 ../../Zotlabs/Module/Rate.php:113 +#: ../../Zotlabs/Module/Like.php:181 +#: ../../Zotlabs/Module/Profile_photo.php:273 +#: ../../Zotlabs/Module/Profile_photo.php:286 +#: ../../Zotlabs/Module/Common.php:39 ../../Zotlabs/Module/Api.php:24 +#: ../../Zotlabs/Module/Regmod.php:21 ../../Zotlabs/Module/Pdledit.php:29 #: ../../Zotlabs/Module/Service_limits.php:11 -#: ../../Zotlabs/Module/Thing.php:274 ../../Zotlabs/Module/Thing.php:294 -#: ../../Zotlabs/Module/Thing.php:335 ../../Zotlabs/Module/Sharedwithme.php:11 -#: ../../Zotlabs/Module/Sources.php:74 ../../Zotlabs/Module/Suggest.php:30 -#: ../../Zotlabs/Module/Photos.php:73 +#: ../../Zotlabs/Module/Webpages.php:116 +#: ../../Zotlabs/Module/Sharedwithme.php:11 ../../Zotlabs/Module/Wiki.php:189 +#: ../../Zotlabs/Module/Wiki.php:302 ../../Zotlabs/Module/Sources.php:74 +#: ../../Zotlabs/Module/Suggest.php:30 ../../Zotlabs/Module/Thing.php:274 +#: ../../Zotlabs/Module/Thing.php:294 ../../Zotlabs/Module/Thing.php:335 #: ../../Zotlabs/Module/Viewconnections.php:28 #: ../../Zotlabs/Module/Viewconnections.php:33 #: ../../Zotlabs/Module/Viewsrc.php:18 ../../Zotlabs/Module/Chat.php:100 -#: ../../Zotlabs/Module/Chat.php:105 ../../Zotlabs/Lib/Chatroom.php:137 -#: ../../include/photos.php:27 ../../include/items.php:3490 -#: ../../include/attach.php:142 ../../include/attach.php:189 -#: ../../include/attach.php:253 ../../include/attach.php:267 -#: ../../include/attach.php:274 ../../include/attach.php:341 -#: ../../include/attach.php:355 ../../include/attach.php:362 -#: ../../include/attach.php:439 ../../include/attach.php:900 -#: ../../include/attach.php:971 ../../include/attach.php:1123 +#: ../../Zotlabs/Module/Chat.php:105 ../../Zotlabs/Module/Events.php:267 +#: ../../Zotlabs/Lib/Chatroom.php:137 +#: ../../extend/addon/addon/friendica/dfrn_confirm.php:55 +#: ../../extend/addon/addon/keepout/keepout.php:36 +#: ../../extend/addon/addon/pumpio/pumpio.php:40 +#: ../../extend/addon/addon/openid/Mod_Id.php:53 +#: ../../extend/addon/addon/diaspora_reconnect/diaspora_reconnect.php:58 +#: ../../include/items.php:3422 ../../include/attach.php:142 +#: ../../include/attach.php:189 ../../include/attach.php:253 +#: ../../include/attach.php:267 ../../include/attach.php:274 +#: ../../include/attach.php:341 ../../include/attach.php:355 +#: ../../include/attach.php:362 ../../include/attach.php:439 +#: ../../include/attach.php:906 ../../include/attach.php:977 +#: ../../include/attach.php:1135 ../../include/photos.php:27 msgid "Permission denied." msgstr "" -#: ../../Zotlabs/Web/Router.php:148 ../../include/help.php:62 +#: ../../Zotlabs/Web/Router.php:148 ../../include/help.php:63 msgid "Not Found" msgstr "" #: ../../Zotlabs/Web/Router.php:151 ../../Zotlabs/Module/Page.php:94 -#: ../../Zotlabs/Module/Block.php:79 ../../Zotlabs/Module/Display.php:120 -#: ../../include/help.php:65 +#: ../../Zotlabs/Module/Display.php:120 ../../Zotlabs/Module/Block.php:79 +#: ../../include/help.php:66 msgid "Page not found." msgstr "" +#: ../../Zotlabs/Web/WebServer.php:127 ../../Zotlabs/Module/Dreport.php:10 +#: ../../Zotlabs/Module/Dreport.php:68 +#: ../../Zotlabs/Module/Import_items.php:114 ../../Zotlabs/Module/Group.php:72 +#: ../../Zotlabs/Module/Profperm.php:28 ../../Zotlabs/Module/Like.php:283 +#: ../../Zotlabs/Module/Subthread.php:62 +#: ../../extend/addon/addon/frphotos/frphotos.php:81 +#: ../../extend/addon/addon/redfiles/redfiles.php:109 +#: ../../extend/addon/addon/redphotos/redphotos.php:119 +#: ../../include/items.php:327 +msgid "Permission denied" +msgstr "" + #: ../../Zotlabs/Zot/Auth.php:138 msgid "" "Remote authentication blocked. You are logged into this site locally. Please " "logout and retry." msgstr "" -#: ../../Zotlabs/Zot/Auth.php:246 +#: ../../Zotlabs/Zot/Auth.php:250 +#: ../../extend/addon/addon/openid/Mod_Openid.php:76 +#: ../../extend/addon/addon/openid/Mod_Openid.php:183 #, php-format msgid "Welcome %s. Remote authentication successful." msgstr "" #: ../../Zotlabs/Module/Achievements.php:15 -#: ../../Zotlabs/Module/Editlayout.php:31 +#: ../../Zotlabs/Module/Connect.php:17 ../../Zotlabs/Module/Editlayout.php:31 #: ../../Zotlabs/Module/Editwebpage.php:32 -#: ../../Zotlabs/Module/Filestorage.php:59 ../../Zotlabs/Module/Connect.php:17 +#: ../../Zotlabs/Module/Filestorage.php:59 #: ../../Zotlabs/Module/Editblock.php:31 ../../Zotlabs/Module/Hcard.php:12 -#: ../../Zotlabs/Module/Webpages.php:33 ../../Zotlabs/Module/Profile.php:20 -#: ../../Zotlabs/Module/Blocks.php:33 ../../Zotlabs/Module/Layouts.php:31 +#: ../../Zotlabs/Module/Profile.php:20 ../../Zotlabs/Module/Blocks.php:33 +#: ../../Zotlabs/Module/Layouts.php:31 ../../Zotlabs/Module/Webpages.php:33 #: ../../include/channel.php:862 msgid "Requested profile is not available." msgstr "" @@ -428,38 +462,576 @@ msgstr "" msgid "Online" msgstr "" -#: ../../Zotlabs/Module/Rate.php:155 ../../Zotlabs/Module/Connedit.php:762 +#: ../../Zotlabs/Module/Register.php:49 +msgid "Maximum daily site registrations exceeded. Please try again tomorrow." +msgstr "" + +#: ../../Zotlabs/Module/Register.php:55 +msgid "" +"Please indicate acceptance of the Terms of Service. Registration failed." +msgstr "" + +#: ../../Zotlabs/Module/Register.php:89 +msgid "Passwords do not match." +msgstr "" + +#: ../../Zotlabs/Module/Register.php:131 +msgid "" +"Registration successful. Please check your email for validation instructions." +msgstr "" + +#: ../../Zotlabs/Module/Register.php:137 +msgid "Your registration is pending approval by the site owner." +msgstr "" + +#: ../../Zotlabs/Module/Register.php:140 +msgid "Your registration can not be processed." +msgstr "" + +#: ../../Zotlabs/Module/Register.php:184 +msgid "Registration on this hub is disabled." +msgstr "" + +#: ../../Zotlabs/Module/Register.php:193 +msgid "Registration on this hub is by approval only." +msgstr "" + +#: ../../Zotlabs/Module/Register.php:194 +msgid "Register at another affiliated hub." +msgstr "" + +#: ../../Zotlabs/Module/Register.php:204 +msgid "" +"This site has exceeded the number of allowed daily account registrations. " +"Please try again tomorrow." +msgstr "" + +#: ../../Zotlabs/Module/Register.php:221 ../../Zotlabs/Module/Siteinfo.php:27 +msgid "Terms of Service" +msgstr "" + +#: ../../Zotlabs/Module/Register.php:227 +#, php-format +msgid "I accept the %s for this website" +msgstr "" + +#: ../../Zotlabs/Module/Register.php:229 +#, php-format +msgid "I am over 13 years of age and accept the %s for this website" +msgstr "" + +#: ../../Zotlabs/Module/Register.php:233 +msgid "Your email address" +msgstr "" + +#: ../../Zotlabs/Module/Register.php:234 +msgid "Choose a password" +msgstr "" + +#: ../../Zotlabs/Module/Register.php:235 +msgid "Please re-enter your password" +msgstr "" + +#: ../../Zotlabs/Module/Register.php:236 +msgid "Please enter your invitation code" +msgstr "" + +#: ../../Zotlabs/Module/Register.php:237 +#: ../../Zotlabs/Module/New_channel.php:134 +msgid "Name or caption" +msgstr "" + +#: ../../Zotlabs/Module/Register.php:237 +#: ../../Zotlabs/Module/New_channel.php:134 +msgid "" +"Examples: \"Bob Jameson\", \"Lisa and her Horses\", \"Soccer\", \"Aviation " +"Group\"" +msgstr "" + +#: ../../Zotlabs/Module/Register.php:239 +#: ../../Zotlabs/Module/New_channel.php:136 +msgid "Choose a short nickname" +msgstr "" + +#: ../../Zotlabs/Module/Register.php:239 +#: ../../Zotlabs/Module/New_channel.php:136 +#, php-format +msgid "" +"Your nickname will be used to create an easy to remember channel address e." +"g. nickname%s" +msgstr "" + +#: ../../Zotlabs/Module/Register.php:240 +#: ../../Zotlabs/Module/New_channel.php:137 +msgid "Channel role and privacy" +msgstr "" + +#: ../../Zotlabs/Module/Register.php:240 +#: ../../Zotlabs/Module/New_channel.php:137 +msgid "Select a channel role with your privacy requirements." +msgstr "" + +#: ../../Zotlabs/Module/Register.php:240 +#: ../../Zotlabs/Module/New_channel.php:137 +msgid "Read more about roles" +msgstr "" + +#: ../../Zotlabs/Module/Register.php:241 +msgid "no" +msgstr "" + +#: ../../Zotlabs/Module/Register.php:241 +msgid "yes" +msgstr "" + +#: ../../Zotlabs/Module/Register.php:253 +#: ../../Zotlabs/Module/Admin/Site.php:261 +msgid "Registration" +msgstr "" + +#: ../../Zotlabs/Module/Register.php:258 +msgid "Membership on this site is by invitation only." +msgstr "" + +#: ../../Zotlabs/Module/Register.php:270 ../../include/nav.php:150 +#: ../../boot.php:1701 +msgid "Register" +msgstr "" + +#: ../../Zotlabs/Module/Register.php:271 +msgid "" +"This site may require email verification after submitting this form. If you " +"are returned to a login page, please check your email for instructions." +msgstr "" + +#: ../../Zotlabs/Module/Probe.php:28 ../../Zotlabs/Module/Probe.php:32 +#, php-format +msgid "Fetching URL returns error: %1$s" +msgstr "" + +#: ../../Zotlabs/Module/Match.php:26 +msgid "Profile Match" +msgstr "" + +#: ../../Zotlabs/Module/Match.php:35 +msgid "No keywords to match. Please add keywords to your default profile." +msgstr "" + +#: ../../Zotlabs/Module/Match.php:67 +msgid "is interested in:" +msgstr "" + +#: ../../Zotlabs/Module/Match.php:68 ../../Zotlabs/Module/Directory.php:328 +#: ../../Zotlabs/Module/Suggest.php:56 ../../include/channel.php:1036 +#: ../../include/connections.php:78 ../../include/widgets.php:147 +#: ../../include/widgets.php:184 ../../include/conversation.php:971 +msgid "Connect" +msgstr "" + +#: ../../Zotlabs/Module/Match.php:74 +msgid "No matches" +msgstr "" + +#: ../../Zotlabs/Module/Connedit.php:82 +msgid "Could not access contact record." +msgstr "" + +#: ../../Zotlabs/Module/Connedit.php:106 +msgid "Could not locate selected profile." +msgstr "" + +#: ../../Zotlabs/Module/Connedit.php:258 +msgid "Connection updated." +msgstr "" + +#: ../../Zotlabs/Module/Connedit.php:260 +msgid "Failed to update connection record." +msgstr "" + +#: ../../Zotlabs/Module/Connedit.php:310 +msgid "is now connected to" +msgstr "" + +#: ../../Zotlabs/Module/Connedit.php:411 ../../Zotlabs/Module/Connedit.php:716 +#: ../../Zotlabs/Module/Admin/Site.php:218 ../../Zotlabs/Module/Menu.php:100 +#: ../../Zotlabs/Module/Menu.php:157 ../../Zotlabs/Module/Filestorage.php:160 +#: ../../Zotlabs/Module/Filestorage.php:168 ../../Zotlabs/Module/Mitem.php:162 +#: ../../Zotlabs/Module/Mitem.php:163 ../../Zotlabs/Module/Mitem.php:240 +#: ../../Zotlabs/Module/Mitem.php:241 ../../Zotlabs/Module/Photos.php:653 +#: ../../Zotlabs/Module/Profiles.php:641 ../../Zotlabs/Module/Api.php:97 +#: ../../Zotlabs/Module/Removeme.php:63 ../../Zotlabs/Module/Wiki.php:159 +#: ../../Zotlabs/Module/Settings/Channel.php:289 +#: ../../Zotlabs/Module/Settings/Display.php:103 +#: ../../Zotlabs/Module/Events.php:463 ../../Zotlabs/Module/Events.php:464 +#: ../../extend/addon/addon/dwpost/dwpost.php:73 +#: ../../extend/addon/addon/dwpost/dwpost.php:85 +#: ../../extend/addon/addon/flattrwidget/flattrwidget.php:120 +#: ../../extend/addon/addon/friendica/dfrn_request.php:865 +#: ../../extend/addon/addon/ijpost/ijpost.php:73 +#: ../../extend/addon/addon/ijpost/ijpost.php:85 +#: ../../extend/addon/addon/jappixmini/jappixmini.php:309 +#: ../../extend/addon/addon/jappixmini/jappixmini.php:313 +#: ../../extend/addon/addon/jappixmini/jappixmini.php:343 +#: ../../extend/addon/addon/jappixmini/jappixmini.php:351 +#: ../../extend/addon/addon/jappixmini/jappixmini.php:355 +#: ../../extend/addon/addon/jappixmini/jappixmini.php:359 +#: ../../extend/addon/addon/libertree/libertree.php:69 +#: ../../extend/addon/addon/libertree/libertree.php:81 +#: ../../extend/addon/addon/ljpost/ljpost.php:70 +#: ../../extend/addon/addon/ljpost/ljpost.php:82 +#: ../../extend/addon/addon/nofed/nofed.php:72 +#: ../../extend/addon/addon/nofed/nofed.php:76 +#: ../../extend/addon/addon/nsabait/nsabait.php:157 +#: ../../extend/addon/addon/nsfw/nsfw.php:84 +#: ../../extend/addon/addon/planets/planets.php:153 +#: ../../extend/addon/addon/pumpio/pumpio.php:219 +#: ../../extend/addon/addon/pumpio/pumpio.php:223 +#: ../../extend/addon/addon/pumpio/pumpio.php:227 +#: ../../extend/addon/addon/pumpio/pumpio.php:231 +#: ../../extend/addon/addon/rainbowtag/rainbowtag.php:81 +#: ../../extend/addon/addon/redred/redred.php:95 +#: ../../extend/addon/addon/redred/redred.php:99 +#: ../../extend/addon/addon/rtof/rtof.php:81 +#: ../../extend/addon/addon/rtof/rtof.php:85 +#: ../../extend/addon/addon/smileybutton/smileybutton.php:273 +#: ../../extend/addon/addon/smileybutton/smileybutton.php:277 +#: ../../extend/addon/addon/statusnet/statusnet.php:389 +#: ../../extend/addon/addon/statusnet/statusnet.php:411 +#: ../../extend/addon/addon/statusnet/statusnet.php:415 +#: ../../extend/addon/addon/statusnet/statusnet.php:424 +#: ../../extend/addon/addon/twitter/twitter.php:242 +#: ../../extend/addon/addon/twitter/twitter.php:246 +#: ../../extend/addon/addon/twitter/twitter.php:255 +#: ../../extend/addon/addon/visage/visage.php:166 +#: ../../extend/addon/addon/wppost/wppost.php:82 +#: ../../extend/addon/addon/wppost/wppost.php:105 +#: ../../extend/addon/addon/wppost/wppost.php:109 +#: ../../extend/addon/addon/xmpp/xmpp.php:53 +#: ../../extend/addon/addon/cdav/cdav.php:234 ../../include/dir_fns.php:143 +#: ../../include/dir_fns.php:144 ../../include/dir_fns.php:145 +#: ../../include/widgets.php:978 ../../view/theme/redbasic/php/config.php:111 +#: ../../view/theme/redbasic/php/config.php:136 ../../boot.php:1723 +msgid "No" +msgstr "" + +#: ../../Zotlabs/Module/Connedit.php:411 +#: ../../Zotlabs/Module/Admin/Site.php:220 ../../Zotlabs/Module/Menu.php:100 +#: ../../Zotlabs/Module/Menu.php:157 ../../Zotlabs/Module/Filestorage.php:160 +#: ../../Zotlabs/Module/Filestorage.php:168 ../../Zotlabs/Module/Mitem.php:162 +#: ../../Zotlabs/Module/Mitem.php:163 ../../Zotlabs/Module/Mitem.php:240 +#: ../../Zotlabs/Module/Mitem.php:241 ../../Zotlabs/Module/Photos.php:653 +#: ../../Zotlabs/Module/Profiles.php:641 ../../Zotlabs/Module/Api.php:96 +#: ../../Zotlabs/Module/Removeme.php:63 ../../Zotlabs/Module/Wiki.php:159 +#: ../../Zotlabs/Module/Settings/Channel.php:289 +#: ../../Zotlabs/Module/Settings/Display.php:103 +#: ../../Zotlabs/Module/Events.php:463 ../../Zotlabs/Module/Events.php:464 +#: ../../extend/addon/addon/dwpost/dwpost.php:73 +#: ../../extend/addon/addon/dwpost/dwpost.php:85 +#: ../../extend/addon/addon/flattrwidget/flattrwidget.php:120 +#: ../../extend/addon/addon/friendica/dfrn_request.php:865 +#: ../../extend/addon/addon/ijpost/ijpost.php:73 +#: ../../extend/addon/addon/ijpost/ijpost.php:85 +#: ../../extend/addon/addon/jappixmini/jappixmini.php:309 +#: ../../extend/addon/addon/jappixmini/jappixmini.php:313 +#: ../../extend/addon/addon/jappixmini/jappixmini.php:343 +#: ../../extend/addon/addon/jappixmini/jappixmini.php:351 +#: ../../extend/addon/addon/jappixmini/jappixmini.php:355 +#: ../../extend/addon/addon/jappixmini/jappixmini.php:359 +#: ../../extend/addon/addon/libertree/libertree.php:69 +#: ../../extend/addon/addon/libertree/libertree.php:81 +#: ../../extend/addon/addon/ljpost/ljpost.php:70 +#: ../../extend/addon/addon/ljpost/ljpost.php:82 +#: ../../extend/addon/addon/nofed/nofed.php:72 +#: ../../extend/addon/addon/nofed/nofed.php:76 +#: ../../extend/addon/addon/nsabait/nsabait.php:157 +#: ../../extend/addon/addon/nsfw/nsfw.php:84 +#: ../../extend/addon/addon/planets/planets.php:153 +#: ../../extend/addon/addon/pumpio/pumpio.php:219 +#: ../../extend/addon/addon/pumpio/pumpio.php:223 +#: ../../extend/addon/addon/pumpio/pumpio.php:227 +#: ../../extend/addon/addon/pumpio/pumpio.php:231 +#: ../../extend/addon/addon/rainbowtag/rainbowtag.php:81 +#: ../../extend/addon/addon/redred/redred.php:95 +#: ../../extend/addon/addon/redred/redred.php:99 +#: ../../extend/addon/addon/rtof/rtof.php:81 +#: ../../extend/addon/addon/rtof/rtof.php:85 +#: ../../extend/addon/addon/smileybutton/smileybutton.php:273 +#: ../../extend/addon/addon/smileybutton/smileybutton.php:277 +#: ../../extend/addon/addon/statusnet/statusnet.php:389 +#: ../../extend/addon/addon/statusnet/statusnet.php:411 +#: ../../extend/addon/addon/statusnet/statusnet.php:415 +#: ../../extend/addon/addon/statusnet/statusnet.php:424 +#: ../../extend/addon/addon/twitter/twitter.php:242 +#: ../../extend/addon/addon/twitter/twitter.php:246 +#: ../../extend/addon/addon/twitter/twitter.php:255 +#: ../../extend/addon/addon/visage/visage.php:166 +#: ../../extend/addon/addon/wppost/wppost.php:82 +#: ../../extend/addon/addon/wppost/wppost.php:105 +#: ../../extend/addon/addon/wppost/wppost.php:109 +#: ../../extend/addon/addon/xmpp/xmpp.php:53 +#: ../../extend/addon/addon/cdav/cdav.php:234 ../../include/dir_fns.php:143 +#: ../../include/dir_fns.php:144 ../../include/dir_fns.php:145 +#: ../../include/widgets.php:978 ../../view/theme/redbasic/php/config.php:111 +#: ../../view/theme/redbasic/php/config.php:136 ../../boot.php:1723 +msgid "Yes" +msgstr "" + +#: ../../Zotlabs/Module/Connedit.php:443 +msgid "Could not access address book record." +msgstr "" + +#: ../../Zotlabs/Module/Connedit.php:463 +msgid "Refresh failed - channel is currently unavailable." +msgstr "" + +#: ../../Zotlabs/Module/Connedit.php:478 ../../Zotlabs/Module/Connedit.php:487 +#: ../../Zotlabs/Module/Connedit.php:496 ../../Zotlabs/Module/Connedit.php:505 +#: ../../Zotlabs/Module/Connedit.php:518 +msgid "Unable to set address book parameters." +msgstr "" + +#: ../../Zotlabs/Module/Connedit.php:542 +msgid "Connection has been removed." +msgstr "" + +#: ../../Zotlabs/Module/Connedit.php:582 ../../Zotlabs/Lib/Apps.php:221 +#: ../../extend/addon/addon/openclipatar/openclipatar.php:56 +#: ../../include/nav.php:89 ../../include/conversation.php:969 +msgid "View Profile" +msgstr "" + +#: ../../Zotlabs/Module/Connedit.php:585 +#, php-format +msgid "View %s's profile" +msgstr "" + +#: ../../Zotlabs/Module/Connedit.php:589 +msgid "Refresh Permissions" +msgstr "" + +#: ../../Zotlabs/Module/Connedit.php:592 +msgid "Fetch updated permissions" +msgstr "" + +#: ../../Zotlabs/Module/Connedit.php:596 +msgid "Recent Activity" +msgstr "" + +#: ../../Zotlabs/Module/Connedit.php:599 +msgid "View recent posts and comments" +msgstr "" + +#: ../../Zotlabs/Module/Connedit.php:603 +#: ../../Zotlabs/Module/Admin/Accounts.php:175 +msgid "Unblock" +msgstr "" + +#: ../../Zotlabs/Module/Connedit.php:603 +#: ../../Zotlabs/Module/Admin/Accounts.php:174 +msgid "Block" +msgstr "" + +#: ../../Zotlabs/Module/Connedit.php:606 +msgid "Block (or Unblock) all communications with this connection" +msgstr "" + +#: ../../Zotlabs/Module/Connedit.php:607 +msgid "This connection is blocked!" +msgstr "" + +#: ../../Zotlabs/Module/Connedit.php:611 +msgid "Unignore" +msgstr "" + +#: ../../Zotlabs/Module/Connedit.php:611 +#: ../../Zotlabs/Module/Connections.php:277 +msgid "Ignore" +msgstr "" + +#: ../../Zotlabs/Module/Connedit.php:614 +msgid "Ignore (or Unignore) all inbound communications from this connection" +msgstr "" + +#: ../../Zotlabs/Module/Connedit.php:615 +msgid "This connection is ignored!" +msgstr "" + +#: ../../Zotlabs/Module/Connedit.php:619 +msgid "Unarchive" +msgstr "" + +#: ../../Zotlabs/Module/Connedit.php:619 +msgid "Archive" +msgstr "" + +#: ../../Zotlabs/Module/Connedit.php:622 +msgid "" +"Archive (or Unarchive) this connection - mark channel dead but keep content" +msgstr "" + +#: ../../Zotlabs/Module/Connedit.php:623 +msgid "This connection is archived!" +msgstr "" + +#: ../../Zotlabs/Module/Connedit.php:627 +msgid "Unhide" +msgstr "" + +#: ../../Zotlabs/Module/Connedit.php:627 +msgid "Hide" +msgstr "" + +#: ../../Zotlabs/Module/Connedit.php:630 +msgid "Hide or Unhide this connection from your other connections" +msgstr "" + +#: ../../Zotlabs/Module/Connedit.php:631 +msgid "This connection is hidden!" +msgstr "" + +#: ../../Zotlabs/Module/Connedit.php:638 +msgid "Delete this connection" +msgstr "" + +#: ../../Zotlabs/Module/Connedit.php:655 ../../include/widgets.php:529 +msgid "Me" +msgstr "" + +#: ../../Zotlabs/Module/Connedit.php:656 ../../include/widgets.php:530 +msgid "Family" +msgstr "" + +#: ../../Zotlabs/Module/Connedit.php:657 +#: ../../Zotlabs/Module/Settings/Channel.php:61 +#: ../../Zotlabs/Module/Settings/Channel.php:65 +#: ../../Zotlabs/Module/Settings/Channel.php:66 +#: ../../Zotlabs/Module/Settings/Channel.php:69 +#: ../../Zotlabs/Module/Settings/Channel.php:80 +#: ../../include/selectors.php:123 ../../include/channel.php:402 +#: ../../include/channel.php:403 ../../include/channel.php:410 +#: ../../include/widgets.php:531 +msgid "Friends" +msgstr "" + +#: ../../Zotlabs/Module/Connedit.php:658 ../../include/widgets.php:532 +msgid "Acquaintances" +msgstr "" + +#: ../../Zotlabs/Module/Connedit.php:659 +#: ../../Zotlabs/Module/Connections.php:92 +#: ../../Zotlabs/Module/Connections.php:107 ../../include/widgets.php:533 +msgid "All" +msgstr "" + +#: ../../Zotlabs/Module/Connedit.php:716 +msgid "Approve this connection" +msgstr "" + +#: ../../Zotlabs/Module/Connedit.php:716 +msgid "Accept connection to allow communication" +msgstr "" + +#: ../../Zotlabs/Module/Connedit.php:721 +msgid "Set Affinity" +msgstr "" + +#: ../../Zotlabs/Module/Connedit.php:724 +msgid "Set Profile" +msgstr "" + +#: ../../Zotlabs/Module/Connedit.php:727 +msgid "Set Affinity & Profile" +msgstr "" + +#: ../../Zotlabs/Module/Connedit.php:776 +msgid "none" +msgstr "" + +#: ../../Zotlabs/Module/Connedit.php:780 ../../include/widgets.php:656 +msgid "Connection Default Permissions" +msgstr "" + +#: ../../Zotlabs/Module/Connedit.php:780 ../../include/items.php:3909 +#, php-format +msgid "Connection: %s" +msgstr "" + +#: ../../Zotlabs/Module/Connedit.php:781 +msgid "Apply these permissions automatically" +msgstr "" + +#: ../../Zotlabs/Module/Connedit.php:781 +msgid "Connection requests will be approved without your interaction" +msgstr "" + +#: ../../Zotlabs/Module/Connedit.php:784 +msgid "This connection's primary address is" +msgstr "" + +#: ../../Zotlabs/Module/Connedit.php:785 +msgid "Available locations:" +msgstr "" + +#: ../../Zotlabs/Module/Connedit.php:789 +msgid "" +"The permissions indicated on this page will be applied to all new " +"connections." +msgstr "" + +#: ../../Zotlabs/Module/Connedit.php:790 +msgid "Connection Tools" +msgstr "" + +#: ../../Zotlabs/Module/Connedit.php:792 +msgid "Slide to adjust your degree of friendship" +msgstr "" + +#: ../../Zotlabs/Module/Connedit.php:793 ../../Zotlabs/Module/Rate.php:155 #: ../../include/js_strings.php:20 msgid "Rating" msgstr "" -#: ../../Zotlabs/Module/Rate.php:156 -msgid "Website:" +#: ../../Zotlabs/Module/Connedit.php:794 +msgid "Slide to adjust your rating" msgstr "" -#: ../../Zotlabs/Module/Rate.php:159 -#, php-format -msgid "Remote Channel [%s] (not yet known on this site)" +#: ../../Zotlabs/Module/Connedit.php:795 ../../Zotlabs/Module/Connedit.php:800 +msgid "Optionally explain your rating" msgstr "" -#: ../../Zotlabs/Module/Rate.php:160 -msgid "Rating (this information is public)" +#: ../../Zotlabs/Module/Connedit.php:797 +msgid "Custom Filter" msgstr "" -#: ../../Zotlabs/Module/Rate.php:161 -msgid "Optionally explain your rating (this information is public)" +#: ../../Zotlabs/Module/Connedit.php:798 +msgid "Only import posts with this text" msgstr "" -#: ../../Zotlabs/Module/Rate.php:166 ../../Zotlabs/Module/Invite.php:149 -#: ../../Zotlabs/Module/Settings/Display.php:194 -#: ../../Zotlabs/Module/Settings/Features.php:47 -#: ../../Zotlabs/Module/Settings/Oauth.php:87 -#: ../../Zotlabs/Module/Settings/Tokens.php:167 -#: ../../Zotlabs/Module/Settings/Account.php:118 -#: ../../Zotlabs/Module/Settings/Channel.php:452 -#: ../../Zotlabs/Module/Appman.php:126 ../../Zotlabs/Module/Connedit.php:779 -#: ../../Zotlabs/Module/Filestorage.php:165 -#: ../../Zotlabs/Module/Pdledit.php:74 ../../Zotlabs/Module/Profiles.php:681 +#: ../../Zotlabs/Module/Connedit.php:798 ../../Zotlabs/Module/Connedit.php:799 +msgid "" +"words one per line or #tags or /patterns/ or lang=xx, leave blank to import " +"all posts" +msgstr "" + +#: ../../Zotlabs/Module/Connedit.php:799 +msgid "Do not import posts with this text" +msgstr "" + +#: ../../Zotlabs/Module/Connedit.php:801 +msgid "This information is public!" +msgstr "" + +#: ../../Zotlabs/Module/Connedit.php:806 +msgid "Connection Pending Approval" +msgstr "" + +#: ../../Zotlabs/Module/Connedit.php:809 +#: ../../Zotlabs/Module/Settings/Tokens.php:163 +msgid "inherited" +msgstr "" + +#: ../../Zotlabs/Module/Connedit.php:810 ../../Zotlabs/Module/Locs.php:121 +#: ../../Zotlabs/Module/Connect.php:98 #: ../../Zotlabs/Module/Admin/Features.php:66 #: ../../Zotlabs/Module/Admin/Logs.php:84 #: ../../Zotlabs/Module/Admin/Plugins.php:429 @@ -469,96 +1041,184 @@ msgstr "" #: ../../Zotlabs/Module/Admin/Account_edit.php:74 #: ../../Zotlabs/Module/Admin/Accounts.php:166 #: ../../Zotlabs/Module/Admin/Channels.php:147 -#: ../../Zotlabs/Module/Admin/Site.php:258 -#: ../../Zotlabs/Module/Import_items.php:122 ../../Zotlabs/Module/Mail.php:370 -#: ../../Zotlabs/Module/Locs.php:121 ../../Zotlabs/Module/Mitem.php:243 -#: ../../Zotlabs/Module/Mood.php:139 ../../Zotlabs/Module/Setup.php:315 -#: ../../Zotlabs/Module/Setup.php:363 ../../Zotlabs/Module/Connect.php:98 -#: ../../Zotlabs/Module/Poke.php:186 ../../Zotlabs/Module/Pconfig.php:107 -#: ../../Zotlabs/Module/Events.php:484 ../../Zotlabs/Module/Import.php:543 -#: ../../Zotlabs/Module/Group.php:85 ../../Zotlabs/Module/Thing.php:320 -#: ../../Zotlabs/Module/Thing.php:370 ../../Zotlabs/Module/Sources.php:114 -#: ../../Zotlabs/Module/Sources.php:149 ../../Zotlabs/Module/Photos.php:668 -#: ../../Zotlabs/Module/Photos.php:1058 ../../Zotlabs/Module/Photos.php:1098 -#: ../../Zotlabs/Module/Photos.php:1216 ../../Zotlabs/Module/Chat.php:196 +#: ../../Zotlabs/Module/Admin/Site.php:260 ../../Zotlabs/Module/Appman.php:126 +#: ../../Zotlabs/Module/Filestorage.php:165 ../../Zotlabs/Module/Mail.php:384 +#: ../../Zotlabs/Module/Import_items.php:122 +#: ../../Zotlabs/Module/Invite.php:149 ../../Zotlabs/Module/Group.php:85 +#: ../../Zotlabs/Module/Mitem.php:243 ../../Zotlabs/Module/Mood.php:139 +#: ../../Zotlabs/Module/Photos.php:668 ../../Zotlabs/Module/Photos.php:1058 +#: ../../Zotlabs/Module/Photos.php:1098 ../../Zotlabs/Module/Photos.php:1216 +#: ../../Zotlabs/Module/Setup.php:309 ../../Zotlabs/Module/Setup.php:357 +#: ../../Zotlabs/Module/Poke.php:186 ../../Zotlabs/Module/Profiles.php:681 +#: ../../Zotlabs/Module/Pconfig.php:107 ../../Zotlabs/Module/Rate.php:166 +#: ../../Zotlabs/Module/Pdledit.php:74 ../../Zotlabs/Module/Cal.php:342 +#: ../../Zotlabs/Module/Wiki.php:148 ../../Zotlabs/Module/Sources.php:114 +#: ../../Zotlabs/Module/Sources.php:149 +#: ../../Zotlabs/Module/Settings/Features.php:47 +#: ../../Zotlabs/Module/Settings/Oauth.php:87 +#: ../../Zotlabs/Module/Settings/Tokens.php:167 +#: ../../Zotlabs/Module/Settings/Account.php:118 +#: ../../Zotlabs/Module/Settings/Channel.php:455 +#: ../../Zotlabs/Module/Settings/Display.php:196 +#: ../../Zotlabs/Module/Thing.php:320 ../../Zotlabs/Module/Thing.php:370 +#: ../../Zotlabs/Module/Import.php:543 ../../Zotlabs/Module/Chat.php:196 #: ../../Zotlabs/Module/Chat.php:241 ../../Zotlabs/Module/Xchan.php:15 -#: ../../Zotlabs/Module/Cal.php:338 ../../Zotlabs/Lib/ThreadItem.php:725 -#: ../../include/widgets.php:796 ../../include/js_strings.php:22 +#: ../../Zotlabs/Module/Events.php:484 ../../Zotlabs/Lib/ThreadItem.php:729 +#: ../../extend/addon/addon/chords/Mod_Chords.php:60 +#: ../../extend/addon/addon/diaspora/diaspora.php:710 +#: ../../extend/addon/addon/dwpost/dwpost.php:89 +#: ../../extend/addon/addon/flattrwidget/flattrwidget.php:124 +#: ../../extend/addon/addon/friendica/friendica.php:128 +#: ../../extend/addon/addon/frphotos/frphotos.php:96 +#: ../../extend/addon/addon/gnusoc/gnusoc.php:129 +#: ../../extend/addon/addon/hubwall/hubwall.php:95 +#: ../../extend/addon/addon/ijpost/ijpost.php:89 +#: ../../extend/addon/addon/irc/irc.php:53 +#: ../../extend/addon/addon/jappixmini/jappixmini.php:371 +#: ../../extend/addon/addon/libertree/libertree.php:85 +#: ../../extend/addon/addon/ljpost/ljpost.php:86 +#: ../../extend/addon/addon/logrot/logrot.php:35 +#: ../../extend/addon/addon/mailhost/mailhost.php:40 +#: ../../extend/addon/addon/nofed/nofed.php:80 +#: ../../extend/addon/addon/nsabait/nsabait.php:161 +#: ../../extend/addon/addon/nsfw/nsfw.php:92 +#: ../../extend/addon/addon/openclipatar/openclipatar.php:52 +#: ../../extend/addon/addon/openstreetmap/openstreetmap.php:168 +#: ../../extend/addon/addon/pageheader/pageheader.php:48 +#: ../../extend/addon/addon/piwik/piwik.php:95 +#: ../../extend/addon/addon/planets/planets.php:157 +#: ../../extend/addon/addon/pumpio/pumpio.php:237 +#: ../../extend/addon/addon/rainbowtag/rainbowtag.php:85 +#: ../../extend/addon/addon/redfiles/redfiles.php:124 +#: ../../extend/addon/addon/redphotos/redphotos.php:136 +#: ../../extend/addon/addon/redred/redred.php:119 +#: ../../extend/addon/addon/rtof/rtof.php:101 +#: ../../extend/addon/addon/skeleton/skeleton.php:65 +#: ../../extend/addon/addon/smileybutton/smileybutton.php:281 +#: ../../extend/addon/addon/startpage/startpage.php:113 +#: ../../extend/addon/addon/statusnet/statusnet.php:322 +#: ../../extend/addon/addon/statusnet/statusnet.php:380 +#: ../../extend/addon/addon/statusnet/statusnet.php:432 +#: ../../extend/addon/addon/statusnet/statusnet.php:899 +#: ../../extend/addon/addon/superblock/superblock.php:114 +#: ../../extend/addon/addon/twitter/twitter.php:217 +#: ../../extend/addon/addon/twitter/twitter.php:259 +#: ../../extend/addon/addon/visage/visage.php:170 +#: ../../extend/addon/addon/wppost/wppost.php:113 +#: ../../extend/addon/addon/xmpp/xmpp.php:69 +#: ../../extend/addon/addon/cdav/cdav.php:246 +#: ../../extend/addon/addon/likebanner/likebanner.php:57 +#: ../../extend/addon/addon/mailtest/mailtest.php:100 +#: ../../include/js_strings.php:22 ../../include/widgets.php:796 #: ../../view/theme/redbasic/php/config.php:106 msgid "Submit" msgstr "" -#: ../../Zotlabs/Module/Probe.php:28 ../../Zotlabs/Module/Probe.php:32 +#: ../../Zotlabs/Module/Connedit.php:811 #, php-format -msgid "Fetching URL returns error: %1$s" +msgid "" +"Please choose the profile you would like to display to %s when viewing your " +"profile securely." msgstr "" -#: ../../Zotlabs/Module/Attach.php:13 -msgid "Item not available." +#: ../../Zotlabs/Module/Connedit.php:813 +#: ../../Zotlabs/Module/Settings/Tokens.php:160 +msgid "Their Settings" msgstr "" -#: ../../Zotlabs/Module/Acl.php:313 -msgid "network" +#: ../../Zotlabs/Module/Connedit.php:814 +#: ../../Zotlabs/Module/Settings/Tokens.php:161 +msgid "My Settings" msgstr "" -#: ../../Zotlabs/Module/Acl.php:323 -msgid "RSS" +#: ../../Zotlabs/Module/Connedit.php:816 +#: ../../Zotlabs/Module/Settings/Tokens.php:165 +msgid "Individual Permissions" msgstr "" -#: ../../Zotlabs/Module/Tagrm.php:15 ../../Zotlabs/Module/Tagrm.php:138 -#: ../../Zotlabs/Module/Settings/Oauth.php:88 -#: ../../Zotlabs/Module/Settings/Oauth.php:114 -#: ../../Zotlabs/Module/Fbrowser.php:66 ../../Zotlabs/Module/Fbrowser.php:88 -#: ../../Zotlabs/Module/Admin/Plugins.php:414 -#: ../../Zotlabs/Module/Wiki.php:171 ../../Zotlabs/Module/Wiki.php:211 -#: ../../include/conversation.php:1248 ../../include/conversation.php:1297 -msgid "Cancel" +#: ../../Zotlabs/Module/Connedit.php:817 +#: ../../Zotlabs/Module/Settings/Tokens.php:166 +msgid "" +"Some permissions may be inherited from your channel's privacy settings, which have higher priority than " +"individual settings. You can not change those settings here." msgstr "" -#: ../../Zotlabs/Module/Tagrm.php:48 ../../Zotlabs/Module/Tagrm.php:98 -msgid "Tag removed" +#: ../../Zotlabs/Module/Connedit.php:818 +msgid "" +"Some permissions may be inherited from your channel's privacy settings, 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 "" -#: ../../Zotlabs/Module/Tagrm.php:123 -msgid "Remove Item Tag" +#: ../../Zotlabs/Module/Connedit.php:819 +msgid "Last update:" msgstr "" -#: ../../Zotlabs/Module/Tagrm.php:125 -msgid "Select a tag to remove: " +#: ../../Zotlabs/Module/Dreport.php:45 +msgid "Invalid message" msgstr "" -#: ../../Zotlabs/Module/Tagrm.php:137 -#: ../../Zotlabs/Module/Admin/Plugins.php:445 -#: ../../Zotlabs/Module/Photos.php:989 -msgid "Remove" +#: ../../Zotlabs/Module/Dreport.php:78 +msgid "no results" msgstr "" -#: ../../Zotlabs/Module/Network.php:95 -msgid "No such group" +#: ../../Zotlabs/Module/Dreport.php:93 +msgid "channel sync processed" msgstr "" -#: ../../Zotlabs/Module/Network.php:135 -msgid "No such channel" +#: ../../Zotlabs/Module/Dreport.php:97 +msgid "queued" msgstr "" -#: ../../Zotlabs/Module/Network.php:140 -msgid "forum" +#: ../../Zotlabs/Module/Dreport.php:101 +msgid "posted" msgstr "" -#: ../../Zotlabs/Module/Network.php:152 -msgid "Search Results For:" +#: ../../Zotlabs/Module/Dreport.php:105 +msgid "accepted for delivery" msgstr "" -#: ../../Zotlabs/Module/Network.php:218 -msgid "Privacy group is empty" +#: ../../Zotlabs/Module/Dreport.php:109 +msgid "updated" msgstr "" -#: ../../Zotlabs/Module/Network.php:227 -msgid "Privacy group: " +#: ../../Zotlabs/Module/Dreport.php:112 +msgid "update ignored" msgstr "" -#: ../../Zotlabs/Module/Network.php:253 -msgid "Invalid connection." +#: ../../Zotlabs/Module/Dreport.php:115 +msgid "permission denied" +msgstr "" + +#: ../../Zotlabs/Module/Dreport.php:119 +msgid "recipient not found" +msgstr "" + +#: ../../Zotlabs/Module/Dreport.php:122 +msgid "mail recalled" +msgstr "" + +#: ../../Zotlabs/Module/Dreport.php:125 +msgid "duplicate mail received" +msgstr "" + +#: ../../Zotlabs/Module/Dreport.php:128 +msgid "mail delivered" +msgstr "" + +#: ../../Zotlabs/Module/Dreport.php:148 +#, php-format +msgid "Delivery report for %1$s" +msgstr "" + +#: ../../Zotlabs/Module/Dreport.php:151 +msgid "Options" +msgstr "" + +#: ../../Zotlabs/Module/Dreport.php:152 +msgid "Redeliver" msgstr "" #: ../../Zotlabs/Module/Bookmarks.php:53 @@ -573,161 +1233,157 @@ msgstr "" msgid "My Connections Bookmarks" msgstr "" -#: ../../Zotlabs/Module/Admin.php:60 ../../Zotlabs/Module/Filestorage.php:32 -#: ../../Zotlabs/Module/Admin/Plugins.php:254 -#: ../../Zotlabs/Module/Admin/Themes.php:69 -#: ../../Zotlabs/Module/Display.php:40 ../../Zotlabs/Module/Thing.php:89 -#: ../../Zotlabs/Module/Viewsrc.php:24 ../../include/items.php:3411 -msgid "Item not found." +#: ../../Zotlabs/Module/Acl.php:313 +msgid "network" msgstr "" -#: ../../Zotlabs/Module/Admin.php:94 -msgid "# Accounts" +#: ../../Zotlabs/Module/Acl.php:323 +msgid "RSS" msgstr "" -#: ../../Zotlabs/Module/Admin.php:95 -msgid "# blocked accounts" +#: ../../Zotlabs/Module/Locs.php:25 ../../Zotlabs/Module/Locs.php:54 +msgid "Location not found." msgstr "" -#: ../../Zotlabs/Module/Admin.php:96 -msgid "# expired accounts" +#: ../../Zotlabs/Module/Locs.php:62 +msgid "Location lookup failed." msgstr "" -#: ../../Zotlabs/Module/Admin.php:97 -msgid "# expiring accounts" +#: ../../Zotlabs/Module/Locs.php:66 +msgid "" +"Please select another location to become primary before removing the primary " +"location." msgstr "" -#: ../../Zotlabs/Module/Admin.php:108 -msgid "# Channels" +#: ../../Zotlabs/Module/Locs.php:95 +msgid "Syncing locations" msgstr "" -#: ../../Zotlabs/Module/Admin.php:109 -msgid "# primary" +#: ../../Zotlabs/Module/Locs.php:105 +msgid "No locations found." msgstr "" -#: ../../Zotlabs/Module/Admin.php:110 -msgid "# clones" +#: ../../Zotlabs/Module/Locs.php:116 +msgid "Manage Channel Locations" msgstr "" -#: ../../Zotlabs/Module/Admin.php:116 -msgid "Message queues" +#: ../../Zotlabs/Module/Locs.php:117 ../../Zotlabs/Module/Pubsites.php:51 +#: ../../Zotlabs/Module/Profiles.php:471 ../../Zotlabs/Module/Profiles.php:692 +#: ../../Zotlabs/Module/Events.php:468 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:839 +#: ../../include/js_strings.php:25 +msgid "Location" msgstr "" -#: ../../Zotlabs/Module/Admin.php:133 -msgid "Your software should be updated" +#: ../../Zotlabs/Module/Locs.php:118 +#: ../../Zotlabs/Module/Admin/Channels.php:160 +#: ../../Zotlabs/Module/Profiles.php:464 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1143 +msgid "Address" msgstr "" -#: ../../Zotlabs/Module/Admin.php:137 ../../Zotlabs/Module/Admin/Logs.php:82 -#: ../../Zotlabs/Module/Admin/Plugins.php:336 -#: ../../Zotlabs/Module/Admin/Plugins.php:427 -#: ../../Zotlabs/Module/Admin/Security.php:86 -#: ../../Zotlabs/Module/Admin/Themes.php:120 -#: ../../Zotlabs/Module/Admin/Themes.php:154 -#: ../../Zotlabs/Module/Admin/Accounts.php:164 -#: ../../Zotlabs/Module/Admin/Channels.php:145 -#: ../../Zotlabs/Module/Admin/Site.php:256 -msgid "Administration" +#: ../../Zotlabs/Module/Locs.php:119 +msgid "Primary" msgstr "" -#: ../../Zotlabs/Module/Admin.php:138 -msgid "Summary" +#: ../../Zotlabs/Module/Locs.php:120 ../../Zotlabs/Module/Menu.php:113 +msgid "Drop" msgstr "" -#: ../../Zotlabs/Module/Admin.php:141 -msgid "Registered accounts" +#: ../../Zotlabs/Module/Locs.php:122 +msgid "Sync Now" msgstr "" -#: ../../Zotlabs/Module/Admin.php:142 -msgid "Pending registrations" +#: ../../Zotlabs/Module/Locs.php:123 +msgid "Please wait several minutes between consecutive operations." msgstr "" -#: ../../Zotlabs/Module/Admin.php:143 -msgid "Registered channels" +#: ../../Zotlabs/Module/Locs.php:124 +msgid "" +"When possible, drop a location by logging into that website/hub and removing " +"your channel." msgstr "" -#: ../../Zotlabs/Module/Admin.php:144 -msgid "Active plugins" +#: ../../Zotlabs/Module/Locs.php:125 +msgid "Use this form to drop the location if the hub is no longer operating." msgstr "" -#: ../../Zotlabs/Module/Admin.php:145 -msgid "Version" +#: ../../Zotlabs/Module/Connect.php:61 ../../Zotlabs/Module/Connect.php:109 +msgid "Continue" msgstr "" -#: ../../Zotlabs/Module/Admin.php:146 -msgid "Repository version (master)" +#: ../../Zotlabs/Module/Connect.php:90 +msgid "Premium Channel Setup" msgstr "" -#: ../../Zotlabs/Module/Admin.php:147 -msgid "Repository version (dev)" +#: ../../Zotlabs/Module/Connect.php:92 +msgid "Enable premium channel connection restrictions" msgstr "" -#: ../../Zotlabs/Module/Invite.php:29 -msgid "Total invitation limit exceeded." +#: ../../Zotlabs/Module/Connect.php:93 +msgid "" +"Please enter your restrictions or conditions, such as paypal receipt, usage " +"guidelines, etc." msgstr "" -#: ../../Zotlabs/Module/Invite.php:53 -#, php-format -msgid "%s : Not a valid email address." +#: ../../Zotlabs/Module/Connect.php:95 ../../Zotlabs/Module/Connect.php:115 +msgid "" +"This channel may require additional steps or acknowledgement of the " +"following conditions prior to connecting:" msgstr "" -#: ../../Zotlabs/Module/Invite.php:67 -msgid "Please join us on $Projectname" +#: ../../Zotlabs/Module/Connect.php:96 +msgid "" +"Potential connections will then see the following text before proceeding:" msgstr "" -#: ../../Zotlabs/Module/Invite.php:77 -msgid "Invitation limit exceeded. Please contact your site administrator." +#: ../../Zotlabs/Module/Connect.php:97 ../../Zotlabs/Module/Connect.php:118 +msgid "" +"By continuing, I certify that I have complied with any instructions provided " +"on this page." msgstr "" -#: ../../Zotlabs/Module/Invite.php:82 -#, php-format -msgid "%s : Message delivery failed." +#: ../../Zotlabs/Module/Connect.php:106 +msgid "(No specific instructions have been provided by the channel owner.)" msgstr "" -#: ../../Zotlabs/Module/Invite.php:86 -#, php-format -msgid "%d message sent." -msgid_plural "%d messages sent." -msgstr[0] "" -msgstr[1] "" - -#: ../../Zotlabs/Module/Invite.php:105 -msgid "You have no more invitations available" +#: ../../Zotlabs/Module/Connect.php:114 +msgid "Restricted or Premium Channel" msgstr "" -#: ../../Zotlabs/Module/Invite.php:136 -msgid "Send invitations" +#: ../../Zotlabs/Module/Page.php:40 ../../Zotlabs/Module/Block.php:31 +msgid "Invalid item." msgstr "" -#: ../../Zotlabs/Module/Invite.php:137 -msgid "Enter email addresses, one per line:" +#: ../../Zotlabs/Module/Page.php:56 ../../Zotlabs/Module/Chanview.php:96 +#: ../../Zotlabs/Module/Block.php:43 ../../Zotlabs/Module/Cal.php:62 +#: ../../Zotlabs/Module/Wall_upload.php:31 +msgid "Channel not found." msgstr "" -#: ../../Zotlabs/Module/Invite.php:138 ../../Zotlabs/Module/Mail.php:241 -msgid "Your message:" +#: ../../Zotlabs/Module/Page.php:131 +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 "" -#: ../../Zotlabs/Module/Invite.php:139 -msgid "Please join my community on $Projectname." +#: ../../Zotlabs/Module/Filer.php:52 +msgid "Save to Folder:" msgstr "" -#: ../../Zotlabs/Module/Invite.php:141 -msgid "You will need to supply this invitation code:" +#: ../../Zotlabs/Module/Filer.php:52 +msgid "- select -" msgstr "" -#: ../../Zotlabs/Module/Invite.php:142 -msgid "1. Register at any $Projectname location (they are all inter-connected)" -msgstr "" - -#: ../../Zotlabs/Module/Invite.php:144 -msgid "2. Enter my $Projectname network address into the site searchbar." -msgstr "" - -#: ../../Zotlabs/Module/Invite.php:145 -msgid "or visit" -msgstr "" - -#: ../../Zotlabs/Module/Invite.php:147 -msgid "3. Click [Connect]" +#: ../../Zotlabs/Module/Filer.php:53 ../../Zotlabs/Module/Admin/Profs.php:74 +#: ../../Zotlabs/Module/Admin/Profs.php:94 ../../Zotlabs/Module/Rbmark.php:32 +#: ../../Zotlabs/Module/Rbmark.php:104 ../../include/text.php:987 +#: ../../include/text.php:999 ../../include/widgets.php:201 +msgid "Save" msgstr "" #: ../../Zotlabs/Module/Manage.php:136 @@ -741,12 +1397,12 @@ msgid "Create a new channel" msgstr "" #: ../../Zotlabs/Module/Manage.php:143 ../../Zotlabs/Module/Profiles.php:772 -#: ../../Zotlabs/Module/Chat.php:255 +#: ../../Zotlabs/Module/Wiki.php:147 ../../Zotlabs/Module/Chat.php:255 msgid "Create New" msgstr "" #: ../../Zotlabs/Module/Manage.php:164 ../../Zotlabs/Lib/Apps.php:214 -#: ../../include/nav.php:211 +#: ../../include/nav.php:209 msgid "Channel Manager" msgstr "" @@ -780,45 +1436,6 @@ msgstr "" msgid "Delegated Channel" msgstr "" -#: ../../Zotlabs/Module/Page.php:40 ../../Zotlabs/Module/Block.php:31 -msgid "Invalid item." -msgstr "" - -#: ../../Zotlabs/Module/Page.php:56 ../../Zotlabs/Module/Block.php:43 -#: ../../Zotlabs/Module/Wall_upload.php:33 ../../Zotlabs/Module/Cal.php:62 -msgid "Channel not found." -msgstr "" - -#: ../../Zotlabs/Module/Page.php:131 -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 "" - -#: ../../Zotlabs/Module/Filer.php:52 -msgid "Save to Folder:" -msgstr "" - -#: ../../Zotlabs/Module/Filer.php:52 -msgid "- select -" -msgstr "" - -#: ../../Zotlabs/Module/Filer.php:53 ../../Zotlabs/Module/Admin/Profs.php:74 -#: ../../Zotlabs/Module/Admin/Profs.php:94 ../../Zotlabs/Module/Rbmark.php:32 -#: ../../Zotlabs/Module/Rbmark.php:104 ../../include/text.php:994 -#: ../../include/text.php:1006 ../../include/widgets.php:201 -msgid "Save" -msgstr "" - -#: ../../Zotlabs/Module/Apps.php:46 ../../include/nav.php:168 -#: ../../include/widgets.php:102 -msgid "Apps" -msgstr "" - #: ../../Zotlabs/Module/Connections.php:56 #: ../../Zotlabs/Module/Connections.php:161 #: ../../Zotlabs/Module/Connections.php:242 @@ -845,16 +1462,10 @@ msgstr "" #: ../../Zotlabs/Module/Connections.php:76 #: ../../Zotlabs/Module/Connections.php:86 ../../Zotlabs/Module/Menu.php:116 -#: ../../include/conversation.php:1573 +#: ../../include/conversation.php:1594 msgid "New" msgstr "" -#: ../../Zotlabs/Module/Connections.php:92 -#: ../../Zotlabs/Module/Connections.php:107 -#: ../../Zotlabs/Module/Connedit.php:629 ../../include/widgets.php:533 -msgid "All" -msgstr "" - #: ../../Zotlabs/Module/Connections.php:138 msgid "New Connections" msgstr "" @@ -934,24 +1545,19 @@ msgstr "" msgid "Ignore connection" msgstr "" -#: ../../Zotlabs/Module/Connections.php:277 -#: ../../Zotlabs/Module/Connedit.php:583 -msgid "Ignore" -msgstr "" - #: ../../Zotlabs/Module/Connections.php:278 msgid "Recent activity" msgstr "" #: ../../Zotlabs/Module/Connections.php:302 ../../Zotlabs/Lib/Apps.php:209 -#: ../../include/nav.php:191 ../../include/text.php:923 +#: ../../include/nav.php:189 ../../include/text.php:916 msgid "Connections" msgstr "" #: ../../Zotlabs/Module/Connections.php:306 ../../Zotlabs/Module/Search.php:44 -#: ../../Zotlabs/Lib/Apps.php:230 ../../include/nav.php:170 -#: ../../include/text.php:993 ../../include/text.php:1005 -#: ../../include/widgets.php:315 ../../include/acl_selectors.php:177 +#: ../../Zotlabs/Lib/Apps.php:230 ../../include/nav.php:168 +#: ../../include/text.php:986 ../../include/text.php:998 +#: ../../include/widgets.php:315 ../../include/acl_selectors.php:203 msgid "Search" msgstr "" @@ -985,61 +1591,61 @@ msgid "Image resize failed." msgstr "" #: ../../Zotlabs/Module/Cover_photo.php:168 -#: ../../Zotlabs/Module/Profile_photo.php:196 ../../include/photos.php:148 +#: ../../Zotlabs/Module/Profile_photo.php:196 ../../include/photos.php:149 msgid "Unable to process image" msgstr "" #: ../../Zotlabs/Module/Cover_photo.php:192 -#: ../../Zotlabs/Module/Profile_photo.php:223 +#: ../../Zotlabs/Module/Profile_photo.php:231 msgid "Image upload failed." msgstr "" #: ../../Zotlabs/Module/Cover_photo.php:210 -#: ../../Zotlabs/Module/Profile_photo.php:242 +#: ../../Zotlabs/Module/Profile_photo.php:250 msgid "Unable to process image." msgstr "" -#: ../../Zotlabs/Module/Cover_photo.php:233 ../../include/items.php:4325 +#: ../../Zotlabs/Module/Cover_photo.php:233 ../../include/items.php:4253 msgid "female" msgstr "" -#: ../../Zotlabs/Module/Cover_photo.php:234 ../../include/items.php:4326 +#: ../../Zotlabs/Module/Cover_photo.php:234 ../../include/items.php:4254 #, php-format msgid "%1$s updated her %2$s" msgstr "" -#: ../../Zotlabs/Module/Cover_photo.php:235 ../../include/items.php:4327 +#: ../../Zotlabs/Module/Cover_photo.php:235 ../../include/items.php:4255 msgid "male" msgstr "" -#: ../../Zotlabs/Module/Cover_photo.php:236 ../../include/items.php:4328 +#: ../../Zotlabs/Module/Cover_photo.php:236 ../../include/items.php:4256 #, php-format msgid "%1$s updated his %2$s" msgstr "" -#: ../../Zotlabs/Module/Cover_photo.php:238 ../../include/items.php:4330 +#: ../../Zotlabs/Module/Cover_photo.php:238 ../../include/items.php:4258 #, php-format msgid "%1$s updated their %2$s" msgstr "" -#: ../../Zotlabs/Module/Cover_photo.php:240 ../../include/channel.php:1738 +#: ../../Zotlabs/Module/Cover_photo.php:240 ../../include/channel.php:1677 msgid "cover photo" msgstr "" #: ../../Zotlabs/Module/Cover_photo.php:303 #: ../../Zotlabs/Module/Cover_photo.php:318 -#: ../../Zotlabs/Module/Profile_photo.php:300 -#: ../../Zotlabs/Module/Profile_photo.php:341 +#: ../../Zotlabs/Module/Profile_photo.php:311 +#: ../../Zotlabs/Module/Profile_photo.php:352 msgid "Photo not available." msgstr "" #: ../../Zotlabs/Module/Cover_photo.php:354 -#: ../../Zotlabs/Module/Profile_photo.php:387 +#: ../../Zotlabs/Module/Profile_photo.php:407 msgid "Upload File:" msgstr "" #: ../../Zotlabs/Module/Cover_photo.php:355 -#: ../../Zotlabs/Module/Profile_photo.php:388 +#: ../../Zotlabs/Module/Profile_photo.php:408 msgid "Select a profile:" msgstr "" @@ -1048,1904 +1654,48 @@ msgid "Upload Cover Photo" msgstr "" #: ../../Zotlabs/Module/Cover_photo.php:361 +#: ../../Zotlabs/Module/Profile_photo.php:416 #: ../../Zotlabs/Module/Settings/Channel.php:399 -#: ../../Zotlabs/Module/Profile_photo.php:396 msgid "or" msgstr "" #: ../../Zotlabs/Module/Cover_photo.php:361 -#: ../../Zotlabs/Module/Profile_photo.php:396 +#: ../../Zotlabs/Module/Profile_photo.php:416 msgid "skip this step" msgstr "" #: ../../Zotlabs/Module/Cover_photo.php:361 -#: ../../Zotlabs/Module/Profile_photo.php:396 +#: ../../Zotlabs/Module/Profile_photo.php:416 msgid "select a photo from your photo albums" msgstr "" #: ../../Zotlabs/Module/Cover_photo.php:377 -#: ../../Zotlabs/Module/Profile_photo.php:415 +#: ../../Zotlabs/Module/Profile_photo.php:435 msgid "Crop Image" msgstr "" #: ../../Zotlabs/Module/Cover_photo.php:378 -#: ../../Zotlabs/Module/Profile_photo.php:416 +#: ../../Zotlabs/Module/Profile_photo.php:436 msgid "Please adjust the image cropping for optimum viewing." msgstr "" #: ../../Zotlabs/Module/Cover_photo.php:380 -#: ../../Zotlabs/Module/Profile_photo.php:418 +#: ../../Zotlabs/Module/Profile_photo.php:438 msgid "Done Editing" msgstr "" -#: ../../Zotlabs/Module/Settings/Display.php:101 -#: ../../Zotlabs/Module/Settings/Channel.php:289 -#: ../../Zotlabs/Module/Menu.php:100 ../../Zotlabs/Module/Menu.php:157 -#: ../../Zotlabs/Module/Connedit.php:408 ../../Zotlabs/Module/Connedit.php:686 -#: ../../Zotlabs/Module/Filestorage.php:160 -#: ../../Zotlabs/Module/Filestorage.php:168 -#: ../../Zotlabs/Module/Profiles.php:641 -#: ../../Zotlabs/Module/Admin/Site.php:216 -#: ../../Zotlabs/Module/Removeme.php:63 ../../Zotlabs/Module/Mitem.php:162 -#: ../../Zotlabs/Module/Mitem.php:163 ../../Zotlabs/Module/Mitem.php:240 -#: ../../Zotlabs/Module/Mitem.php:241 ../../Zotlabs/Module/Events.php:462 -#: ../../Zotlabs/Module/Events.php:463 ../../Zotlabs/Module/Events.php:472 -#: ../../Zotlabs/Module/Api.php:85 ../../Zotlabs/Module/Photos.php:653 -#: ../../include/dir_fns.php:143 ../../include/dir_fns.php:144 -#: ../../include/dir_fns.php:145 ../../view/theme/redbasic/php/config.php:111 -#: ../../view/theme/redbasic/php/config.php:136 ../../boot.php:1743 -msgid "No" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Display.php:101 -#: ../../Zotlabs/Module/Settings/Channel.php:289 -#: ../../Zotlabs/Module/Menu.php:100 ../../Zotlabs/Module/Menu.php:157 -#: ../../Zotlabs/Module/Connedit.php:408 -#: ../../Zotlabs/Module/Filestorage.php:160 -#: ../../Zotlabs/Module/Filestorage.php:168 -#: ../../Zotlabs/Module/Profiles.php:641 -#: ../../Zotlabs/Module/Admin/Site.php:218 -#: ../../Zotlabs/Module/Removeme.php:63 ../../Zotlabs/Module/Mitem.php:162 -#: ../../Zotlabs/Module/Mitem.php:163 ../../Zotlabs/Module/Mitem.php:240 -#: ../../Zotlabs/Module/Mitem.php:241 ../../Zotlabs/Module/Events.php:462 -#: ../../Zotlabs/Module/Events.php:463 ../../Zotlabs/Module/Events.php:472 -#: ../../Zotlabs/Module/Api.php:84 ../../Zotlabs/Module/Photos.php:653 -#: ../../include/dir_fns.php:143 ../../include/dir_fns.php:144 -#: ../../include/dir_fns.php:145 ../../view/theme/redbasic/php/config.php:111 -#: ../../view/theme/redbasic/php/config.php:136 ../../boot.php:1743 -msgid "Yes" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Display.php:135 -msgid "No special theme for mobile devices" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Display.php:138 -#, php-format -msgid "%s - (Experimental)" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Display.php:141 -#: ../../Zotlabs/Module/Admin/Site.php:167 -msgid "mobile" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Display.php:189 -msgid "Display Settings" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Display.php:190 -msgid "Theme Settings" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Display.php:191 -msgid "Custom Theme Settings" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Display.php:192 -msgid "Content Settings" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Display.php:198 -msgid "Display Theme:" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Display.php:199 -msgid "Select scheme" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Display.php:201 -msgid "Mobile Theme:" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Display.php:202 -msgid "Preload images before rendering the page" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Display.php:202 -msgid "" -"The subjective page load time will be longer but the page will be ready when " -"displayed" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Display.php:203 -msgid "Enable user zoom on mobile devices" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Display.php:204 -msgid "Update browser every xx seconds" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Display.php:204 -msgid "Minimum of 10 seconds, no maximum" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Display.php:205 -msgid "Maximum number of conversations to load at any time:" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Display.php:205 -msgid "Maximum of 100 items" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Display.php:206 -msgid "Show emoticons (smilies) as images" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Display.php:207 -msgid "Link post titles to source" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Display.php:208 -msgid "System Page Layout Editor - (advanced)" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Display.php:211 -msgid "Use blog/list mode on channel page" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Display.php:211 -#: ../../Zotlabs/Module/Settings/Display.php:212 -msgid "(comments displayed separately)" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Display.php:212 -msgid "Use blog/list mode on grid page" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Display.php:213 -msgid "Channel page max height of content (in pixels)" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Display.php:213 -#: ../../Zotlabs/Module/Settings/Display.php:214 -msgid "click to expand content exceeding this height" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Display.php:214 -msgid "Grid page max height of content (in pixels)" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Features.php:38 #: ../../Zotlabs/Module/Admin/Features.php:55 #: ../../Zotlabs/Module/Admin/Features.php:56 +#: ../../Zotlabs/Module/Settings/Features.php:38 msgid "Off" msgstr "" -#: ../../Zotlabs/Module/Settings/Features.php:38 #: ../../Zotlabs/Module/Admin/Features.php:55 #: ../../Zotlabs/Module/Admin/Features.php:56 +#: ../../Zotlabs/Module/Settings/Features.php:38 msgid "On" msgstr "" -#: ../../Zotlabs/Module/Settings/Features.php:45 -msgid "Additional Features" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Oauth.php:34 -msgid "Name is required" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Oauth.php:38 -msgid "Key and Secret are required" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Oauth.php:42 -#: ../../Zotlabs/Module/Settings/Oauth.php:113 -#: ../../Zotlabs/Module/Admin/Plugins.php:443 ../../Zotlabs/Lib/Apps.php:334 -msgid "Update" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Oauth.php:86 -#: ../../Zotlabs/Module/Settings/Oauth.php:112 -#: ../../Zotlabs/Module/Settings/Oauth.php:148 -msgid "Add application" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Oauth.php:89 -msgid "Name of application" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Oauth.php:90 -#: ../../Zotlabs/Module/Settings/Oauth.php:116 -msgid "Consumer Key" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Oauth.php:90 -#: ../../Zotlabs/Module/Settings/Oauth.php:91 -msgid "Automatically generated - change if desired. Max length 20" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Oauth.php:91 -#: ../../Zotlabs/Module/Settings/Oauth.php:117 -msgid "Consumer Secret" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Oauth.php:92 -#: ../../Zotlabs/Module/Settings/Oauth.php:118 -msgid "Redirect" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Oauth.php:92 -msgid "" -"Redirect URI - leave blank unless your application specifically requires this" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Oauth.php:93 -#: ../../Zotlabs/Module/Settings/Oauth.php:119 -msgid "Icon url" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Oauth.php:93 -#: ../../Zotlabs/Module/Sources.php:112 ../../Zotlabs/Module/Sources.php:147 -msgid "Optional" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Oauth.php:104 -msgid "Application not found." -msgstr "" - -#: ../../Zotlabs/Module/Settings/Oauth.php:147 -msgid "Connected Apps" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Oauth.php:151 -msgid "Client key starts with" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Oauth.php:152 -msgid "No name" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Oauth.php:153 -msgid "Remove authorization" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Tokens.php:31 -#, php-format -msgid "This channel is limited to %d tokens" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Tokens.php:37 -msgid "Name and Password are required." -msgstr "" - -#: ../../Zotlabs/Module/Settings/Tokens.php:77 -msgid "Token saved." -msgstr "" - -#: ../../Zotlabs/Module/Settings/Tokens.php:113 -msgid "" -"Use this form to create temporary access identifiers to share things with " -"non-members. These identities may be used in Access Control Lists and " -"visitors may login using these credentials to access private content." -msgstr "" - -#: ../../Zotlabs/Module/Settings/Tokens.php:115 -msgid "" -"You may also provide dropbox style access links to friends and " -"associates by adding the Login Password to any specific site URL as shown. " -"Examples:" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Tokens.php:150 ../../include/widgets.php:647 -msgid "Guest Access Tokens" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Tokens.php:157 -msgid "Login Name" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Tokens.php:158 -msgid "Login Password" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Tokens.php:159 -msgid "Expires (yyyy-mm-dd)" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Tokens.php:160 -#: ../../Zotlabs/Module/Connedit.php:782 -msgid "Their Settings" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Tokens.php:161 -#: ../../Zotlabs/Module/Connedit.php:783 -msgid "My Settings" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Tokens.php:163 -#: ../../Zotlabs/Module/Connedit.php:778 -msgid "inherited" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Tokens.php:165 -#: ../../Zotlabs/Module/Connedit.php:785 -msgid "Individual Permissions" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Tokens.php:166 -#: ../../Zotlabs/Module/Connedit.php:786 -msgid "" -"Some permissions may be inherited from your channel's privacy settings, which have higher priority than " -"individual settings. You can not change those settings here." -msgstr "" - -#: ../../Zotlabs/Module/Settings/Account.php:20 -msgid "Not valid email." -msgstr "" - -#: ../../Zotlabs/Module/Settings/Account.php:23 -msgid "Protected email address. Cannot change to that email." -msgstr "" - -#: ../../Zotlabs/Module/Settings/Account.php:32 -msgid "System failure storing new email. Please try again." -msgstr "" - -#: ../../Zotlabs/Module/Settings/Account.php:40 -msgid "Technical skill level updated" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Account.php:56 -msgid "Password verification failed." -msgstr "" - -#: ../../Zotlabs/Module/Settings/Account.php:63 -msgid "Passwords do not match. Password unchanged." -msgstr "" - -#: ../../Zotlabs/Module/Settings/Account.php:67 -msgid "Empty passwords are not allowed. Password unchanged." -msgstr "" - -#: ../../Zotlabs/Module/Settings/Account.php:81 -msgid "Password changed." -msgstr "" - -#: ../../Zotlabs/Module/Settings/Account.php:83 -msgid "Password update failed. Please try again." -msgstr "" - -#: ../../Zotlabs/Module/Settings/Account.php:112 -msgid "Account Settings" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Account.php:113 -msgid "Current Password" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Account.php:114 -msgid "Enter New Password" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Account.php:115 -msgid "Confirm New Password" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Account.php:115 -msgid "Leave password fields blank unless changing" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Account.php:116 -msgid "Your technical skill level" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Account.php:116 -msgid "Used to provide a member experience matched to your comfort level" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Account.php:119 -#: ../../Zotlabs/Module/Settings/Channel.php:459 -msgid "Email Address:" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Account.php:120 -#: ../../Zotlabs/Module/Removeaccount.php:61 -msgid "Remove Account" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Account.php:121 -msgid "Remove this account including all its channels" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Channel.php:61 -#: ../../Zotlabs/Module/Settings/Channel.php:65 -#: ../../Zotlabs/Module/Settings/Channel.php:66 -#: ../../Zotlabs/Module/Settings/Channel.php:69 -#: ../../Zotlabs/Module/Settings/Channel.php:80 -#: ../../Zotlabs/Module/Connedit.php:627 ../../include/widgets.php:531 -#: ../../include/selectors.php:123 ../../include/channel.php:402 -#: ../../include/channel.php:403 ../../include/channel.php:410 -msgid "Friends" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Channel.php:246 -msgid "Settings updated." -msgstr "" - -#: ../../Zotlabs/Module/Settings/Channel.php:307 -msgid "Nobody except yourself" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Channel.php:308 -msgid "Only those you specifically allow" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Channel.php:309 -msgid "Approved connections" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Channel.php:310 -msgid "Any connections" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Channel.php:311 -msgid "Anybody on this website" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Channel.php:312 -msgid "Anybody in this network" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Channel.php:313 -msgid "Anybody authenticated" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Channel.php:314 -msgid "Anybody on the internet" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Channel.php:390 -msgid "Publish your default profile in the network directory" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Channel.php:395 -msgid "Allow us to suggest you as a potential friend to new members?" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Channel.php:404 -msgid "Your channel address is" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Channel.php:450 -msgid "Channel Settings" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Channel.php:457 -msgid "Basic Settings" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Channel.php:458 -#: ../../include/channel.php:1172 -msgid "Full Name:" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Channel.php:460 -msgid "Your Timezone:" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Channel.php:461 -msgid "Default Post Location:" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Channel.php:461 -msgid "Geographical location to display on your posts" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Channel.php:462 -msgid "Use Browser Location:" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Channel.php:464 -msgid "Adult Content" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Channel.php:464 -msgid "" -"This channel frequently or regularly publishes adult content. (Please tag " -"any adult material and/or nudity with #NSFW)" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Channel.php:466 -msgid "Security and Privacy Settings" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Channel.php:469 -msgid "Your permissions are already configured. Click to view/adjust" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Channel.php:471 -msgid "Hide my online presence" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Channel.php:471 -msgid "Prevents displaying in your profile that you are online" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Channel.php:473 -msgid "Simple Privacy Settings:" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Channel.php:474 -msgid "" -"Very Public - extremely permissive (should be used with caution)" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Channel.php:475 -msgid "" -"Typical - default public, privacy when desired (similar to social " -"network permissions but with improved privacy)" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Channel.php:476 -msgid "Private - default private, never open or public" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Channel.php:477 -msgid "Blocked - default blocked to/from everybody" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Channel.php:479 -msgid "Allow others to tag your posts" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Channel.php:479 -msgid "" -"Often used by the community to retro-actively flag inappropriate content" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Channel.php:481 -msgid "Channel Permission Limits" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Channel.php:483 -msgid "Expire other channel content after this many days" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Channel.php:483 -msgid "0 or blank to use the website limit." -msgstr "" - -#: ../../Zotlabs/Module/Settings/Channel.php:483 -#, php-format -msgid "This website expires after %d days." -msgstr "" - -#: ../../Zotlabs/Module/Settings/Channel.php:483 -msgid "This website does not expire imported content." -msgstr "" - -#: ../../Zotlabs/Module/Settings/Channel.php:483 -msgid "The website limit takes precedence if lower than your limit." -msgstr "" - -#: ../../Zotlabs/Module/Settings/Channel.php:484 -msgid "Maximum Friend Requests/Day:" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Channel.php:484 -msgid "May reduce spam activity" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Channel.php:485 -msgid "Default Access Control List (ACL)" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Channel.php:486 -#: ../../Zotlabs/Module/Mitem.php:154 ../../Zotlabs/Module/Mitem.php:231 -msgid "(click to open/close)" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Channel.php:487 -msgid "Use my default audience setting for the type of object published" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Channel.php:494 -msgid "Channel permissions category:" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Channel.php:500 -msgid "Maximum private messages per day from unknown people:" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Channel.php:500 -msgid "Useful to reduce spamming" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Channel.php:503 -msgid "Notification Settings" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Channel.php:504 -msgid "By default post a status message when:" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Channel.php:505 -msgid "accepting a friend request" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Channel.php:506 -msgid "joining a forum/community" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Channel.php:507 -msgid "making an interesting profile change" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Channel.php:508 -msgid "Send a notification email when:" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Channel.php:509 -msgid "You receive a connection request" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Channel.php:510 -msgid "Your connections are confirmed" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Channel.php:511 -msgid "Someone writes on your profile wall" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Channel.php:512 -msgid "Someone writes a followup comment" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Channel.php:513 -msgid "You receive a private message" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Channel.php:514 -msgid "You receive a friend suggestion" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Channel.php:515 -msgid "You are tagged in a post" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Channel.php:516 -msgid "You are poked/prodded/etc. in a post" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Channel.php:519 -msgid "Show visual notifications including:" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Channel.php:521 -msgid "Unseen grid activity" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Channel.php:522 -msgid "Unseen channel activity" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Channel.php:523 -msgid "Unseen private messages" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Channel.php:523 -#: ../../Zotlabs/Module/Settings/Channel.php:528 -#: ../../Zotlabs/Module/Settings/Channel.php:529 -#: ../../Zotlabs/Module/Settings/Channel.php:530 -msgid "Recommended" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Channel.php:524 -msgid "Upcoming events" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Channel.php:525 -msgid "Events today" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Channel.php:526 -msgid "Upcoming birthdays" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Channel.php:526 -msgid "Not available in all themes" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Channel.php:527 -msgid "System (personal) notifications" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Channel.php:528 -msgid "System info messages" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Channel.php:529 -msgid "System critical alerts" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Channel.php:530 -msgid "New connections" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Channel.php:531 -msgid "System Registrations" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Channel.php:532 -msgid "" -"Also show new wall posts, private messages and connections under Notices" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Channel.php:534 -msgid "Notify me of events this many days in advance" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Channel.php:534 -msgid "Must be greater than 0" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Channel.php:536 -msgid "Advanced Account/Page Type Settings" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Channel.php:537 -msgid "Change the behaviour of this account for special situations" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Channel.php:539 -msgid "Miscellaneous Settings" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Channel.php:540 -msgid "Default photo upload folder" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Channel.php:540 -#: ../../Zotlabs/Module/Settings/Channel.php:541 -msgid "%Y - current year, %m - current month" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Channel.php:541 -msgid "Default file upload folder" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Channel.php:543 -msgid "Personal menu to display in your channel pages" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Channel.php:544 -#: ../../Zotlabs/Module/Removeme.php:64 -msgid "Remove Channel" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Channel.php:545 -msgid "Remove this channel." -msgstr "" - -#: ../../Zotlabs/Module/Settings/Channel.php:546 -msgid "Firefox Share $Projectname provider" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Channel.php:547 -msgid "Start calendar week on monday" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Featured.php:24 -msgid "No feature settings configured" -msgstr "" - -#: ../../Zotlabs/Module/Settings/Featured.php:31 -msgid "Feature/Addon Settings" -msgstr "" - -#: ../../Zotlabs/Module/Item.php:182 -msgid "Unable to locate original post." -msgstr "" - -#: ../../Zotlabs/Module/Item.php:435 -msgid "Empty post discarded." -msgstr "" - -#: ../../Zotlabs/Module/Item.php:475 -msgid "Executable content type not permitted to this channel." -msgstr "" - -#: ../../Zotlabs/Module/Item.php:855 -msgid "Duplicate post suppressed." -msgstr "" - -#: ../../Zotlabs/Module/Item.php:990 -msgid "System error. Post not saved." -msgstr "" - -#: ../../Zotlabs/Module/Item.php:1111 -msgid "Unable to obtain post information from database." -msgstr "" - -#: ../../Zotlabs/Module/Item.php:1118 -#, php-format -msgid "You have reached your limit of %1$.0f top level posts." -msgstr "" - -#: ../../Zotlabs/Module/Item.php:1125 -#, php-format -msgid "You have reached your limit of %1$.0f webpages." -msgstr "" - -#: ../../Zotlabs/Module/Ping.php:254 -msgid "sent you a private message" -msgstr "" - -#: ../../Zotlabs/Module/Ping.php:302 -msgid "added your channel" -msgstr "" - -#: ../../Zotlabs/Module/Ping.php:312 -msgid "g A l F d" -msgstr "" - -#: ../../Zotlabs/Module/Ping.php:334 -msgid "[today]" -msgstr "" - -#: ../../Zotlabs/Module/Ping.php:343 -msgid "posted an event" -msgstr "" - -#: ../../Zotlabs/Module/Editlayout.php:79 -#: ../../Zotlabs/Module/Editwebpage.php:80 -#: ../../Zotlabs/Module/Editpost.php:24 ../../Zotlabs/Module/Editblock.php:79 -#: ../../Zotlabs/Module/Editblock.php:95 -msgid "Item not found" -msgstr "" - -#: ../../Zotlabs/Module/Editlayout.php:127 -#: ../../Zotlabs/Module/Layouts.php:128 ../../Zotlabs/Module/Layouts.php:188 -msgid "Layout Name" -msgstr "" - -#: ../../Zotlabs/Module/Editlayout.php:128 -#: ../../Zotlabs/Module/Layouts.php:131 -msgid "Layout Description (Optional)" -msgstr "" - -#: ../../Zotlabs/Module/Editlayout.php:136 -msgid "Edit Layout" -msgstr "" - -#: ../../Zotlabs/Module/Editwebpage.php:142 -msgid "Page link" -msgstr "" - -#: ../../Zotlabs/Module/Editwebpage.php:146 ../../Zotlabs/Module/Mail.php:244 -#: ../../Zotlabs/Module/Mail.php:369 ../../Zotlabs/Module/Editblock.php:111 -#: ../../Zotlabs/Module/Chat.php:207 ../../include/conversation.php:1149 -msgid "Insert web link" -msgstr "" - -#: ../../Zotlabs/Module/Editwebpage.php:169 -msgid "Edit Webpage" -msgstr "" - -#: ../../Zotlabs/Module/Magic.php:71 -msgid "Hub not found." -msgstr "" - -#: ../../Zotlabs/Module/Menu.php:49 -msgid "Unable to update menu." -msgstr "" - -#: ../../Zotlabs/Module/Menu.php:60 -msgid "Unable to create menu." -msgstr "" - -#: ../../Zotlabs/Module/Menu.php:98 ../../Zotlabs/Module/Menu.php:110 -msgid "Menu Name" -msgstr "" - -#: ../../Zotlabs/Module/Menu.php:98 -msgid "Unique name (not visible on webpage) - required" -msgstr "" - -#: ../../Zotlabs/Module/Menu.php:99 ../../Zotlabs/Module/Menu.php:111 -msgid "Menu Title" -msgstr "" - -#: ../../Zotlabs/Module/Menu.php:99 -msgid "Visible on webpage - leave empty for no title" -msgstr "" - -#: ../../Zotlabs/Module/Menu.php:100 -msgid "Allow Bookmarks" -msgstr "" - -#: ../../Zotlabs/Module/Menu.php:100 ../../Zotlabs/Module/Menu.php:157 -msgid "Menu may be used to store saved bookmarks" -msgstr "" - -#: ../../Zotlabs/Module/Menu.php:101 ../../Zotlabs/Module/Menu.php:159 -msgid "Submit and proceed" -msgstr "" - -#: ../../Zotlabs/Module/Menu.php:107 ../../include/text.php:2312 -msgid "Menus" -msgstr "" - -#: ../../Zotlabs/Module/Menu.php:113 ../../Zotlabs/Module/Locs.php:120 -msgid "Drop" -msgstr "" - -#: ../../Zotlabs/Module/Menu.php:114 ../../Zotlabs/Module/Webpages.php:251 -#: ../../Zotlabs/Module/Blocks.php:157 ../../Zotlabs/Module/Layouts.php:190 -#: ../../include/page_widgets.php:47 -msgid "Created" -msgstr "" - -#: ../../Zotlabs/Module/Menu.php:115 ../../Zotlabs/Module/Webpages.php:252 -#: ../../Zotlabs/Module/Blocks.php:158 ../../Zotlabs/Module/Layouts.php:191 -#: ../../include/page_widgets.php:48 -msgid "Edited" -msgstr "" - -#: ../../Zotlabs/Module/Menu.php:117 -msgid "Bookmarks allowed" -msgstr "" - -#: ../../Zotlabs/Module/Menu.php:119 -msgid "Delete this menu" -msgstr "" - -#: ../../Zotlabs/Module/Menu.php:120 ../../Zotlabs/Module/Menu.php:154 -msgid "Edit menu contents" -msgstr "" - -#: ../../Zotlabs/Module/Menu.php:121 -msgid "Edit this menu" -msgstr "" - -#: ../../Zotlabs/Module/Menu.php:136 -msgid "Menu could not be deleted." -msgstr "" - -#: ../../Zotlabs/Module/Menu.php:144 ../../Zotlabs/Module/Mitem.php:28 -msgid "Menu not found." -msgstr "" - -#: ../../Zotlabs/Module/Menu.php:149 -msgid "Edit Menu" -msgstr "" - -#: ../../Zotlabs/Module/Menu.php:153 -msgid "Add or remove entries to this menu" -msgstr "" - -#: ../../Zotlabs/Module/Menu.php:155 -msgid "Menu name" -msgstr "" - -#: ../../Zotlabs/Module/Menu.php:155 -msgid "Must be unique, only seen by you" -msgstr "" - -#: ../../Zotlabs/Module/Menu.php:156 -msgid "Menu title" -msgstr "" - -#: ../../Zotlabs/Module/Menu.php:156 -msgid "Menu title as seen by others" -msgstr "" - -#: ../../Zotlabs/Module/Menu.php:157 -msgid "Allow bookmarks" -msgstr "" - -#: ../../Zotlabs/Module/Menu.php:166 ../../Zotlabs/Module/Mitem.php:120 -#: ../../Zotlabs/Module/Xchan.php:41 -msgid "Not found." -msgstr "" - -#: ../../Zotlabs/Module/Appman.php:37 ../../Zotlabs/Module/Appman.php:53 -msgid "App installed." -msgstr "" - -#: ../../Zotlabs/Module/Appman.php:46 -msgid "Malformed app." -msgstr "" - -#: ../../Zotlabs/Module/Appman.php:104 -msgid "Embed code" -msgstr "" - -#: ../../Zotlabs/Module/Appman.php:110 ../../include/widgets.php:107 -msgid "Edit App" -msgstr "" - -#: ../../Zotlabs/Module/Appman.php:110 -msgid "Create App" -msgstr "" - -#: ../../Zotlabs/Module/Appman.php:115 -msgid "Name of app" -msgstr "" - -#: ../../Zotlabs/Module/Appman.php:115 ../../Zotlabs/Module/Appman.php:116 -#: ../../Zotlabs/Module/Profiles.php:703 ../../Zotlabs/Module/Profiles.php:707 -#: ../../Zotlabs/Module/Events.php:452 ../../Zotlabs/Module/Events.php:457 -#: ../../include/datetime.php:259 -msgid "Required" -msgstr "" - -#: ../../Zotlabs/Module/Appman.php:116 -msgid "Location (URL) of app" -msgstr "" - -#: ../../Zotlabs/Module/Appman.php:117 ../../Zotlabs/Module/Events.php:465 -#: ../../Zotlabs/Module/Rbmark.php:101 -msgid "Description" -msgstr "" - -#: ../../Zotlabs/Module/Appman.php:118 -msgid "Photo icon URL" -msgstr "" - -#: ../../Zotlabs/Module/Appman.php:118 -msgid "80 x 80 pixels - optional" -msgstr "" - -#: ../../Zotlabs/Module/Appman.php:119 -msgid "Categories (optional, comma separated list)" -msgstr "" - -#: ../../Zotlabs/Module/Appman.php:120 -msgid "Version ID" -msgstr "" - -#: ../../Zotlabs/Module/Appman.php:121 -msgid "Price of app" -msgstr "" - -#: ../../Zotlabs/Module/Appman.php:122 -msgid "Location (URL) to purchase app" -msgstr "" - -#: ../../Zotlabs/Module/Register.php:49 -msgid "Maximum daily site registrations exceeded. Please try again tomorrow." -msgstr "" - -#: ../../Zotlabs/Module/Register.php:55 -msgid "" -"Please indicate acceptance of the Terms of Service. Registration failed." -msgstr "" - -#: ../../Zotlabs/Module/Register.php:89 -msgid "Passwords do not match." -msgstr "" - -#: ../../Zotlabs/Module/Register.php:131 -msgid "" -"Registration successful. Please check your email for validation instructions." -msgstr "" - -#: ../../Zotlabs/Module/Register.php:137 -msgid "Your registration is pending approval by the site owner." -msgstr "" - -#: ../../Zotlabs/Module/Register.php:140 -msgid "Your registration can not be processed." -msgstr "" - -#: ../../Zotlabs/Module/Register.php:184 -msgid "Registration on this hub is disabled." -msgstr "" - -#: ../../Zotlabs/Module/Register.php:193 -msgid "Registration on this hub is by approval only." -msgstr "" - -#: ../../Zotlabs/Module/Register.php:194 -msgid "Register at another affiliated hub." -msgstr "" - -#: ../../Zotlabs/Module/Register.php:204 -msgid "" -"This site has exceeded the number of allowed daily account registrations. " -"Please try again tomorrow." -msgstr "" - -#: ../../Zotlabs/Module/Register.php:221 -msgid "Terms of Service" -msgstr "" - -#: ../../Zotlabs/Module/Register.php:227 -#, php-format -msgid "I accept the %s for this website" -msgstr "" - -#: ../../Zotlabs/Module/Register.php:229 -#, php-format -msgid "I am over 13 years of age and accept the %s for this website" -msgstr "" - -#: ../../Zotlabs/Module/Register.php:233 -msgid "Your email address" -msgstr "" - -#: ../../Zotlabs/Module/Register.php:234 -msgid "Choose a password" -msgstr "" - -#: ../../Zotlabs/Module/Register.php:235 -msgid "Please re-enter your password" -msgstr "" - -#: ../../Zotlabs/Module/Register.php:236 -msgid "Please enter your invitation code" -msgstr "" - -#: ../../Zotlabs/Module/Register.php:237 -#: ../../Zotlabs/Module/New_channel.php:134 -msgid "Name or caption" -msgstr "" - -#: ../../Zotlabs/Module/Register.php:237 -#: ../../Zotlabs/Module/New_channel.php:134 -msgid "" -"Examples: \"Bob Jameson\", \"Lisa and her Horses\", \"Soccer\", \"Aviation " -"Group\"" -msgstr "" - -#: ../../Zotlabs/Module/Register.php:239 -#: ../../Zotlabs/Module/New_channel.php:136 -msgid "Choose a short nickname" -msgstr "" - -#: ../../Zotlabs/Module/Register.php:239 -#: ../../Zotlabs/Module/New_channel.php:136 -#, php-format -msgid "" -"Your nickname will be used to create an easy to remember channel address e." -"g. nickname%s" -msgstr "" - -#: ../../Zotlabs/Module/Register.php:240 -#: ../../Zotlabs/Module/New_channel.php:137 -msgid "Channel role and privacy" -msgstr "" - -#: ../../Zotlabs/Module/Register.php:240 -#: ../../Zotlabs/Module/New_channel.php:137 -msgid "Select a channel role with your privacy requirements." -msgstr "" - -#: ../../Zotlabs/Module/Register.php:240 -#: ../../Zotlabs/Module/New_channel.php:137 -msgid "Read more about roles" -msgstr "" - -#: ../../Zotlabs/Module/Register.php:241 -msgid "no" -msgstr "" - -#: ../../Zotlabs/Module/Register.php:241 -msgid "yes" -msgstr "" - -#: ../../Zotlabs/Module/Register.php:253 -#: ../../Zotlabs/Module/Admin/Site.php:259 -msgid "Registration" -msgstr "" - -#: ../../Zotlabs/Module/Register.php:258 -msgid "Membership on this site is by invitation only." -msgstr "" - -#: ../../Zotlabs/Module/Register.php:270 ../../include/nav.php:152 -#: ../../boot.php:1721 -msgid "Register" -msgstr "" - -#: ../../Zotlabs/Module/Register.php:271 -msgid "" -"This site may require email verification after submitting this form. If you " -"are returned to a login page, please check your email for instructions." -msgstr "" - -#: ../../Zotlabs/Module/Fbrowser.php:29 ../../Zotlabs/Lib/Apps.php:222 -#: ../../include/nav.php:95 ../../include/conversation.php:1672 -msgid "Photos" -msgstr "" - -#: ../../Zotlabs/Module/Connedit.php:80 -msgid "Could not access contact record." -msgstr "" - -#: ../../Zotlabs/Module/Connedit.php:104 -msgid "Could not locate selected profile." -msgstr "" - -#: ../../Zotlabs/Module/Connedit.php:256 -msgid "Connection updated." -msgstr "" - -#: ../../Zotlabs/Module/Connedit.php:258 -msgid "Failed to update connection record." -msgstr "" - -#: ../../Zotlabs/Module/Connedit.php:308 -msgid "is now connected to" -msgstr "" - -#: ../../Zotlabs/Module/Connedit.php:440 -msgid "Could not access address book record." -msgstr "" - -#: ../../Zotlabs/Module/Connedit.php:460 -msgid "Refresh failed - channel is currently unavailable." -msgstr "" - -#: ../../Zotlabs/Module/Connedit.php:475 ../../Zotlabs/Module/Connedit.php:484 -#: ../../Zotlabs/Module/Connedit.php:493 ../../Zotlabs/Module/Connedit.php:502 -#: ../../Zotlabs/Module/Connedit.php:515 -msgid "Unable to set address book parameters." -msgstr "" - -#: ../../Zotlabs/Module/Connedit.php:538 -msgid "Connection has been removed." -msgstr "" - -#: ../../Zotlabs/Module/Connedit.php:554 ../../Zotlabs/Lib/Apps.php:221 -#: ../../include/nav.php:89 ../../include/conversation.php:953 -msgid "View Profile" -msgstr "" - -#: ../../Zotlabs/Module/Connedit.php:557 -#, php-format -msgid "View %s's profile" -msgstr "" - -#: ../../Zotlabs/Module/Connedit.php:561 -msgid "Refresh Permissions" -msgstr "" - -#: ../../Zotlabs/Module/Connedit.php:564 -msgid "Fetch updated permissions" -msgstr "" - -#: ../../Zotlabs/Module/Connedit.php:568 -msgid "Recent Activity" -msgstr "" - -#: ../../Zotlabs/Module/Connedit.php:571 -msgid "View recent posts and comments" -msgstr "" - -#: ../../Zotlabs/Module/Connedit.php:575 -#: ../../Zotlabs/Module/Admin/Accounts.php:175 -msgid "Unblock" -msgstr "" - -#: ../../Zotlabs/Module/Connedit.php:575 -#: ../../Zotlabs/Module/Admin/Accounts.php:174 -msgid "Block" -msgstr "" - -#: ../../Zotlabs/Module/Connedit.php:578 -msgid "Block (or Unblock) all communications with this connection" -msgstr "" - -#: ../../Zotlabs/Module/Connedit.php:579 -msgid "This connection is blocked!" -msgstr "" - -#: ../../Zotlabs/Module/Connedit.php:583 -msgid "Unignore" -msgstr "" - -#: ../../Zotlabs/Module/Connedit.php:586 -msgid "Ignore (or Unignore) all inbound communications from this connection" -msgstr "" - -#: ../../Zotlabs/Module/Connedit.php:587 -msgid "This connection is ignored!" -msgstr "" - -#: ../../Zotlabs/Module/Connedit.php:591 -msgid "Unarchive" -msgstr "" - -#: ../../Zotlabs/Module/Connedit.php:591 -msgid "Archive" -msgstr "" - -#: ../../Zotlabs/Module/Connedit.php:594 -msgid "" -"Archive (or Unarchive) this connection - mark channel dead but keep content" -msgstr "" - -#: ../../Zotlabs/Module/Connedit.php:595 -msgid "This connection is archived!" -msgstr "" - -#: ../../Zotlabs/Module/Connedit.php:599 -msgid "Unhide" -msgstr "" - -#: ../../Zotlabs/Module/Connedit.php:599 -msgid "Hide" -msgstr "" - -#: ../../Zotlabs/Module/Connedit.php:602 -msgid "Hide or Unhide this connection from your other connections" -msgstr "" - -#: ../../Zotlabs/Module/Connedit.php:603 -msgid "This connection is hidden!" -msgstr "" - -#: ../../Zotlabs/Module/Connedit.php:610 -msgid "Delete this connection" -msgstr "" - -#: ../../Zotlabs/Module/Connedit.php:625 ../../include/widgets.php:529 -msgid "Me" -msgstr "" - -#: ../../Zotlabs/Module/Connedit.php:626 ../../include/widgets.php:530 -msgid "Family" -msgstr "" - -#: ../../Zotlabs/Module/Connedit.php:628 ../../include/widgets.php:532 -msgid "Acquaintances" -msgstr "" - -#: ../../Zotlabs/Module/Connedit.php:686 -msgid "Approve this connection" -msgstr "" - -#: ../../Zotlabs/Module/Connedit.php:686 -msgid "Accept connection to allow communication" -msgstr "" - -#: ../../Zotlabs/Module/Connedit.php:691 -msgid "Set Affinity" -msgstr "" - -#: ../../Zotlabs/Module/Connedit.php:694 -msgid "Set Profile" -msgstr "" - -#: ../../Zotlabs/Module/Connedit.php:697 -msgid "Set Affinity & Profile" -msgstr "" - -#: ../../Zotlabs/Module/Connedit.php:746 -msgid "none" -msgstr "" - -#: ../../Zotlabs/Module/Connedit.php:750 ../../include/widgets.php:656 -msgid "Connection Default Permissions" -msgstr "" - -#: ../../Zotlabs/Module/Connedit.php:750 ../../include/items.php:3977 -#, php-format -msgid "Connection: %s" -msgstr "" - -#: ../../Zotlabs/Module/Connedit.php:751 -msgid "Apply these permissions automatically" -msgstr "" - -#: ../../Zotlabs/Module/Connedit.php:751 -msgid "Connection requests will be approved without your interaction" -msgstr "" - -#: ../../Zotlabs/Module/Connedit.php:753 -msgid "This connection's primary address is" -msgstr "" - -#: ../../Zotlabs/Module/Connedit.php:754 -msgid "Available locations:" -msgstr "" - -#: ../../Zotlabs/Module/Connedit.php:758 -msgid "" -"The permissions indicated on this page will be applied to all new " -"connections." -msgstr "" - -#: ../../Zotlabs/Module/Connedit.php:759 -msgid "Connection Tools" -msgstr "" - -#: ../../Zotlabs/Module/Connedit.php:761 -msgid "Slide to adjust your degree of friendship" -msgstr "" - -#: ../../Zotlabs/Module/Connedit.php:763 -msgid "Slide to adjust your rating" -msgstr "" - -#: ../../Zotlabs/Module/Connedit.php:764 ../../Zotlabs/Module/Connedit.php:769 -msgid "Optionally explain your rating" -msgstr "" - -#: ../../Zotlabs/Module/Connedit.php:766 -msgid "Custom Filter" -msgstr "" - -#: ../../Zotlabs/Module/Connedit.php:767 -msgid "Only import posts with this text" -msgstr "" - -#: ../../Zotlabs/Module/Connedit.php:767 ../../Zotlabs/Module/Connedit.php:768 -msgid "" -"words one per line or #tags or /patterns/ or lang=xx, leave blank to import " -"all posts" -msgstr "" - -#: ../../Zotlabs/Module/Connedit.php:768 -msgid "Do not import posts with this text" -msgstr "" - -#: ../../Zotlabs/Module/Connedit.php:770 -msgid "This information is public!" -msgstr "" - -#: ../../Zotlabs/Module/Connedit.php:775 -msgid "Connection Pending Approval" -msgstr "" - -#: ../../Zotlabs/Module/Connedit.php:780 -#, php-format -msgid "" -"Please choose the profile you would like to display to %s when viewing your " -"profile securely." -msgstr "" - -#: ../../Zotlabs/Module/Connedit.php:787 -msgid "" -"Some permissions may be inherited from your channel's privacy settings, 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 "" - -#: ../../Zotlabs/Module/Connedit.php:788 -msgid "Last update:" -msgstr "" - -#: ../../Zotlabs/Module/Ffsapi.php:12 -msgid "Share content from Firefox to $Projectname" -msgstr "" - -#: ../../Zotlabs/Module/Ffsapi.php:15 -msgid "Activate the Firefox $Projectname provider" -msgstr "" - -#: ../../Zotlabs/Module/Search.php:17 ../../Zotlabs/Module/Directory.php:64 -#: ../../Zotlabs/Module/Display.php:17 ../../Zotlabs/Module/Ratings.php:83 -#: ../../Zotlabs/Module/Photos.php:509 -#: ../../Zotlabs/Module/Viewconnections.php:23 -msgid "Public access denied." -msgstr "" - -#: ../../Zotlabs/Module/Search.php:216 -#, php-format -msgid "Items tagged with: %s" -msgstr "" - -#: ../../Zotlabs/Module/Search.php:218 -#, php-format -msgid "Search results for: %s" -msgstr "" - -#: ../../Zotlabs/Module/Home.php:74 ../../Zotlabs/Module/Home.php:82 -#: ../../Zotlabs/Module/Siteinfo.php:48 -msgid "$Projectname" -msgstr "" - -#: ../../Zotlabs/Module/Home.php:92 -#, php-format -msgid "Welcome to %s" -msgstr "" - -#: ../../Zotlabs/Module/Dirsearch.php:25 ../../Zotlabs/Module/Regdir.php:49 -msgid "This site is not a directory server" -msgstr "" - -#: ../../Zotlabs/Module/Dirsearch.php:33 -msgid "This directory server requires an access token" -msgstr "" - -#: ../../Zotlabs/Module/Filestorage.php:87 -msgid "Permission Denied." -msgstr "" - -#: ../../Zotlabs/Module/Filestorage.php:103 -msgid "File not found." -msgstr "" - -#: ../../Zotlabs/Module/Filestorage.php:146 -msgid "Edit file permissions" -msgstr "" - -#: ../../Zotlabs/Module/Filestorage.php:152 ../../Zotlabs/Module/Thing.php:313 -#: ../../Zotlabs/Module/Thing.php:363 ../../Zotlabs/Module/Photos.php:658 -#: ../../Zotlabs/Module/Photos.php:1047 ../../Zotlabs/Module/Chat.php:234 -#: ../../include/acl_selectors.php:182 -msgid "Permissions" -msgstr "" - -#: ../../Zotlabs/Module/Filestorage.php:159 -msgid "Set/edit permissions" -msgstr "" - -#: ../../Zotlabs/Module/Filestorage.php:160 -msgid "Include all files and sub folders" -msgstr "" - -#: ../../Zotlabs/Module/Filestorage.php:161 -msgid "Return to file list" -msgstr "" - -#: ../../Zotlabs/Module/Filestorage.php:163 -msgid "Copy/paste this code to attach file to a post" -msgstr "" - -#: ../../Zotlabs/Module/Filestorage.php:164 -msgid "Copy/paste this URL to link file from a web page" -msgstr "" - -#: ../../Zotlabs/Module/Filestorage.php:166 -msgid "Share this file" -msgstr "" - -#: ../../Zotlabs/Module/Filestorage.php:167 -msgid "Show URL to this file" -msgstr "" - -#: ../../Zotlabs/Module/Filestorage.php:168 -msgid "Notify your contacts about this file" -msgstr "" - -#: ../../Zotlabs/Module/Pdledit.php:21 -msgid "Layout updated." -msgstr "" - -#: ../../Zotlabs/Module/Pdledit.php:34 ../../Zotlabs/Module/Chat.php:218 -msgid "Feature disabled." -msgstr "" - -#: ../../Zotlabs/Module/Pdledit.php:42 ../../Zotlabs/Module/Pdledit.php:69 -msgid "Edit System Page Description" -msgstr "" - -#: ../../Zotlabs/Module/Pdledit.php:64 -msgid "Layout not found." -msgstr "" - -#: ../../Zotlabs/Module/Pdledit.php:70 -msgid "Module Name:" -msgstr "" - -#: ../../Zotlabs/Module/Pdledit.php:71 -msgid "Layout Help" -msgstr "" - -#: ../../Zotlabs/Module/Editpost.php:35 -msgid "Item is not editable" -msgstr "" - -#: ../../Zotlabs/Module/Editpost.php:106 ../../Zotlabs/Module/Rpost.php:138 -msgid "Edit post" -msgstr "" - -#: ../../Zotlabs/Module/Profiles.php:24 ../../Zotlabs/Module/Profiles.php:183 -#: ../../Zotlabs/Module/Profiles.php:240 ../../Zotlabs/Module/Profiles.php:619 -msgid "Profile not found." -msgstr "" - -#: ../../Zotlabs/Module/Profiles.php:44 -msgid "Profile deleted." -msgstr "" - -#: ../../Zotlabs/Module/Profiles.php:68 ../../Zotlabs/Module/Profiles.php:104 -msgid "Profile-" -msgstr "" - -#: ../../Zotlabs/Module/Profiles.php:89 ../../Zotlabs/Module/Profiles.php:126 -msgid "New profile created." -msgstr "" - -#: ../../Zotlabs/Module/Profiles.php:110 -msgid "Profile unavailable to clone." -msgstr "" - -#: ../../Zotlabs/Module/Profiles.php:145 -msgid "Profile unavailable to export." -msgstr "" - -#: ../../Zotlabs/Module/Profiles.php:250 -msgid "Profile Name is required." -msgstr "" - -#: ../../Zotlabs/Module/Profiles.php:421 -msgid "Marital Status" -msgstr "" - -#: ../../Zotlabs/Module/Profiles.php:425 -msgid "Romantic Partner" -msgstr "" - -#: ../../Zotlabs/Module/Profiles.php:429 ../../Zotlabs/Module/Profiles.php:730 -msgid "Likes" -msgstr "" - -#: ../../Zotlabs/Module/Profiles.php:433 ../../Zotlabs/Module/Profiles.php:731 -msgid "Dislikes" -msgstr "" - -#: ../../Zotlabs/Module/Profiles.php:437 ../../Zotlabs/Module/Profiles.php:738 -msgid "Work/Employment" -msgstr "" - -#: ../../Zotlabs/Module/Profiles.php:440 -msgid "Religion" -msgstr "" - -#: ../../Zotlabs/Module/Profiles.php:444 -msgid "Political Views" -msgstr "" - -#: ../../Zotlabs/Module/Profiles.php:448 -msgid "Gender" -msgstr "" - -#: ../../Zotlabs/Module/Profiles.php:452 -msgid "Sexual Preference" -msgstr "" - -#: ../../Zotlabs/Module/Profiles.php:456 -msgid "Homepage" -msgstr "" - -#: ../../Zotlabs/Module/Profiles.php:460 -msgid "Interests" -msgstr "" - -#: ../../Zotlabs/Module/Profiles.php:464 -#: ../../Zotlabs/Module/Admin/Channels.php:160 -#: ../../Zotlabs/Module/Locs.php:118 -msgid "Address" -msgstr "" - -#: ../../Zotlabs/Module/Profiles.php:471 ../../Zotlabs/Module/Profiles.php:692 -#: ../../Zotlabs/Module/Locs.php:117 ../../Zotlabs/Module/Pubsites.php:51 -#: ../../Zotlabs/Module/Events.php:467 ../../include/js_strings.php:25 -msgid "Location" -msgstr "" - -#: ../../Zotlabs/Module/Profiles.php:554 -msgid "Profile updated." -msgstr "" - -#: ../../Zotlabs/Module/Profiles.php:638 -msgid "Hide your connections list from viewers of this profile" -msgstr "" - -#: ../../Zotlabs/Module/Profiles.php:680 -msgid "Edit Profile Details" -msgstr "" - -#: ../../Zotlabs/Module/Profiles.php:682 -msgid "View this profile" -msgstr "" - -#: ../../Zotlabs/Module/Profiles.php:683 ../../Zotlabs/Module/Profiles.php:765 -#: ../../include/channel.php:983 -msgid "Edit visibility" -msgstr "" - -#: ../../Zotlabs/Module/Profiles.php:684 -msgid "Profile Tools" -msgstr "" - -#: ../../Zotlabs/Module/Profiles.php:685 -msgid "Change cover photo" -msgstr "" - -#: ../../Zotlabs/Module/Profiles.php:686 ../../include/channel.php:954 -msgid "Change profile photo" -msgstr "" - -#: ../../Zotlabs/Module/Profiles.php:687 -msgid "Create a new profile using these settings" -msgstr "" - -#: ../../Zotlabs/Module/Profiles.php:688 -msgid "Clone this profile" -msgstr "" - -#: ../../Zotlabs/Module/Profiles.php:689 -msgid "Delete this profile" -msgstr "" - -#: ../../Zotlabs/Module/Profiles.php:690 -msgid "Add profile things" -msgstr "" - -#: ../../Zotlabs/Module/Profiles.php:691 ../../include/widgets.php:105 -#: ../../include/conversation.php:1564 -msgid "Personal" -msgstr "" - -#: ../../Zotlabs/Module/Profiles.php:693 -msgid "Relation" -msgstr "" - -#: ../../Zotlabs/Module/Profiles.php:694 ../../include/datetime.php:55 -msgid "Miscellaneous" -msgstr "" - -#: ../../Zotlabs/Module/Profiles.php:696 -msgid "Import profile from file" -msgstr "" - -#: ../../Zotlabs/Module/Profiles.php:697 -msgid "Export profile to file" -msgstr "" - -#: ../../Zotlabs/Module/Profiles.php:698 -msgid "Your gender" -msgstr "" - -#: ../../Zotlabs/Module/Profiles.php:699 -msgid "Marital status" -msgstr "" - -#: ../../Zotlabs/Module/Profiles.php:700 -msgid "Sexual preference" -msgstr "" - -#: ../../Zotlabs/Module/Profiles.php:703 -msgid "Profile name" -msgstr "" - -#: ../../Zotlabs/Module/Profiles.php:705 -msgid "This is your default profile." -msgstr "" - -#: ../../Zotlabs/Module/Profiles.php:707 -msgid "Your full name" -msgstr "" - -#: ../../Zotlabs/Module/Profiles.php:708 -msgid "Title/Description" -msgstr "" - -#: ../../Zotlabs/Module/Profiles.php:711 -msgid "Street address" -msgstr "" - -#: ../../Zotlabs/Module/Profiles.php:712 -msgid "Locality/City" -msgstr "" - -#: ../../Zotlabs/Module/Profiles.php:713 -msgid "Region/State" -msgstr "" - -#: ../../Zotlabs/Module/Profiles.php:714 -msgid "Postal/Zip code" -msgstr "" - -#: ../../Zotlabs/Module/Profiles.php:715 -msgid "Country" -msgstr "" - -#: ../../Zotlabs/Module/Profiles.php:720 -msgid "Who (if applicable)" -msgstr "" - -#: ../../Zotlabs/Module/Profiles.php:720 -msgid "Examples: cathy123, Cathy Williams, cathy@example.com" -msgstr "" - -#: ../../Zotlabs/Module/Profiles.php:721 -msgid "Since (date)" -msgstr "" - -#: ../../Zotlabs/Module/Profiles.php:724 -msgid "Tell us about yourself" -msgstr "" - -#: ../../Zotlabs/Module/Profiles.php:725 -msgid "Homepage URL" -msgstr "" - -#: ../../Zotlabs/Module/Profiles.php:726 -msgid "Hometown" -msgstr "" - -#: ../../Zotlabs/Module/Profiles.php:727 -msgid "Political views" -msgstr "" - -#: ../../Zotlabs/Module/Profiles.php:728 -msgid "Religious views" -msgstr "" - -#: ../../Zotlabs/Module/Profiles.php:729 -msgid "Keywords used in directory listings" -msgstr "" - -#: ../../Zotlabs/Module/Profiles.php:729 -msgid "Example: fishing photography software" -msgstr "" - -#: ../../Zotlabs/Module/Profiles.php:732 -msgid "Musical interests" -msgstr "" - -#: ../../Zotlabs/Module/Profiles.php:733 -msgid "Books, literature" -msgstr "" - -#: ../../Zotlabs/Module/Profiles.php:734 -msgid "Television" -msgstr "" - -#: ../../Zotlabs/Module/Profiles.php:735 -msgid "Film/Dance/Culture/Entertainment" -msgstr "" - -#: ../../Zotlabs/Module/Profiles.php:736 -msgid "Hobbies/Interests" -msgstr "" - -#: ../../Zotlabs/Module/Profiles.php:737 -msgid "Love/Romance" -msgstr "" - -#: ../../Zotlabs/Module/Profiles.php:739 -msgid "School/Education" -msgstr "" - -#: ../../Zotlabs/Module/Profiles.php:740 -msgid "Contact information and social networks" -msgstr "" - -#: ../../Zotlabs/Module/Profiles.php:741 -msgid "My other channels" -msgstr "" - -#: ../../Zotlabs/Module/Profiles.php:761 ../../include/channel.php:979 -msgid "Profile Image" -msgstr "" - -#: ../../Zotlabs/Module/Profiles.php:771 ../../include/nav.php:91 -#: ../../include/channel.php:961 -msgid "Edit Profiles" -msgstr "" - #: ../../Zotlabs/Module/Admin/Features.php:56 #, php-format msgid "Lock feature %s" @@ -2959,8 +1709,20 @@ msgstr "" msgid "Log settings updated." msgstr "" -#: ../../Zotlabs/Module/Admin/Logs.php:83 ../../include/widgets.php:1586 -#: ../../include/widgets.php:1596 +#: ../../Zotlabs/Module/Admin/Logs.php:82 +#: ../../Zotlabs/Module/Admin/Plugins.php:336 +#: ../../Zotlabs/Module/Admin/Plugins.php:427 +#: ../../Zotlabs/Module/Admin/Security.php:86 +#: ../../Zotlabs/Module/Admin/Themes.php:120 +#: ../../Zotlabs/Module/Admin/Themes.php:154 +#: ../../Zotlabs/Module/Admin/Accounts.php:164 +#: ../../Zotlabs/Module/Admin/Channels.php:145 +#: ../../Zotlabs/Module/Admin/Site.php:258 ../../Zotlabs/Module/Admin.php:137 +msgid "Administration" +msgstr "" + +#: ../../Zotlabs/Module/Admin/Logs.php:83 ../../include/widgets.php:1658 +#: ../../include/widgets.php:1668 msgid "Logs" msgstr "" @@ -2986,6 +1748,14 @@ msgstr "" msgid "Log level" msgstr "" +#: ../../Zotlabs/Module/Admin/Plugins.php:254 +#: ../../Zotlabs/Module/Admin/Themes.php:69 +#: ../../Zotlabs/Module/Filestorage.php:32 ../../Zotlabs/Module/Display.php:40 +#: ../../Zotlabs/Module/Admin.php:60 ../../Zotlabs/Module/Thing.php:89 +#: ../../Zotlabs/Module/Viewsrc.php:24 ../../include/items.php:3343 +msgid "Item not found." +msgstr "" + #: ../../Zotlabs/Module/Admin/Plugins.php:284 #, php-format msgid "Plugin %s disabled." @@ -3007,7 +1777,7 @@ msgid "Enable" msgstr "" #: ../../Zotlabs/Module/Admin/Plugins.php:337 -#: ../../Zotlabs/Module/Admin/Plugins.php:428 ../../include/widgets.php:1564 +#: ../../Zotlabs/Module/Admin/Plugins.php:428 ../../include/widgets.php:1636 msgid "Plugins" msgstr "" @@ -3018,7 +1788,7 @@ msgstr "" #: ../../Zotlabs/Module/Admin/Plugins.php:339 #: ../../Zotlabs/Module/Admin/Themes.php:123 ../../Zotlabs/Lib/Apps.php:216 -#: ../../include/nav.php:213 ../../include/widgets.php:680 +#: ../../include/nav.php:211 ../../include/widgets.php:680 msgid "Settings" msgstr "" @@ -3085,6 +1855,20 @@ msgstr "" msgid "Install" msgstr "" +#: ../../Zotlabs/Module/Admin/Plugins.php:414 +#: ../../Zotlabs/Module/Fbrowser.php:66 ../../Zotlabs/Module/Fbrowser.php:88 +#: ../../Zotlabs/Module/Wiki.php:242 ../../Zotlabs/Module/Wiki.php:277 +#: ../../Zotlabs/Module/Settings/Oauth.php:88 +#: ../../Zotlabs/Module/Settings/Oauth.php:114 +#: ../../Zotlabs/Module/Tagrm.php:15 ../../Zotlabs/Module/Tagrm.php:138 +#: ../../extend/addon/addon/friendica/dfrn_request.php:879 +#: ../../extend/addon/addon/js_upload/js_upload.php:46 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:866 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1154 +#: ../../include/conversation.php:1264 ../../include/conversation.php:1313 +msgid "Cancel" +msgstr "" + #: ../../Zotlabs/Module/Admin/Plugins.php:435 msgid "Manage Repos" msgstr "" @@ -3097,10 +1881,23 @@ msgstr "" msgid "Install a New Plugin Repository" msgstr "" +#: ../../Zotlabs/Module/Admin/Plugins.php:443 +#: ../../Zotlabs/Module/Settings/Oauth.php:42 +#: ../../Zotlabs/Module/Settings/Oauth.php:113 ../../Zotlabs/Lib/Apps.php:334 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1152 +msgid "Update" +msgstr "" + #: ../../Zotlabs/Module/Admin/Plugins.php:444 msgid "Switch branch" msgstr "" +#: ../../Zotlabs/Module/Admin/Plugins.php:445 +#: ../../Zotlabs/Module/Photos.php:989 ../../Zotlabs/Module/Tagrm.php:137 +#: ../../extend/addon/addon/superblock/superblock.php:110 +msgid "Remove" +msgstr "" + #: ../../Zotlabs/Module/Admin/Profs.php:69 msgid "New Profile Field" msgstr "" @@ -3148,7 +1945,7 @@ msgstr "" msgid "Edit Profile Field" msgstr "" -#: ../../Zotlabs/Module/Admin/Profs.php:147 ../../include/widgets.php:1567 +#: ../../Zotlabs/Module/Admin/Profs.php:147 ../../include/widgets.php:1639 msgid "Profile Fields" msgstr "" @@ -3228,7 +2025,7 @@ msgid "" "embedded content from that site is explicitly blocked." msgstr "" -#: ../../Zotlabs/Module/Admin/Security.php:87 ../../include/widgets.php:1562 +#: ../../Zotlabs/Module/Admin/Security.php:87 ../../include/widgets.php:1634 msgid "Security" msgstr "" @@ -3328,7 +2125,7 @@ msgid "Screenshot" msgstr "" #: ../../Zotlabs/Module/Admin/Themes.php:121 -#: ../../Zotlabs/Module/Admin/Themes.php:155 ../../include/widgets.php:1565 +#: ../../Zotlabs/Module/Admin/Themes.php:155 ../../include/widgets.php:1637 msgid "Themes" msgstr "" @@ -3411,7 +2208,7 @@ msgid "Account '%s' unblocked" msgstr "" #: ../../Zotlabs/Module/Admin/Accounts.php:165 -#: ../../Zotlabs/Module/Admin/Accounts.php:178 ../../include/widgets.php:1560 +#: ../../Zotlabs/Module/Admin/Accounts.php:178 ../../include/widgets.php:1632 msgid "Accounts" msgstr "" @@ -3429,7 +2226,13 @@ msgid "Request date" msgstr "" #: ../../Zotlabs/Module/Admin/Accounts.php:169 -#: ../../Zotlabs/Module/Admin/Accounts.php:181 ../../include/network.php:2212 +#: ../../Zotlabs/Module/Admin/Accounts.php:181 +#: ../../extend/addon/addon/redred/redred.php:107 +#: ../../extend/addon/addon/rtof/rtof.php:93 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1140 +#: ../../extend/addon/addon/openid/MysqlProvider.php:56 +#: ../../extend/addon/addon/openid/MysqlProvider.php:57 +#: ../../include/network.php:2237 msgid "Email" msgstr "" @@ -3477,46 +2280,6 @@ msgid "" "this site will be permanently deleted!\\n\\nAre you sure?" msgstr "" -#: ../../Zotlabs/Module/Admin/Dbsync.php:19 -msgid "Update has been marked successful" -msgstr "" - -#: ../../Zotlabs/Module/Admin/Dbsync.php:29 -#, php-format -msgid "Executing %s failed. Check system logs." -msgstr "" - -#: ../../Zotlabs/Module/Admin/Dbsync.php:32 -#, php-format -msgid "Update %s was successfully applied." -msgstr "" - -#: ../../Zotlabs/Module/Admin/Dbsync.php:36 -#, php-format -msgid "Update %s did not return a status. Unknown if it succeeded." -msgstr "" - -#: ../../Zotlabs/Module/Admin/Dbsync.php:39 -#, php-format -msgid "Update function %s could not be found." -msgstr "" - -#: ../../Zotlabs/Module/Admin/Dbsync.php:55 -msgid "No failed updates." -msgstr "" - -#: ../../Zotlabs/Module/Admin/Dbsync.php:59 -msgid "Failed Updates" -msgstr "" - -#: ../../Zotlabs/Module/Admin/Dbsync.php:61 -msgid "Mark success (if update was manually applied)" -msgstr "" - -#: ../../Zotlabs/Module/Admin/Dbsync.php:62 -msgid "Attempt to execute this update step automatically" -msgstr "" - #: ../../Zotlabs/Module/Admin/Channels.php:31 #, php-format msgid "%s channel censored/uncensored" @@ -3567,7 +2330,7 @@ msgstr "" msgid "Channel '%s' code disallowed" msgstr "" -#: ../../Zotlabs/Module/Admin/Channels.php:146 ../../include/widgets.php:1561 +#: ../../Zotlabs/Module/Admin/Channels.php:146 ../../include/widgets.php:1633 msgid "Channels" msgstr "" @@ -3588,7 +2351,7 @@ msgid "Disallow Code" msgstr "" #: ../../Zotlabs/Module/Admin/Channels.php:154 -#: ../../include/conversation.php:1651 +#: ../../include/conversation.php:1671 msgid "Channel" msgstr "" @@ -3608,361 +2371,508 @@ msgid "" "channel on this site will be permanently deleted!\\n\\nAre you sure?" msgstr "" -#: ../../Zotlabs/Module/Admin/Site.php:131 +#: ../../Zotlabs/Module/Admin/Dbsync.php:19 +msgid "Update has been marked successful" +msgstr "" + +#: ../../Zotlabs/Module/Admin/Dbsync.php:29 +#, php-format +msgid "Executing %s failed. Check system logs." +msgstr "" + +#: ../../Zotlabs/Module/Admin/Dbsync.php:32 +#, php-format +msgid "Update %s was successfully applied." +msgstr "" + +#: ../../Zotlabs/Module/Admin/Dbsync.php:36 +#, php-format +msgid "Update %s did not return a status. Unknown if it succeeded." +msgstr "" + +#: ../../Zotlabs/Module/Admin/Dbsync.php:39 +#, php-format +msgid "Update function %s could not be found." +msgstr "" + +#: ../../Zotlabs/Module/Admin/Dbsync.php:55 +msgid "No failed updates." +msgstr "" + +#: ../../Zotlabs/Module/Admin/Dbsync.php:59 +msgid "Failed Updates" +msgstr "" + +#: ../../Zotlabs/Module/Admin/Dbsync.php:61 +msgid "Mark success (if update was manually applied)" +msgstr "" + +#: ../../Zotlabs/Module/Admin/Dbsync.php:62 +msgid "Attempt to execute this update step automatically" +msgstr "" + +#: ../../Zotlabs/Module/Admin/Site.php:133 msgid "Site settings updated." msgstr "" -#: ../../Zotlabs/Module/Admin/Site.php:157 ../../include/text.php:2959 +#: ../../Zotlabs/Module/Admin/Site.php:159 ../../include/text.php:2918 msgid "Default" msgstr "" #: ../../Zotlabs/Module/Admin/Site.php:169 -msgid "experimental" +#: ../../Zotlabs/Module/Settings/Display.php:143 +msgid "mobile" msgstr "" #: ../../Zotlabs/Module/Admin/Site.php:171 +msgid "experimental" +msgstr "" + +#: ../../Zotlabs/Module/Admin/Site.php:173 msgid "unsupported" msgstr "" -#: ../../Zotlabs/Module/Admin/Site.php:217 +#: ../../Zotlabs/Module/Admin/Site.php:219 msgid "Yes - with approval" msgstr "" -#: ../../Zotlabs/Module/Admin/Site.php:223 +#: ../../Zotlabs/Module/Admin/Site.php:225 msgid "My site is not a public server" msgstr "" -#: ../../Zotlabs/Module/Admin/Site.php:224 +#: ../../Zotlabs/Module/Admin/Site.php:226 msgid "My site has paid access only" msgstr "" -#: ../../Zotlabs/Module/Admin/Site.php:225 +#: ../../Zotlabs/Module/Admin/Site.php:227 msgid "My site has free access only" msgstr "" -#: ../../Zotlabs/Module/Admin/Site.php:226 +#: ../../Zotlabs/Module/Admin/Site.php:228 msgid "My site offers free accounts with optional paid upgrades" msgstr "" -#: ../../Zotlabs/Module/Admin/Site.php:237 ../../Zotlabs/Module/Setup.php:334 +#: ../../Zotlabs/Module/Admin/Site.php:239 ../../Zotlabs/Module/Setup.php:328 msgid "Basic/Minimal Social Networking" msgstr "" -#: ../../Zotlabs/Module/Admin/Site.php:238 ../../Zotlabs/Module/Setup.php:335 +#: ../../Zotlabs/Module/Admin/Site.php:240 ../../Zotlabs/Module/Setup.php:329 msgid "Standard Configuration (default)" msgstr "" -#: ../../Zotlabs/Module/Admin/Site.php:239 ../../Zotlabs/Module/Setup.php:336 +#: ../../Zotlabs/Module/Admin/Site.php:241 ../../Zotlabs/Module/Setup.php:330 msgid "Professional" msgstr "" -#: ../../Zotlabs/Module/Admin/Site.php:243 ../../Zotlabs/Lib/Techlevels.php:10 +#: ../../Zotlabs/Module/Admin/Site.php:245 ../../Zotlabs/Lib/Techlevels.php:10 msgid "Beginner/Basic" msgstr "" -#: ../../Zotlabs/Module/Admin/Site.php:244 ../../Zotlabs/Lib/Techlevels.php:11 +#: ../../Zotlabs/Module/Admin/Site.php:246 ../../Zotlabs/Lib/Techlevels.php:11 msgid "Novice - not skilled but willing to learn" msgstr "" -#: ../../Zotlabs/Module/Admin/Site.php:245 ../../Zotlabs/Lib/Techlevels.php:12 +#: ../../Zotlabs/Module/Admin/Site.php:247 ../../Zotlabs/Lib/Techlevels.php:12 msgid "Intermediate - somewhat comfortable" msgstr "" -#: ../../Zotlabs/Module/Admin/Site.php:246 ../../Zotlabs/Lib/Techlevels.php:13 +#: ../../Zotlabs/Module/Admin/Site.php:248 ../../Zotlabs/Lib/Techlevels.php:13 msgid "Advanced - very comfortable" msgstr "" -#: ../../Zotlabs/Module/Admin/Site.php:247 ../../Zotlabs/Lib/Techlevels.php:14 +#: ../../Zotlabs/Module/Admin/Site.php:249 ../../Zotlabs/Lib/Techlevels.php:14 msgid "Expert - I can write computer code" msgstr "" -#: ../../Zotlabs/Module/Admin/Site.php:248 ../../Zotlabs/Lib/Techlevels.php:15 +#: ../../Zotlabs/Module/Admin/Site.php:250 ../../Zotlabs/Lib/Techlevels.php:15 msgid "Wizard - I probably know more than you do" msgstr "" -#: ../../Zotlabs/Module/Admin/Site.php:257 ../../include/widgets.php:1559 +#: ../../Zotlabs/Module/Admin/Site.php:259 ../../include/widgets.php:1631 msgid "Site" msgstr "" -#: ../../Zotlabs/Module/Admin/Site.php:260 +#: ../../Zotlabs/Module/Admin/Site.php:262 msgid "File upload" msgstr "" -#: ../../Zotlabs/Module/Admin/Site.php:261 +#: ../../Zotlabs/Module/Admin/Site.php:263 msgid "Policies" msgstr "" -#: ../../Zotlabs/Module/Admin/Site.php:262 +#: ../../Zotlabs/Module/Admin/Site.php:264 #: ../../include/contact_widgets.php:16 msgid "Advanced" msgstr "" -#: ../../Zotlabs/Module/Admin/Site.php:266 +#: ../../Zotlabs/Module/Admin/Site.php:268 +#: ../../extend/addon/addon/statusnet/statusnet.php:890 msgid "Site name" msgstr "" -#: ../../Zotlabs/Module/Admin/Site.php:268 ../../Zotlabs/Module/Setup.php:357 +#: ../../Zotlabs/Module/Admin/Site.php:270 ../../Zotlabs/Module/Setup.php:351 msgid "Server Configuration/Role" msgstr "" -#: ../../Zotlabs/Module/Admin/Site.php:270 +#: ../../Zotlabs/Module/Admin/Site.php:272 msgid "Site default technical skill level" msgstr "" -#: ../../Zotlabs/Module/Admin/Site.php:270 +#: ../../Zotlabs/Module/Admin/Site.php:272 msgid "Used to provide a member experience matched to technical comfort level" msgstr "" -#: ../../Zotlabs/Module/Admin/Site.php:272 +#: ../../Zotlabs/Module/Admin/Site.php:274 msgid "Lock the technical skill level setting" msgstr "" -#: ../../Zotlabs/Module/Admin/Site.php:272 +#: ../../Zotlabs/Module/Admin/Site.php:274 msgid "Members can set their own technical comfort level by default" msgstr "" -#: ../../Zotlabs/Module/Admin/Site.php:274 +#: ../../Zotlabs/Module/Admin/Site.php:276 msgid "Banner/Logo" msgstr "" -#: ../../Zotlabs/Module/Admin/Site.php:275 +#: ../../Zotlabs/Module/Admin/Site.php:277 msgid "Administrator Information" msgstr "" -#: ../../Zotlabs/Module/Admin/Site.php:275 +#: ../../Zotlabs/Module/Admin/Site.php:277 msgid "" "Contact information for site administrators. Displayed on siteinfo page. " "BBCode can be used here" msgstr "" -#: ../../Zotlabs/Module/Admin/Site.php:276 +#: ../../Zotlabs/Module/Admin/Site.php:278 +#: ../../Zotlabs/Module/Siteinfo.php:23 +msgid "Site Information" +msgstr "" + +#: ../../Zotlabs/Module/Admin/Site.php:278 +msgid "" +"Publicly visible description of this site. Displayed on siteinfo page. " +"BBCode can be used here" +msgstr "" + +#: ../../Zotlabs/Module/Admin/Site.php:279 msgid "System language" msgstr "" -#: ../../Zotlabs/Module/Admin/Site.php:277 +#: ../../Zotlabs/Module/Admin/Site.php:280 msgid "System theme" msgstr "" -#: ../../Zotlabs/Module/Admin/Site.php:277 +#: ../../Zotlabs/Module/Admin/Site.php:280 msgid "" "Default system theme - may be over-ridden by user profiles - change theme settings" msgstr "" -#: ../../Zotlabs/Module/Admin/Site.php:278 +#: ../../Zotlabs/Module/Admin/Site.php:281 msgid "Mobile system theme" msgstr "" -#: ../../Zotlabs/Module/Admin/Site.php:278 +#: ../../Zotlabs/Module/Admin/Site.php:281 msgid "Theme for mobile devices" msgstr "" -#: ../../Zotlabs/Module/Admin/Site.php:280 +#: ../../Zotlabs/Module/Admin/Site.php:283 msgid "Allow Feeds as Connections" msgstr "" -#: ../../Zotlabs/Module/Admin/Site.php:280 +#: ../../Zotlabs/Module/Admin/Site.php:283 msgid "(Heavy system resource usage)" msgstr "" -#: ../../Zotlabs/Module/Admin/Site.php:281 +#: ../../Zotlabs/Module/Admin/Site.php:284 msgid "Maximum image size" msgstr "" -#: ../../Zotlabs/Module/Admin/Site.php:281 +#: ../../Zotlabs/Module/Admin/Site.php:284 msgid "" "Maximum size in bytes of uploaded images. Default is 0, which means no " "limits." msgstr "" -#: ../../Zotlabs/Module/Admin/Site.php:282 +#: ../../Zotlabs/Module/Admin/Site.php:285 msgid "Does this site allow new member registration?" msgstr "" -#: ../../Zotlabs/Module/Admin/Site.php:283 +#: ../../Zotlabs/Module/Admin/Site.php:286 msgid "Invitation only" msgstr "" -#: ../../Zotlabs/Module/Admin/Site.php:283 +#: ../../Zotlabs/Module/Admin/Site.php:286 msgid "" "Only allow new member registrations with an invitation code. Above register " "policy must be set to Yes." msgstr "" -#: ../../Zotlabs/Module/Admin/Site.php:284 +#: ../../Zotlabs/Module/Admin/Site.php:287 msgid "Which best describes the types of account offered by this hub?" msgstr "" -#: ../../Zotlabs/Module/Admin/Site.php:285 +#: ../../Zotlabs/Module/Admin/Site.php:288 msgid "Register text" msgstr "" -#: ../../Zotlabs/Module/Admin/Site.php:285 +#: ../../Zotlabs/Module/Admin/Site.php:288 msgid "Will be displayed prominently on the registration page." msgstr "" -#: ../../Zotlabs/Module/Admin/Site.php:286 +#: ../../Zotlabs/Module/Admin/Site.php:289 msgid "Site homepage to show visitors (default: login box)" msgstr "" -#: ../../Zotlabs/Module/Admin/Site.php:286 +#: ../../Zotlabs/Module/Admin/Site.php:289 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 "" -#: ../../Zotlabs/Module/Admin/Site.php:287 +#: ../../Zotlabs/Module/Admin/Site.php:290 msgid "Preserve site homepage URL" msgstr "" -#: ../../Zotlabs/Module/Admin/Site.php:287 +#: ../../Zotlabs/Module/Admin/Site.php:290 msgid "" "Present the site homepage in a frame at the original location instead of " "redirecting" msgstr "" -#: ../../Zotlabs/Module/Admin/Site.php:288 +#: ../../Zotlabs/Module/Admin/Site.php:291 msgid "Accounts abandoned after x days" msgstr "" -#: ../../Zotlabs/Module/Admin/Site.php:288 +#: ../../Zotlabs/Module/Admin/Site.php:291 msgid "" "Will not waste system resources polling external sites for abandonded " "accounts. Enter 0 for no time limit." msgstr "" -#: ../../Zotlabs/Module/Admin/Site.php:289 +#: ../../Zotlabs/Module/Admin/Site.php:292 msgid "Allowed friend domains" msgstr "" -#: ../../Zotlabs/Module/Admin/Site.php:289 +#: ../../Zotlabs/Module/Admin/Site.php:292 msgid "" "Comma separated list of domains which are allowed to establish friendships " "with this site. Wildcards are accepted. Empty to allow any domains" msgstr "" -#: ../../Zotlabs/Module/Admin/Site.php:290 +#: ../../Zotlabs/Module/Admin/Site.php:293 msgid "Verify Email Addresses" msgstr "" -#: ../../Zotlabs/Module/Admin/Site.php:290 +#: ../../Zotlabs/Module/Admin/Site.php:293 msgid "" "Check to verify email addresses used in account registration (recommended)." msgstr "" -#: ../../Zotlabs/Module/Admin/Site.php:291 +#: ../../Zotlabs/Module/Admin/Site.php:294 msgid "Force publish" msgstr "" -#: ../../Zotlabs/Module/Admin/Site.php:291 +#: ../../Zotlabs/Module/Admin/Site.php:294 msgid "" "Check to force all profiles on this site to be listed in the site directory." msgstr "" -#: ../../Zotlabs/Module/Admin/Site.php:292 +#: ../../Zotlabs/Module/Admin/Site.php:295 msgid "Import Public Streams" msgstr "" -#: ../../Zotlabs/Module/Admin/Site.php:292 +#: ../../Zotlabs/Module/Admin/Site.php:295 msgid "" "Import and allow access to public content pulled from other sites. Warning: " "this content is unmoderated." msgstr "" -#: ../../Zotlabs/Module/Admin/Site.php:293 +#: ../../Zotlabs/Module/Admin/Site.php:296 msgid "Login on Homepage" msgstr "" -#: ../../Zotlabs/Module/Admin/Site.php:293 +#: ../../Zotlabs/Module/Admin/Site.php:296 msgid "" "Present a login box to visitors on the home page if no other content has " "been configured." msgstr "" -#: ../../Zotlabs/Module/Admin/Site.php:294 +#: ../../Zotlabs/Module/Admin/Site.php:297 msgid "Enable context help" msgstr "" -#: ../../Zotlabs/Module/Admin/Site.php:294 +#: ../../Zotlabs/Module/Admin/Site.php:297 msgid "" "Display contextual help for the current page when the help button is pressed." msgstr "" -#: ../../Zotlabs/Module/Admin/Site.php:296 +#: ../../Zotlabs/Module/Admin/Site.php:299 msgid "Directory Server URL" msgstr "" -#: ../../Zotlabs/Module/Admin/Site.php:296 +#: ../../Zotlabs/Module/Admin/Site.php:299 msgid "Default directory server" msgstr "" -#: ../../Zotlabs/Module/Admin/Site.php:298 +#: ../../Zotlabs/Module/Admin/Site.php:301 msgid "Proxy user" msgstr "" -#: ../../Zotlabs/Module/Admin/Site.php:299 +#: ../../Zotlabs/Module/Admin/Site.php:302 msgid "Proxy URL" msgstr "" -#: ../../Zotlabs/Module/Admin/Site.php:300 +#: ../../Zotlabs/Module/Admin/Site.php:303 msgid "Network timeout" msgstr "" -#: ../../Zotlabs/Module/Admin/Site.php:300 +#: ../../Zotlabs/Module/Admin/Site.php:303 msgid "Value is in seconds. Set to 0 for unlimited (not recommended)." msgstr "" -#: ../../Zotlabs/Module/Admin/Site.php:301 +#: ../../Zotlabs/Module/Admin/Site.php:304 msgid "Delivery interval" msgstr "" -#: ../../Zotlabs/Module/Admin/Site.php:301 +#: ../../Zotlabs/Module/Admin/Site.php:304 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 "" -#: ../../Zotlabs/Module/Admin/Site.php:302 +#: ../../Zotlabs/Module/Admin/Site.php:305 msgid "Deliveries per process" msgstr "" -#: ../../Zotlabs/Module/Admin/Site.php:302 +#: ../../Zotlabs/Module/Admin/Site.php:305 msgid "" "Number of deliveries to attempt in a single operating system process. Adjust " "if necessary to tune system performance. Recommend: 1-5." msgstr "" -#: ../../Zotlabs/Module/Admin/Site.php:303 +#: ../../Zotlabs/Module/Admin/Site.php:306 msgid "Poll interval" msgstr "" -#: ../../Zotlabs/Module/Admin/Site.php:303 +#: ../../Zotlabs/Module/Admin/Site.php:306 msgid "" "Delay background polling processes by this many seconds to reduce system " "load. If 0, use delivery interval." msgstr "" -#: ../../Zotlabs/Module/Admin/Site.php:304 +#: ../../Zotlabs/Module/Admin/Site.php:307 msgid "Maximum Load Average" msgstr "" -#: ../../Zotlabs/Module/Admin/Site.php:304 +#: ../../Zotlabs/Module/Admin/Site.php:307 msgid "" "Maximum system load before delivery and poll processes are deferred - " "default 50." msgstr "" -#: ../../Zotlabs/Module/Admin/Site.php:305 +#: ../../Zotlabs/Module/Admin/Site.php:308 msgid "Expiration period in days for imported (grid/network) content" msgstr "" -#: ../../Zotlabs/Module/Admin/Site.php:305 +#: ../../Zotlabs/Module/Admin/Site.php:308 msgid "0 for no expiration of imported content" msgstr "" +#: ../../Zotlabs/Module/Pubsites.php:24 ../../include/widgets.php:1454 +msgid "Public Hubs" +msgstr "" + +#: ../../Zotlabs/Module/Pubsites.php:27 +msgid "" +"The listed hubs allow public registration for the $Projectname network. All " +"hubs in the network are interlinked so membership on any of them conveys " +"membership in the network as a whole. Some hubs may require subscription or " +"provide tiered service plans. The hub itself may provide " +"additional details." +msgstr "" + +#: ../../Zotlabs/Module/Pubsites.php:33 +msgid "Hub URL" +msgstr "" + +#: ../../Zotlabs/Module/Pubsites.php:33 +msgid "Access Type" +msgstr "" + +#: ../../Zotlabs/Module/Pubsites.php:33 +msgid "Registration Policy" +msgstr "" + +#: ../../Zotlabs/Module/Pubsites.php:33 +msgid "Stats" +msgstr "" + +#: ../../Zotlabs/Module/Pubsites.php:33 +msgid "Software" +msgstr "" + +#: ../../Zotlabs/Module/Pubsites.php:35 ../../Zotlabs/Module/Ratings.php:97 +#: ../../include/conversation.php:974 +msgid "Ratings" +msgstr "" + +#: ../../Zotlabs/Module/Pubsites.php:48 +msgid "Rate" +msgstr "" + +#: ../../Zotlabs/Module/Pubsites.php:59 ../../Zotlabs/Module/Blocks.php:166 +#: ../../Zotlabs/Module/Layouts.php:197 ../../Zotlabs/Module/Webpages.php:246 +#: ../../Zotlabs/Module/Wiki.php:146 ../../Zotlabs/Module/Events.php:685 +#: ../../include/page_widgets.php:42 ../../include/widgets.php:967 +msgid "View" +msgstr "" + +#: ../../Zotlabs/Module/Editlayout.php:79 +#: ../../Zotlabs/Module/Editwebpage.php:80 +#: ../../Zotlabs/Module/Editblock.php:79 ../../Zotlabs/Module/Editblock.php:95 +#: ../../Zotlabs/Module/Editpost.php:24 +msgid "Item not found" +msgstr "" + +#: ../../Zotlabs/Module/Editlayout.php:127 +#: ../../Zotlabs/Module/Layouts.php:128 ../../Zotlabs/Module/Layouts.php:188 +msgid "Layout Name" +msgstr "" + +#: ../../Zotlabs/Module/Editlayout.php:128 +#: ../../Zotlabs/Module/Layouts.php:131 +msgid "Layout Description (Optional)" +msgstr "" + +#: ../../Zotlabs/Module/Editlayout.php:136 +msgid "Edit Layout" +msgstr "" + +#: ../../Zotlabs/Module/Editwebpage.php:142 +msgid "Page link" +msgstr "" + +#: ../../Zotlabs/Module/Editwebpage.php:146 ../../Zotlabs/Module/Mail.php:258 +#: ../../Zotlabs/Module/Mail.php:383 ../../Zotlabs/Module/Editblock.php:111 +#: ../../Zotlabs/Module/Chat.php:207 ../../include/conversation.php:1165 +msgid "Insert web link" +msgstr "" + +#: ../../Zotlabs/Module/Editwebpage.php:169 +msgid "Edit Webpage" +msgstr "" + +#: ../../Zotlabs/Module/Fbrowser.php:29 ../../Zotlabs/Lib/Apps.php:222 +#: ../../include/nav.php:95 ../../include/conversation.php:1692 +msgid "Photos" +msgstr "" + #: ../../Zotlabs/Module/Channel.php:32 ../../Zotlabs/Module/Wiki.php:20 #: ../../Zotlabs/Module/Chat.php:25 +#: ../../extend/addon/addon/chess/chess.php:400 msgid "You must be logged in to see this page." msgstr "" @@ -3974,10 +2884,566 @@ msgstr "" msgid "Only posts" msgstr "" -#: ../../Zotlabs/Module/Channel.php:103 +#: ../../Zotlabs/Module/Channel.php:104 msgid "Insufficient permissions. Request redirected to profile page." msgstr "" +#: ../../Zotlabs/Module/Network.php:96 +msgid "No such group" +msgstr "" + +#: ../../Zotlabs/Module/Network.php:136 +msgid "No such channel" +msgstr "" + +#: ../../Zotlabs/Module/Network.php:141 +msgid "forum" +msgstr "" + +#: ../../Zotlabs/Module/Network.php:153 +msgid "Search Results For:" +msgstr "" + +#: ../../Zotlabs/Module/Network.php:221 +msgid "Privacy group is empty" +msgstr "" + +#: ../../Zotlabs/Module/Network.php:230 +msgid "Privacy group: " +msgstr "" + +#: ../../Zotlabs/Module/Network.php:256 +msgid "Invalid connection." +msgstr "" + +#: ../../Zotlabs/Module/Menu.php:49 +msgid "Unable to update menu." +msgstr "" + +#: ../../Zotlabs/Module/Menu.php:60 +msgid "Unable to create menu." +msgstr "" + +#: ../../Zotlabs/Module/Menu.php:98 ../../Zotlabs/Module/Menu.php:110 +msgid "Menu Name" +msgstr "" + +#: ../../Zotlabs/Module/Menu.php:98 +msgid "Unique name (not visible on webpage) - required" +msgstr "" + +#: ../../Zotlabs/Module/Menu.php:99 ../../Zotlabs/Module/Menu.php:111 +msgid "Menu Title" +msgstr "" + +#: ../../Zotlabs/Module/Menu.php:99 +msgid "Visible on webpage - leave empty for no title" +msgstr "" + +#: ../../Zotlabs/Module/Menu.php:100 +msgid "Allow Bookmarks" +msgstr "" + +#: ../../Zotlabs/Module/Menu.php:100 ../../Zotlabs/Module/Menu.php:157 +msgid "Menu may be used to store saved bookmarks" +msgstr "" + +#: ../../Zotlabs/Module/Menu.php:101 ../../Zotlabs/Module/Menu.php:159 +msgid "Submit and proceed" +msgstr "" + +#: ../../Zotlabs/Module/Menu.php:107 ../../include/text.php:2271 +msgid "Menus" +msgstr "" + +#: ../../Zotlabs/Module/Menu.php:114 ../../Zotlabs/Module/Blocks.php:157 +#: ../../Zotlabs/Module/Layouts.php:190 ../../Zotlabs/Module/Webpages.php:251 +#: ../../include/page_widgets.php:47 +msgid "Created" +msgstr "" + +#: ../../Zotlabs/Module/Menu.php:115 ../../Zotlabs/Module/Blocks.php:158 +#: ../../Zotlabs/Module/Layouts.php:191 ../../Zotlabs/Module/Webpages.php:252 +#: ../../include/page_widgets.php:48 +msgid "Edited" +msgstr "" + +#: ../../Zotlabs/Module/Menu.php:117 +msgid "Bookmarks allowed" +msgstr "" + +#: ../../Zotlabs/Module/Menu.php:119 +msgid "Delete this menu" +msgstr "" + +#: ../../Zotlabs/Module/Menu.php:120 ../../Zotlabs/Module/Menu.php:154 +msgid "Edit menu contents" +msgstr "" + +#: ../../Zotlabs/Module/Menu.php:121 +msgid "Edit this menu" +msgstr "" + +#: ../../Zotlabs/Module/Menu.php:136 +msgid "Menu could not be deleted." +msgstr "" + +#: ../../Zotlabs/Module/Menu.php:144 ../../Zotlabs/Module/Mitem.php:28 +msgid "Menu not found." +msgstr "" + +#: ../../Zotlabs/Module/Menu.php:149 +msgid "Edit Menu" +msgstr "" + +#: ../../Zotlabs/Module/Menu.php:153 +msgid "Add or remove entries to this menu" +msgstr "" + +#: ../../Zotlabs/Module/Menu.php:155 +msgid "Menu name" +msgstr "" + +#: ../../Zotlabs/Module/Menu.php:155 +msgid "Must be unique, only seen by you" +msgstr "" + +#: ../../Zotlabs/Module/Menu.php:156 +msgid "Menu title" +msgstr "" + +#: ../../Zotlabs/Module/Menu.php:156 +msgid "Menu title as seen by others" +msgstr "" + +#: ../../Zotlabs/Module/Menu.php:157 +msgid "Allow bookmarks" +msgstr "" + +#: ../../Zotlabs/Module/Menu.php:166 ../../Zotlabs/Module/Mitem.php:120 +#: ../../Zotlabs/Module/Xchan.php:41 +msgid "Not found." +msgstr "" + +#: ../../Zotlabs/Module/Appman.php:37 ../../Zotlabs/Module/Appman.php:53 +msgid "App installed." +msgstr "" + +#: ../../Zotlabs/Module/Appman.php:46 +msgid "Malformed app." +msgstr "" + +#: ../../Zotlabs/Module/Appman.php:104 +msgid "Embed code" +msgstr "" + +#: ../../Zotlabs/Module/Appman.php:110 ../../include/widgets.php:107 +msgid "Edit App" +msgstr "" + +#: ../../Zotlabs/Module/Appman.php:110 +msgid "Create App" +msgstr "" + +#: ../../Zotlabs/Module/Appman.php:115 +msgid "Name of app" +msgstr "" + +#: ../../Zotlabs/Module/Appman.php:115 ../../Zotlabs/Module/Appman.php:116 +#: ../../Zotlabs/Module/Profiles.php:703 ../../Zotlabs/Module/Profiles.php:707 +#: ../../Zotlabs/Module/Events.php:453 ../../Zotlabs/Module/Events.php:458 +#: ../../include/datetime.php:259 +msgid "Required" +msgstr "" + +#: ../../Zotlabs/Module/Appman.php:116 +msgid "Location (URL) of app" +msgstr "" + +#: ../../Zotlabs/Module/Appman.php:117 ../../Zotlabs/Module/Rbmark.php:101 +#: ../../Zotlabs/Module/Events.php:466 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:838 +#: ../../extend/addon/addon/rendezvous/rendezvous.php:133 +msgid "Description" +msgstr "" + +#: ../../Zotlabs/Module/Appman.php:118 +msgid "Photo icon URL" +msgstr "" + +#: ../../Zotlabs/Module/Appman.php:118 +msgid "80 x 80 pixels - optional" +msgstr "" + +#: ../../Zotlabs/Module/Appman.php:119 +msgid "Categories (optional, comma separated list)" +msgstr "" + +#: ../../Zotlabs/Module/Appman.php:120 +msgid "Version ID" +msgstr "" + +#: ../../Zotlabs/Module/Appman.php:121 +msgid "Price of app" +msgstr "" + +#: ../../Zotlabs/Module/Appman.php:122 +msgid "Location (URL) to purchase app" +msgstr "" + +#: ../../Zotlabs/Module/Rpost.php:138 ../../Zotlabs/Module/Editpost.php:107 +msgid "Edit post" +msgstr "" + +#: ../../Zotlabs/Module/Help.php:23 +msgid "Documentation Search" +msgstr "" + +#: ../../Zotlabs/Module/Help.php:82 +msgid "$Projectname Documentation" +msgstr "" + +#: ../../Zotlabs/Module/Ffsapi.php:12 +msgid "Share content from Firefox to $Projectname" +msgstr "" + +#: ../../Zotlabs/Module/Ffsapi.php:15 +msgid "Activate the Firefox $Projectname provider" +msgstr "" + +#: ../../Zotlabs/Module/Apps.php:46 ../../include/nav.php:166 +#: ../../include/widgets.php:102 +msgid "Apps" +msgstr "" + +#: ../../Zotlabs/Module/Home.php:74 ../../Zotlabs/Module/Home.php:82 +msgid "$Projectname" +msgstr "" + +#: ../../Zotlabs/Module/Home.php:92 +#, php-format +msgid "Welcome to %s" +msgstr "" + +#: ../../Zotlabs/Module/Filestorage.php:87 +msgid "Permission Denied." +msgstr "" + +#: ../../Zotlabs/Module/Filestorage.php:103 +msgid "File not found." +msgstr "" + +#: ../../Zotlabs/Module/Filestorage.php:146 +msgid "Edit file permissions" +msgstr "" + +#: ../../Zotlabs/Module/Filestorage.php:152 +#: ../../Zotlabs/Module/Photos.php:658 ../../Zotlabs/Module/Photos.php:1047 +#: ../../Zotlabs/Module/Thing.php:313 ../../Zotlabs/Module/Thing.php:363 +#: ../../Zotlabs/Module/Chat.php:234 ../../include/acl_selectors.php:208 +msgid "Permissions" +msgstr "" + +#: ../../Zotlabs/Module/Filestorage.php:159 +msgid "Set/edit permissions" +msgstr "" + +#: ../../Zotlabs/Module/Filestorage.php:160 +msgid "Include all files and sub folders" +msgstr "" + +#: ../../Zotlabs/Module/Filestorage.php:161 +msgid "Return to file list" +msgstr "" + +#: ../../Zotlabs/Module/Filestorage.php:163 +msgid "Copy/paste this code to attach file to a post" +msgstr "" + +#: ../../Zotlabs/Module/Filestorage.php:164 +msgid "Copy/paste this URL to link file from a web page" +msgstr "" + +#: ../../Zotlabs/Module/Filestorage.php:166 +msgid "Share this file" +msgstr "" + +#: ../../Zotlabs/Module/Filestorage.php:167 +msgid "Show URL to this file" +msgstr "" + +#: ../../Zotlabs/Module/Filestorage.php:168 +msgid "Notify your contacts about this file" +msgstr "" + +#: ../../Zotlabs/Module/Directory.php:64 ../../Zotlabs/Module/Display.php:17 +#: ../../Zotlabs/Module/Ratings.php:83 ../../Zotlabs/Module/Photos.php:509 +#: ../../Zotlabs/Module/Search.php:17 +#: ../../Zotlabs/Module/Viewconnections.php:23 +#: ../../extend/addon/addon/friendica/dfrn_request.php:794 +msgid "Public access denied." +msgstr "" + +#: ../../Zotlabs/Module/Directory.php:245 +#, php-format +msgid "%d rating" +msgid_plural "%d ratings" +msgstr[0] "" +msgstr[1] "" + +#: ../../Zotlabs/Module/Directory.php:256 +msgid "Gender: " +msgstr "" + +#: ../../Zotlabs/Module/Directory.php:258 +msgid "Status: " +msgstr "" + +#: ../../Zotlabs/Module/Directory.php:260 +msgid "Homepage: " +msgstr "" + +#: ../../Zotlabs/Module/Directory.php:309 ../../include/channel.php:1215 +msgid "Age:" +msgstr "" + +#: ../../Zotlabs/Module/Directory.php:314 ../../include/channel.php:1051 +#: ../../include/event.php:52 ../../include/event.php:84 +#: ../../include/bb2diaspora.php:520 +msgid "Location:" +msgstr "" + +#: ../../Zotlabs/Module/Directory.php:320 +msgid "Description:" +msgstr "" + +#: ../../Zotlabs/Module/Directory.php:325 ../../include/channel.php:1231 +msgid "Hometown:" +msgstr "" + +#: ../../Zotlabs/Module/Directory.php:327 ../../include/channel.php:1239 +msgid "About:" +msgstr "" + +#: ../../Zotlabs/Module/Directory.php:329 +msgid "Public Forum:" +msgstr "" + +#: ../../Zotlabs/Module/Directory.php:332 +msgid "Keywords: " +msgstr "" + +#: ../../Zotlabs/Module/Directory.php:335 +msgid "Don't suggest" +msgstr "" + +#: ../../Zotlabs/Module/Directory.php:337 +msgid "Common connections:" +msgstr "" + +#: ../../Zotlabs/Module/Directory.php:386 +msgid "Global Directory" +msgstr "" + +#: ../../Zotlabs/Module/Directory.php:386 +msgid "Local Directory" +msgstr "" + +#: ../../Zotlabs/Module/Directory.php:392 +msgid "Finding:" +msgstr "" + +#: ../../Zotlabs/Module/Directory.php:395 ../../Zotlabs/Module/Suggest.php:64 +#: ../../include/contact_widgets.php:24 +msgid "Channel Suggestions" +msgstr "" + +#: ../../Zotlabs/Module/Directory.php:397 +msgid "next page" +msgstr "" + +#: ../../Zotlabs/Module/Directory.php:397 +msgid "previous page" +msgstr "" + +#: ../../Zotlabs/Module/Directory.php:398 +msgid "Sort options" +msgstr "" + +#: ../../Zotlabs/Module/Directory.php:399 +msgid "Alphabetic" +msgstr "" + +#: ../../Zotlabs/Module/Directory.php:400 +msgid "Reverse Alphabetic" +msgstr "" + +#: ../../Zotlabs/Module/Directory.php:401 +msgid "Newest to Oldest" +msgstr "" + +#: ../../Zotlabs/Module/Directory.php:402 +msgid "Oldest to Newest" +msgstr "" + +#: ../../Zotlabs/Module/Directory.php:419 +msgid "No entries (some entries may be hidden)." +msgstr "" + +#: ../../Zotlabs/Module/Item.php:184 +msgid "Unable to locate original post." +msgstr "" + +#: ../../Zotlabs/Module/Item.php:447 +msgid "Empty post discarded." +msgstr "" + +#: ../../Zotlabs/Module/Item.php:489 +msgid "Executable content type not permitted to this channel." +msgstr "" + +#: ../../Zotlabs/Module/Item.php:871 +msgid "Duplicate post suppressed." +msgstr "" + +#: ../../Zotlabs/Module/Item.php:1013 +msgid "System error. Post not saved." +msgstr "" + +#: ../../Zotlabs/Module/Item.php:1137 +msgid "Unable to obtain post information from database." +msgstr "" + +#: ../../Zotlabs/Module/Item.php:1144 +#, php-format +msgid "You have reached your limit of %1$.0f top level posts." +msgstr "" + +#: ../../Zotlabs/Module/Item.php:1151 +#, php-format +msgid "You have reached your limit of %1$.0f webpages." +msgstr "" + +#: ../../Zotlabs/Module/Chanview.php:134 +msgid "toggle full screen mode" +msgstr "" + +#: ../../Zotlabs/Module/Follow.php:31 +msgid "Channel added." +msgstr "" + +#: ../../Zotlabs/Module/Mail.php:38 +msgid "Unable to lookup recipient." +msgstr "" + +#: ../../Zotlabs/Module/Mail.php:45 +msgid "Unable to communicate with requested channel." +msgstr "" + +#: ../../Zotlabs/Module/Mail.php:52 +msgid "Cannot verify requested channel." +msgstr "" + +#: ../../Zotlabs/Module/Mail.php:70 +msgid "Selected channel has private message restrictions. Send failed." +msgstr "" + +#: ../../Zotlabs/Module/Mail.php:149 +msgid "Messages" +msgstr "" + +#: ../../Zotlabs/Module/Mail.php:184 +msgid "Message recalled." +msgstr "" + +#: ../../Zotlabs/Module/Mail.php:197 +msgid "Conversation removed." +msgstr "" + +#: ../../Zotlabs/Module/Mail.php:211 ../../Zotlabs/Module/Mail.php:320 +#: ../../Zotlabs/Module/Chat.php:205 ../../include/conversation.php:1200 +msgid "Please enter a link URL:" +msgstr "" + +#: ../../Zotlabs/Module/Mail.php:212 ../../Zotlabs/Module/Mail.php:321 +msgid "Expires YYYY-MM-DD HH:MM" +msgstr "" + +#: ../../Zotlabs/Module/Mail.php:240 +msgid "Requested channel is not in this network" +msgstr "" + +#: ../../Zotlabs/Module/Mail.php:248 +msgid "Send Private Message" +msgstr "" + +#: ../../Zotlabs/Module/Mail.php:249 ../../Zotlabs/Module/Mail.php:374 +msgid "To:" +msgstr "" + +#: ../../Zotlabs/Module/Mail.php:252 ../../Zotlabs/Module/Mail.php:376 +msgid "Subject:" +msgstr "" + +#: ../../Zotlabs/Module/Mail.php:255 ../../Zotlabs/Module/Invite.php:138 +msgid "Your message:" +msgstr "" + +#: ../../Zotlabs/Module/Mail.php:257 ../../Zotlabs/Module/Mail.php:382 +#: ../../include/conversation.php:1260 +msgid "Attach file" +msgstr "" + +#: ../../Zotlabs/Module/Mail.php:259 +msgid "Send" +msgstr "" + +#: ../../Zotlabs/Module/Mail.php:262 ../../Zotlabs/Module/Mail.php:387 +#: ../../include/conversation.php:1305 +msgid "Set expiration date" +msgstr "" + +#: ../../Zotlabs/Module/Mail.php:264 ../../Zotlabs/Module/Mail.php:389 +#: ../../Zotlabs/Module/Chat.php:206 ../../Zotlabs/Lib/ThreadItem.php:741 +#: ../../include/conversation.php:1310 +msgid "Encrypt text" +msgstr "" + +#: ../../Zotlabs/Module/Mail.php:346 +msgid "Delete message" +msgstr "" + +#: ../../Zotlabs/Module/Mail.php:347 +msgid "Delivery report" +msgstr "" + +#: ../../Zotlabs/Module/Mail.php:348 +msgid "Recall message" +msgstr "" + +#: ../../Zotlabs/Module/Mail.php:350 +msgid "Message has been recalled." +msgstr "" + +#: ../../Zotlabs/Module/Mail.php:367 +msgid "Delete Conversation" +msgstr "" + +#: ../../Zotlabs/Module/Mail.php:369 +msgid "" +"No secure communications available. You may be able to " +"respond from the sender's profile page." +msgstr "" + +#: ../../Zotlabs/Module/Mail.php:373 +msgid "Send Reply" +msgstr "" + +#: ../../Zotlabs/Module/Mail.php:378 +#, php-format +msgid "Your message for %s (%s):" +msgstr "" + #: ../../Zotlabs/Module/Impel.php:41 ../../include/bbcode.php:203 msgid "webpage" msgstr "" @@ -4041,307 +3507,159 @@ msgstr "" msgid "File to Upload" msgstr "" -#: ../../Zotlabs/Module/Mail.php:38 -msgid "Unable to lookup recipient." +#: ../../Zotlabs/Module/Invite.php:29 +msgid "Total invitation limit exceeded." msgstr "" -#: ../../Zotlabs/Module/Mail.php:45 -msgid "Unable to communicate with requested channel." -msgstr "" - -#: ../../Zotlabs/Module/Mail.php:52 -msgid "Cannot verify requested channel." -msgstr "" - -#: ../../Zotlabs/Module/Mail.php:70 -msgid "Selected channel has private message restrictions. Send failed." -msgstr "" - -#: ../../Zotlabs/Module/Mail.php:135 -msgid "Messages" -msgstr "" - -#: ../../Zotlabs/Module/Mail.php:170 -msgid "Message recalled." -msgstr "" - -#: ../../Zotlabs/Module/Mail.php:183 -msgid "Conversation removed." -msgstr "" - -#: ../../Zotlabs/Module/Mail.php:197 ../../Zotlabs/Module/Mail.php:306 -#: ../../Zotlabs/Module/Chat.php:205 ../../include/conversation.php:1184 -msgid "Please enter a link URL:" -msgstr "" - -#: ../../Zotlabs/Module/Mail.php:198 ../../Zotlabs/Module/Mail.php:307 -msgid "Expires YYYY-MM-DD HH:MM" -msgstr "" - -#: ../../Zotlabs/Module/Mail.php:226 -msgid "Requested channel is not in this network" -msgstr "" - -#: ../../Zotlabs/Module/Mail.php:234 -msgid "Send Private Message" -msgstr "" - -#: ../../Zotlabs/Module/Mail.php:235 ../../Zotlabs/Module/Mail.php:360 -msgid "To:" -msgstr "" - -#: ../../Zotlabs/Module/Mail.php:238 ../../Zotlabs/Module/Mail.php:362 -msgid "Subject:" -msgstr "" - -#: ../../Zotlabs/Module/Mail.php:243 ../../Zotlabs/Module/Mail.php:368 -#: ../../include/conversation.php:1244 -msgid "Attach file" -msgstr "" - -#: ../../Zotlabs/Module/Mail.php:245 -msgid "Send" -msgstr "" - -#: ../../Zotlabs/Module/Mail.php:248 ../../Zotlabs/Module/Mail.php:373 -#: ../../include/conversation.php:1289 -msgid "Set expiration date" -msgstr "" - -#: ../../Zotlabs/Module/Mail.php:250 ../../Zotlabs/Module/Mail.php:375 -#: ../../Zotlabs/Module/Chat.php:206 ../../Zotlabs/Lib/ThreadItem.php:737 -#: ../../include/conversation.php:1294 -msgid "Encrypt text" -msgstr "" - -#: ../../Zotlabs/Module/Mail.php:332 -msgid "Delete message" -msgstr "" - -#: ../../Zotlabs/Module/Mail.php:333 -msgid "Delivery report" -msgstr "" - -#: ../../Zotlabs/Module/Mail.php:334 -msgid "Recall message" -msgstr "" - -#: ../../Zotlabs/Module/Mail.php:336 -msgid "Message has been recalled." -msgstr "" - -#: ../../Zotlabs/Module/Mail.php:353 -msgid "Delete Conversation" -msgstr "" - -#: ../../Zotlabs/Module/Mail.php:355 -msgid "" -"No secure communications available. You may be able to " -"respond from the sender's profile page." -msgstr "" - -#: ../../Zotlabs/Module/Mail.php:359 -msgid "Send Reply" -msgstr "" - -#: ../../Zotlabs/Module/Mail.php:364 +#: ../../Zotlabs/Module/Invite.php:53 #, php-format -msgid "Your message for %s (%s):" +msgid "%s : Not a valid email address." msgstr "" -#: ../../Zotlabs/Module/Locs.php:25 ../../Zotlabs/Module/Locs.php:54 -msgid "Location not found." +#: ../../Zotlabs/Module/Invite.php:67 +msgid "Please join us on $Projectname" msgstr "" -#: ../../Zotlabs/Module/Locs.php:62 -msgid "Location lookup failed." +#: ../../Zotlabs/Module/Invite.php:77 +msgid "Invitation limit exceeded. Please contact your site administrator." msgstr "" -#: ../../Zotlabs/Module/Locs.php:66 -msgid "" -"Please select another location to become primary before removing the primary " -"location." -msgstr "" - -#: ../../Zotlabs/Module/Locs.php:95 -msgid "Syncing locations" -msgstr "" - -#: ../../Zotlabs/Module/Locs.php:105 -msgid "No locations found." -msgstr "" - -#: ../../Zotlabs/Module/Locs.php:116 -msgid "Manage Channel Locations" -msgstr "" - -#: ../../Zotlabs/Module/Locs.php:119 -msgid "Primary" -msgstr "" - -#: ../../Zotlabs/Module/Locs.php:122 -msgid "Sync Now" -msgstr "" - -#: ../../Zotlabs/Module/Locs.php:123 -msgid "Please wait several minutes between consecutive operations." -msgstr "" - -#: ../../Zotlabs/Module/Locs.php:124 -msgid "" -"When possible, drop a location by logging into that website/hub and removing " -"your channel." -msgstr "" - -#: ../../Zotlabs/Module/Locs.php:125 -msgid "Use this form to drop the location if the hub is no longer operating." -msgstr "" - -#: ../../Zotlabs/Module/Removeme.php:35 -msgid "" -"Channel removals are not allowed within 48 hours of changing the account " -"password." -msgstr "" - -#: ../../Zotlabs/Module/Removeme.php:60 -msgid "Remove This Channel" -msgstr "" - -#: ../../Zotlabs/Module/Removeme.php:61 -#: ../../Zotlabs/Module/Removeaccount.php:58 -msgid "WARNING: " -msgstr "" - -#: ../../Zotlabs/Module/Removeme.php:61 -msgid "This channel will be completely removed from the network. " -msgstr "" - -#: ../../Zotlabs/Module/Removeme.php:61 -#: ../../Zotlabs/Module/Removeaccount.php:58 -msgid "This action is permanent and can not be undone!" -msgstr "" - -#: ../../Zotlabs/Module/Removeme.php:62 -#: ../../Zotlabs/Module/Removeaccount.php:59 -msgid "Please enter your password for verification:" -msgstr "" - -#: ../../Zotlabs/Module/Removeme.php:63 -msgid "Remove this channel and all its clones from the network" -msgstr "" - -#: ../../Zotlabs/Module/Removeme.php:63 -msgid "" -"By default only the instance of the channel located on this hub will be " -"removed from the network" -msgstr "" - -#: ../../Zotlabs/Module/Like.php:19 -msgid "Like/Dislike" -msgstr "" - -#: ../../Zotlabs/Module/Like.php:24 -msgid "This action is restricted to members." -msgstr "" - -#: ../../Zotlabs/Module/Like.php:25 -msgid "" -"Please login with your $Projectname ID or register as a new $Projectname member to continue." -msgstr "" - -#: ../../Zotlabs/Module/Like.php:105 ../../Zotlabs/Module/Like.php:131 -#: ../../Zotlabs/Module/Like.php:169 -msgid "Invalid request." -msgstr "" - -#: ../../Zotlabs/Module/Like.php:117 ../../include/conversation.php:126 -msgid "channel" -msgstr "" - -#: ../../Zotlabs/Module/Like.php:146 -msgid "thing" -msgstr "" - -#: ../../Zotlabs/Module/Like.php:192 -msgid "Channel unavailable." -msgstr "" - -#: ../../Zotlabs/Module/Like.php:240 -msgid "Previous action reversed." -msgstr "" - -#: ../../Zotlabs/Module/Like.php:370 ../../Zotlabs/Module/Subthread.php:87 -#: ../../Zotlabs/Module/Tagger.php:47 ../../include/text.php:1984 -#: ../../include/conversation.php:120 -msgid "photo" -msgstr "" - -#: ../../Zotlabs/Module/Like.php:370 ../../Zotlabs/Module/Subthread.php:87 -#: ../../include/text.php:1990 ../../include/conversation.php:148 -msgid "status" -msgstr "" - -#: ../../Zotlabs/Module/Like.php:372 ../../Zotlabs/Module/Events.php:253 -#: ../../Zotlabs/Module/Tagger.php:51 ../../include/text.php:1987 -#: ../../include/conversation.php:123 ../../include/event.php:961 -msgid "event" -msgstr "" - -#: ../../Zotlabs/Module/Like.php:419 ../../include/conversation.php:164 +#: ../../Zotlabs/Module/Invite.php:82 #, php-format -msgid "%1$s likes %2$s's %3$s" +msgid "%s : Message delivery failed." msgstr "" -#: ../../Zotlabs/Module/Like.php:421 ../../include/conversation.php:167 +#: ../../Zotlabs/Module/Invite.php:86 #, php-format -msgid "%1$s doesn't like %2$s's %3$s" +msgid "%d message sent." +msgid_plural "%d messages sent." +msgstr[0] "" +msgstr[1] "" + +#: ../../Zotlabs/Module/Invite.php:105 +msgid "You have no more invitations available" msgstr "" -#: ../../Zotlabs/Module/Like.php:423 -#, php-format -msgid "%1$s agrees with %2$s's %3$s" +#: ../../Zotlabs/Module/Invite.php:136 +msgid "Send invitations" msgstr "" -#: ../../Zotlabs/Module/Like.php:425 -#, php-format -msgid "%1$s doesn't agree with %2$s's %3$s" +#: ../../Zotlabs/Module/Invite.php:137 +msgid "Enter email addresses, one per line:" msgstr "" -#: ../../Zotlabs/Module/Like.php:427 -#, php-format -msgid "%1$s abstains from a decision on %2$s's %3$s" +#: ../../Zotlabs/Module/Invite.php:139 +msgid "Please join my community on $Projectname." msgstr "" -#: ../../Zotlabs/Module/Like.php:429 -#, php-format -msgid "%1$s is attending %2$s's %3$s" +#: ../../Zotlabs/Module/Invite.php:141 +msgid "You will need to supply this invitation code:" msgstr "" -#: ../../Zotlabs/Module/Like.php:431 -#, php-format -msgid "%1$s is not attending %2$s's %3$s" +#: ../../Zotlabs/Module/Invite.php:142 +msgid "1. Register at any $Projectname location (they are all inter-connected)" msgstr "" -#: ../../Zotlabs/Module/Like.php:433 -#, php-format -msgid "%1$s may attend %2$s's %3$s" +#: ../../Zotlabs/Module/Invite.php:144 +msgid "2. Enter my $Projectname network address into the site searchbar." msgstr "" -#: ../../Zotlabs/Module/Like.php:538 -msgid "Action completed." +#: ../../Zotlabs/Module/Invite.php:145 +msgid "or visit" msgstr "" -#: ../../Zotlabs/Module/Like.php:539 -msgid "Thank you." +#: ../../Zotlabs/Module/Invite.php:147 +msgid "3. Click [Connect]" msgstr "" -#: ../../Zotlabs/Module/Help.php:23 -msgid "Documentation Search" +#: ../../Zotlabs/Module/Editblock.php:108 ../../Zotlabs/Module/Blocks.php:97 +#: ../../Zotlabs/Module/Blocks.php:155 +msgid "Block Name" msgstr "" -#: ../../Zotlabs/Module/Help.php:51 -msgid "$Projectname Documentation" +#: ../../Zotlabs/Module/Editblock.php:124 ../../include/conversation.php:1276 +msgid "Title (optional)" +msgstr "" + +#: ../../Zotlabs/Module/Editblock.php:133 +msgid "Edit Block" +msgstr "" + +#: ../../Zotlabs/Module/Group.php:24 +msgid "Privacy group created." +msgstr "" + +#: ../../Zotlabs/Module/Group.php:30 +msgid "Could not create privacy group." +msgstr "" + +#: ../../Zotlabs/Module/Group.php:42 ../../Zotlabs/Module/Group.php:141 +#: ../../include/items.php:3876 +msgid "Privacy group not found." +msgstr "" + +#: ../../Zotlabs/Module/Group.php:58 +msgid "Privacy group updated." +msgstr "" + +#: ../../Zotlabs/Module/Group.php:90 +msgid "Create a group of channels." +msgstr "" + +#: ../../Zotlabs/Module/Group.php:91 ../../Zotlabs/Module/Group.php:184 +msgid "Privacy group name: " +msgstr "" + +#: ../../Zotlabs/Module/Group.php:93 ../../Zotlabs/Module/Group.php:187 +msgid "Members are visible to other channels" +msgstr "" + +#: ../../Zotlabs/Module/Group.php:111 +msgid "Privacy group removed." +msgstr "" + +#: ../../Zotlabs/Module/Group.php:113 +msgid "Unable to remove privacy group." +msgstr "" + +#: ../../Zotlabs/Module/Group.php:183 +msgid "Privacy group editor" +msgstr "" + +#: ../../Zotlabs/Module/Group.php:197 +msgid "Members" +msgstr "" + +#: ../../Zotlabs/Module/Group.php:199 +msgid "All Connected Channels" +msgstr "" + +#: ../../Zotlabs/Module/Group.php:231 +msgid "Click on a channel to add or remove." +msgstr "" + +#: ../../Zotlabs/Module/Profperm.php:34 ../../Zotlabs/Module/Profperm.php:63 +msgid "Invalid profile identifier." +msgstr "" + +#: ../../Zotlabs/Module/Profperm.php:115 +msgid "Profile Visibility Editor" +msgstr "" + +#: ../../Zotlabs/Module/Profperm.php:117 ../../include/channel.php:1282 +msgid "Profile" +msgstr "" + +#: ../../Zotlabs/Module/Profperm.php:119 +msgid "Click on a contact to add or remove." +msgstr "" + +#: ../../Zotlabs/Module/Profperm.php:128 +msgid "Visible To" +msgstr "" + +#: ../../Zotlabs/Module/Magic.php:71 +msgid "Hub not found." msgstr "" #: ../../Zotlabs/Module/Mitem.php:52 @@ -4360,6 +3678,11 @@ msgstr "" msgid "Menu Item Permissions" msgstr "" +#: ../../Zotlabs/Module/Mitem.php:154 ../../Zotlabs/Module/Mitem.php:231 +#: ../../Zotlabs/Module/Settings/Channel.php:489 +msgid "(click to open/close)" +msgstr "" + #: ../../Zotlabs/Module/Mitem.php:160 ../../Zotlabs/Module/Mitem.php:176 msgid "Link Name" msgstr "" @@ -4456,1574 +3779,6 @@ msgstr "" msgid "Link text" msgstr "" -#: ../../Zotlabs/Module/Pubsites.php:24 ../../include/widgets.php:1391 -msgid "Public Hubs" -msgstr "" - -#: ../../Zotlabs/Module/Pubsites.php:27 -msgid "" -"The listed hubs allow public registration for the $Projectname network. All " -"hubs in the network are interlinked so membership on any of them conveys " -"membership in the network as a whole. Some hubs may require subscription or " -"provide tiered service plans. The hub itself may provide " -"additional details." -msgstr "" - -#: ../../Zotlabs/Module/Pubsites.php:33 -msgid "Hub URL" -msgstr "" - -#: ../../Zotlabs/Module/Pubsites.php:33 -msgid "Access Type" -msgstr "" - -#: ../../Zotlabs/Module/Pubsites.php:33 -msgid "Registration Policy" -msgstr "" - -#: ../../Zotlabs/Module/Pubsites.php:33 -msgid "Stats" -msgstr "" - -#: ../../Zotlabs/Module/Pubsites.php:33 -msgid "Software" -msgstr "" - -#: ../../Zotlabs/Module/Pubsites.php:35 ../../Zotlabs/Module/Ratings.php:97 -#: ../../include/conversation.php:958 -msgid "Ratings" -msgstr "" - -#: ../../Zotlabs/Module/Pubsites.php:48 -msgid "Rate" -msgstr "" - -#: ../../Zotlabs/Module/Pubsites.php:59 ../../Zotlabs/Module/Webpages.php:246 -#: ../../Zotlabs/Module/Blocks.php:166 ../../Zotlabs/Module/Layouts.php:197 -#: ../../Zotlabs/Module/Events.php:680 ../../include/page_widgets.php:42 -msgid "View" -msgstr "" - -#: ../../Zotlabs/Module/Match.php:26 -msgid "Profile Match" -msgstr "" - -#: ../../Zotlabs/Module/Match.php:35 -msgid "No keywords to match. Please add keywords to your default profile." -msgstr "" - -#: ../../Zotlabs/Module/Match.php:67 -msgid "is interested in:" -msgstr "" - -#: ../../Zotlabs/Module/Match.php:68 ../../Zotlabs/Module/Directory.php:328 -#: ../../Zotlabs/Module/Suggest.php:56 ../../include/widgets.php:147 -#: ../../include/widgets.php:184 ../../include/connections.php:78 -#: ../../include/conversation.php:955 ../../include/channel.php:1036 -msgid "Connect" -msgstr "" - -#: ../../Zotlabs/Module/Match.php:74 -msgid "No matches" -msgstr "" - -#: ../../Zotlabs/Module/Mood.php:67 ../../include/conversation.php:260 -#, php-format -msgctxt "mood" -msgid "%1$s is %2$s" -msgstr "" - -#: ../../Zotlabs/Module/Mood.php:135 ../../Zotlabs/Lib/Apps.php:227 -msgid "Mood" -msgstr "" - -#: ../../Zotlabs/Module/Mood.php:136 -msgid "Set your current mood and tell your friends" -msgstr "" - -#: ../../Zotlabs/Module/Setup.php:182 -msgid "$Projectname Server - Setup" -msgstr "" - -#: ../../Zotlabs/Module/Setup.php:186 -msgid "Could not connect to database." -msgstr "" - -#: ../../Zotlabs/Module/Setup.php:190 -msgid "" -"Could not connect to specified site URL. Possible SSL certificate or DNS " -"issue." -msgstr "" - -#: ../../Zotlabs/Module/Setup.php:197 -msgid "Could not create table." -msgstr "" - -#: ../../Zotlabs/Module/Setup.php:202 -msgid "Your site database has been installed." -msgstr "" - -#: ../../Zotlabs/Module/Setup.php:206 -msgid "" -"You may need to import the file \"install/schema_xxx.sql\" manually using a " -"database client." -msgstr "" - -#: ../../Zotlabs/Module/Setup.php:207 ../../Zotlabs/Module/Setup.php:269 -#: ../../Zotlabs/Module/Setup.php:740 -msgid "Please see the file \"install/INSTALL.txt\"." -msgstr "" - -#: ../../Zotlabs/Module/Setup.php:266 -msgid "System check" -msgstr "" - -#: ../../Zotlabs/Module/Setup.php:270 ../../Zotlabs/Module/Events.php:676 -#: ../../Zotlabs/Module/Events.php:685 ../../Zotlabs/Module/Photos.php:949 -#: ../../Zotlabs/Module/Cal.php:333 ../../Zotlabs/Module/Cal.php:340 -msgid "Next" -msgstr "" - -#: ../../Zotlabs/Module/Setup.php:271 -msgid "Check again" -msgstr "" - -#: ../../Zotlabs/Module/Setup.php:293 -msgid "Database connection" -msgstr "" - -#: ../../Zotlabs/Module/Setup.php:294 -msgid "" -"In order to install $Projectname we need to know how to connect to your " -"database." -msgstr "" - -#: ../../Zotlabs/Module/Setup.php:295 -msgid "" -"Please contact your hosting provider or site administrator if you have " -"questions about these settings." -msgstr "" - -#: ../../Zotlabs/Module/Setup.php:296 -msgid "" -"The database you specify below should already exist. If it does not, please " -"create it before continuing." -msgstr "" - -#: ../../Zotlabs/Module/Setup.php:300 -msgid "Database Server Name" -msgstr "" - -#: ../../Zotlabs/Module/Setup.php:300 -msgid "Default is 127.0.0.1" -msgstr "" - -#: ../../Zotlabs/Module/Setup.php:301 -msgid "Database Port" -msgstr "" - -#: ../../Zotlabs/Module/Setup.php:301 -msgid "Communication port number - use 0 for default" -msgstr "" - -#: ../../Zotlabs/Module/Setup.php:302 -msgid "Database Login Name" -msgstr "" - -#: ../../Zotlabs/Module/Setup.php:303 -msgid "Database Login Password" -msgstr "" - -#: ../../Zotlabs/Module/Setup.php:304 -msgid "Database Name" -msgstr "" - -#: ../../Zotlabs/Module/Setup.php:305 -msgid "Database Type" -msgstr "" - -#: ../../Zotlabs/Module/Setup.php:307 ../../Zotlabs/Module/Setup.php:353 -msgid "Site administrator email address" -msgstr "" - -#: ../../Zotlabs/Module/Setup.php:307 ../../Zotlabs/Module/Setup.php:353 -msgid "" -"Your account email address must match this in order to use the web admin " -"panel." -msgstr "" - -#: ../../Zotlabs/Module/Setup.php:308 ../../Zotlabs/Module/Setup.php:355 -msgid "Website URL" -msgstr "" - -#: ../../Zotlabs/Module/Setup.php:308 ../../Zotlabs/Module/Setup.php:355 -msgid "Please use SSL (https) URL if available." -msgstr "" - -#: ../../Zotlabs/Module/Setup.php:309 ../../Zotlabs/Module/Setup.php:359 -msgid "Please select a default timezone for your website" -msgstr "" - -#: ../../Zotlabs/Module/Setup.php:342 -msgid "Site settings" -msgstr "" - -#: ../../Zotlabs/Module/Setup.php:398 -msgid "PHP version 5.5 or greater is required." -msgstr "" - -#: ../../Zotlabs/Module/Setup.php:399 -msgid "PHP version" -msgstr "" - -#: ../../Zotlabs/Module/Setup.php:414 -msgid "Could not find a command line version of PHP in the web server PATH." -msgstr "" - -#: ../../Zotlabs/Module/Setup.php:415 -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 "" - -#: ../../Zotlabs/Module/Setup.php:419 -msgid "PHP executable path" -msgstr "" - -#: ../../Zotlabs/Module/Setup.php:419 -msgid "" -"Enter full path to php executable. You can leave this blank to continue the " -"installation." -msgstr "" - -#: ../../Zotlabs/Module/Setup.php:424 -msgid "Command line PHP" -msgstr "" - -#: ../../Zotlabs/Module/Setup.php:433 -msgid "" -"The command line version of PHP on your system does not have " -"\"register_argc_argv\" enabled." -msgstr "" - -#: ../../Zotlabs/Module/Setup.php:434 -msgid "This is required for message delivery to work." -msgstr "" - -#: ../../Zotlabs/Module/Setup.php:437 -msgid "PHP register_argc_argv" -msgstr "" - -#: ../../Zotlabs/Module/Setup.php:455 -#, 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 "" - -#: ../../Zotlabs/Module/Setup.php:460 -msgid "You can adjust these settings in the servers php.ini." -msgstr "" - -#: ../../Zotlabs/Module/Setup.php:462 -msgid "PHP upload limits" -msgstr "" - -#: ../../Zotlabs/Module/Setup.php:485 -msgid "" -"Error: the \"openssl_pkey_new\" function on this system is not able to " -"generate encryption keys" -msgstr "" - -#: ../../Zotlabs/Module/Setup.php:486 -msgid "" -"If running under Windows, please see \"http://www.php.net/manual/en/openssl." -"installation.php\"." -msgstr "" - -#: ../../Zotlabs/Module/Setup.php:489 -msgid "Generate encryption keys" -msgstr "" - -#: ../../Zotlabs/Module/Setup.php:501 -msgid "libCurl PHP module" -msgstr "" - -#: ../../Zotlabs/Module/Setup.php:502 -msgid "GD graphics PHP module" -msgstr "" - -#: ../../Zotlabs/Module/Setup.php:503 -msgid "OpenSSL PHP module" -msgstr "" - -#: ../../Zotlabs/Module/Setup.php:504 -msgid "mysqli or postgres PHP module" -msgstr "" - -#: ../../Zotlabs/Module/Setup.php:505 -msgid "mb_string PHP module" -msgstr "" - -#: ../../Zotlabs/Module/Setup.php:506 -msgid "xml PHP module" -msgstr "" - -#: ../../Zotlabs/Module/Setup.php:510 ../../Zotlabs/Module/Setup.php:512 -msgid "Apache mod_rewrite module" -msgstr "" - -#: ../../Zotlabs/Module/Setup.php:510 -msgid "" -"Error: Apache webserver mod-rewrite module is required but not installed." -msgstr "" - -#: ../../Zotlabs/Module/Setup.php:516 ../../Zotlabs/Module/Setup.php:519 -msgid "proc_open" -msgstr "" - -#: ../../Zotlabs/Module/Setup.php:516 -msgid "" -"Error: proc_open is required but is either not installed or has been " -"disabled in php.ini" -msgstr "" - -#: ../../Zotlabs/Module/Setup.php:524 -msgid "Error: libCURL PHP module required but not installed." -msgstr "" - -#: ../../Zotlabs/Module/Setup.php:528 -msgid "" -"Error: GD graphics PHP module with JPEG support required but not installed." -msgstr "" - -#: ../../Zotlabs/Module/Setup.php:532 -msgid "Error: openssl PHP module required but not installed." -msgstr "" - -#: ../../Zotlabs/Module/Setup.php:536 -msgid "" -"Error: mysqli or postgres PHP module required but neither are installed." -msgstr "" - -#: ../../Zotlabs/Module/Setup.php:540 -msgid "Error: mb_string PHP module required but not installed." -msgstr "" - -#: ../../Zotlabs/Module/Setup.php:544 -msgid "Error: xml PHP module required for DAV but not installed." -msgstr "" - -#: ../../Zotlabs/Module/Setup.php:562 -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 "" - -#: ../../Zotlabs/Module/Setup.php:563 -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 "" - -#: ../../Zotlabs/Module/Setup.php:564 -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 "" - -#: ../../Zotlabs/Module/Setup.php:565 -msgid "" -"You can alternatively skip this procedure and perform a manual installation. " -"Please see the file \"install/INSTALL.txt\" for instructions." -msgstr "" - -#: ../../Zotlabs/Module/Setup.php:568 -msgid ".htconfig.php is writable" -msgstr "" - -#: ../../Zotlabs/Module/Setup.php:582 -msgid "" -"Red uses the Smarty3 template engine to render its web views. Smarty3 " -"compiles templates to PHP to speed up rendering." -msgstr "" - -#: ../../Zotlabs/Module/Setup.php:583 -#, php-format -msgid "" -"In order to store these compiled templates, the web server needs to have " -"write access to the directory %s under the top level web folder." -msgstr "" - -#: ../../Zotlabs/Module/Setup.php:584 ../../Zotlabs/Module/Setup.php:605 -msgid "" -"Please ensure that the user that your web server runs as (e.g. www-data) has " -"write access to this folder." -msgstr "" - -#: ../../Zotlabs/Module/Setup.php:585 -#, 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 "" - -#: ../../Zotlabs/Module/Setup.php:588 -#, php-format -msgid "%s is writable" -msgstr "" - -#: ../../Zotlabs/Module/Setup.php:604 -msgid "" -"This software 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 "" - -#: ../../Zotlabs/Module/Setup.php:608 -msgid "store is writable" -msgstr "" - -#: ../../Zotlabs/Module/Setup.php:641 -msgid "" -"SSL certificate cannot be validated. Fix certificate or disable https access " -"to this site." -msgstr "" - -#: ../../Zotlabs/Module/Setup.php:642 -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 "" - -#: ../../Zotlabs/Module/Setup.php:643 -msgid "" -"This restriction is incorporated because public posts from you may for " -"example contain references to images on your own hub." -msgstr "" - -#: ../../Zotlabs/Module/Setup.php:644 -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 "" - -#: ../../Zotlabs/Module/Setup.php:645 -msgid "" -"This can cause usability issues elsewhere (not just on your own site) so we " -"must insist on this requirement." -msgstr "" - -#: ../../Zotlabs/Module/Setup.php:646 -msgid "" -"Providers are available that issue free certificates which are browser-valid." -msgstr "" - -#: ../../Zotlabs/Module/Setup.php:648 -msgid "" -"If you are confident that the certificate is valid and signed by a trusted " -"authority, check to see if you have failed to install an intermediate cert. " -"These are not normally required by browsers, but are required for server-to-" -"server communications." -msgstr "" - -#: ../../Zotlabs/Module/Setup.php:650 -msgid "SSL certificate validation" -msgstr "" - -#: ../../Zotlabs/Module/Setup.php:656 -msgid "" -"Url rewrite in .htaccess is not working. Check your server configuration." -"Test: " -msgstr "" - -#: ../../Zotlabs/Module/Setup.php:659 -msgid "Url rewrite is working" -msgstr "" - -#: ../../Zotlabs/Module/Setup.php:673 -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 "" - -#: ../../Zotlabs/Module/Setup.php:697 -msgid "Errors encountered creating database tables." -msgstr "" - -#: ../../Zotlabs/Module/Setup.php:738 -msgid "

        What next

        " -msgstr "" - -#: ../../Zotlabs/Module/Setup.php:739 -msgid "" -"IMPORTANT: You will need to [manually] setup a scheduled task for the poller." -msgstr "" - -#: ../../Zotlabs/Module/Notify.php:57 -#: ../../Zotlabs/Module/Notifications.php:35 -msgid "No more system notifications." -msgstr "" - -#: ../../Zotlabs/Module/Notify.php:61 -#: ../../Zotlabs/Module/Notifications.php:39 -msgid "System Notifications" -msgstr "" - -#: ../../Zotlabs/Module/Connect.php:61 ../../Zotlabs/Module/Connect.php:109 -msgid "Continue" -msgstr "" - -#: ../../Zotlabs/Module/Connect.php:90 -msgid "Premium Channel Setup" -msgstr "" - -#: ../../Zotlabs/Module/Connect.php:92 -msgid "Enable premium channel connection restrictions" -msgstr "" - -#: ../../Zotlabs/Module/Connect.php:93 -msgid "" -"Please enter your restrictions or conditions, such as paypal receipt, usage " -"guidelines, etc." -msgstr "" - -#: ../../Zotlabs/Module/Connect.php:95 ../../Zotlabs/Module/Connect.php:115 -msgid "" -"This channel may require additional steps or acknowledgement of the " -"following conditions prior to connecting:" -msgstr "" - -#: ../../Zotlabs/Module/Connect.php:96 -msgid "" -"Potential connections will then see the following text before proceeding:" -msgstr "" - -#: ../../Zotlabs/Module/Connect.php:97 ../../Zotlabs/Module/Connect.php:118 -msgid "" -"By continuing, I certify that I have complied with any instructions provided " -"on this page." -msgstr "" - -#: ../../Zotlabs/Module/Connect.php:106 -msgid "(No specific instructions have been provided by the channel owner.)" -msgstr "" - -#: ../../Zotlabs/Module/Connect.php:114 -msgid "Restricted or Premium Channel" -msgstr "" - -#: ../../Zotlabs/Module/Follow.php:31 -msgid "Channel added." -msgstr "" - -#: ../../Zotlabs/Module/Dreport.php:45 -msgid "Invalid message" -msgstr "" - -#: ../../Zotlabs/Module/Dreport.php:78 -msgid "no results" -msgstr "" - -#: ../../Zotlabs/Module/Dreport.php:93 -msgid "channel sync processed" -msgstr "" - -#: ../../Zotlabs/Module/Dreport.php:97 -msgid "queued" -msgstr "" - -#: ../../Zotlabs/Module/Dreport.php:101 -msgid "posted" -msgstr "" - -#: ../../Zotlabs/Module/Dreport.php:105 -msgid "accepted for delivery" -msgstr "" - -#: ../../Zotlabs/Module/Dreport.php:109 -msgid "updated" -msgstr "" - -#: ../../Zotlabs/Module/Dreport.php:112 -msgid "update ignored" -msgstr "" - -#: ../../Zotlabs/Module/Dreport.php:115 -msgid "permission denied" -msgstr "" - -#: ../../Zotlabs/Module/Dreport.php:119 -msgid "recipient not found" -msgstr "" - -#: ../../Zotlabs/Module/Dreport.php:122 -msgid "mail recalled" -msgstr "" - -#: ../../Zotlabs/Module/Dreport.php:125 -msgid "duplicate mail received" -msgstr "" - -#: ../../Zotlabs/Module/Dreport.php:128 -msgid "mail delivered" -msgstr "" - -#: ../../Zotlabs/Module/Dreport.php:148 -#, php-format -msgid "Delivery report for %1$s" -msgstr "" - -#: ../../Zotlabs/Module/Dreport.php:151 -msgid "Options" -msgstr "" - -#: ../../Zotlabs/Module/Dreport.php:152 -msgid "Redeliver" -msgstr "" - -#: ../../Zotlabs/Module/Editblock.php:108 ../../Zotlabs/Module/Blocks.php:97 -#: ../../Zotlabs/Module/Blocks.php:155 -msgid "Block Name" -msgstr "" - -#: ../../Zotlabs/Module/Editblock.php:124 ../../include/conversation.php:1260 -msgid "Title (optional)" -msgstr "" - -#: ../../Zotlabs/Module/Editblock.php:133 -msgid "Edit Block" -msgstr "" - -#: ../../Zotlabs/Module/New_channel.php:140 -msgid "Create Channel" -msgstr "" - -#: ../../Zotlabs/Module/New_channel.php:141 -msgid "" -"A channel is your identity on this network. It can represent a person, a " -"blog, or a forum to name a few. Channels can make connections with other " -"channels to share information with highly detailed permissions." -msgstr "" - -#: ../../Zotlabs/Module/New_channel.php:142 -msgid "" -"or import an existing channel from another location." -msgstr "" - -#: ../../Zotlabs/Module/Lostpass.php:19 -msgid "No valid account found." -msgstr "" - -#: ../../Zotlabs/Module/Lostpass.php:33 -msgid "Password reset request issued. Check your email." -msgstr "" - -#: ../../Zotlabs/Module/Lostpass.php:39 ../../Zotlabs/Module/Lostpass.php:108 -#, php-format -msgid "Site Member (%s)" -msgstr "" - -#: ../../Zotlabs/Module/Lostpass.php:44 ../../Zotlabs/Module/Lostpass.php:49 -#, php-format -msgid "Password reset requested at %s" -msgstr "" - -#: ../../Zotlabs/Module/Lostpass.php:68 -msgid "" -"Request could not be verified. (You may have previously submitted it.) " -"Password reset failed." -msgstr "" - -#: ../../Zotlabs/Module/Lostpass.php:91 ../../boot.php:1747 -msgid "Password Reset" -msgstr "" - -#: ../../Zotlabs/Module/Lostpass.php:92 -msgid "Your password has been reset as requested." -msgstr "" - -#: ../../Zotlabs/Module/Lostpass.php:93 -msgid "Your new password is" -msgstr "" - -#: ../../Zotlabs/Module/Lostpass.php:94 -msgid "Save or copy your new password - and then" -msgstr "" - -#: ../../Zotlabs/Module/Lostpass.php:95 -msgid "click here to login" -msgstr "" - -#: ../../Zotlabs/Module/Lostpass.php:96 -msgid "" -"Your password may be changed from the Settings page after " -"successful login." -msgstr "" - -#: ../../Zotlabs/Module/Lostpass.php:117 -#, php-format -msgid "Your password has changed at %s" -msgstr "" - -#: ../../Zotlabs/Module/Lostpass.php:130 -msgid "Forgot your Password?" -msgstr "" - -#: ../../Zotlabs/Module/Lostpass.php:131 -msgid "" -"Enter your email address and submit to have your password reset. Then check " -"your email for further instructions." -msgstr "" - -#: ../../Zotlabs/Module/Lostpass.php:132 -msgid "Email Address" -msgstr "" - -#: ../../Zotlabs/Module/Lostpass.php:133 -msgid "Reset" -msgstr "" - -#: ../../Zotlabs/Module/Notifications.php:40 ../../include/nav.php:196 -msgid "Mark all system notifications seen" -msgstr "" - -#: ../../Zotlabs/Module/Poke.php:168 ../../Zotlabs/Lib/Apps.php:228 -#: ../../include/conversation.php:959 -msgid "Poke" -msgstr "" - -#: ../../Zotlabs/Module/Poke.php:169 -msgid "Poke somebody" -msgstr "" - -#: ../../Zotlabs/Module/Poke.php:172 -msgid "Poke/Prod" -msgstr "" - -#: ../../Zotlabs/Module/Poke.php:173 -msgid "Poke, prod or do other things to somebody" -msgstr "" - -#: ../../Zotlabs/Module/Poke.php:180 -msgid "Recipient" -msgstr "" - -#: ../../Zotlabs/Module/Poke.php:181 -msgid "Choose what you wish to do to recipient" -msgstr "" - -#: ../../Zotlabs/Module/Poke.php:184 ../../Zotlabs/Module/Poke.php:185 -msgid "Make this post private" -msgstr "" - -#: ../../Zotlabs/Module/Directory.php:245 -#, php-format -msgid "%d rating" -msgid_plural "%d ratings" -msgstr[0] "" -msgstr[1] "" - -#: ../../Zotlabs/Module/Directory.php:256 -msgid "Gender: " -msgstr "" - -#: ../../Zotlabs/Module/Directory.php:258 -msgid "Status: " -msgstr "" - -#: ../../Zotlabs/Module/Directory.php:260 -msgid "Homepage: " -msgstr "" - -#: ../../Zotlabs/Module/Directory.php:309 ../../include/channel.php:1215 -msgid "Age:" -msgstr "" - -#: ../../Zotlabs/Module/Directory.php:314 ../../include/bb2diaspora.php:513 -#: ../../include/event.php:52 ../../include/event.php:84 -#: ../../include/channel.php:1051 -msgid "Location:" -msgstr "" - -#: ../../Zotlabs/Module/Directory.php:320 -msgid "Description:" -msgstr "" - -#: ../../Zotlabs/Module/Directory.php:325 ../../include/channel.php:1231 -msgid "Hometown:" -msgstr "" - -#: ../../Zotlabs/Module/Directory.php:327 ../../include/channel.php:1239 -msgid "About:" -msgstr "" - -#: ../../Zotlabs/Module/Directory.php:329 -msgid "Public Forum:" -msgstr "" - -#: ../../Zotlabs/Module/Directory.php:332 -msgid "Keywords: " -msgstr "" - -#: ../../Zotlabs/Module/Directory.php:335 -msgid "Don't suggest" -msgstr "" - -#: ../../Zotlabs/Module/Directory.php:337 -msgid "Common connections:" -msgstr "" - -#: ../../Zotlabs/Module/Directory.php:386 -msgid "Global Directory" -msgstr "" - -#: ../../Zotlabs/Module/Directory.php:386 -msgid "Local Directory" -msgstr "" - -#: ../../Zotlabs/Module/Directory.php:392 -msgid "Finding:" -msgstr "" - -#: ../../Zotlabs/Module/Directory.php:395 ../../Zotlabs/Module/Suggest.php:64 -#: ../../include/contact_widgets.php:24 -msgid "Channel Suggestions" -msgstr "" - -#: ../../Zotlabs/Module/Directory.php:397 -msgid "next page" -msgstr "" - -#: ../../Zotlabs/Module/Directory.php:397 -msgid "previous page" -msgstr "" - -#: ../../Zotlabs/Module/Directory.php:398 -msgid "Sort options" -msgstr "" - -#: ../../Zotlabs/Module/Directory.php:399 -msgid "Alphabetic" -msgstr "" - -#: ../../Zotlabs/Module/Directory.php:400 -msgid "Reverse Alphabetic" -msgstr "" - -#: ../../Zotlabs/Module/Directory.php:401 -msgid "Newest to Oldest" -msgstr "" - -#: ../../Zotlabs/Module/Directory.php:402 -msgid "Oldest to Newest" -msgstr "" - -#: ../../Zotlabs/Module/Directory.php:419 -msgid "No entries (some entries may be hidden)." -msgstr "" - -#: ../../Zotlabs/Module/Oexchange.php:27 -msgid "Unable to find your hub." -msgstr "" - -#: ../../Zotlabs/Module/Oexchange.php:41 -msgid "Post successful." -msgstr "" - -#: ../../Zotlabs/Module/Webpages.php:52 -msgid "Import Webpage Elements" -msgstr "" - -#: ../../Zotlabs/Module/Webpages.php:53 -msgid "Import selected" -msgstr "" - -#: ../../Zotlabs/Module/Webpages.php:76 -msgid "Export Webpage Elements" -msgstr "" - -#: ../../Zotlabs/Module/Webpages.php:77 -msgid "Export selected" -msgstr "" - -#: ../../Zotlabs/Module/Webpages.php:237 ../../Zotlabs/Lib/Apps.php:218 -#: ../../include/nav.php:109 ../../include/conversation.php:1725 -msgid "Webpages" -msgstr "" - -#: ../../Zotlabs/Module/Webpages.php:241 ../../Zotlabs/Module/Blocks.php:161 -#: ../../Zotlabs/Module/Layouts.php:193 ../../Zotlabs/Module/Photos.php:1078 -#: ../../include/conversation.php:1232 -msgid "Share" -msgstr "" - -#: ../../Zotlabs/Module/Webpages.php:247 ../../Zotlabs/Module/Events.php:473 -#: ../../Zotlabs/Module/Photos.php:1099 ../../Zotlabs/Lib/ThreadItem.php:734 -#: ../../include/page_widgets.php:43 ../../include/conversation.php:1201 -msgid "Preview" -msgstr "" - -#: ../../Zotlabs/Module/Webpages.php:248 ../../include/page_widgets.php:44 -msgid "Actions" -msgstr "" - -#: ../../Zotlabs/Module/Webpages.php:249 ../../include/page_widgets.php:45 -msgid "Page Link" -msgstr "" - -#: ../../Zotlabs/Module/Webpages.php:250 -msgid "Page Title" -msgstr "" - -#: ../../Zotlabs/Module/Webpages.php:280 -msgid "Invalid file type." -msgstr "" - -#: ../../Zotlabs/Module/Webpages.php:292 -msgid "Error opening zip file" -msgstr "" - -#: ../../Zotlabs/Module/Webpages.php:303 -msgid "Invalid folder path." -msgstr "" - -#: ../../Zotlabs/Module/Webpages.php:330 -msgid "No webpage elements detected." -msgstr "" - -#: ../../Zotlabs/Module/Webpages.php:405 -msgid "Import complete." -msgstr "" - -#: ../../Zotlabs/Module/Pconfig.php:26 ../../Zotlabs/Module/Pconfig.php:59 -msgid "This setting requires special processing and editing has been blocked." -msgstr "" - -#: ../../Zotlabs/Module/Pconfig.php:48 -msgid "Configuration Editor" -msgstr "" - -#: ../../Zotlabs/Module/Pconfig.php:49 -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 "" - -#: ../../Zotlabs/Module/Siteinfo.php:19 -#, php-format -msgid "Version %s" -msgstr "" - -#: ../../Zotlabs/Module/Siteinfo.php:34 -msgid "Installed plugins/addons/apps:" -msgstr "" - -#: ../../Zotlabs/Module/Siteinfo.php:36 -msgid "No installed plugins/addons/apps" -msgstr "" - -#: ../../Zotlabs/Module/Siteinfo.php:49 -msgid "" -"This is a hub of $Projectname - a global cooperative network of " -"decentralized privacy enhanced websites." -msgstr "" - -#: ../../Zotlabs/Module/Siteinfo.php:51 -msgid "Tag: " -msgstr "" - -#: ../../Zotlabs/Module/Siteinfo.php:53 -msgid "Last background fetch: " -msgstr "" - -#: ../../Zotlabs/Module/Siteinfo.php:55 -msgid "Current load average: " -msgstr "" - -#: ../../Zotlabs/Module/Siteinfo.php:58 -msgid "Running at web location" -msgstr "" - -#: ../../Zotlabs/Module/Siteinfo.php:59 -msgid "" -"Please visit hubzilla.org to learn more " -"about $Projectname." -msgstr "" - -#: ../../Zotlabs/Module/Siteinfo.php:60 -msgid "Bug reports and issues: please visit" -msgstr "" - -#: ../../Zotlabs/Module/Siteinfo.php:62 -msgid "$projectname issues" -msgstr "" - -#: ../../Zotlabs/Module/Siteinfo.php:63 -msgid "" -"Suggestions, praise, etc. - please email \"redmatrix\" at librelist - dot com" -msgstr "" - -#: ../../Zotlabs/Module/Siteinfo.php:65 -msgid "Site Administrators" -msgstr "" - -#: ../../Zotlabs/Module/Blocks.php:154 ../../include/text.php:2311 -msgid "Blocks" -msgstr "" - -#: ../../Zotlabs/Module/Blocks.php:156 -msgid "Block Title" -msgstr "" - -#: ../../Zotlabs/Module/Layouts.php:183 ../../include/text.php:2313 -msgid "Layouts" -msgstr "" - -#: ../../Zotlabs/Module/Layouts.php:185 ../../Zotlabs/Lib/Apps.php:225 -#: ../../include/nav.php:164 ../../include/help.php:53 -#: ../../include/help.php:58 -msgid "Help" -msgstr "" - -#: ../../Zotlabs/Module/Layouts.php:185 -msgid "Comanche page description language help" -msgstr "" - -#: ../../Zotlabs/Module/Layouts.php:189 -msgid "Layout Description" -msgstr "" - -#: ../../Zotlabs/Module/Layouts.php:194 -msgid "Download PDL file" -msgstr "" - -#: ../../Zotlabs/Module/Profile_photo.php:115 -#: ../../Zotlabs/Module/Profile_photo.php:212 -#: ../../Zotlabs/Module/Profile_photo.php:311 -#: ../../Zotlabs/Module/Photos.php:97 ../../Zotlabs/Module/Photos.php:734 -#: ../../include/photo/photo_driver.php:728 -msgid "Profile Photos" -msgstr "" - -#: ../../Zotlabs/Module/Profile_photo.php:186 -msgid "" -"Shift-reload the page or clear browser cache if the new photo does not " -"display immediately." -msgstr "" - -#: ../../Zotlabs/Module/Profile_photo.php:389 -msgid "Upload Profile Photo" -msgstr "" - -#: ../../Zotlabs/Module/Events.php:25 -msgid "Calendar entries imported." -msgstr "" - -#: ../../Zotlabs/Module/Events.php:27 -msgid "No calendar entries found." -msgstr "" - -#: ../../Zotlabs/Module/Events.php:104 -msgid "Event can not end before it has started." -msgstr "" - -#: ../../Zotlabs/Module/Events.php:106 ../../Zotlabs/Module/Events.php:115 -#: ../../Zotlabs/Module/Events.php:135 -msgid "Unable to generate preview." -msgstr "" - -#: ../../Zotlabs/Module/Events.php:113 -msgid "Event title and start time are required." -msgstr "" - -#: ../../Zotlabs/Module/Events.php:133 ../../Zotlabs/Module/Events.php:258 -msgid "Event not found." -msgstr "" - -#: ../../Zotlabs/Module/Events.php:452 -msgid "Edit event title" -msgstr "" - -#: ../../Zotlabs/Module/Events.php:452 -msgid "Event title" -msgstr "" - -#: ../../Zotlabs/Module/Events.php:454 -msgid "Categories (comma-separated list)" -msgstr "" - -#: ../../Zotlabs/Module/Events.php:455 -msgid "Edit Category" -msgstr "" - -#: ../../Zotlabs/Module/Events.php:455 -msgid "Category" -msgstr "" - -#: ../../Zotlabs/Module/Events.php:458 -msgid "Edit start date and time" -msgstr "" - -#: ../../Zotlabs/Module/Events.php:458 -msgid "Start date and time" -msgstr "" - -#: ../../Zotlabs/Module/Events.php:459 ../../Zotlabs/Module/Events.php:462 -msgid "Finish date and time are not known or not relevant" -msgstr "" - -#: ../../Zotlabs/Module/Events.php:461 -msgid "Edit finish date and time" -msgstr "" - -#: ../../Zotlabs/Module/Events.php:461 -msgid "Finish date and time" -msgstr "" - -#: ../../Zotlabs/Module/Events.php:463 ../../Zotlabs/Module/Events.php:464 -msgid "Adjust for viewer timezone" -msgstr "" - -#: ../../Zotlabs/Module/Events.php:463 -msgid "" -"Important for events that happen in a particular place. Not practical for " -"global holidays." -msgstr "" - -#: ../../Zotlabs/Module/Events.php:465 -msgid "Edit Description" -msgstr "" - -#: ../../Zotlabs/Module/Events.php:467 -msgid "Edit Location" -msgstr "" - -#: ../../Zotlabs/Module/Events.php:470 ../../Zotlabs/Module/Events.php:472 -msgid "Share this event" -msgstr "" - -#: ../../Zotlabs/Module/Events.php:474 ../../include/conversation.php:1264 -msgid "Permission settings" -msgstr "" - -#: ../../Zotlabs/Module/Events.php:485 -msgid "Advanced Options" -msgstr "" - -#: ../../Zotlabs/Module/Events.php:597 ../../Zotlabs/Module/Cal.php:259 -msgid "l, F j" -msgstr "" - -#: ../../Zotlabs/Module/Events.php:619 -msgid "Edit event" -msgstr "" - -#: ../../Zotlabs/Module/Events.php:621 -msgid "Delete event" -msgstr "" - -#: ../../Zotlabs/Module/Events.php:646 ../../Zotlabs/Module/Cal.php:308 -#: ../../include/text.php:1792 -msgid "Link to Source" -msgstr "" - -#: ../../Zotlabs/Module/Events.php:655 -msgid "calendar" -msgstr "" - -#: ../../Zotlabs/Module/Events.php:674 ../../Zotlabs/Module/Cal.php:331 -msgid "Edit Event" -msgstr "" - -#: ../../Zotlabs/Module/Events.php:674 ../../Zotlabs/Module/Cal.php:331 -msgid "Create Event" -msgstr "" - -#: ../../Zotlabs/Module/Events.php:675 ../../Zotlabs/Module/Events.php:684 -#: ../../Zotlabs/Module/Photos.php:940 ../../Zotlabs/Module/Cal.php:332 -#: ../../Zotlabs/Module/Cal.php:339 -msgid "Previous" -msgstr "" - -#: ../../Zotlabs/Module/Events.php:677 ../../Zotlabs/Module/Cal.php:334 -msgid "Export" -msgstr "" - -#: ../../Zotlabs/Module/Events.php:681 -msgid "Month" -msgstr "" - -#: ../../Zotlabs/Module/Events.php:682 -msgid "Week" -msgstr "" - -#: ../../Zotlabs/Module/Events.php:683 -msgid "Day" -msgstr "" - -#: ../../Zotlabs/Module/Events.php:686 ../../Zotlabs/Module/Cal.php:341 -msgid "Today" -msgstr "" - -#: ../../Zotlabs/Module/Events.php:717 -msgid "Event removed" -msgstr "" - -#: ../../Zotlabs/Module/Events.php:720 -msgid "Failed to remove event" -msgstr "" - -#: ../../Zotlabs/Module/Common.php:14 -msgid "No channel." -msgstr "" - -#: ../../Zotlabs/Module/Common.php:43 -msgid "Common connections" -msgstr "" - -#: ../../Zotlabs/Module/Common.php:48 -msgid "No connections in common." -msgstr "" - -#: ../../Zotlabs/Module/Api.php:60 ../../Zotlabs/Module/Api.php:81 -msgid "Authorize application connection" -msgstr "" - -#: ../../Zotlabs/Module/Api.php:61 -msgid "Return to your app and insert this Security Code:" -msgstr "" - -#: ../../Zotlabs/Module/Api.php:71 -msgid "Please login to continue." -msgstr "" - -#: ../../Zotlabs/Module/Api.php:83 -msgid "" -"Do you want to authorize this application to access your posts and contacts, " -"and/or create new posts for you?" -msgstr "" - -#: ../../Zotlabs/Module/Import.php:33 -#, php-format -msgid "Your service plan only allows %d channels." -msgstr "" - -#: ../../Zotlabs/Module/Import.php:157 ../../include/import.php:100 -msgid "Cloned channel not found. Import failed." -msgstr "" - -#: ../../Zotlabs/Module/Import.php:167 -msgid "No channel. Import failed." -msgstr "" - -#: ../../Zotlabs/Module/Import.php:503 -#: ../../include/Import/import_diaspora.php:142 -msgid "Import completed." -msgstr "" - -#: ../../Zotlabs/Module/Import.php:525 -msgid "You must be logged in to use this feature." -msgstr "" - -#: ../../Zotlabs/Module/Import.php:530 -msgid "Import Channel" -msgstr "" - -#: ../../Zotlabs/Module/Import.php:531 -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 "" - -#: ../../Zotlabs/Module/Import.php:533 -msgid "Or provide the old server/hub details" -msgstr "" - -#: ../../Zotlabs/Module/Import.php:534 -msgid "Your old identity address (xyz@example.com)" -msgstr "" - -#: ../../Zotlabs/Module/Import.php:535 -msgid "Your old login email address" -msgstr "" - -#: ../../Zotlabs/Module/Import.php:536 -msgid "Your old login password" -msgstr "" - -#: ../../Zotlabs/Module/Import.php:537 -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 "" - -#: ../../Zotlabs/Module/Import.php:538 -msgid "Make this hub my primary location" -msgstr "" - -#: ../../Zotlabs/Module/Import.php:539 -msgid "" -"Import existing posts if possible (experimental - limited by available memory" -msgstr "" - -#: ../../Zotlabs/Module/Import.php:540 -msgid "" -"This process may take several minutes to complete. Please submit the form " -"only once and leave this page open until finished." -msgstr "" - -#: ../../Zotlabs/Module/Lockview.php:75 -msgid "Remote privacy information not available." -msgstr "" - -#: ../../Zotlabs/Module/Lockview.php:96 -msgid "Visible to:" -msgstr "" - -#: ../../Zotlabs/Module/Rbmark.php:94 -msgid "Select a bookmark folder" -msgstr "" - -#: ../../Zotlabs/Module/Rbmark.php:99 -msgid "Save Bookmark" -msgstr "" - -#: ../../Zotlabs/Module/Rbmark.php:100 -msgid "URL of bookmark" -msgstr "" - -#: ../../Zotlabs/Module/Rbmark.php:105 -msgid "Or enter new bookmark folder name" -msgstr "" - -#: ../../Zotlabs/Module/Rmagic.php:35 -msgid "Authentication failed." -msgstr "" - -#: ../../Zotlabs/Module/Rmagic.php:75 -msgid "Remote Authentication" -msgstr "" - -#: ../../Zotlabs/Module/Rmagic.php:76 -msgid "Enter your channel address (e.g. channel@example.com)" -msgstr "" - -#: ../../Zotlabs/Module/Rmagic.php:77 -msgid "Authenticate" -msgstr "" - -#: ../../Zotlabs/Module/Regmod.php:15 -msgid "Please login." -msgstr "" - -#: ../../Zotlabs/Module/Removeaccount.php:35 -msgid "" -"Account removals are not allowed within 48 hours of changing the account " -"password." -msgstr "" - -#: ../../Zotlabs/Module/Removeaccount.php:57 -msgid "Remove This Account" -msgstr "" - -#: ../../Zotlabs/Module/Removeaccount.php:58 -msgid "" -"This account and all its channels will be completely removed from the " -"network. " -msgstr "" - -#: ../../Zotlabs/Module/Removeaccount.php:60 -msgid "" -"Remove this account, all its channels and all its channel clones from the " -"network" -msgstr "" - -#: ../../Zotlabs/Module/Removeaccount.php:60 -msgid "" -"By default only the instances of the channels located on this hub will be " -"removed from the network" -msgstr "" - -#: ../../Zotlabs/Module/Uexport.php:55 ../../Zotlabs/Module/Uexport.php:56 -msgid "Export Channel" -msgstr "" - -#: ../../Zotlabs/Module/Uexport.php:57 -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 "" - -#: ../../Zotlabs/Module/Uexport.php:58 -msgid "Export Content" -msgstr "" - -#: ../../Zotlabs/Module/Uexport.php:59 -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 "" - -#: ../../Zotlabs/Module/Uexport.php:60 -msgid "Export your posts from a given year." -msgstr "" - -#: ../../Zotlabs/Module/Uexport.php:62 -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 "" - -#: ../../Zotlabs/Module/Uexport.php:63 -#, php-format -msgid "" -"To select all posts for a given year, such as this year, visit %2$s" -msgstr "" - -#: ../../Zotlabs/Module/Uexport.php:64 -#, php-format -msgid "" -"To select all posts for a given month, such as January of this year, visit " -"%2$s" -msgstr "" - -#: ../../Zotlabs/Module/Uexport.php:65 -#, php-format -msgid "" -"These content files may be imported or restored by visiting " -"%2$s on any site containing your channel. For best results please import " -"or restore these in date order (oldest first)." -msgstr "" - -#: ../../Zotlabs/Module/Group.php:24 -msgid "Privacy group created." -msgstr "" - -#: ../../Zotlabs/Module/Group.php:30 -msgid "Could not create privacy group." -msgstr "" - -#: ../../Zotlabs/Module/Group.php:42 ../../Zotlabs/Module/Group.php:141 -#: ../../include/items.php:3944 -msgid "Privacy group not found." -msgstr "" - -#: ../../Zotlabs/Module/Group.php:58 -msgid "Privacy group updated." -msgstr "" - -#: ../../Zotlabs/Module/Group.php:90 -msgid "Create a group of channels." -msgstr "" - -#: ../../Zotlabs/Module/Group.php:91 ../../Zotlabs/Module/Group.php:184 -msgid "Privacy group name: " -msgstr "" - -#: ../../Zotlabs/Module/Group.php:93 ../../Zotlabs/Module/Group.php:187 -msgid "Members are visible to other channels" -msgstr "" - -#: ../../Zotlabs/Module/Group.php:111 -msgid "Privacy group removed." -msgstr "" - -#: ../../Zotlabs/Module/Group.php:113 -msgid "Unable to remove privacy group." -msgstr "" - -#: ../../Zotlabs/Module/Group.php:183 -msgid "Privacy group editor" -msgstr "" - -#: ../../Zotlabs/Module/Group.php:197 -msgid "Members" -msgstr "" - -#: ../../Zotlabs/Module/Group.php:199 -msgid "All Connected Channels" -msgstr "" - -#: ../../Zotlabs/Module/Group.php:231 -msgid "Click on a channel to add or remove." -msgstr "" - -#: ../../Zotlabs/Module/Service_limits.php:23 -msgid "No service class restrictions found." -msgstr "" - -#: ../../Zotlabs/Module/Thing.php:114 -msgid "Thing updated" -msgstr "" - -#: ../../Zotlabs/Module/Thing.php:166 -msgid "Object store: failed" -msgstr "" - -#: ../../Zotlabs/Module/Thing.php:170 -msgid "Thing added" -msgstr "" - -#: ../../Zotlabs/Module/Thing.php:196 -#, php-format -msgid "OBJ: %1$s %2$s %3$s" -msgstr "" - -#: ../../Zotlabs/Module/Thing.php:259 -msgid "Show Thing" -msgstr "" - -#: ../../Zotlabs/Module/Thing.php:266 -msgid "item not found." -msgstr "" - -#: ../../Zotlabs/Module/Thing.php:299 -msgid "Edit Thing" -msgstr "" - -#: ../../Zotlabs/Module/Thing.php:301 ../../Zotlabs/Module/Thing.php:355 -msgid "Select a profile" -msgstr "" - -#: ../../Zotlabs/Module/Thing.php:305 ../../Zotlabs/Module/Thing.php:358 -msgid "Post an activity" -msgstr "" - -#: ../../Zotlabs/Module/Thing.php:305 ../../Zotlabs/Module/Thing.php:358 -msgid "Only sends to viewers of the applicable profile" -msgstr "" - -#: ../../Zotlabs/Module/Thing.php:307 ../../Zotlabs/Module/Thing.php:360 -msgid "Name of thing e.g. something" -msgstr "" - -#: ../../Zotlabs/Module/Thing.php:309 ../../Zotlabs/Module/Thing.php:361 -msgid "URL of thing (optional)" -msgstr "" - -#: ../../Zotlabs/Module/Thing.php:311 ../../Zotlabs/Module/Thing.php:362 -msgid "URL for photo of thing (optional)" -msgstr "" - -#: ../../Zotlabs/Module/Thing.php:353 -msgid "Add Thing to your Profile" -msgstr "" - #: ../../Zotlabs/Module/Ratings.php:70 msgid "No ratings" msgstr "" @@ -6040,210 +3795,46 @@ msgstr "" msgid "Description: " msgstr "" -#: ../../Zotlabs/Module/Sharedwithme.php:98 -msgid "Files: shared with me" +#: ../../Zotlabs/Module/Attach.php:13 +msgid "Item not available." msgstr "" -#: ../../Zotlabs/Module/Sharedwithme.php:100 -msgid "NEW" -msgstr "" - -#: ../../Zotlabs/Module/Sharedwithme.php:103 -msgid "Remove all files" -msgstr "" - -#: ../../Zotlabs/Module/Sharedwithme.php:104 -msgid "Remove this file" -msgstr "" - -#: ../../Zotlabs/Module/Wiki.php:34 -msgid "Not found" -msgstr "" - -#: ../../Zotlabs/Module/Wiki.php:97 ../../Zotlabs/Lib/Apps.php:219 -#: ../../include/nav.php:111 ../../include/features.php:99 -#: ../../include/conversation.php:1735 ../../include/conversation.php:1738 -msgid "Wiki" -msgstr "" - -#: ../../Zotlabs/Module/Wiki.php:98 -msgid "Sandbox" -msgstr "" - -#: ../../Zotlabs/Module/Wiki.php:100 -msgid "" -"\"# Wiki Sandbox\\n\\nContent you **edit** and **preview** here *will not be " -"saved*.\"" -msgstr "" - -#: ../../Zotlabs/Module/Wiki.php:169 -msgid "Revision Comparison" -msgstr "" - -#: ../../Zotlabs/Module/Wiki.php:170 -msgid "Revert" -msgstr "" - -#: ../../Zotlabs/Module/Wiki.php:201 -msgid "Enter the name of your new wiki:" -msgstr "" - -#: ../../Zotlabs/Module/Wiki.php:202 -msgid "Enter the name of the new page:" -msgstr "" - -#: ../../Zotlabs/Module/Wiki.php:203 -msgid "Enter the new name:" -msgstr "" - -#: ../../Zotlabs/Module/Wiki.php:209 ../../include/conversation.php:1153 -msgid "Embed image from photo albums" -msgstr "" - -#: ../../Zotlabs/Module/Wiki.php:210 ../../include/conversation.php:1247 -msgid "Embed an image from your albums" -msgstr "" - -#: ../../Zotlabs/Module/Wiki.php:212 ../../include/conversation.php:1249 -#: ../../include/conversation.php:1296 -msgid "OK" -msgstr "" - -#: ../../Zotlabs/Module/Wiki.php:213 ../../include/conversation.php:1189 -msgid "Choose images to embed" -msgstr "" - -#: ../../Zotlabs/Module/Wiki.php:214 ../../include/conversation.php:1190 -msgid "Choose an album" -msgstr "" - -#: ../../Zotlabs/Module/Wiki.php:215 ../../include/conversation.php:1191 -msgid "Choose a different album..." -msgstr "" - -#: ../../Zotlabs/Module/Wiki.php:216 ../../include/conversation.php:1192 -msgid "Error getting album list" -msgstr "" - -#: ../../Zotlabs/Module/Wiki.php:217 ../../include/conversation.php:1193 -msgid "Error getting photo link" -msgstr "" - -#: ../../Zotlabs/Module/Wiki.php:218 ../../include/conversation.php:1194 -msgid "Error getting album" -msgstr "" - -#: ../../Zotlabs/Module/Sources.php:37 -msgid "Failed to create source. No channel selected." -msgstr "" - -#: ../../Zotlabs/Module/Sources.php:51 -msgid "Source created." -msgstr "" - -#: ../../Zotlabs/Module/Sources.php:64 -msgid "Source updated." -msgstr "" - -#: ../../Zotlabs/Module/Sources.php:90 -msgid "*" -msgstr "" - -#: ../../Zotlabs/Module/Sources.php:96 ../../include/features.php:195 -#: ../../include/widgets.php:672 -msgid "Channel Sources" -msgstr "" - -#: ../../Zotlabs/Module/Sources.php:97 -msgid "Manage remote sources of content for your channel." -msgstr "" - -#: ../../Zotlabs/Module/Sources.php:98 ../../Zotlabs/Module/Sources.php:108 -msgid "New Source" -msgstr "" - -#: ../../Zotlabs/Module/Sources.php:109 ../../Zotlabs/Module/Sources.php:143 -msgid "" -"Import all or selected content from the following channel into this channel " -"and distribute it according to your channel settings." -msgstr "" - -#: ../../Zotlabs/Module/Sources.php:110 ../../Zotlabs/Module/Sources.php:144 -msgid "Only import content with these words (one per line)" -msgstr "" - -#: ../../Zotlabs/Module/Sources.php:110 ../../Zotlabs/Module/Sources.php:144 -msgid "Leave blank to import all public content" -msgstr "" - -#: ../../Zotlabs/Module/Sources.php:111 ../../Zotlabs/Module/Sources.php:148 -msgid "Channel Name" -msgstr "" - -#: ../../Zotlabs/Module/Sources.php:112 ../../Zotlabs/Module/Sources.php:147 -msgid "" -"Add the following categories to posts imported from this source (comma " -"separated)" -msgstr "" - -#: ../../Zotlabs/Module/Sources.php:133 ../../Zotlabs/Module/Sources.php:161 -msgid "Source not found." -msgstr "" - -#: ../../Zotlabs/Module/Sources.php:140 -msgid "Edit Source" -msgstr "" - -#: ../../Zotlabs/Module/Sources.php:141 -msgid "Delete Source" -msgstr "" - -#: ../../Zotlabs/Module/Sources.php:169 -msgid "Source removed" -msgstr "" - -#: ../../Zotlabs/Module/Sources.php:171 -msgid "Unable to remove source." -msgstr "" - -#: ../../Zotlabs/Module/Subthread.php:118 +#: ../../Zotlabs/Module/Mood.php:67 ../../include/conversation.php:260 #, php-format -msgid "%1$s is following %2$s's %3$s" +msgctxt "mood" +msgid "%1$s is %2$s" msgstr "" -#: ../../Zotlabs/Module/Subthread.php:120 -#, php-format -msgid "%1$s stopped following %2$s's %3$s" +#: ../../Zotlabs/Module/Mood.php:135 ../../Zotlabs/Lib/Apps.php:227 +msgid "Mood" msgstr "" -#: ../../Zotlabs/Module/Suggest.php:39 -msgid "" -"No suggestions available. If this is a new site, please try again in 24 " -"hours." +#: ../../Zotlabs/Module/Mood.php:136 +msgid "Set your current mood and tell your friends" msgstr "" -#: ../../Zotlabs/Module/Suggest.php:58 ../../include/widgets.php:149 -msgid "Ignore/Hide" +#: ../../Zotlabs/Module/Notify.php:57 +#: ../../Zotlabs/Module/Notifications.php:35 +msgid "No more system notifications." msgstr "" -#: ../../Zotlabs/Module/Tagger.php:55 ../../include/bbcode.php:274 -msgid "post" -msgstr "" - -#: ../../Zotlabs/Module/Tagger.php:57 ../../include/text.php:1992 -#: ../../include/conversation.php:150 -msgid "comment" -msgstr "" - -#: ../../Zotlabs/Module/Tagger.php:100 -#, php-format -msgid "%1$s tagged %2$s's %3$s with %4$s" +#: ../../Zotlabs/Module/Notify.php:61 +#: ../../Zotlabs/Module/Notifications.php:39 +msgid "System Notifications" msgstr "" #: ../../Zotlabs/Module/Photos.php:82 msgid "Page owner information could not be retrieved." msgstr "" +#: ../../Zotlabs/Module/Photos.php:97 ../../Zotlabs/Module/Photos.php:734 +#: ../../Zotlabs/Module/Profile_photo.php:115 +#: ../../Zotlabs/Module/Profile_photo.php:219 +#: ../../extend/addon/addon/openclipatar/openclipatar.php:225 +#: ../../include/photo/photo_driver.php:728 +msgid "Profile Photos" +msgstr "" + #: ../../Zotlabs/Module/Photos.php:103 ../../Zotlabs/Module/Photos.php:129 msgid "Album not found." msgstr "" @@ -6322,12 +3913,12 @@ msgid "Show Oldest First" msgstr "" #: ../../Zotlabs/Module/Photos.php:783 ../../Zotlabs/Module/Photos.php:1337 -#: ../../Zotlabs/Module/Embedphotos.php:139 ../../include/widgets.php:1676 +#: ../../Zotlabs/Module/Embedphotos.php:139 ../../include/widgets.php:1748 msgid "View Photo" msgstr "" #: ../../Zotlabs/Module/Photos.php:814 -#: ../../Zotlabs/Module/Embedphotos.php:155 ../../include/widgets.php:1693 +#: ../../Zotlabs/Module/Embedphotos.php:155 ../../include/widgets.php:1765 msgid "Edit Album" msgstr "" @@ -6351,10 +3942,24 @@ msgstr "" msgid "Private Photo" msgstr "" +#: ../../Zotlabs/Module/Photos.php:940 ../../Zotlabs/Module/Cal.php:336 +#: ../../Zotlabs/Module/Cal.php:343 ../../Zotlabs/Module/Events.php:680 +#: ../../Zotlabs/Module/Events.php:689 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:846 +msgid "Previous" +msgstr "" + #: ../../Zotlabs/Module/Photos.php:944 msgid "View Full Size" msgstr "" +#: ../../Zotlabs/Module/Photos.php:949 ../../Zotlabs/Module/Setup.php:264 +#: ../../Zotlabs/Module/Cal.php:337 ../../Zotlabs/Module/Cal.php:344 +#: ../../Zotlabs/Module/Events.php:681 ../../Zotlabs/Module/Events.php:690 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:847 +msgid "Next" +msgstr "" + #: ../../Zotlabs/Module/Photos.php:1033 msgid "Edit photo" msgstr "" @@ -6403,70 +4008,83 @@ msgstr "" msgid "I don't like this (toggle)" msgstr "" -#: ../../Zotlabs/Module/Photos.php:1079 ../../Zotlabs/Lib/ThreadItem.php:405 -#: ../../include/conversation.php:741 +#: ../../Zotlabs/Module/Photos.php:1078 ../../Zotlabs/Module/Blocks.php:161 +#: ../../Zotlabs/Module/Layouts.php:193 ../../Zotlabs/Module/Webpages.php:241 +#: ../../extend/addon/addon/cdav/include/widgets.php:123 +#: ../../include/conversation.php:1248 +msgid "Share" +msgstr "" + +#: ../../Zotlabs/Module/Photos.php:1079 ../../Zotlabs/Lib/ThreadItem.php:409 +#: ../../include/conversation.php:757 msgid "Please wait" msgstr "" #: ../../Zotlabs/Module/Photos.php:1095 ../../Zotlabs/Module/Photos.php:1213 -#: ../../Zotlabs/Lib/ThreadItem.php:722 +#: ../../Zotlabs/Lib/ThreadItem.php:726 msgid "This is you" msgstr "" #: ../../Zotlabs/Module/Photos.php:1097 ../../Zotlabs/Module/Photos.php:1215 -#: ../../Zotlabs/Lib/ThreadItem.php:724 ../../include/js_strings.php:6 +#: ../../Zotlabs/Lib/ThreadItem.php:728 ../../include/js_strings.php:6 msgid "Comment" msgstr "" -#: ../../Zotlabs/Module/Photos.php:1113 ../../include/conversation.php:577 +#: ../../Zotlabs/Module/Photos.php:1099 ../../Zotlabs/Module/Webpages.php:247 +#: ../../Zotlabs/Module/Events.php:471 ../../Zotlabs/Lib/ThreadItem.php:738 +#: ../../include/page_widgets.php:43 ../../include/conversation.php:1217 +msgid "Preview" +msgstr "" + +#: ../../Zotlabs/Module/Photos.php:1113 ../../include/conversation.php:593 msgctxt "title" msgid "Likes" msgstr "" -#: ../../Zotlabs/Module/Photos.php:1113 ../../include/conversation.php:577 +#: ../../Zotlabs/Module/Photos.php:1113 ../../include/conversation.php:593 msgctxt "title" msgid "Dislikes" msgstr "" -#: ../../Zotlabs/Module/Photos.php:1114 ../../include/conversation.php:578 +#: ../../Zotlabs/Module/Photos.php:1114 ../../include/conversation.php:594 msgctxt "title" msgid "Agree" msgstr "" -#: ../../Zotlabs/Module/Photos.php:1114 ../../include/conversation.php:578 +#: ../../Zotlabs/Module/Photos.php:1114 ../../include/conversation.php:594 msgctxt "title" msgid "Disagree" msgstr "" -#: ../../Zotlabs/Module/Photos.php:1114 ../../include/conversation.php:578 +#: ../../Zotlabs/Module/Photos.php:1114 ../../include/conversation.php:594 msgctxt "title" msgid "Abstain" msgstr "" -#: ../../Zotlabs/Module/Photos.php:1115 ../../include/conversation.php:579 +#: ../../Zotlabs/Module/Photos.php:1115 ../../include/conversation.php:595 msgctxt "title" msgid "Attending" msgstr "" -#: ../../Zotlabs/Module/Photos.php:1115 ../../include/conversation.php:579 +#: ../../Zotlabs/Module/Photos.php:1115 ../../include/conversation.php:595 msgctxt "title" msgid "Not attending" msgstr "" -#: ../../Zotlabs/Module/Photos.php:1115 ../../include/conversation.php:579 +#: ../../Zotlabs/Module/Photos.php:1115 ../../include/conversation.php:595 msgctxt "title" msgid "Might attend" msgstr "" #: ../../Zotlabs/Module/Photos.php:1132 ../../Zotlabs/Module/Photos.php:1144 #: ../../Zotlabs/Lib/ThreadItem.php:186 ../../Zotlabs/Lib/ThreadItem.php:198 -#: ../../include/conversation.php:1763 +#: ../../include/conversation.php:1783 msgid "View all" msgstr "" #: ../../Zotlabs/Module/Photos.php:1136 ../../Zotlabs/Lib/ThreadItem.php:190 -#: ../../include/conversation.php:1787 ../../include/taxonomy.php:403 -#: ../../include/channel.php:1190 +#: ../../include/channel.php:1190 ../../include/taxonomy.php:403 +#: ../../include/conversation.php:1807 msgctxt "noun" msgid "Like" msgid_plural "Likes" @@ -6474,7 +4092,7 @@ msgstr[0] "" msgstr[1] "" #: ../../Zotlabs/Module/Photos.php:1141 ../../Zotlabs/Lib/ThreadItem.php:195 -#: ../../include/conversation.php:1790 +#: ../../include/conversation.php:1810 msgctxt "noun" msgid "Dislike" msgid_plural "Dislikes" @@ -6493,18 +4111,18 @@ msgstr "" msgid "Map" msgstr "" -#: ../../Zotlabs/Module/Photos.php:1263 ../../Zotlabs/Lib/ThreadItem.php:394 +#: ../../Zotlabs/Module/Photos.php:1263 ../../Zotlabs/Lib/ThreadItem.php:398 msgctxt "noun" msgid "Likes" msgstr "" -#: ../../Zotlabs/Module/Photos.php:1264 ../../Zotlabs/Lib/ThreadItem.php:395 +#: ../../Zotlabs/Module/Photos.php:1264 ../../Zotlabs/Lib/ThreadItem.php:399 msgctxt "noun" msgid "Dislikes" msgstr "" -#: ../../Zotlabs/Module/Photos.php:1269 ../../Zotlabs/Lib/ThreadItem.php:400 -#: ../../include/acl_selectors.php:184 +#: ../../Zotlabs/Module/Photos.php:1269 ../../Zotlabs/Lib/ThreadItem.php:404 +#: ../../include/acl_selectors.php:210 msgid "Close" msgstr "" @@ -6517,24 +4135,2584 @@ msgstr "" msgid "Recent Photos" msgstr "" -#: ../../Zotlabs/Module/Profperm.php:34 ../../Zotlabs/Module/Profperm.php:63 -msgid "Invalid profile identifier." +#: ../../Zotlabs/Module/Setup.php:176 +msgid "$Projectname Server - Setup" msgstr "" -#: ../../Zotlabs/Module/Profperm.php:115 -msgid "Profile Visibility Editor" +#: ../../Zotlabs/Module/Setup.php:180 +msgid "Could not connect to database." msgstr "" -#: ../../Zotlabs/Module/Profperm.php:117 ../../include/channel.php:1282 -msgid "Profile" +#: ../../Zotlabs/Module/Setup.php:184 +msgid "" +"Could not connect to specified site URL. Possible SSL certificate or DNS " +"issue." msgstr "" -#: ../../Zotlabs/Module/Profperm.php:119 -msgid "Click on a contact to add or remove." +#: ../../Zotlabs/Module/Setup.php:191 +msgid "Could not create table." msgstr "" -#: ../../Zotlabs/Module/Profperm.php:128 -msgid "Visible To" +#: ../../Zotlabs/Module/Setup.php:196 +msgid "Your site database has been installed." +msgstr "" + +#: ../../Zotlabs/Module/Setup.php:200 +msgid "" +"You may need to import the file \"install/schema_xxx.sql\" manually using a " +"database client." +msgstr "" + +#: ../../Zotlabs/Module/Setup.php:201 ../../Zotlabs/Module/Setup.php:263 +#: ../../Zotlabs/Module/Setup.php:745 +msgid "Please see the file \"install/INSTALL.txt\"." +msgstr "" + +#: ../../Zotlabs/Module/Setup.php:260 +msgid "System check" +msgstr "" + +#: ../../Zotlabs/Module/Setup.php:265 +msgid "Check again" +msgstr "" + +#: ../../Zotlabs/Module/Setup.php:287 +msgid "Database connection" +msgstr "" + +#: ../../Zotlabs/Module/Setup.php:288 +msgid "" +"In order to install $Projectname we need to know how to connect to your " +"database." +msgstr "" + +#: ../../Zotlabs/Module/Setup.php:289 +msgid "" +"Please contact your hosting provider or site administrator if you have " +"questions about these settings." +msgstr "" + +#: ../../Zotlabs/Module/Setup.php:290 +msgid "" +"The database you specify below should already exist. If it does not, please " +"create it before continuing." +msgstr "" + +#: ../../Zotlabs/Module/Setup.php:294 +msgid "Database Server Name" +msgstr "" + +#: ../../Zotlabs/Module/Setup.php:294 +msgid "Default is 127.0.0.1" +msgstr "" + +#: ../../Zotlabs/Module/Setup.php:295 +msgid "Database Port" +msgstr "" + +#: ../../Zotlabs/Module/Setup.php:295 +msgid "Communication port number - use 0 for default" +msgstr "" + +#: ../../Zotlabs/Module/Setup.php:296 +msgid "Database Login Name" +msgstr "" + +#: ../../Zotlabs/Module/Setup.php:297 +msgid "Database Login Password" +msgstr "" + +#: ../../Zotlabs/Module/Setup.php:298 +msgid "Database Name" +msgstr "" + +#: ../../Zotlabs/Module/Setup.php:299 +msgid "Database Type" +msgstr "" + +#: ../../Zotlabs/Module/Setup.php:301 ../../Zotlabs/Module/Setup.php:347 +msgid "Site administrator email address" +msgstr "" + +#: ../../Zotlabs/Module/Setup.php:301 ../../Zotlabs/Module/Setup.php:347 +msgid "" +"Your account email address must match this in order to use the web admin " +"panel." +msgstr "" + +#: ../../Zotlabs/Module/Setup.php:302 ../../Zotlabs/Module/Setup.php:349 +msgid "Website URL" +msgstr "" + +#: ../../Zotlabs/Module/Setup.php:302 ../../Zotlabs/Module/Setup.php:349 +msgid "Please use SSL (https) URL if available." +msgstr "" + +#: ../../Zotlabs/Module/Setup.php:303 ../../Zotlabs/Module/Setup.php:353 +msgid "Please select a default timezone for your website" +msgstr "" + +#: ../../Zotlabs/Module/Setup.php:336 +msgid "Site settings" +msgstr "" + +#: ../../Zotlabs/Module/Setup.php:392 +msgid "PHP version 5.5 or greater is required." +msgstr "" + +#: ../../Zotlabs/Module/Setup.php:393 +msgid "PHP version" +msgstr "" + +#: ../../Zotlabs/Module/Setup.php:409 +msgid "Could not find a command line version of PHP in the web server PATH." +msgstr "" + +#: ../../Zotlabs/Module/Setup.php:410 +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 "" + +#: ../../Zotlabs/Module/Setup.php:414 +msgid "PHP executable path" +msgstr "" + +#: ../../Zotlabs/Module/Setup.php:414 +msgid "" +"Enter full path to php executable. You can leave this blank to continue the " +"installation." +msgstr "" + +#: ../../Zotlabs/Module/Setup.php:419 +msgid "Command line PHP" +msgstr "" + +#: ../../Zotlabs/Module/Setup.php:429 +msgid "" +"Unable to check command line PHP, as shell_exec() is disabled. This is " +"required." +msgstr "" + +#: ../../Zotlabs/Module/Setup.php:432 +msgid "" +"The command line version of PHP on your system does not have " +"\"register_argc_argv\" enabled." +msgstr "" + +#: ../../Zotlabs/Module/Setup.php:433 +msgid "This is required for message delivery to work." +msgstr "" + +#: ../../Zotlabs/Module/Setup.php:436 +msgid "PHP register_argc_argv" +msgstr "" + +#: ../../Zotlabs/Module/Setup.php:454 +#, 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 "" + +#: ../../Zotlabs/Module/Setup.php:459 +msgid "You can adjust these settings in the server php.ini file." +msgstr "" + +#: ../../Zotlabs/Module/Setup.php:461 +msgid "PHP upload limits" +msgstr "" + +#: ../../Zotlabs/Module/Setup.php:484 +msgid "" +"Error: the \"openssl_pkey_new\" function on this system is not able to " +"generate encryption keys" +msgstr "" + +#: ../../Zotlabs/Module/Setup.php:485 +msgid "" +"If running under Windows, please see \"http://www.php.net/manual/en/openssl." +"installation.php\"." +msgstr "" + +#: ../../Zotlabs/Module/Setup.php:488 +msgid "Generate encryption keys" +msgstr "" + +#: ../../Zotlabs/Module/Setup.php:500 +msgid "libCurl PHP module" +msgstr "" + +#: ../../Zotlabs/Module/Setup.php:501 +msgid "GD graphics PHP module" +msgstr "" + +#: ../../Zotlabs/Module/Setup.php:502 +msgid "OpenSSL PHP module" +msgstr "" + +#: ../../Zotlabs/Module/Setup.php:503 +msgid "PDO database PHP module" +msgstr "" + +#: ../../Zotlabs/Module/Setup.php:504 +msgid "mb_string PHP module" +msgstr "" + +#: ../../Zotlabs/Module/Setup.php:505 +msgid "xml PHP module" +msgstr "" + +#: ../../Zotlabs/Module/Setup.php:509 ../../Zotlabs/Module/Setup.php:511 +msgid "Apache mod_rewrite module" +msgstr "" + +#: ../../Zotlabs/Module/Setup.php:509 +msgid "" +"Error: Apache webserver mod-rewrite module is required but not installed." +msgstr "" + +#: ../../Zotlabs/Module/Setup.php:515 ../../Zotlabs/Module/Setup.php:518 +msgid "exec" +msgstr "" + +#: ../../Zotlabs/Module/Setup.php:515 +msgid "" +"Error: exec is required but is either not installed or has been disabled in " +"php.ini" +msgstr "" + +#: ../../Zotlabs/Module/Setup.php:521 ../../Zotlabs/Module/Setup.php:524 +msgid "shell_exec" +msgstr "" + +#: ../../Zotlabs/Module/Setup.php:521 +msgid "" +"Error: shell_exec is required but is either not installed or has been " +"disabled in php.ini" +msgstr "" + +#: ../../Zotlabs/Module/Setup.php:529 +msgid "Error: libCURL PHP module required but not installed." +msgstr "" + +#: ../../Zotlabs/Module/Setup.php:533 +msgid "" +"Error: GD graphics PHP module with JPEG support required but not installed." +msgstr "" + +#: ../../Zotlabs/Module/Setup.php:537 +msgid "Error: openssl PHP module required but not installed." +msgstr "" + +#: ../../Zotlabs/Module/Setup.php:541 +msgid "Error: PDO database PHP module required but not installed." +msgstr "" + +#: ../../Zotlabs/Module/Setup.php:545 +msgid "Error: mb_string PHP module required but not installed." +msgstr "" + +#: ../../Zotlabs/Module/Setup.php:549 +msgid "Error: xml PHP module required for DAV but not installed." +msgstr "" + +#: ../../Zotlabs/Module/Setup.php:567 +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 "" + +#: ../../Zotlabs/Module/Setup.php:568 +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 "" + +#: ../../Zotlabs/Module/Setup.php:569 +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 "" + +#: ../../Zotlabs/Module/Setup.php:570 +msgid "" +"You can alternatively skip this procedure and perform a manual installation. " +"Please see the file \"install/INSTALL.txt\" for instructions." +msgstr "" + +#: ../../Zotlabs/Module/Setup.php:573 +msgid ".htconfig.php is writable" +msgstr "" + +#: ../../Zotlabs/Module/Setup.php:587 +msgid "" +"This software uses the Smarty3 template engine to render its web views. " +"Smarty3 compiles templates to PHP to speed up rendering." +msgstr "" + +#: ../../Zotlabs/Module/Setup.php:588 +#, php-format +msgid "" +"In order to store these compiled templates, the web server needs to have " +"write access to the directory %s under the top level web folder." +msgstr "" + +#: ../../Zotlabs/Module/Setup.php:589 ../../Zotlabs/Module/Setup.php:610 +msgid "" +"Please ensure that the user that your web server runs as (e.g. www-data) has " +"write access to this folder." +msgstr "" + +#: ../../Zotlabs/Module/Setup.php:590 +#, 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 "" + +#: ../../Zotlabs/Module/Setup.php:593 +#, php-format +msgid "%s is writable" +msgstr "" + +#: ../../Zotlabs/Module/Setup.php:609 +msgid "" +"This software uses the store directory to save uploaded files. The web " +"server needs to have write access to the store directory under the top level " +"web folder" +msgstr "" + +#: ../../Zotlabs/Module/Setup.php:613 +msgid "store is writable" +msgstr "" + +#: ../../Zotlabs/Module/Setup.php:646 +msgid "" +"SSL certificate cannot be validated. Fix certificate or disable https access " +"to this site." +msgstr "" + +#: ../../Zotlabs/Module/Setup.php:647 +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 "" + +#: ../../Zotlabs/Module/Setup.php:648 +msgid "" +"This restriction is incorporated because public posts from you may for " +"example contain references to images on your own hub." +msgstr "" + +#: ../../Zotlabs/Module/Setup.php:649 +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 "" + +#: ../../Zotlabs/Module/Setup.php:650 +msgid "" +"This can cause usability issues elsewhere (not just on your own site) so we " +"must insist on this requirement." +msgstr "" + +#: ../../Zotlabs/Module/Setup.php:651 +msgid "" +"Providers are available that issue free certificates which are browser-valid." +msgstr "" + +#: ../../Zotlabs/Module/Setup.php:653 +msgid "" +"If you are confident that the certificate is valid and signed by a trusted " +"authority, check to see if you have failed to install an intermediate cert. " +"These are not normally required by browsers, but are required for server-to-" +"server communications." +msgstr "" + +#: ../../Zotlabs/Module/Setup.php:655 +msgid "SSL certificate validation" +msgstr "" + +#: ../../Zotlabs/Module/Setup.php:661 +msgid "" +"Url rewrite in .htaccess is not working. Check your server configuration." +"Test: " +msgstr "" + +#: ../../Zotlabs/Module/Setup.php:664 +msgid "Url rewrite is working" +msgstr "" + +#: ../../Zotlabs/Module/Setup.php:678 +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 "" + +#: ../../Zotlabs/Module/Setup.php:702 +#: ../../extend/addon/addon/cdav/cdav.php:41 +#: ../../extend/addon/addon/rendezvous/rendezvous.php:352 +msgid "Errors encountered creating database tables." +msgstr "" + +#: ../../Zotlabs/Module/Setup.php:743 +msgid "

        What next

        " +msgstr "" + +#: ../../Zotlabs/Module/Setup.php:744 +msgid "" +"IMPORTANT: You will need to [manually] setup a scheduled task for the poller." +msgstr "" + +#: ../../Zotlabs/Module/Editpost.php:35 +msgid "Item is not editable" +msgstr "" + +#: ../../Zotlabs/Module/Regdir.php:49 ../../Zotlabs/Module/Dirsearch.php:25 +msgid "This site is not a directory server" +msgstr "" + +#: ../../Zotlabs/Module/New_channel.php:140 +msgid "Create Channel" +msgstr "" + +#: ../../Zotlabs/Module/New_channel.php:141 +msgid "" +"A channel is your identity on this network. It can represent a person, a " +"blog, or a forum to name a few. Channels can make connections with other " +"channels to share information with highly detailed permissions." +msgstr "" + +#: ../../Zotlabs/Module/New_channel.php:142 +msgid "" +"or import an existing channel from another location." +msgstr "" + +#: ../../Zotlabs/Module/Notifications.php:40 ../../include/nav.php:194 +msgid "Mark all system notifications seen" +msgstr "" + +#: ../../Zotlabs/Module/Poke.php:168 ../../Zotlabs/Lib/Apps.php:228 +#: ../../include/conversation.php:975 +msgid "Poke" +msgstr "" + +#: ../../Zotlabs/Module/Poke.php:169 +msgid "Poke somebody" +msgstr "" + +#: ../../Zotlabs/Module/Poke.php:172 +msgid "Poke/Prod" +msgstr "" + +#: ../../Zotlabs/Module/Poke.php:173 +msgid "Poke, prod or do other things to somebody" +msgstr "" + +#: ../../Zotlabs/Module/Poke.php:180 +msgid "Recipient" +msgstr "" + +#: ../../Zotlabs/Module/Poke.php:181 +msgid "Choose what you wish to do to recipient" +msgstr "" + +#: ../../Zotlabs/Module/Poke.php:184 ../../Zotlabs/Module/Poke.php:185 +msgid "Make this post private" +msgstr "" + +#: ../../Zotlabs/Module/Profiles.php:24 ../../Zotlabs/Module/Profiles.php:183 +#: ../../Zotlabs/Module/Profiles.php:240 ../../Zotlabs/Module/Profiles.php:619 +#: ../../extend/addon/addon/friendica/dfrn_confirm.php:62 +msgid "Profile not found." +msgstr "" + +#: ../../Zotlabs/Module/Profiles.php:44 +msgid "Profile deleted." +msgstr "" + +#: ../../Zotlabs/Module/Profiles.php:68 ../../Zotlabs/Module/Profiles.php:104 +msgid "Profile-" +msgstr "" + +#: ../../Zotlabs/Module/Profiles.php:89 ../../Zotlabs/Module/Profiles.php:126 +msgid "New profile created." +msgstr "" + +#: ../../Zotlabs/Module/Profiles.php:110 +msgid "Profile unavailable to clone." +msgstr "" + +#: ../../Zotlabs/Module/Profiles.php:145 +msgid "Profile unavailable to export." +msgstr "" + +#: ../../Zotlabs/Module/Profiles.php:250 +msgid "Profile Name is required." +msgstr "" + +#: ../../Zotlabs/Module/Profiles.php:421 +msgid "Marital Status" +msgstr "" + +#: ../../Zotlabs/Module/Profiles.php:425 +msgid "Romantic Partner" +msgstr "" + +#: ../../Zotlabs/Module/Profiles.php:429 ../../Zotlabs/Module/Profiles.php:730 +msgid "Likes" +msgstr "" + +#: ../../Zotlabs/Module/Profiles.php:433 ../../Zotlabs/Module/Profiles.php:731 +msgid "Dislikes" +msgstr "" + +#: ../../Zotlabs/Module/Profiles.php:437 ../../Zotlabs/Module/Profiles.php:738 +msgid "Work/Employment" +msgstr "" + +#: ../../Zotlabs/Module/Profiles.php:440 +msgid "Religion" +msgstr "" + +#: ../../Zotlabs/Module/Profiles.php:444 +msgid "Political Views" +msgstr "" + +#: ../../Zotlabs/Module/Profiles.php:448 +#: ../../extend/addon/addon/openid/MysqlProvider.php:74 +msgid "Gender" +msgstr "" + +#: ../../Zotlabs/Module/Profiles.php:452 +msgid "Sexual Preference" +msgstr "" + +#: ../../Zotlabs/Module/Profiles.php:456 +msgid "Homepage" +msgstr "" + +#: ../../Zotlabs/Module/Profiles.php:460 +msgid "Interests" +msgstr "" + +#: ../../Zotlabs/Module/Profiles.php:554 +msgid "Profile updated." +msgstr "" + +#: ../../Zotlabs/Module/Profiles.php:638 +msgid "Hide your connections list from viewers of this profile" +msgstr "" + +#: ../../Zotlabs/Module/Profiles.php:680 +msgid "Edit Profile Details" +msgstr "" + +#: ../../Zotlabs/Module/Profiles.php:682 +msgid "View this profile" +msgstr "" + +#: ../../Zotlabs/Module/Profiles.php:683 ../../Zotlabs/Module/Profiles.php:765 +#: ../../include/channel.php:983 +msgid "Edit visibility" +msgstr "" + +#: ../../Zotlabs/Module/Profiles.php:684 +msgid "Profile Tools" +msgstr "" + +#: ../../Zotlabs/Module/Profiles.php:685 +msgid "Change cover photo" +msgstr "" + +#: ../../Zotlabs/Module/Profiles.php:686 ../../include/channel.php:954 +msgid "Change profile photo" +msgstr "" + +#: ../../Zotlabs/Module/Profiles.php:687 +msgid "Create a new profile using these settings" +msgstr "" + +#: ../../Zotlabs/Module/Profiles.php:688 +msgid "Clone this profile" +msgstr "" + +#: ../../Zotlabs/Module/Profiles.php:689 +msgid "Delete this profile" +msgstr "" + +#: ../../Zotlabs/Module/Profiles.php:690 +msgid "Add profile things" +msgstr "" + +#: ../../Zotlabs/Module/Profiles.php:691 ../../include/widgets.php:105 +#: ../../include/conversation.php:1585 +msgid "Personal" +msgstr "" + +#: ../../Zotlabs/Module/Profiles.php:693 +msgid "Relation" +msgstr "" + +#: ../../Zotlabs/Module/Profiles.php:694 ../../include/datetime.php:55 +msgid "Miscellaneous" +msgstr "" + +#: ../../Zotlabs/Module/Profiles.php:696 +msgid "Import profile from file" +msgstr "" + +#: ../../Zotlabs/Module/Profiles.php:697 +msgid "Export profile to file" +msgstr "" + +#: ../../Zotlabs/Module/Profiles.php:698 +msgid "Your gender" +msgstr "" + +#: ../../Zotlabs/Module/Profiles.php:699 +msgid "Marital status" +msgstr "" + +#: ../../Zotlabs/Module/Profiles.php:700 +msgid "Sexual preference" +msgstr "" + +#: ../../Zotlabs/Module/Profiles.php:703 +msgid "Profile name" +msgstr "" + +#: ../../Zotlabs/Module/Profiles.php:705 +msgid "This is your default profile." +msgstr "" + +#: ../../Zotlabs/Module/Profiles.php:707 +msgid "Your full name" +msgstr "" + +#: ../../Zotlabs/Module/Profiles.php:708 +msgid "Title/Description" +msgstr "" + +#: ../../Zotlabs/Module/Profiles.php:711 +msgid "Street address" +msgstr "" + +#: ../../Zotlabs/Module/Profiles.php:712 +msgid "Locality/City" +msgstr "" + +#: ../../Zotlabs/Module/Profiles.php:713 +msgid "Region/State" +msgstr "" + +#: ../../Zotlabs/Module/Profiles.php:714 +msgid "Postal/Zip code" +msgstr "" + +#: ../../Zotlabs/Module/Profiles.php:715 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1161 +msgid "Country" +msgstr "" + +#: ../../Zotlabs/Module/Profiles.php:720 +msgid "Who (if applicable)" +msgstr "" + +#: ../../Zotlabs/Module/Profiles.php:720 +msgid "Examples: cathy123, Cathy Williams, cathy@example.com" +msgstr "" + +#: ../../Zotlabs/Module/Profiles.php:721 +msgid "Since (date)" +msgstr "" + +#: ../../Zotlabs/Module/Profiles.php:724 +msgid "Tell us about yourself" +msgstr "" + +#: ../../Zotlabs/Module/Profiles.php:725 +#: ../../extend/addon/addon/openid/MysqlProvider.php:68 +msgid "Homepage URL" +msgstr "" + +#: ../../Zotlabs/Module/Profiles.php:726 +msgid "Hometown" +msgstr "" + +#: ../../Zotlabs/Module/Profiles.php:727 +msgid "Political views" +msgstr "" + +#: ../../Zotlabs/Module/Profiles.php:728 +msgid "Religious views" +msgstr "" + +#: ../../Zotlabs/Module/Profiles.php:729 +msgid "Keywords used in directory listings" +msgstr "" + +#: ../../Zotlabs/Module/Profiles.php:729 +msgid "Example: fishing photography software" +msgstr "" + +#: ../../Zotlabs/Module/Profiles.php:732 +msgid "Musical interests" +msgstr "" + +#: ../../Zotlabs/Module/Profiles.php:733 +msgid "Books, literature" +msgstr "" + +#: ../../Zotlabs/Module/Profiles.php:734 +msgid "Television" +msgstr "" + +#: ../../Zotlabs/Module/Profiles.php:735 +msgid "Film/Dance/Culture/Entertainment" +msgstr "" + +#: ../../Zotlabs/Module/Profiles.php:736 +msgid "Hobbies/Interests" +msgstr "" + +#: ../../Zotlabs/Module/Profiles.php:737 +msgid "Love/Romance" +msgstr "" + +#: ../../Zotlabs/Module/Profiles.php:739 +msgid "School/Education" +msgstr "" + +#: ../../Zotlabs/Module/Profiles.php:740 +msgid "Contact information and social networks" +msgstr "" + +#: ../../Zotlabs/Module/Profiles.php:741 +msgid "My other channels" +msgstr "" + +#: ../../Zotlabs/Module/Profiles.php:761 ../../include/channel.php:979 +msgid "Profile Image" +msgstr "" + +#: ../../Zotlabs/Module/Profiles.php:771 ../../include/channel.php:961 +#: ../../include/nav.php:91 +msgid "Edit Profiles" +msgstr "" + +#: ../../Zotlabs/Module/Oexchange.php:27 +msgid "Unable to find your hub." +msgstr "" + +#: ../../Zotlabs/Module/Oexchange.php:41 +msgid "Post successful." +msgstr "" + +#: ../../Zotlabs/Module/Pconfig.php:26 ../../Zotlabs/Module/Pconfig.php:59 +msgid "This setting requires special processing and editing has been blocked." +msgstr "" + +#: ../../Zotlabs/Module/Pconfig.php:48 +msgid "Configuration Editor" +msgstr "" + +#: ../../Zotlabs/Module/Pconfig.php:49 +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 "" + +#: ../../Zotlabs/Module/Blocks.php:154 ../../include/text.php:2270 +msgid "Blocks" +msgstr "" + +#: ../../Zotlabs/Module/Blocks.php:156 +msgid "Block Title" +msgstr "" + +#: ../../Zotlabs/Module/Layouts.php:183 ../../include/text.php:2272 +msgid "Layouts" +msgstr "" + +#: ../../Zotlabs/Module/Layouts.php:185 ../../Zotlabs/Lib/Apps.php:225 +#: ../../include/nav.php:162 ../../include/help.php:53 +#: ../../include/help.php:59 +msgid "Help" +msgstr "" + +#: ../../Zotlabs/Module/Layouts.php:185 +msgid "Comanche page description language help" +msgstr "" + +#: ../../Zotlabs/Module/Layouts.php:189 +msgid "Layout Description" +msgstr "" + +#: ../../Zotlabs/Module/Layouts.php:194 +msgid "Download PDL file" +msgstr "" + +#: ../../Zotlabs/Module/Rate.php:156 +msgid "Website:" +msgstr "" + +#: ../../Zotlabs/Module/Rate.php:159 +#, php-format +msgid "Remote Channel [%s] (not yet known on this site)" +msgstr "" + +#: ../../Zotlabs/Module/Rate.php:160 +msgid "Rating (this information is public)" +msgstr "" + +#: ../../Zotlabs/Module/Rate.php:161 +msgid "Optionally explain your rating (this information is public)" +msgstr "" + +#: ../../Zotlabs/Module/Like.php:19 +msgid "Like/Dislike" +msgstr "" + +#: ../../Zotlabs/Module/Like.php:24 +msgid "This action is restricted to members." +msgstr "" + +#: ../../Zotlabs/Module/Like.php:25 +msgid "" +"Please login with your $Projectname ID or register as a new $Projectname member to continue." +msgstr "" + +#: ../../Zotlabs/Module/Like.php:105 ../../Zotlabs/Module/Like.php:131 +#: ../../Zotlabs/Module/Like.php:169 +msgid "Invalid request." +msgstr "" + +#: ../../Zotlabs/Module/Like.php:117 ../../include/conversation.php:126 +msgid "channel" +msgstr "" + +#: ../../Zotlabs/Module/Like.php:146 +msgid "thing" +msgstr "" + +#: ../../Zotlabs/Module/Like.php:192 +msgid "Channel unavailable." +msgstr "" + +#: ../../Zotlabs/Module/Like.php:240 +msgid "Previous action reversed." +msgstr "" + +#: ../../Zotlabs/Module/Like.php:370 ../../Zotlabs/Module/Subthread.php:87 +#: ../../Zotlabs/Module/Tagger.php:47 +#: ../../extend/addon/addon/diaspora/inbound.php:1792 +#: ../../extend/addon/addon/redphotos/redphotohelper.php:74 +#: ../../include/text.php:1940 ../../include/conversation.php:120 +msgid "photo" +msgstr "" + +#: ../../Zotlabs/Module/Like.php:370 ../../Zotlabs/Module/Subthread.php:87 +#: ../../extend/addon/addon/diaspora/inbound.php:1792 +#: ../../include/text.php:1946 ../../include/conversation.php:148 +msgid "status" +msgstr "" + +#: ../../Zotlabs/Module/Like.php:372 ../../Zotlabs/Module/Tagger.php:51 +#: ../../Zotlabs/Module/Events.php:256 ../../include/text.php:1943 +#: ../../include/event.php:961 ../../include/conversation.php:123 +msgid "event" +msgstr "" + +#: ../../Zotlabs/Module/Like.php:419 +#: ../../extend/addon/addon/diaspora/inbound.php:1821 +#: ../../include/conversation.php:164 +#, php-format +msgid "%1$s likes %2$s's %3$s" +msgstr "" + +#: ../../Zotlabs/Module/Like.php:421 ../../include/conversation.php:167 +#, php-format +msgid "%1$s doesn't like %2$s's %3$s" +msgstr "" + +#: ../../Zotlabs/Module/Like.php:423 +#, php-format +msgid "%1$s agrees with %2$s's %3$s" +msgstr "" + +#: ../../Zotlabs/Module/Like.php:425 +#, php-format +msgid "%1$s doesn't agree with %2$s's %3$s" +msgstr "" + +#: ../../Zotlabs/Module/Like.php:427 +#, php-format +msgid "%1$s abstains from a decision on %2$s's %3$s" +msgstr "" + +#: ../../Zotlabs/Module/Like.php:429 +#, php-format +msgid "%1$s is attending %2$s's %3$s" +msgstr "" + +#: ../../Zotlabs/Module/Like.php:431 +#, php-format +msgid "%1$s is not attending %2$s's %3$s" +msgstr "" + +#: ../../Zotlabs/Module/Like.php:433 +#, php-format +msgid "%1$s may attend %2$s's %3$s" +msgstr "" + +#: ../../Zotlabs/Module/Like.php:538 +msgid "Action completed." +msgstr "" + +#: ../../Zotlabs/Module/Like.php:539 +msgid "Thank you." +msgstr "" + +#: ../../Zotlabs/Module/Profile_photo.php:186 +#: ../../extend/addon/addon/openclipatar/openclipatar.php:293 +msgid "" +"Shift-reload the page or clear browser cache if the new photo does not " +"display immediately." +msgstr "" + +#: ../../Zotlabs/Module/Profile_photo.php:409 +msgid "Use Photo for Profile" +msgstr "" + +#: ../../Zotlabs/Module/Profile_photo.php:409 +msgid "Upload Profile Photo" +msgstr "" + +#: ../../Zotlabs/Module/Profile_photo.php:410 +#: ../../extend/addon/addon/openclipatar/openclipatar.php:181 +#: ../../extend/addon/addon/openclipatar/openclipatar.php:193 +msgid "Use" +msgstr "" + +#: ../../Zotlabs/Module/Search.php:223 +#, php-format +msgid "Items tagged with: %s" +msgstr "" + +#: ../../Zotlabs/Module/Search.php:225 +#, php-format +msgid "Search results for: %s" +msgstr "" + +#: ../../Zotlabs/Module/Common.php:14 +msgid "No channel." +msgstr "" + +#: ../../Zotlabs/Module/Common.php:43 +msgid "Common connections" +msgstr "" + +#: ../../Zotlabs/Module/Common.php:48 +msgid "No connections in common." +msgstr "" + +#: ../../Zotlabs/Module/Api.php:72 ../../Zotlabs/Module/Api.php:93 +msgid "Authorize application connection" +msgstr "" + +#: ../../Zotlabs/Module/Api.php:73 +msgid "Return to your app and insert this Security Code:" +msgstr "" + +#: ../../Zotlabs/Module/Api.php:83 +msgid "Please login to continue." +msgstr "" + +#: ../../Zotlabs/Module/Api.php:95 +msgid "" +"Do you want to authorize this application to access your posts and contacts, " +"and/or create new posts for you?" +msgstr "" + +#: ../../Zotlabs/Module/Ping.php:254 +msgid "sent you a private message" +msgstr "" + +#: ../../Zotlabs/Module/Ping.php:302 +msgid "added your channel" +msgstr "" + +#: ../../Zotlabs/Module/Ping.php:312 +msgid "g A l F d" +msgstr "" + +#: ../../Zotlabs/Module/Ping.php:330 +msgid "[today]" +msgstr "" + +#: ../../Zotlabs/Module/Ping.php:339 +msgid "posted an event" +msgstr "" + +#: ../../Zotlabs/Module/Siteinfo.php:20 +msgid "About this site" +msgstr "" + +#: ../../Zotlabs/Module/Siteinfo.php:21 +msgid "Site Name" +msgstr "" + +#: ../../Zotlabs/Module/Siteinfo.php:25 ../../include/network.php:1962 +msgid "Administrator" +msgstr "" + +#: ../../Zotlabs/Module/Siteinfo.php:28 +msgid "Software and Project information" +msgstr "" + +#: ../../Zotlabs/Module/Siteinfo.php:29 +msgid "This site is powered by $Projectname" +msgstr "" + +#: ../../Zotlabs/Module/Siteinfo.php:30 +msgid "" +"Federated and decentralised networking and identity services provided by Zot" +msgstr "" + +#: ../../Zotlabs/Module/Siteinfo.php:32 +#, php-format +msgid "Version %s" +msgstr "" + +#: ../../Zotlabs/Module/Siteinfo.php:33 +msgid "Project homepage" +msgstr "" + +#: ../../Zotlabs/Module/Siteinfo.php:34 +msgid "Developer homepage" +msgstr "" + +#: ../../Zotlabs/Module/Lostpass.php:19 +msgid "No valid account found." +msgstr "" + +#: ../../Zotlabs/Module/Lostpass.php:33 +msgid "Password reset request issued. Check your email." +msgstr "" + +#: ../../Zotlabs/Module/Lostpass.php:39 ../../Zotlabs/Module/Lostpass.php:108 +#, php-format +msgid "Site Member (%s)" +msgstr "" + +#: ../../Zotlabs/Module/Lostpass.php:44 ../../Zotlabs/Module/Lostpass.php:49 +#, php-format +msgid "Password reset requested at %s" +msgstr "" + +#: ../../Zotlabs/Module/Lostpass.php:68 +msgid "" +"Request could not be verified. (You may have previously submitted it.) " +"Password reset failed." +msgstr "" + +#: ../../Zotlabs/Module/Lostpass.php:91 ../../boot.php:1727 +msgid "Password Reset" +msgstr "" + +#: ../../Zotlabs/Module/Lostpass.php:92 +msgid "Your password has been reset as requested." +msgstr "" + +#: ../../Zotlabs/Module/Lostpass.php:93 +msgid "Your new password is" +msgstr "" + +#: ../../Zotlabs/Module/Lostpass.php:94 +msgid "Save or copy your new password - and then" +msgstr "" + +#: ../../Zotlabs/Module/Lostpass.php:95 +msgid "click here to login" +msgstr "" + +#: ../../Zotlabs/Module/Lostpass.php:96 +msgid "" +"Your password may be changed from the Settings page after " +"successful login." +msgstr "" + +#: ../../Zotlabs/Module/Lostpass.php:117 +#, php-format +msgid "Your password has changed at %s" +msgstr "" + +#: ../../Zotlabs/Module/Lostpass.php:130 +msgid "Forgot your Password?" +msgstr "" + +#: ../../Zotlabs/Module/Lostpass.php:131 +msgid "" +"Enter your email address and submit to have your password reset. Then check " +"your email for further instructions." +msgstr "" + +#: ../../Zotlabs/Module/Lostpass.php:132 +msgid "Email Address" +msgstr "" + +#: ../../Zotlabs/Module/Lostpass.php:133 +msgid "Reset" +msgstr "" + +#: ../../Zotlabs/Module/Rbmark.php:94 +msgid "Select a bookmark folder" +msgstr "" + +#: ../../Zotlabs/Module/Rbmark.php:99 +msgid "Save Bookmark" +msgstr "" + +#: ../../Zotlabs/Module/Rbmark.php:100 +msgid "URL of bookmark" +msgstr "" + +#: ../../Zotlabs/Module/Rbmark.php:105 +msgid "Or enter new bookmark folder name" +msgstr "" + +#: ../../Zotlabs/Module/Dirsearch.php:33 +msgid "This directory server requires an access token" +msgstr "" + +#: ../../Zotlabs/Module/Rmagic.php:35 +msgid "Authentication failed." +msgstr "" + +#: ../../Zotlabs/Module/Rmagic.php:75 +msgid "Remote Authentication" +msgstr "" + +#: ../../Zotlabs/Module/Rmagic.php:76 +msgid "Enter your channel address (e.g. channel@example.com)" +msgstr "" + +#: ../../Zotlabs/Module/Rmagic.php:77 +msgid "Authenticate" +msgstr "" + +#: ../../Zotlabs/Module/Regmod.php:15 +msgid "Please login." +msgstr "" + +#: ../../Zotlabs/Module/Removeaccount.php:35 +msgid "" +"Account removals are not allowed within 48 hours of changing the account " +"password." +msgstr "" + +#: ../../Zotlabs/Module/Removeaccount.php:57 +msgid "Remove This Account" +msgstr "" + +#: ../../Zotlabs/Module/Removeaccount.php:58 +#: ../../Zotlabs/Module/Removeme.php:61 +msgid "WARNING: " +msgstr "" + +#: ../../Zotlabs/Module/Removeaccount.php:58 +msgid "" +"This account and all its channels will be completely removed from the " +"network. " +msgstr "" + +#: ../../Zotlabs/Module/Removeaccount.php:58 +#: ../../Zotlabs/Module/Removeme.php:61 +msgid "This action is permanent and can not be undone!" +msgstr "" + +#: ../../Zotlabs/Module/Removeaccount.php:59 +#: ../../Zotlabs/Module/Removeme.php:62 +msgid "Please enter your password for verification:" +msgstr "" + +#: ../../Zotlabs/Module/Removeaccount.php:60 +msgid "" +"Remove this account, all its channels and all its channel clones from the " +"network" +msgstr "" + +#: ../../Zotlabs/Module/Removeaccount.php:60 +msgid "" +"By default only the instances of the channels located on this hub will be " +"removed from the network" +msgstr "" + +#: ../../Zotlabs/Module/Removeaccount.php:61 +#: ../../Zotlabs/Module/Settings/Account.php:120 +msgid "Remove Account" +msgstr "" + +#: ../../Zotlabs/Module/Pdledit.php:21 +msgid "Layout updated." +msgstr "" + +#: ../../Zotlabs/Module/Pdledit.php:34 ../../Zotlabs/Module/Chat.php:218 +msgid "Feature disabled." +msgstr "" + +#: ../../Zotlabs/Module/Pdledit.php:42 ../../Zotlabs/Module/Pdledit.php:69 +msgid "Edit System Page Description" +msgstr "" + +#: ../../Zotlabs/Module/Pdledit.php:64 +msgid "Layout not found." +msgstr "" + +#: ../../Zotlabs/Module/Pdledit.php:70 +msgid "Module Name:" +msgstr "" + +#: ../../Zotlabs/Module/Pdledit.php:71 +msgid "Layout Help" +msgstr "" + +#: ../../Zotlabs/Module/Uexport.php:55 ../../Zotlabs/Module/Uexport.php:56 +msgid "Export Channel" +msgstr "" + +#: ../../Zotlabs/Module/Uexport.php:57 +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 "" + +#: ../../Zotlabs/Module/Uexport.php:58 +msgid "Export Content" +msgstr "" + +#: ../../Zotlabs/Module/Uexport.php:59 +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 "" + +#: ../../Zotlabs/Module/Uexport.php:60 +msgid "Export your posts from a given year." +msgstr "" + +#: ../../Zotlabs/Module/Uexport.php:62 +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 "" + +#: ../../Zotlabs/Module/Uexport.php:63 +#, php-format +msgid "" +"To select all posts for a given year, such as this year, visit %2$s" +msgstr "" + +#: ../../Zotlabs/Module/Uexport.php:64 +#, php-format +msgid "" +"To select all posts for a given month, such as January of this year, visit " +"%2$s" +msgstr "" + +#: ../../Zotlabs/Module/Uexport.php:65 +#, php-format +msgid "" +"These content files may be imported or restored by visiting " +"%2$s on any site containing your channel. For best results please import " +"or restore these in date order (oldest first)." +msgstr "" + +#: ../../Zotlabs/Module/Cal.php:69 +msgid "Permissions denied." +msgstr "" + +#: ../../Zotlabs/Module/Cal.php:263 ../../Zotlabs/Module/Events.php:596 +msgid "l, F j" +msgstr "" + +#: ../../Zotlabs/Module/Cal.php:312 ../../Zotlabs/Module/Events.php:651 +#: ../../include/text.php:1748 +msgid "Link to Source" +msgstr "" + +#: ../../Zotlabs/Module/Cal.php:335 ../../Zotlabs/Module/Events.php:679 +msgid "Edit Event" +msgstr "" + +#: ../../Zotlabs/Module/Cal.php:335 ../../Zotlabs/Module/Events.php:679 +msgid "Create Event" +msgstr "" + +#: ../../Zotlabs/Module/Cal.php:338 ../../Zotlabs/Module/Events.php:682 +msgid "Export" +msgstr "" + +#: ../../Zotlabs/Module/Cal.php:341 ../../include/text.php:2294 +msgid "Import" +msgstr "" + +#: ../../Zotlabs/Module/Cal.php:345 ../../Zotlabs/Module/Events.php:691 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:848 +msgid "Today" +msgstr "" + +#: ../../Zotlabs/Module/Admin.php:94 +msgid "# Accounts" +msgstr "" + +#: ../../Zotlabs/Module/Admin.php:95 +msgid "# blocked accounts" +msgstr "" + +#: ../../Zotlabs/Module/Admin.php:96 +msgid "# expired accounts" +msgstr "" + +#: ../../Zotlabs/Module/Admin.php:97 +msgid "# expiring accounts" +msgstr "" + +#: ../../Zotlabs/Module/Admin.php:108 +msgid "# Channels" +msgstr "" + +#: ../../Zotlabs/Module/Admin.php:109 +msgid "# primary" +msgstr "" + +#: ../../Zotlabs/Module/Admin.php:110 +msgid "# clones" +msgstr "" + +#: ../../Zotlabs/Module/Admin.php:116 +msgid "Message queues" +msgstr "" + +#: ../../Zotlabs/Module/Admin.php:133 +msgid "Your software should be updated" +msgstr "" + +#: ../../Zotlabs/Module/Admin.php:138 +msgid "Summary" +msgstr "" + +#: ../../Zotlabs/Module/Admin.php:141 +msgid "Registered accounts" +msgstr "" + +#: ../../Zotlabs/Module/Admin.php:142 +msgid "Pending registrations" +msgstr "" + +#: ../../Zotlabs/Module/Admin.php:143 +msgid "Registered channels" +msgstr "" + +#: ../../Zotlabs/Module/Admin.php:144 +msgid "Active plugins" +msgstr "" + +#: ../../Zotlabs/Module/Admin.php:145 +msgid "Version" +msgstr "" + +#: ../../Zotlabs/Module/Admin.php:146 +msgid "Repository version (master)" +msgstr "" + +#: ../../Zotlabs/Module/Admin.php:147 +msgid "Repository version (dev)" +msgstr "" + +#: ../../Zotlabs/Module/Lockview.php:75 +msgid "Remote privacy information not available." +msgstr "" + +#: ../../Zotlabs/Module/Lockview.php:96 +msgid "Visible to:" +msgstr "" + +#: ../../Zotlabs/Module/Service_limits.php:23 +msgid "No service class restrictions found." +msgstr "" + +#: ../../Zotlabs/Module/Webpages.php:52 +msgid "Import Webpage Elements" +msgstr "" + +#: ../../Zotlabs/Module/Webpages.php:53 +msgid "Import selected" +msgstr "" + +#: ../../Zotlabs/Module/Webpages.php:76 +msgid "Export Webpage Elements" +msgstr "" + +#: ../../Zotlabs/Module/Webpages.php:77 +msgid "Export selected" +msgstr "" + +#: ../../Zotlabs/Module/Webpages.php:237 ../../Zotlabs/Lib/Apps.php:218 +#: ../../include/nav.php:109 ../../include/conversation.php:1745 +msgid "Webpages" +msgstr "" + +#: ../../Zotlabs/Module/Webpages.php:248 ../../include/page_widgets.php:44 +msgid "Actions" +msgstr "" + +#: ../../Zotlabs/Module/Webpages.php:249 ../../include/page_widgets.php:45 +msgid "Page Link" +msgstr "" + +#: ../../Zotlabs/Module/Webpages.php:250 +msgid "Page Title" +msgstr "" + +#: ../../Zotlabs/Module/Webpages.php:280 +msgid "Invalid file type." +msgstr "" + +#: ../../Zotlabs/Module/Webpages.php:292 +msgid "Error opening zip file" +msgstr "" + +#: ../../Zotlabs/Module/Webpages.php:303 +msgid "Invalid folder path." +msgstr "" + +#: ../../Zotlabs/Module/Webpages.php:330 +msgid "No webpage elements detected." +msgstr "" + +#: ../../Zotlabs/Module/Webpages.php:405 +msgid "Import complete." +msgstr "" + +#: ../../Zotlabs/Module/Removeme.php:35 +msgid "" +"Channel removals are not allowed within 48 hours of changing the account " +"password." +msgstr "" + +#: ../../Zotlabs/Module/Removeme.php:60 +msgid "Remove This Channel" +msgstr "" + +#: ../../Zotlabs/Module/Removeme.php:61 +msgid "This channel will be completely removed from the network. " +msgstr "" + +#: ../../Zotlabs/Module/Removeme.php:63 +msgid "Remove this channel and all its clones from the network" +msgstr "" + +#: ../../Zotlabs/Module/Removeme.php:63 +msgid "" +"By default only the instance of the channel located on this hub will be " +"removed from the network" +msgstr "" + +#: ../../Zotlabs/Module/Removeme.php:64 +#: ../../Zotlabs/Module/Settings/Channel.php:547 +msgid "Remove Channel" +msgstr "" + +#: ../../Zotlabs/Module/Sharedwithme.php:98 +msgid "Files: shared with me" +msgstr "" + +#: ../../Zotlabs/Module/Sharedwithme.php:100 +msgid "NEW" +msgstr "" + +#: ../../Zotlabs/Module/Sharedwithme.php:103 +msgid "Remove all files" +msgstr "" + +#: ../../Zotlabs/Module/Sharedwithme.php:104 +msgid "Remove this file" +msgstr "" + +#: ../../Zotlabs/Module/Wiki.php:34 +msgid "Not found" +msgstr "" + +#: ../../Zotlabs/Module/Wiki.php:55 +msgid "Invalid channel" +msgstr "" + +#: ../../Zotlabs/Module/Wiki.php:100 +msgid "Error retrieving wiki" +msgstr "" + +#: ../../Zotlabs/Module/Wiki.php:107 +msgid "Error creating zip file export folder" +msgstr "" + +#: ../../Zotlabs/Module/Wiki.php:125 +msgid "Error downloading wiki: " +msgstr "" + +#: ../../Zotlabs/Module/Wiki.php:139 ../../include/nav.php:111 +#: ../../include/conversation.php:1755 +msgid "Wikis" +msgstr "" + +#: ../../Zotlabs/Module/Wiki.php:145 ../../include/widgets.php:966 +msgid "Download" +msgstr "" + +#: ../../Zotlabs/Module/Wiki.php:149 ../../include/widgets.php:970 +msgid "Wiki name" +msgstr "" + +#: ../../Zotlabs/Module/Wiki.php:150 +msgid "Content type" +msgstr "" + +#: ../../Zotlabs/Module/Wiki.php:159 +msgid "Create a status post for this wiki" +msgstr "" + +#: ../../Zotlabs/Module/Wiki.php:178 +msgid "Wiki not found" +msgstr "" + +#: ../../Zotlabs/Module/Wiki.php:203 +msgid "Rename page" +msgstr "" + +#: ../../Zotlabs/Module/Wiki.php:207 +msgid "Error retrieving page content" +msgstr "" + +#: ../../Zotlabs/Module/Wiki.php:240 +msgid "Revision Comparison" +msgstr "" + +#: ../../Zotlabs/Module/Wiki.php:241 +msgid "Revert" +msgstr "" + +#: ../../Zotlabs/Module/Wiki.php:250 +msgid "Choose an available wiki from the list on the left." +msgstr "" + +#: ../../Zotlabs/Module/Wiki.php:252 +msgid "Source" +msgstr "" + +#: ../../Zotlabs/Module/Wiki.php:269 +msgid "New page name" +msgstr "" + +#: ../../Zotlabs/Module/Wiki.php:275 ../../include/conversation.php:1169 +msgid "Embed image from photo albums" +msgstr "" + +#: ../../Zotlabs/Module/Wiki.php:276 ../../include/conversation.php:1263 +msgid "Embed an image from your albums" +msgstr "" + +#: ../../Zotlabs/Module/Wiki.php:278 ../../include/conversation.php:1265 +#: ../../include/conversation.php:1312 +msgid "OK" +msgstr "" + +#: ../../Zotlabs/Module/Wiki.php:279 ../../include/conversation.php:1205 +msgid "Choose images to embed" +msgstr "" + +#: ../../Zotlabs/Module/Wiki.php:280 ../../include/conversation.php:1206 +msgid "Choose an album" +msgstr "" + +#: ../../Zotlabs/Module/Wiki.php:281 ../../include/conversation.php:1207 +msgid "Choose a different album..." +msgstr "" + +#: ../../Zotlabs/Module/Wiki.php:282 ../../include/conversation.php:1208 +msgid "Error getting album list" +msgstr "" + +#: ../../Zotlabs/Module/Wiki.php:283 ../../include/conversation.php:1209 +msgid "Error getting photo link" +msgstr "" + +#: ../../Zotlabs/Module/Wiki.php:284 ../../include/conversation.php:1210 +msgid "Error getting album" +msgstr "" + +#: ../../Zotlabs/Module/Wiki.php:348 +msgid "Error creating wiki. Invalid name." +msgstr "" + +#: ../../Zotlabs/Module/Wiki.php:359 +msgid "Wiki created, but error creating Home page." +msgstr "" + +#: ../../Zotlabs/Module/Wiki.php:364 +msgid "Error creating wiki" +msgstr "" + +#: ../../Zotlabs/Module/Wiki.php:410 +msgid "New page created" +msgstr "" + +#: ../../Zotlabs/Module/Sources.php:37 +msgid "Failed to create source. No channel selected." +msgstr "" + +#: ../../Zotlabs/Module/Sources.php:51 +msgid "Source created." +msgstr "" + +#: ../../Zotlabs/Module/Sources.php:64 +msgid "Source updated." +msgstr "" + +#: ../../Zotlabs/Module/Sources.php:90 +msgid "*" +msgstr "" + +#: ../../Zotlabs/Module/Sources.php:96 ../../include/features.php:195 +#: ../../include/widgets.php:672 +msgid "Channel Sources" +msgstr "" + +#: ../../Zotlabs/Module/Sources.php:97 +msgid "Manage remote sources of content for your channel." +msgstr "" + +#: ../../Zotlabs/Module/Sources.php:98 ../../Zotlabs/Module/Sources.php:108 +msgid "New Source" +msgstr "" + +#: ../../Zotlabs/Module/Sources.php:109 ../../Zotlabs/Module/Sources.php:143 +msgid "" +"Import all or selected content from the following channel into this channel " +"and distribute it according to your channel settings." +msgstr "" + +#: ../../Zotlabs/Module/Sources.php:110 ../../Zotlabs/Module/Sources.php:144 +msgid "Only import content with these words (one per line)" +msgstr "" + +#: ../../Zotlabs/Module/Sources.php:110 ../../Zotlabs/Module/Sources.php:144 +msgid "Leave blank to import all public content" +msgstr "" + +#: ../../Zotlabs/Module/Sources.php:111 ../../Zotlabs/Module/Sources.php:148 +msgid "Channel Name" +msgstr "" + +#: ../../Zotlabs/Module/Sources.php:112 ../../Zotlabs/Module/Sources.php:147 +msgid "" +"Add the following categories to posts imported from this source (comma " +"separated)" +msgstr "" + +#: ../../Zotlabs/Module/Sources.php:112 ../../Zotlabs/Module/Sources.php:147 +#: ../../Zotlabs/Module/Settings/Oauth.php:93 +msgid "Optional" +msgstr "" + +#: ../../Zotlabs/Module/Sources.php:133 ../../Zotlabs/Module/Sources.php:161 +msgid "Source not found." +msgstr "" + +#: ../../Zotlabs/Module/Sources.php:140 +msgid "Edit Source" +msgstr "" + +#: ../../Zotlabs/Module/Sources.php:141 +msgid "Delete Source" +msgstr "" + +#: ../../Zotlabs/Module/Sources.php:169 +msgid "Source removed" +msgstr "" + +#: ../../Zotlabs/Module/Sources.php:171 +msgid "Unable to remove source." +msgstr "" + +#: ../../Zotlabs/Module/Subthread.php:118 +#, php-format +msgid "%1$s is following %2$s's %3$s" +msgstr "" + +#: ../../Zotlabs/Module/Subthread.php:120 +#, php-format +msgid "%1$s stopped following %2$s's %3$s" +msgstr "" + +#: ../../Zotlabs/Module/Suggest.php:39 +msgid "" +"No suggestions available. If this is a new site, please try again in 24 " +"hours." +msgstr "" + +#: ../../Zotlabs/Module/Suggest.php:58 ../../include/widgets.php:149 +msgid "Ignore/Hide" +msgstr "" + +#: ../../Zotlabs/Module/Tagger.php:55 ../../include/bbcode.php:274 +msgid "post" +msgstr "" + +#: ../../Zotlabs/Module/Tagger.php:57 ../../include/text.php:1948 +#: ../../include/conversation.php:150 +msgid "comment" +msgstr "" + +#: ../../Zotlabs/Module/Tagger.php:100 +#, php-format +msgid "%1$s tagged %2$s's %3$s with %4$s" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Features.php:45 +msgid "Additional Features" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Oauth.php:34 +msgid "Name is required" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Oauth.php:38 +msgid "Key and Secret are required" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Oauth.php:86 +#: ../../Zotlabs/Module/Settings/Oauth.php:112 +#: ../../Zotlabs/Module/Settings/Oauth.php:148 +msgid "Add application" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Oauth.php:89 +msgid "Name of application" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Oauth.php:90 +#: ../../Zotlabs/Module/Settings/Oauth.php:116 +#: ../../extend/addon/addon/statusnet/statusnet.php:893 +#: ../../extend/addon/addon/twitter/twitter.php:775 +msgid "Consumer Key" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Oauth.php:90 +#: ../../Zotlabs/Module/Settings/Oauth.php:91 +msgid "Automatically generated - change if desired. Max length 20" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Oauth.php:91 +#: ../../Zotlabs/Module/Settings/Oauth.php:117 +#: ../../extend/addon/addon/statusnet/statusnet.php:892 +#: ../../extend/addon/addon/twitter/twitter.php:776 +msgid "Consumer Secret" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Oauth.php:92 +#: ../../Zotlabs/Module/Settings/Oauth.php:118 +msgid "Redirect" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Oauth.php:92 +msgid "" +"Redirect URI - leave blank unless your application specifically requires this" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Oauth.php:93 +#: ../../Zotlabs/Module/Settings/Oauth.php:119 +msgid "Icon url" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Oauth.php:104 +msgid "Application not found." +msgstr "" + +#: ../../Zotlabs/Module/Settings/Oauth.php:147 +msgid "Connected Apps" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Oauth.php:151 +msgid "Client key starts with" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Oauth.php:152 +msgid "No name" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Oauth.php:153 +msgid "Remove authorization" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Tokens.php:31 +#, php-format +msgid "This channel is limited to %d tokens" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Tokens.php:37 +msgid "Name and Password are required." +msgstr "" + +#: ../../Zotlabs/Module/Settings/Tokens.php:77 +msgid "Token saved." +msgstr "" + +#: ../../Zotlabs/Module/Settings/Tokens.php:113 +msgid "" +"Use this form to create temporary access identifiers to share things with " +"non-members. These identities may be used in Access Control Lists and " +"visitors may login using these credentials to access private content." +msgstr "" + +#: ../../Zotlabs/Module/Settings/Tokens.php:115 +msgid "" +"You may also provide dropbox style access links to friends and " +"associates by adding the Login Password to any specific site URL as shown. " +"Examples:" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Tokens.php:150 ../../include/widgets.php:647 +msgid "Guest Access Tokens" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Tokens.php:157 +msgid "Login Name" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Tokens.php:158 +msgid "Login Password" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Tokens.php:159 +msgid "Expires (yyyy-mm-dd)" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Account.php:20 +msgid "Not valid email." +msgstr "" + +#: ../../Zotlabs/Module/Settings/Account.php:23 +msgid "Protected email address. Cannot change to that email." +msgstr "" + +#: ../../Zotlabs/Module/Settings/Account.php:32 +msgid "System failure storing new email. Please try again." +msgstr "" + +#: ../../Zotlabs/Module/Settings/Account.php:40 +msgid "Technical skill level updated" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Account.php:56 +msgid "Password verification failed." +msgstr "" + +#: ../../Zotlabs/Module/Settings/Account.php:63 +msgid "Passwords do not match. Password unchanged." +msgstr "" + +#: ../../Zotlabs/Module/Settings/Account.php:67 +msgid "Empty passwords are not allowed. Password unchanged." +msgstr "" + +#: ../../Zotlabs/Module/Settings/Account.php:81 +msgid "Password changed." +msgstr "" + +#: ../../Zotlabs/Module/Settings/Account.php:83 +msgid "Password update failed. Please try again." +msgstr "" + +#: ../../Zotlabs/Module/Settings/Account.php:112 +msgid "Account Settings" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Account.php:113 +msgid "Current Password" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Account.php:114 +msgid "Enter New Password" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Account.php:115 +msgid "Confirm New Password" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Account.php:115 +msgid "Leave password fields blank unless changing" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Account.php:116 +msgid "Your technical skill level" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Account.php:116 +msgid "Used to provide a member experience matched to your comfort level" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Account.php:119 +#: ../../Zotlabs/Module/Settings/Channel.php:462 +msgid "Email Address:" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Account.php:121 +msgid "Remove this account including all its channels" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Channel.php:246 +#: ../../extend/addon/addon/logrot/logrot.php:54 +#: ../../extend/addon/addon/msgfooter/msgfooter.php:54 +#: ../../extend/addon/addon/openstreetmap/openstreetmap.php:184 +#: ../../extend/addon/addon/piwik/piwik.php:116 +#: ../../extend/addon/addon/twitter/twitter.php:766 +#: ../../extend/addon/addon/xmpp/xmpp.php:102 +#: ../../extend/addon/addon/rendezvous/rendezvous.php:82 +msgid "Settings updated." +msgstr "" + +#: ../../Zotlabs/Module/Settings/Channel.php:307 +msgid "Nobody except yourself" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Channel.php:308 +msgid "Only those you specifically allow" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Channel.php:309 +msgid "Approved connections" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Channel.php:310 +msgid "Any connections" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Channel.php:311 +msgid "Anybody on this website" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Channel.php:312 +msgid "Anybody in this network" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Channel.php:313 +msgid "Anybody authenticated" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Channel.php:314 +msgid "Anybody on the internet" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Channel.php:390 +msgid "Publish your default profile in the network directory" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Channel.php:395 +msgid "Allow us to suggest you as a potential friend to new members?" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Channel.php:404 +msgid "Your channel address is" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Channel.php:407 +msgid "Your files/photos are accessible via WebDAV at" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Channel.php:453 +msgid "Channel Settings" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Channel.php:460 +msgid "Basic Settings" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Channel.php:461 +#: ../../include/channel.php:1172 +msgid "Full Name:" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Channel.php:463 +msgid "Your Timezone:" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Channel.php:464 +msgid "Default Post Location:" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Channel.php:464 +msgid "Geographical location to display on your posts" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Channel.php:465 +msgid "Use Browser Location:" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Channel.php:467 +msgid "Adult Content" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Channel.php:467 +msgid "" +"This channel frequently or regularly publishes adult content. (Please tag " +"any adult material and/or nudity with #NSFW)" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Channel.php:469 +msgid "Security and Privacy Settings" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Channel.php:472 +msgid "Your permissions are already configured. Click to view/adjust" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Channel.php:474 +msgid "Hide my online presence" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Channel.php:474 +msgid "Prevents displaying in your profile that you are online" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Channel.php:476 +msgid "Simple Privacy Settings:" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Channel.php:477 +msgid "" +"Very Public - extremely permissive (should be used with caution)" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Channel.php:478 +msgid "" +"Typical - default public, privacy when desired (similar to social " +"network permissions but with improved privacy)" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Channel.php:479 +msgid "Private - default private, never open or public" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Channel.php:480 +msgid "Blocked - default blocked to/from everybody" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Channel.php:482 +msgid "Allow others to tag your posts" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Channel.php:482 +msgid "" +"Often used by the community to retro-actively flag inappropriate content" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Channel.php:484 +msgid "Channel Permission Limits" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Channel.php:486 +msgid "Expire other channel content after this many days" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Channel.php:486 +msgid "0 or blank to use the website limit." +msgstr "" + +#: ../../Zotlabs/Module/Settings/Channel.php:486 +#, php-format +msgid "This website expires after %d days." +msgstr "" + +#: ../../Zotlabs/Module/Settings/Channel.php:486 +msgid "This website does not expire imported content." +msgstr "" + +#: ../../Zotlabs/Module/Settings/Channel.php:486 +msgid "The website limit takes precedence if lower than your limit." +msgstr "" + +#: ../../Zotlabs/Module/Settings/Channel.php:487 +msgid "Maximum Friend Requests/Day:" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Channel.php:487 +msgid "May reduce spam activity" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Channel.php:488 +msgid "Default Access Control List (ACL)" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Channel.php:490 +msgid "Use my default audience setting for the type of object published" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Channel.php:497 +msgid "Channel permissions category:" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Channel.php:503 +msgid "Maximum private messages per day from unknown people:" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Channel.php:503 +msgid "Useful to reduce spamming" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Channel.php:506 +msgid "Notification Settings" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Channel.php:507 +msgid "By default post a status message when:" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Channel.php:508 +msgid "accepting a friend request" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Channel.php:509 +msgid "joining a forum/community" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Channel.php:510 +msgid "making an interesting profile change" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Channel.php:511 +msgid "Send a notification email when:" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Channel.php:512 +msgid "You receive a connection request" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Channel.php:513 +msgid "Your connections are confirmed" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Channel.php:514 +msgid "Someone writes on your profile wall" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Channel.php:515 +msgid "Someone writes a followup comment" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Channel.php:516 +msgid "You receive a private message" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Channel.php:517 +msgid "You receive a friend suggestion" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Channel.php:518 +msgid "You are tagged in a post" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Channel.php:519 +msgid "You are poked/prodded/etc. in a post" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Channel.php:522 +msgid "Show visual notifications including:" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Channel.php:524 +msgid "Unseen grid activity" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Channel.php:525 +msgid "Unseen channel activity" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Channel.php:526 +msgid "Unseen private messages" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Channel.php:526 +#: ../../Zotlabs/Module/Settings/Channel.php:531 +#: ../../Zotlabs/Module/Settings/Channel.php:532 +#: ../../Zotlabs/Module/Settings/Channel.php:533 +#: ../../extend/addon/addon/jappixmini/jappixmini.php:343 +msgid "Recommended" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Channel.php:527 +msgid "Upcoming events" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Channel.php:528 +msgid "Events today" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Channel.php:529 +msgid "Upcoming birthdays" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Channel.php:529 +msgid "Not available in all themes" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Channel.php:530 +msgid "System (personal) notifications" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Channel.php:531 +msgid "System info messages" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Channel.php:532 +msgid "System critical alerts" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Channel.php:533 +msgid "New connections" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Channel.php:534 +msgid "System Registrations" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Channel.php:535 +msgid "" +"Also show new wall posts, private messages and connections under Notices" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Channel.php:537 +msgid "Notify me of events this many days in advance" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Channel.php:537 +msgid "Must be greater than 0" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Channel.php:539 +msgid "Advanced Account/Page Type Settings" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Channel.php:540 +msgid "Change the behaviour of this account for special situations" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Channel.php:542 +msgid "Miscellaneous Settings" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Channel.php:543 +msgid "Default photo upload folder" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Channel.php:543 +#: ../../Zotlabs/Module/Settings/Channel.php:544 +msgid "%Y - current year, %m - current month" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Channel.php:544 +msgid "Default file upload folder" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Channel.php:546 +msgid "Personal menu to display in your channel pages" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Channel.php:548 +msgid "Remove this channel." +msgstr "" + +#: ../../Zotlabs/Module/Settings/Channel.php:549 +msgid "Firefox Share $Projectname provider" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Channel.php:550 +msgid "Start calendar week on monday" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Display.php:137 +msgid "No special theme for mobile devices" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Display.php:140 +#, php-format +msgid "%s - (Experimental)" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Display.php:191 +msgid "Display Settings" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Display.php:192 +msgid "Theme Settings" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Display.php:193 +msgid "Custom Theme Settings" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Display.php:194 +msgid "Content Settings" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Display.php:200 +msgid "Display Theme:" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Display.php:201 +msgid "Select scheme" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Display.php:203 +msgid "Mobile Theme:" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Display.php:204 +msgid "Preload images before rendering the page" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Display.php:204 +msgid "" +"The subjective page load time will be longer but the page will be ready when " +"displayed" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Display.php:205 +msgid "Enable user zoom on mobile devices" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Display.php:206 +msgid "Update browser every xx seconds" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Display.php:206 +msgid "Minimum of 10 seconds, no maximum" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Display.php:207 +msgid "Maximum number of conversations to load at any time:" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Display.php:207 +msgid "Maximum of 100 items" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Display.php:208 +msgid "Show emoticons (smilies) as images" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Display.php:209 +msgid "Manual conversation updates" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Display.php:209 +msgid "Default is automatic, which may increase screen jumping" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Display.php:210 +msgid "Link post titles to source" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Display.php:211 +msgid "System Page Layout Editor - (advanced)" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Display.php:214 +msgid "Use blog/list mode on channel page" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Display.php:214 +#: ../../Zotlabs/Module/Settings/Display.php:215 +msgid "(comments displayed separately)" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Display.php:215 +msgid "Use blog/list mode on grid page" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Display.php:216 +msgid "Channel page max height of content (in pixels)" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Display.php:216 +#: ../../Zotlabs/Module/Settings/Display.php:217 +msgid "click to expand content exceeding this height" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Display.php:217 +msgid "Grid page max height of content (in pixels)" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Featured.php:24 +msgid "No feature settings configured" +msgstr "" + +#: ../../Zotlabs/Module/Settings/Featured.php:31 +msgid "Feature/Addon Settings" +msgstr "" + +#: ../../Zotlabs/Module/Tagrm.php:48 ../../Zotlabs/Module/Tagrm.php:98 +msgid "Tag removed" +msgstr "" + +#: ../../Zotlabs/Module/Tagrm.php:123 +msgid "Remove Item Tag" +msgstr "" + +#: ../../Zotlabs/Module/Tagrm.php:125 +msgid "Select a tag to remove: " +msgstr "" + +#: ../../Zotlabs/Module/Thing.php:114 +msgid "Thing updated" +msgstr "" + +#: ../../Zotlabs/Module/Thing.php:166 +msgid "Object store: failed" +msgstr "" + +#: ../../Zotlabs/Module/Thing.php:170 +msgid "Thing added" +msgstr "" + +#: ../../Zotlabs/Module/Thing.php:196 +#, php-format +msgid "OBJ: %1$s %2$s %3$s" +msgstr "" + +#: ../../Zotlabs/Module/Thing.php:259 +msgid "Show Thing" +msgstr "" + +#: ../../Zotlabs/Module/Thing.php:266 +msgid "item not found." +msgstr "" + +#: ../../Zotlabs/Module/Thing.php:299 +msgid "Edit Thing" +msgstr "" + +#: ../../Zotlabs/Module/Thing.php:301 ../../Zotlabs/Module/Thing.php:355 +msgid "Select a profile" +msgstr "" + +#: ../../Zotlabs/Module/Thing.php:305 ../../Zotlabs/Module/Thing.php:358 +msgid "Post an activity" +msgstr "" + +#: ../../Zotlabs/Module/Thing.php:305 ../../Zotlabs/Module/Thing.php:358 +msgid "Only sends to viewers of the applicable profile" +msgstr "" + +#: ../../Zotlabs/Module/Thing.php:307 ../../Zotlabs/Module/Thing.php:360 +msgid "Name of thing e.g. something" +msgstr "" + +#: ../../Zotlabs/Module/Thing.php:309 ../../Zotlabs/Module/Thing.php:361 +msgid "URL of thing (optional)" +msgstr "" + +#: ../../Zotlabs/Module/Thing.php:311 ../../Zotlabs/Module/Thing.php:362 +msgid "URL for photo of thing (optional)" +msgstr "" + +#: ../../Zotlabs/Module/Thing.php:353 +msgid "Add Thing to your Profile" +msgstr "" + +#: ../../Zotlabs/Module/Import.php:33 +#, php-format +msgid "Your service plan only allows %d channels." +msgstr "" + +#: ../../Zotlabs/Module/Import.php:157 ../../include/import.php:100 +msgid "Cloned channel not found. Import failed." +msgstr "" + +#: ../../Zotlabs/Module/Import.php:167 +msgid "No channel. Import failed." +msgstr "" + +#: ../../Zotlabs/Module/Import.php:503 +#: ../../include/Import/import_diaspora.php:142 +msgid "Import completed." +msgstr "" + +#: ../../Zotlabs/Module/Import.php:525 +msgid "You must be logged in to use this feature." +msgstr "" + +#: ../../Zotlabs/Module/Import.php:530 +msgid "Import Channel" +msgstr "" + +#: ../../Zotlabs/Module/Import.php:531 +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 "" + +#: ../../Zotlabs/Module/Import.php:533 +msgid "Or provide the old server/hub details" +msgstr "" + +#: ../../Zotlabs/Module/Import.php:534 +msgid "Your old identity address (xyz@example.com)" +msgstr "" + +#: ../../Zotlabs/Module/Import.php:535 +msgid "Your old login email address" +msgstr "" + +#: ../../Zotlabs/Module/Import.php:536 +msgid "Your old login password" +msgstr "" + +#: ../../Zotlabs/Module/Import.php:537 +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 "" + +#: ../../Zotlabs/Module/Import.php:538 +msgid "Make this hub my primary location" +msgstr "" + +#: ../../Zotlabs/Module/Import.php:539 +msgid "" +"Import existing posts if possible (experimental - limited by available memory" +msgstr "" + +#: ../../Zotlabs/Module/Import.php:540 +msgid "" +"This process may take several minutes to complete. Please submit the form " +"only once and leave this page open until finished." msgstr "" #: ../../Zotlabs/Module/Viewconnections.php:65 @@ -6615,12 +6793,132 @@ msgstr "" msgid "Lookup xchan beginning with (or webbie): " msgstr "" -#: ../../Zotlabs/Module/Cal.php:69 -msgid "Permissions denied." +#: ../../Zotlabs/Module/Events.php:25 +msgid "Calendar entries imported." msgstr "" -#: ../../Zotlabs/Module/Cal.php:337 ../../include/text.php:2335 -msgid "Import" +#: ../../Zotlabs/Module/Events.php:27 +msgid "No calendar entries found." +msgstr "" + +#: ../../Zotlabs/Module/Events.php:106 +msgid "Event can not end before it has started." +msgstr "" + +#: ../../Zotlabs/Module/Events.php:108 ../../Zotlabs/Module/Events.php:117 +#: ../../Zotlabs/Module/Events.php:139 +msgid "Unable to generate preview." +msgstr "" + +#: ../../Zotlabs/Module/Events.php:115 +msgid "Event title and start time are required." +msgstr "" + +#: ../../Zotlabs/Module/Events.php:137 ../../Zotlabs/Module/Events.php:261 +msgid "Event not found." +msgstr "" + +#: ../../Zotlabs/Module/Events.php:453 +msgid "Edit event title" +msgstr "" + +#: ../../Zotlabs/Module/Events.php:453 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:835 +msgid "Event title" +msgstr "" + +#: ../../Zotlabs/Module/Events.php:455 +msgid "Categories (comma-separated list)" +msgstr "" + +#: ../../Zotlabs/Module/Events.php:456 +msgid "Edit Category" +msgstr "" + +#: ../../Zotlabs/Module/Events.php:456 +msgid "Category" +msgstr "" + +#: ../../Zotlabs/Module/Events.php:459 +msgid "Edit start date and time" +msgstr "" + +#: ../../Zotlabs/Module/Events.php:459 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:836 +msgid "Start date and time" +msgstr "" + +#: ../../Zotlabs/Module/Events.php:460 ../../Zotlabs/Module/Events.php:463 +msgid "Finish date and time are not known or not relevant" +msgstr "" + +#: ../../Zotlabs/Module/Events.php:462 +msgid "Edit finish date and time" +msgstr "" + +#: ../../Zotlabs/Module/Events.php:462 +msgid "Finish date and time" +msgstr "" + +#: ../../Zotlabs/Module/Events.php:464 ../../Zotlabs/Module/Events.php:465 +msgid "Adjust for viewer timezone" +msgstr "" + +#: ../../Zotlabs/Module/Events.php:464 +msgid "" +"Important for events that happen in a particular place. Not practical for " +"global holidays." +msgstr "" + +#: ../../Zotlabs/Module/Events.php:466 +msgid "Edit Description" +msgstr "" + +#: ../../Zotlabs/Module/Events.php:468 +msgid "Edit Location" +msgstr "" + +#: ../../Zotlabs/Module/Events.php:472 ../../include/conversation.php:1280 +msgid "Permission settings" +msgstr "" + +#: ../../Zotlabs/Module/Events.php:485 +msgid "Advanced Options" +msgstr "" + +#: ../../Zotlabs/Module/Events.php:624 +msgid "Edit event" +msgstr "" + +#: ../../Zotlabs/Module/Events.php:626 +msgid "Delete event" +msgstr "" + +#: ../../Zotlabs/Module/Events.php:660 +msgid "calendar" +msgstr "" + +#: ../../Zotlabs/Module/Events.php:686 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:849 +msgid "Month" +msgstr "" + +#: ../../Zotlabs/Module/Events.php:687 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:850 +msgid "Week" +msgstr "" + +#: ../../Zotlabs/Module/Events.php:688 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:851 +msgid "Day" +msgstr "" + +#: ../../Zotlabs/Module/Events.php:722 +msgid "Event removed" +msgstr "" + +#: ../../Zotlabs/Module/Events.php:725 +msgid "Failed to remove event" msgstr "" #: ../../Zotlabs/Lib/Chatroom.php:27 @@ -6648,7 +6946,8 @@ msgid "Site Admin" msgstr "" #: ../../Zotlabs/Lib/Apps.php:206 -msgid "Bug Report" +#: ../../extend/addon/addon/buglink/buglink.php:16 +msgid "Report Bug" msgstr "" #: ../../Zotlabs/Lib/Apps.php:207 @@ -6672,28 +6971,33 @@ msgid "Suggest Channels" msgstr "" #: ../../Zotlabs/Lib/Apps.php:213 ../../include/nav.php:115 -#: ../../boot.php:1739 +#: ../../boot.php:1719 msgid "Login" msgstr "" -#: ../../Zotlabs/Lib/Apps.php:215 ../../include/nav.php:184 +#: ../../Zotlabs/Lib/Apps.php:215 ../../include/nav.php:182 msgid "Grid" msgstr "" -#: ../../Zotlabs/Lib/Apps.php:220 ../../include/nav.php:187 +#: ../../Zotlabs/Lib/Apps.php:219 ../../include/features.php:99 +#: ../../include/conversation.php:1758 +msgid "Wiki" +msgstr "" + +#: ../../Zotlabs/Lib/Apps.php:220 ../../include/nav.php:185 msgid "Channel Home" msgstr "" -#: ../../Zotlabs/Lib/Apps.php:223 ../../include/nav.php:206 -#: ../../include/conversation.php:1689 ../../include/conversation.php:1692 +#: ../../Zotlabs/Lib/Apps.php:223 ../../include/nav.php:204 +#: ../../include/conversation.php:1709 ../../include/conversation.php:1712 msgid "Events" msgstr "" -#: ../../Zotlabs/Lib/Apps.php:224 ../../include/nav.php:172 +#: ../../Zotlabs/Lib/Apps.php:224 ../../include/nav.php:170 msgid "Directory" msgstr "" -#: ../../Zotlabs/Lib/Apps.php:226 ../../include/nav.php:198 +#: ../../Zotlabs/Lib/Apps.php:226 ../../include/nav.php:196 msgid "Mail" msgstr "" @@ -6717,11 +7021,12 @@ msgstr "" msgid "Invite" msgstr "" -#: ../../Zotlabs/Lib/Apps.php:235 ../../include/widgets.php:1563 +#: ../../Zotlabs/Lib/Apps.php:235 ../../include/widgets.php:1635 msgid "Features" msgstr "" #: ../../Zotlabs/Lib/Apps.php:236 +#: ../../extend/addon/addon/openid/MysqlProvider.php:69 msgid "Language" msgstr "" @@ -6730,6 +7035,9 @@ msgid "Post" msgstr "" #: ../../Zotlabs/Lib/Apps.php:238 +#: ../../extend/addon/addon/openid/MysqlProvider.php:58 +#: ../../extend/addon/addon/openid/MysqlProvider.php:59 +#: ../../extend/addon/addon/openid/MysqlProvider.php:60 msgid "Profile Photo" msgstr "" @@ -6737,11 +7045,74 @@ msgstr "" msgid "Purchase" msgstr "" -#: ../../Zotlabs/Lib/ThreadItem.php:95 ../../include/conversation.php:667 +#: ../../Zotlabs/Lib/PermissionDescription.php:34 +#: ../../include/acl_selectors.php:128 +msgid "Visible to your default audience" +msgstr "" + +#: ../../Zotlabs/Lib/PermissionDescription.php:107 +#: ../../include/acl_selectors.php:191 +msgid "Only me" +msgstr "" + +#: ../../Zotlabs/Lib/PermissionDescription.php:108 +msgid "Public" +msgstr "" + +#: ../../Zotlabs/Lib/PermissionDescription.php:109 +msgid "Anybody in the $Projectname network" +msgstr "" + +#: ../../Zotlabs/Lib/PermissionDescription.php:110 +#, php-format +msgid "Any account on %s" +msgstr "" + +#: ../../Zotlabs/Lib/PermissionDescription.php:111 +msgid "Any of my connections" +msgstr "" + +#: ../../Zotlabs/Lib/PermissionDescription.php:112 +msgid "Only connections I specifically allow" +msgstr "" + +#: ../../Zotlabs/Lib/PermissionDescription.php:113 +msgid "Anybody authenticated (could include visitors from other networks)" +msgstr "" + +#: ../../Zotlabs/Lib/PermissionDescription.php:114 +msgid "Any connections including those who haven't yet been approved" +msgstr "" + +#: ../../Zotlabs/Lib/PermissionDescription.php:150 +msgid "" +"This is your default setting for the audience of your normal stream, and " +"posts." +msgstr "" + +#: ../../Zotlabs/Lib/PermissionDescription.php:151 +msgid "" +"This is your default setting for who can view your default channel profile" +msgstr "" + +#: ../../Zotlabs/Lib/PermissionDescription.php:152 +msgid "This is your default setting for who can view your connections" +msgstr "" + +#: ../../Zotlabs/Lib/PermissionDescription.php:153 +msgid "" +"This is your default setting for who can view your file storage and photos" +msgstr "" + +#: ../../Zotlabs/Lib/PermissionDescription.php:154 +msgid "This is your default setting for the audience of your webpages" +msgstr "" + +#: ../../Zotlabs/Lib/ThreadItem.php:95 ../../include/conversation.php:683 msgid "Private Message" msgstr "" -#: ../../Zotlabs/Lib/ThreadItem.php:132 ../../include/conversation.php:659 +#: ../../Zotlabs/Lib/ThreadItem.php:132 ../../include/conversation.php:675 msgid "Select" msgstr "" @@ -6789,11 +7160,11 @@ msgstr "" msgid "starred" msgstr "" -#: ../../Zotlabs/Lib/ThreadItem.php:239 ../../include/conversation.php:674 +#: ../../Zotlabs/Lib/ThreadItem.php:239 ../../include/conversation.php:690 msgid "Message signature validated" msgstr "" -#: ../../Zotlabs/Lib/ThreadItem.php:240 ../../include/conversation.php:675 +#: ../../Zotlabs/Lib/ThreadItem.php:240 ../../include/conversation.php:691 msgid "Message signature incorrect" msgstr "" @@ -6849,337 +7220,3154 @@ msgstr "" msgid "via Wall-To-Wall:" msgstr "" -#: ../../Zotlabs/Lib/ThreadItem.php:348 ../../include/conversation.php:720 +#: ../../Zotlabs/Lib/ThreadItem.php:348 ../../include/conversation.php:736 #, php-format msgid "from %s" msgstr "" -#: ../../Zotlabs/Lib/ThreadItem.php:351 ../../include/conversation.php:723 +#: ../../Zotlabs/Lib/ThreadItem.php:351 ../../include/conversation.php:739 #, php-format msgid "last edited: %s" msgstr "" -#: ../../Zotlabs/Lib/ThreadItem.php:352 ../../include/conversation.php:724 +#: ../../Zotlabs/Lib/ThreadItem.php:352 ../../include/conversation.php:740 #, php-format msgid "Expires: %s" msgstr "" -#: ../../Zotlabs/Lib/ThreadItem.php:377 +#: ../../Zotlabs/Lib/ThreadItem.php:358 +msgid "Attend" +msgstr "" + +#: ../../Zotlabs/Lib/ThreadItem.php:359 +msgid "Attendance Options" +msgstr "" + +#: ../../Zotlabs/Lib/ThreadItem.php:360 +msgid "Vote" +msgstr "" + +#: ../../Zotlabs/Lib/ThreadItem.php:361 +msgid "Voting Options" +msgstr "" + +#: ../../Zotlabs/Lib/ThreadItem.php:381 +#: ../../extend/addon/addon/bookmarker/bookmarker.php:38 msgid "Save Bookmarks" msgstr "" -#: ../../Zotlabs/Lib/ThreadItem.php:378 +#: ../../Zotlabs/Lib/ThreadItem.php:382 msgid "Add to Calendar" msgstr "" -#: ../../Zotlabs/Lib/ThreadItem.php:387 +#: ../../Zotlabs/Lib/ThreadItem.php:391 msgid "Mark all seen" msgstr "" -#: ../../Zotlabs/Lib/ThreadItem.php:436 ../../include/js_strings.php:7 +#: ../../Zotlabs/Lib/ThreadItem.php:440 ../../include/js_strings.php:7 #, php-format msgid "%s show all" msgstr "" -#: ../../Zotlabs/Lib/ThreadItem.php:726 ../../include/conversation.php:1239 +#: ../../Zotlabs/Lib/ThreadItem.php:730 ../../include/conversation.php:1255 msgid "Bold" msgstr "" -#: ../../Zotlabs/Lib/ThreadItem.php:727 ../../include/conversation.php:1240 +#: ../../Zotlabs/Lib/ThreadItem.php:731 ../../include/conversation.php:1256 msgid "Italic" msgstr "" -#: ../../Zotlabs/Lib/ThreadItem.php:728 ../../include/conversation.php:1241 +#: ../../Zotlabs/Lib/ThreadItem.php:732 ../../include/conversation.php:1257 msgid "Underline" msgstr "" -#: ../../Zotlabs/Lib/ThreadItem.php:729 ../../include/conversation.php:1242 +#: ../../Zotlabs/Lib/ThreadItem.php:733 ../../include/conversation.php:1258 msgid "Quote" msgstr "" -#: ../../Zotlabs/Lib/ThreadItem.php:730 ../../include/conversation.php:1243 +#: ../../Zotlabs/Lib/ThreadItem.php:734 ../../include/conversation.php:1259 msgid "Code" msgstr "" -#: ../../Zotlabs/Lib/ThreadItem.php:731 +#: ../../Zotlabs/Lib/ThreadItem.php:735 msgid "Image" msgstr "" -#: ../../Zotlabs/Lib/ThreadItem.php:732 +#: ../../Zotlabs/Lib/ThreadItem.php:736 msgid "Insert Link" msgstr "" -#: ../../Zotlabs/Lib/ThreadItem.php:733 +#: ../../Zotlabs/Lib/ThreadItem.php:737 msgid "Video" msgstr "" -#: ../../Zotlabs/Lib/PermissionDescription.php:31 -#: ../../include/acl_selectors.php:128 -msgid "Visible to your default audience" -msgstr "" - -#: ../../Zotlabs/Lib/PermissionDescription.php:106 -#: ../../include/acl_selectors.php:168 -msgid "Only me" -msgstr "" - -#: ../../Zotlabs/Lib/PermissionDescription.php:107 -msgid "Public" -msgstr "" - -#: ../../Zotlabs/Lib/PermissionDescription.php:108 -msgid "Anybody in the $Projectname network" -msgstr "" - -#: ../../Zotlabs/Lib/PermissionDescription.php:109 -#, php-format -msgid "Any account on %s" -msgstr "" - -#: ../../Zotlabs/Lib/PermissionDescription.php:110 -msgid "Any of my connections" -msgstr "" - -#: ../../Zotlabs/Lib/PermissionDescription.php:111 -msgid "Only connections I specifically allow" -msgstr "" - -#: ../../Zotlabs/Lib/PermissionDescription.php:112 -msgid "Anybody authenticated (could include visitors from other networks)" -msgstr "" - -#: ../../Zotlabs/Lib/PermissionDescription.php:113 -msgid "Any connections including those who haven't yet been approved" -msgstr "" - -#: ../../Zotlabs/Lib/PermissionDescription.php:152 -msgid "" -"This is your default setting for the audience of your normal stream, and " -"posts." -msgstr "" - -#: ../../Zotlabs/Lib/PermissionDescription.php:153 -msgid "" -"This is your default setting for who can view your default channel profile" -msgstr "" - -#: ../../Zotlabs/Lib/PermissionDescription.php:154 -msgid "This is your default setting for who can view your connections" -msgstr "" - -#: ../../Zotlabs/Lib/PermissionDescription.php:155 -msgid "" -"This is your default setting for who can view your file storage and photos" -msgstr "" - -#: ../../Zotlabs/Lib/PermissionDescription.php:156 -msgid "This is your default setting for the audience of your webpages" -msgstr "" - -#: ../../Zotlabs/Lib/Enotify.php:60 ../../include/network.php:1889 +#: ../../Zotlabs/Lib/Enotify.php:60 ../../include/network.php:1914 msgid "$Projectname Notification" msgstr "" -#: ../../Zotlabs/Lib/Enotify.php:61 ../../include/network.php:1890 +#: ../../Zotlabs/Lib/Enotify.php:61 ../../extend/addon/addon/diaspora/p.php:46 +#: ../../extend/addon/addon/diaspora/util.php:218 +#: ../../extend/addon/addon/diaspora/util.php:231 +#: ../../include/network.php:1915 msgid "$projectname" msgstr "" -#: ../../Zotlabs/Lib/Enotify.php:63 ../../include/network.php:1892 +#: ../../Zotlabs/Lib/Enotify.php:63 ../../include/network.php:1917 msgid "Thank You," msgstr "" -#: ../../Zotlabs/Lib/Enotify.php:65 ../../include/network.php:1894 +#: ../../Zotlabs/Lib/Enotify.php:65 ../../include/network.php:1919 #, php-format msgid "%s Administrator" msgstr "" -#: ../../Zotlabs/Lib/Enotify.php:115 +#: ../../Zotlabs/Lib/Enotify.php:116 #, php-format msgid "%s " msgstr "" -#: ../../Zotlabs/Lib/Enotify.php:119 +#: ../../Zotlabs/Lib/Enotify.php:120 #, php-format msgid "[$Projectname:Notify] New mail received at %s" msgstr "" -#: ../../Zotlabs/Lib/Enotify.php:121 +#: ../../Zotlabs/Lib/Enotify.php:122 #, php-format msgid "%1$s, %2$s sent you a new private message at %3$s." msgstr "" -#: ../../Zotlabs/Lib/Enotify.php:122 +#: ../../Zotlabs/Lib/Enotify.php:123 #, php-format msgid "%1$s sent you %2$s." msgstr "" -#: ../../Zotlabs/Lib/Enotify.php:122 +#: ../../Zotlabs/Lib/Enotify.php:123 msgid "a private message" msgstr "" -#: ../../Zotlabs/Lib/Enotify.php:123 +#: ../../Zotlabs/Lib/Enotify.php:124 #, php-format msgid "Please visit %s to view and/or reply to your private messages." msgstr "" -#: ../../Zotlabs/Lib/Enotify.php:182 +#: ../../Zotlabs/Lib/Enotify.php:183 #, php-format msgid "%1$s, %2$s commented on [zrl=%3$s]a %4$s[/zrl]" msgstr "" -#: ../../Zotlabs/Lib/Enotify.php:190 +#: ../../Zotlabs/Lib/Enotify.php:191 #, php-format msgid "%1$s, %2$s commented on [zrl=%3$s]%4$s's %5$s[/zrl]" msgstr "" -#: ../../Zotlabs/Lib/Enotify.php:199 +#: ../../Zotlabs/Lib/Enotify.php:200 #, php-format msgid "%1$s, %2$s commented on [zrl=%3$s]your %4$s[/zrl]" msgstr "" -#: ../../Zotlabs/Lib/Enotify.php:210 +#: ../../Zotlabs/Lib/Enotify.php:211 #, php-format msgid "[$Projectname:Notify] Comment to conversation #%1$d by %2$s" msgstr "" -#: ../../Zotlabs/Lib/Enotify.php:211 +#: ../../Zotlabs/Lib/Enotify.php:212 #, php-format msgid "%1$s, %2$s commented on an item/conversation you have been following." msgstr "" -#: ../../Zotlabs/Lib/Enotify.php:214 ../../Zotlabs/Lib/Enotify.php:229 -#: ../../Zotlabs/Lib/Enotify.php:255 ../../Zotlabs/Lib/Enotify.php:273 -#: ../../Zotlabs/Lib/Enotify.php:287 +#: ../../Zotlabs/Lib/Enotify.php:215 ../../Zotlabs/Lib/Enotify.php:230 +#: ../../Zotlabs/Lib/Enotify.php:256 ../../Zotlabs/Lib/Enotify.php:274 +#: ../../Zotlabs/Lib/Enotify.php:288 #, php-format msgid "Please visit %s to view and/or reply to the conversation." msgstr "" -#: ../../Zotlabs/Lib/Enotify.php:220 +#: ../../Zotlabs/Lib/Enotify.php:221 #, php-format msgid "[$Projectname:Notify] %s posted to your profile wall" msgstr "" -#: ../../Zotlabs/Lib/Enotify.php:222 +#: ../../Zotlabs/Lib/Enotify.php:223 #, php-format msgid "%1$s, %2$s posted to your profile wall at %3$s" msgstr "" -#: ../../Zotlabs/Lib/Enotify.php:224 +#: ../../Zotlabs/Lib/Enotify.php:225 #, php-format msgid "%1$s, %2$s posted to [zrl=%3$s]your wall[/zrl]" msgstr "" -#: ../../Zotlabs/Lib/Enotify.php:248 +#: ../../Zotlabs/Lib/Enotify.php:249 #, php-format msgid "[$Projectname:Notify] %s tagged you" msgstr "" -#: ../../Zotlabs/Lib/Enotify.php:249 +#: ../../Zotlabs/Lib/Enotify.php:250 #, php-format msgid "%1$s, %2$s tagged you at %3$s" msgstr "" -#: ../../Zotlabs/Lib/Enotify.php:250 +#: ../../Zotlabs/Lib/Enotify.php:251 #, php-format msgid "%1$s, %2$s [zrl=%3$s]tagged you[/zrl]." msgstr "" -#: ../../Zotlabs/Lib/Enotify.php:262 +#: ../../Zotlabs/Lib/Enotify.php:263 #, php-format msgid "[$Projectname:Notify] %1$s poked you" msgstr "" -#: ../../Zotlabs/Lib/Enotify.php:263 +#: ../../Zotlabs/Lib/Enotify.php:264 #, php-format msgid "%1$s, %2$s poked you at %3$s" msgstr "" -#: ../../Zotlabs/Lib/Enotify.php:264 +#: ../../Zotlabs/Lib/Enotify.php:265 #, php-format msgid "%1$s, %2$s [zrl=%2$s]poked you[/zrl]." msgstr "" -#: ../../Zotlabs/Lib/Enotify.php:280 +#: ../../Zotlabs/Lib/Enotify.php:281 #, php-format msgid "[$Projectname:Notify] %s tagged your post" msgstr "" -#: ../../Zotlabs/Lib/Enotify.php:281 +#: ../../Zotlabs/Lib/Enotify.php:282 #, php-format msgid "%1$s, %2$s tagged your post at %3$s" msgstr "" -#: ../../Zotlabs/Lib/Enotify.php:282 +#: ../../Zotlabs/Lib/Enotify.php:283 #, php-format msgid "%1$s, %2$s tagged [zrl=%3$s]your post[/zrl]" msgstr "" -#: ../../Zotlabs/Lib/Enotify.php:294 +#: ../../Zotlabs/Lib/Enotify.php:295 msgid "[$Projectname:Notify] Introduction received" msgstr "" -#: ../../Zotlabs/Lib/Enotify.php:295 +#: ../../Zotlabs/Lib/Enotify.php:296 #, php-format msgid "%1$s, you've received an new connection request from '%2$s' at %3$s" msgstr "" -#: ../../Zotlabs/Lib/Enotify.php:296 +#: ../../Zotlabs/Lib/Enotify.php:297 #, php-format msgid "" "%1$s, you've received [zrl=%2$s]a new connection request[/zrl] from %3$s." msgstr "" -#: ../../Zotlabs/Lib/Enotify.php:300 ../../Zotlabs/Lib/Enotify.php:319 +#: ../../Zotlabs/Lib/Enotify.php:301 ../../Zotlabs/Lib/Enotify.php:320 #, php-format msgid "You may visit their profile at %s" msgstr "" -#: ../../Zotlabs/Lib/Enotify.php:302 +#: ../../Zotlabs/Lib/Enotify.php:303 #, php-format msgid "Please visit %s to approve or reject the connection request." msgstr "" -#: ../../Zotlabs/Lib/Enotify.php:309 +#: ../../Zotlabs/Lib/Enotify.php:310 msgid "[$Projectname:Notify] Friend suggestion received" msgstr "" -#: ../../Zotlabs/Lib/Enotify.php:310 +#: ../../Zotlabs/Lib/Enotify.php:311 #, php-format msgid "%1$s, you've received a friend suggestion from '%2$s' at %3$s" msgstr "" -#: ../../Zotlabs/Lib/Enotify.php:311 +#: ../../Zotlabs/Lib/Enotify.php:312 #, php-format msgid "" "%1$s, you've received [zrl=%2$s]a friend suggestion[/zrl] for %3$s from %4$s." msgstr "" -#: ../../Zotlabs/Lib/Enotify.php:317 +#: ../../Zotlabs/Lib/Enotify.php:318 msgid "Name:" msgstr "" -#: ../../Zotlabs/Lib/Enotify.php:318 +#: ../../Zotlabs/Lib/Enotify.php:319 msgid "Photo:" msgstr "" -#: ../../Zotlabs/Lib/Enotify.php:321 +#: ../../Zotlabs/Lib/Enotify.php:322 #, php-format msgid "Please visit %s to approve or reject the suggestion." msgstr "" -#: ../../Zotlabs/Lib/Enotify.php:539 +#: ../../Zotlabs/Lib/Enotify.php:540 msgid "[$Projectname:Notify]" msgstr "" -#: ../../Zotlabs/Lib/Enotify.php:699 +#: ../../Zotlabs/Lib/Enotify.php:700 msgid "created a new post" msgstr "" -#: ../../Zotlabs/Lib/Enotify.php:700 +#: ../../Zotlabs/Lib/Enotify.php:701 #, php-format msgid "commented on %s's post" msgstr "" +#: ../../extend/addon/addon/adultphotoflag/adultphotoflag.php:24 +msgid "Flag Adult Photos" +msgstr "" + +#: ../../extend/addon/addon/adultphotoflag/adultphotoflag.php:25 +msgid "" +"Provide photo edit option to hide inappropriate photos from default album " +"view" +msgstr "" + +#: ../../extend/addon/addon/chords/Mod_Chords.php:44 +msgid "" +"This is a fairly comprehensive and complete guitar chord dictionary which " +"will list most of the available ways to play a certain chord, starting from " +"the base of the fingerboard up to a few frets beyond the twelfth fret " +"(beyond which everything repeats). A couple of non-standard tunings are " +"provided for the benefit of slide players, etc." +msgstr "" + +#: ../../extend/addon/addon/chords/Mod_Chords.php:46 +msgid "" +"Chord names start with a root note (A-G) and may include sharps (#) and " +"flats (b). This software will parse most of the standard naming conventions " +"such as maj, min, dim, sus(2 or 4), aug, with optional repeating elements." +msgstr "" + +#: ../../extend/addon/addon/chords/Mod_Chords.php:48 +msgid "" +"Valid examples include A, A7, Am7, Amaj7, Amaj9, Ammaj7, Aadd4, Asus2Add4, " +"E7b13b11 ..." +msgstr "" + +#: ../../extend/addon/addon/chords/Mod_Chords.php:51 +msgid "Guitar Chords" +msgstr "" + +#: ../../extend/addon/addon/chords/Mod_Chords.php:52 +msgid "The complete online chord dictionary" +msgstr "" + +#: ../../extend/addon/addon/chords/Mod_Chords.php:57 +msgid "Tuning" +msgstr "" + +#: ../../extend/addon/addon/chords/Mod_Chords.php:58 +msgid "Chord name: example: Em7" +msgstr "" + +#: ../../extend/addon/addon/chords/Mod_Chords.php:59 +msgid "Show for left handed stringing" +msgstr "" + +#: ../../extend/addon/addon/chords/chords.php:33 +msgid "Quick Reference" +msgstr "" + +#: ../../extend/addon/addon/diaspora/diaspora.php:671 +msgid "Diaspora Protocol Settings updated." +msgstr "" + +#: ../../extend/addon/addon/diaspora/diaspora.php:692 +msgid "Enable the Diaspora protocol for this channel" +msgstr "" + +#: ../../extend/addon/addon/diaspora/diaspora.php:696 +msgid "Allow any Diaspora member to comment on your public posts" +msgstr "" + +#: ../../extend/addon/addon/diaspora/diaspora.php:700 +msgid "Prevent your hashtags from being redirected to other sites" +msgstr "" + +#: ../../extend/addon/addon/diaspora/diaspora.php:705 +msgid "Followed hashtags (comma separated, do not include the #)" +msgstr "" + +#: ../../extend/addon/addon/diaspora/diaspora.php:710 +msgid "Diaspora Protocol Settings" +msgstr "" + +#: ../../extend/addon/addon/dirstats/dirstats.php:94 +msgid "Hubzilla Directory Stats" +msgstr "" + +#: ../../extend/addon/addon/dirstats/dirstats.php:95 +msgid "Total Hubs" +msgstr "" + +#: ../../extend/addon/addon/dirstats/dirstats.php:97 +msgid "Hubzilla Hubs" +msgstr "" + +#: ../../extend/addon/addon/dirstats/dirstats.php:99 +msgid "Friendica Hubs" +msgstr "" + +#: ../../extend/addon/addon/dirstats/dirstats.php:101 +msgid "Diaspora Pods" +msgstr "" + +#: ../../extend/addon/addon/dirstats/dirstats.php:103 +msgid "Hubzilla Channels" +msgstr "" + +#: ../../extend/addon/addon/dirstats/dirstats.php:105 +msgid "Friendica Channels" +msgstr "" + +#: ../../extend/addon/addon/dirstats/dirstats.php:107 +msgid "Diaspora Channels" +msgstr "" + +#: ../../extend/addon/addon/dirstats/dirstats.php:109 +msgid "Aged 35 and above" +msgstr "" + +#: ../../extend/addon/addon/dirstats/dirstats.php:111 +msgid "Aged 34 and under" +msgstr "" + +#: ../../extend/addon/addon/dirstats/dirstats.php:113 +msgid "Average Age" +msgstr "" + +#: ../../extend/addon/addon/dirstats/dirstats.php:115 +msgid "Known Chatrooms" +msgstr "" + +#: ../../extend/addon/addon/dirstats/dirstats.php:117 +msgid "Known Tags" +msgstr "" + +#: ../../extend/addon/addon/dirstats/dirstats.php:119 +msgid "" +"Please note Diaspora and Friendica statistics are merely those **this " +"directory** is aware of, and not all those known in the network. This also " +"applies to chatrooms," +msgstr "" + +#: ../../extend/addon/addon/donate/donate.php:21 +msgid "Project Servers and Resources" +msgstr "" + +#: ../../extend/addon/addon/donate/donate.php:22 +msgid "Project Creator and Tech Lead" +msgstr "" + +#: ../../extend/addon/addon/donate/donate.php:23 +msgid "Admin, developer, directorymin, support bloke" +msgstr "" + +#: ../../extend/addon/addon/donate/donate.php:50 +msgid "" +"And the hundreds of other people and organisations who helped make the " +"Hubzilla possible." +msgstr "" + +#: ../../extend/addon/addon/donate/donate.php:53 +msgid "" +"The Redmatrix/Hubzilla projects are provided primarily by volunteers giving " +"their time and expertise - and often paying out of pocket for services they " +"share with others." +msgstr "" + +#: ../../extend/addon/addon/donate/donate.php:54 +msgid "" +"There is no corporate funding and no ads, and we do not collect and sell " +"your personal information. (We don't control your personal information - " +"you do.)" +msgstr "" + +#: ../../extend/addon/addon/donate/donate.php:55 +msgid "" +"Help support our ground-breaking work in decentralisation, web identity, and " +"privacy." +msgstr "" + +#: ../../extend/addon/addon/donate/donate.php:57 +msgid "" +"Your donations keep servers and services running and also helps us to " +"provide innovative new features and continued development." +msgstr "" + +#: ../../extend/addon/addon/donate/donate.php:60 +msgid "Donate" +msgstr "" + +#: ../../extend/addon/addon/donate/donate.php:62 +msgid "" +"Choose a project, developer, or public hub to support with a one-time " +"donation" +msgstr "" + +#: ../../extend/addon/addon/donate/donate.php:63 +msgid "Donate Now" +msgstr "" + +#: ../../extend/addon/addon/donate/donate.php:64 +msgid "" +"Or become a project sponsor (Hubzilla Project only)" +msgstr "" + +#: ../../extend/addon/addon/donate/donate.php:65 +msgid "" +"Please indicate if you would like your first name or full name (or nothing) " +"to appear in our sponsor listing" +msgstr "" + +#: ../../extend/addon/addon/donate/donate.php:66 +msgid "Sponsor" +msgstr "" + +#: ../../extend/addon/addon/donate/donate.php:69 +msgid "Special thanks to: " +msgstr "" + +#: ../../extend/addon/addon/dwpost/dwpost.php:42 +msgid "Post to Dreamwidth" +msgstr "" + +#: ../../extend/addon/addon/dwpost/dwpost.php:73 +msgid "Enable Dreamwidth Post Plugin" +msgstr "" + +#: ../../extend/addon/addon/dwpost/dwpost.php:77 +msgid "Dreamwidth username" +msgstr "" + +#: ../../extend/addon/addon/dwpost/dwpost.php:81 +msgid "Dreamwidth password" +msgstr "" + +#: ../../extend/addon/addon/dwpost/dwpost.php:85 +msgid "Post to Dreamwidth by default" +msgstr "" + +#: ../../extend/addon/addon/dwpost/dwpost.php:89 +msgid "Dreamwidth Post Settings" +msgstr "" + +#: ../../extend/addon/addon/flattrwidget/flattrwidget.php:45 +msgid "Flattr this!" +msgstr "" + +#: ../../extend/addon/addon/flattrwidget/flattrwidget.php:83 +msgid "Flattr widget settings updated." +msgstr "" + +#: ../../extend/addon/addon/flattrwidget/flattrwidget.php:100 +msgid "Flattr user" +msgstr "" + +#: ../../extend/addon/addon/flattrwidget/flattrwidget.php:104 +msgid "URL of the Thing to flattr" +msgstr "" + +#: ../../extend/addon/addon/flattrwidget/flattrwidget.php:104 +msgid "If empty channel URL is used" +msgstr "" + +#: ../../extend/addon/addon/flattrwidget/flattrwidget.php:108 +msgid "Title of the Thing to flattr" +msgstr "" + +#: ../../extend/addon/addon/flattrwidget/flattrwidget.php:108 +msgid "If empty \"channel name on The Hubzilla\" will be used" +msgstr "" + +#: ../../extend/addon/addon/flattrwidget/flattrwidget.php:112 +msgid "Static or dynamic flattr button" +msgstr "" + +#: ../../extend/addon/addon/flattrwidget/flattrwidget.php:112 +msgid "static" +msgstr "" + +#: ../../extend/addon/addon/flattrwidget/flattrwidget.php:112 +msgid "dynamic" +msgstr "" + +#: ../../extend/addon/addon/flattrwidget/flattrwidget.php:116 +msgid "Alignment of the widget" +msgstr "" + +#: ../../extend/addon/addon/flattrwidget/flattrwidget.php:116 +msgid "left" +msgstr "" + +#: ../../extend/addon/addon/flattrwidget/flattrwidget.php:116 +msgid "right" +msgstr "" + +#: ../../extend/addon/addon/flattrwidget/flattrwidget.php:120 +msgid "Enable Flattr widget" +msgstr "" + +#: ../../extend/addon/addon/flattrwidget/flattrwidget.php:124 +msgid "Flattr Widget Settings" +msgstr "" + +#: ../../extend/addon/addon/friendica/dfrn_confirm.php:118 +msgid "Contact not found." +msgstr "" + +#: ../../extend/addon/addon/friendica/dfrn_confirm.php:119 +msgid "" +"This may occasionally happen if contact was requested by both persons and it " +"has already been approved." +msgstr "" + +#: ../../extend/addon/addon/friendica/dfrn_confirm.php:238 +msgid "Response from remote site was not understood." +msgstr "" + +#: ../../extend/addon/addon/friendica/dfrn_confirm.php:247 +#: ../../extend/addon/addon/friendica/dfrn_confirm.php:252 +msgid "Unexpected response from remote site: " +msgstr "" + +#: ../../extend/addon/addon/friendica/dfrn_confirm.php:261 +msgid "Confirmation completed successfully." +msgstr "" + +#: ../../extend/addon/addon/friendica/dfrn_confirm.php:263 +#: ../../extend/addon/addon/friendica/dfrn_confirm.php:277 +#: ../../extend/addon/addon/friendica/dfrn_confirm.php:284 +msgid "Remote site reported: " +msgstr "" + +#: ../../extend/addon/addon/friendica/dfrn_confirm.php:275 +msgid "Temporary failure. Please wait and try again." +msgstr "" + +#: ../../extend/addon/addon/friendica/dfrn_confirm.php:282 +msgid "Introduction failed or was revoked." +msgstr "" + +#: ../../extend/addon/addon/friendica/dfrn_confirm.php:428 +msgid "Unable to set contact photo." +msgstr "" + +#: ../../extend/addon/addon/friendica/dfrn_confirm.php:485 +#, php-format +msgid "%1$s is now friends with %2$s" +msgstr "" + +#: ../../extend/addon/addon/friendica/dfrn_confirm.php:570 +#, php-format +msgid "No user record found for '%s' " +msgstr "" + +#: ../../extend/addon/addon/friendica/dfrn_confirm.php:580 +msgid "Our site encryption key is apparently messed up." +msgstr "" + +#: ../../extend/addon/addon/friendica/dfrn_confirm.php:591 +msgid "Empty site URL was provided or URL could not be decrypted by us." +msgstr "" + +#: ../../extend/addon/addon/friendica/dfrn_confirm.php:612 +msgid "Contact record was not found for you on our site." +msgstr "" + +#: ../../extend/addon/addon/friendica/dfrn_confirm.php:626 +#, php-format +msgid "Site public key not available in contact record for URL %s." +msgstr "" + +#: ../../extend/addon/addon/friendica/dfrn_confirm.php:646 +msgid "" +"The ID provided by your system is a duplicate on our system. It should work " +"if you try again." +msgstr "" + +#: ../../extend/addon/addon/friendica/dfrn_confirm.php:657 +msgid "Unable to set your contact credentials on our system." +msgstr "" + +#: ../../extend/addon/addon/friendica/dfrn_confirm.php:724 +msgid "Unable to update your contact profile details on our system" +msgstr "" + +#: ../../extend/addon/addon/friendica/dfrn_confirm.php:751 +#: ../../extend/addon/addon/friendica/dfrn_request.php:749 +msgid "[Name Withheld]" +msgstr "" + +#: ../../extend/addon/addon/friendica/dfrn_confirm.php:796 +#, php-format +msgid "%1$s has joined %2$s" +msgstr "" + +#: ../../extend/addon/addon/friendica/dfrn_poll.php:103 +#: ../../extend/addon/addon/friendica/dfrn_poll.php:536 +#, php-format +msgid "%1$s welcomes %2$s" +msgstr "" + +#: ../../extend/addon/addon/friendica/dfrn_request.php:102 +msgid "This introduction has already been accepted." +msgstr "" + +#: ../../extend/addon/addon/friendica/dfrn_request.php:123 +#: ../../extend/addon/addon/friendica/dfrn_request.php:528 +msgid "Profile location is not valid or does not contain profile information." +msgstr "" + +#: ../../extend/addon/addon/friendica/dfrn_request.php:128 +#: ../../extend/addon/addon/friendica/dfrn_request.php:533 +msgid "Warning: profile location has no identifiable owner name." +msgstr "" + +#: ../../extend/addon/addon/friendica/dfrn_request.php:130 +#: ../../extend/addon/addon/friendica/dfrn_request.php:535 +msgid "Warning: profile location has no profile photo." +msgstr "" + +#: ../../extend/addon/addon/friendica/dfrn_request.php:133 +#: ../../extend/addon/addon/friendica/dfrn_request.php:538 +#, php-format +msgid "%d required parameter was not found at the given location" +msgid_plural "%d required parameters were not found at the given location" +msgstr[0] "" +msgstr[1] "" + +#: ../../extend/addon/addon/friendica/dfrn_request.php:180 +msgid "Introduction complete." +msgstr "" + +#: ../../extend/addon/addon/friendica/dfrn_request.php:224 +msgid "Unrecoverable protocol error." +msgstr "" + +#: ../../extend/addon/addon/friendica/dfrn_request.php:252 +msgid "Profile unavailable." +msgstr "" + +#: ../../extend/addon/addon/friendica/dfrn_request.php:277 +#, php-format +msgid "%s has received too many connection requests today." +msgstr "" + +#: ../../extend/addon/addon/friendica/dfrn_request.php:278 +msgid "Spam protection measures have been invoked." +msgstr "" + +#: ../../extend/addon/addon/friendica/dfrn_request.php:279 +msgid "Friends are advised to please try again in 24 hours." +msgstr "" + +#: ../../extend/addon/addon/friendica/dfrn_request.php:341 +msgid "Invalid locator" +msgstr "" + +#: ../../extend/addon/addon/friendica/dfrn_request.php:350 +msgid "Invalid email address." +msgstr "" + +#: ../../extend/addon/addon/friendica/dfrn_request.php:377 +msgid "This account has not been configured for email. Request failed." +msgstr "" + +#: ../../extend/addon/addon/friendica/dfrn_request.php:473 +msgid "Unable to resolve your name at the provided location." +msgstr "" + +#: ../../extend/addon/addon/friendica/dfrn_request.php:486 +msgid "You have already introduced yourself here." +msgstr "" + +#: ../../extend/addon/addon/friendica/dfrn_request.php:490 +#, php-format +msgid "Apparently you are already friends with %s." +msgstr "" + +#: ../../extend/addon/addon/friendica/dfrn_request.php:511 +msgid "Invalid profile URL." +msgstr "" + +#: ../../extend/addon/addon/friendica/dfrn_request.php:517 +msgid "Disallowed profile URL." +msgstr "" + +#: ../../extend/addon/addon/friendica/dfrn_request.php:587 +msgid "Failed to update contact record." +msgstr "" + +#: ../../extend/addon/addon/friendica/dfrn_request.php:608 +msgid "Your introduction has been sent." +msgstr "" + +#: ../../extend/addon/addon/friendica/dfrn_request.php:662 +msgid "Please login to confirm introduction." +msgstr "" + +#: ../../extend/addon/addon/friendica/dfrn_request.php:676 +msgid "" +"Incorrect identity currently logged in. Please login to this profile." +msgstr "" + +#: ../../extend/addon/addon/friendica/dfrn_request.php:690 +#: ../../extend/addon/addon/friendica/dfrn_request.php:707 +msgid "Confirm" +msgstr "" + +#: ../../extend/addon/addon/friendica/dfrn_request.php:702 +msgid "Hide this contact" +msgstr "" + +#: ../../extend/addon/addon/friendica/dfrn_request.php:705 +#, php-format +msgid "Welcome home %s." +msgstr "" + +#: ../../extend/addon/addon/friendica/dfrn_request.php:706 +#, php-format +msgid "Please confirm your introduction/connection request to %s." +msgstr "" + +#: ../../extend/addon/addon/friendica/dfrn_request.php:836 +msgid "" +"Please enter your 'Identity Address' from one of the following supported " +"communications networks:" +msgstr "" + +#: ../../extend/addon/addon/friendica/dfrn_request.php:857 +#, php-format +msgid "" +"If you are not yet a member of the free social web, follow this link to find a public Friendica site and join us today." +msgstr "" + +#: ../../extend/addon/addon/friendica/dfrn_request.php:862 +msgid "Friend/Connection Request" +msgstr "" + +#: ../../extend/addon/addon/friendica/dfrn_request.php:863 +msgid "" +"Examples: jojo@demo.friendica.com, http://demo.friendica.com/profile/jojo, " +"testuser@identi.ca" +msgstr "" + +#: ../../extend/addon/addon/friendica/dfrn_request.php:864 +msgid "Please answer the following:" +msgstr "" + +#: ../../extend/addon/addon/friendica/dfrn_request.php:865 +#, php-format +msgid "Does %s know you?" +msgstr "" + +#: ../../extend/addon/addon/friendica/dfrn_request.php:869 +msgid "Add a personal note:" +msgstr "" + +#: ../../extend/addon/addon/friendica/dfrn_request.php:871 +#: ../../include/network.php:2232 ../../include/network.php:2233 +msgid "Friendica" +msgstr "" + +#: ../../extend/addon/addon/friendica/dfrn_request.php:872 +msgid "StatusNet/Federated Social Web" +msgstr "" + +#: ../../extend/addon/addon/friendica/dfrn_request.php:873 +#: ../../include/network.php:2238 +msgid "Diaspora" +msgstr "" + +#: ../../extend/addon/addon/friendica/dfrn_request.php:874 +#, php-format +msgid "" +" - please do not use this form. Instead, enter %s into your Diaspora search " +"bar." +msgstr "" + +#: ../../extend/addon/addon/friendica/dfrn_request.php:875 +msgid "Your Identity Address:" +msgstr "" + +#: ../../extend/addon/addon/friendica/dfrn_request.php:878 +msgid "Submit Request" +msgstr "" + +#: ../../extend/addon/addon/friendica/friendica.php:113 +#: ../../extend/addon/addon/gnusoc/gnusoc.php:114 +msgid "GNU-Social Protocol Settings updated." +msgstr "" + +#: ../../extend/addon/addon/friendica/friendica.php:124 +msgid "Enable the (experimental) GNU-Social protocol for this channel" +msgstr "" + +#: ../../extend/addon/addon/friendica/friendica.php:128 +#: ../../extend/addon/addon/gnusoc/gnusoc.php:129 +msgid "GNU-Social Protocol Settings" +msgstr "" + +#: ../../extend/addon/addon/friendica/friendica.php:185 +#: ../../extend/addon/addon/gnusoc/gnusoc.php:319 +msgid "Follow" +msgstr "" + +#: ../../extend/addon/addon/friendica/friendica.php:188 +#: ../../extend/addon/addon/gnusoc/gnusoc.php:322 +#, php-format +msgid "%1$s is now following %2$s" +msgstr "" + +#: ../../extend/addon/addon/frphotos/frphotos.php:91 +msgid "Friendica Photo Album Import" +msgstr "" + +#: ../../extend/addon/addon/frphotos/frphotos.php:92 +msgid "This will import all your Friendica photo albums to this Red channel." +msgstr "" + +#: ../../extend/addon/addon/frphotos/frphotos.php:93 +msgid "Friendica Server base URL" +msgstr "" + +#: ../../extend/addon/addon/frphotos/frphotos.php:94 +msgid "Friendica Login Username" +msgstr "" + +#: ../../extend/addon/addon/frphotos/frphotos.php:95 +msgid "Friendica Login Password" +msgstr "" + +#: ../../extend/addon/addon/gnusoc/gnusoc.php:125 +msgid "Enable the GNU-Social protocol for this channel" +msgstr "" + +#: ../../extend/addon/addon/hubwall/hubwall.php:19 +msgid "Send email to all members" +msgstr "" + +#: ../../extend/addon/addon/hubwall/hubwall.php:33 +#, php-format +msgid "$1%s Administrator" +msgstr "" + +#: ../../extend/addon/addon/hubwall/hubwall.php:50 +#: ../../extend/addon/addon/mailtest/mailtest.php:50 +msgid "No recipients found." +msgstr "" + +#: ../../extend/addon/addon/hubwall/hubwall.php:73 +#, php-format +msgid "%1$d of %2$d messages sent." +msgstr "" + +#: ../../extend/addon/addon/hubwall/hubwall.php:81 +msgid "Send email to all hub members." +msgstr "" + +#: ../../extend/addon/addon/hubwall/hubwall.php:92 +#: ../../extend/addon/addon/mailtest/mailtest.php:96 +msgid "Message subject" +msgstr "" + +#: ../../extend/addon/addon/hubwall/hubwall.php:93 +msgid "Sender Email address" +msgstr "" + +#: ../../extend/addon/addon/hubwall/hubwall.php:94 +msgid "Test mode (only send to hub administrator)" +msgstr "" + +#: ../../extend/addon/addon/ijpost/ijpost.php:42 +msgid "Post to Insanejournal" +msgstr "" + +#: ../../extend/addon/addon/ijpost/ijpost.php:73 +msgid "Enable InsaneJournal Post Plugin" +msgstr "" + +#: ../../extend/addon/addon/ijpost/ijpost.php:77 +msgid "InsaneJournal username" +msgstr "" + +#: ../../extend/addon/addon/ijpost/ijpost.php:81 +msgid "InsaneJournal password" +msgstr "" + +#: ../../extend/addon/addon/ijpost/ijpost.php:85 +msgid "Post to InsaneJournal by default" +msgstr "" + +#: ../../extend/addon/addon/ijpost/ijpost.php:89 +msgid "InsaneJournal Post Settings" +msgstr "" + +#: ../../extend/addon/addon/ijpost/ijpost.php:104 +msgid "Insane Journal Settings saved." +msgstr "" + +#: ../../extend/addon/addon/irc/irc.php:45 +msgid "Channels to auto connect" +msgstr "" + +#: ../../extend/addon/addon/irc/irc.php:45 +#: ../../extend/addon/addon/irc/irc.php:49 +msgid "Comma separated list" +msgstr "" + +#: ../../extend/addon/addon/irc/irc.php:49 +#: ../../extend/addon/addon/irc/irc.php:96 +msgid "Popular Channels" +msgstr "" + +#: ../../extend/addon/addon/irc/irc.php:53 +msgid "IRC Settings" +msgstr "" + +#: ../../extend/addon/addon/irc/irc.php:69 +msgid "IRC settings saved." +msgstr "" + +#: ../../extend/addon/addon/irc/irc.php:74 +msgid "IRC Chatroom" +msgstr "" + +#: ../../extend/addon/addon/jappixmini/jappixmini.php:305 +#: ../../include/channel.php:1056 ../../include/channel.php:1218 +msgid "Status:" +msgstr "" + +#: ../../extend/addon/addon/jappixmini/jappixmini.php:309 +msgid "Activate addon" +msgstr "" + +#: ../../extend/addon/addon/jappixmini/jappixmini.php:313 +msgid "Hide Jappixmini Chat-Widget from the webinterface" +msgstr "" + +#: ../../extend/addon/addon/jappixmini/jappixmini.php:318 +msgid "Jabber username" +msgstr "" + +#: ../../extend/addon/addon/jappixmini/jappixmini.php:324 +msgid "Jabber server" +msgstr "" + +#: ../../extend/addon/addon/jappixmini/jappixmini.php:330 +msgid "Jabber BOSH host URL" +msgstr "" + +#: ../../extend/addon/addon/jappixmini/jappixmini.php:337 +msgid "Jabber password" +msgstr "" + +#: ../../extend/addon/addon/jappixmini/jappixmini.php:343 +msgid "Encrypt Jabber password with Hubzilla password" +msgstr "" + +#: ../../extend/addon/addon/jappixmini/jappixmini.php:347 +#: ../../extend/addon/addon/redred/redred.php:115 +msgid "Hubzilla password" +msgstr "" + +#: ../../extend/addon/addon/jappixmini/jappixmini.php:351 +#: ../../extend/addon/addon/jappixmini/jappixmini.php:355 +msgid "Approve subscription requests from Hubzilla contacts automatically" +msgstr "" + +#: ../../extend/addon/addon/jappixmini/jappixmini.php:359 +msgid "Purge internal list of jabber addresses of contacts" +msgstr "" + +#: ../../extend/addon/addon/jappixmini/jappixmini.php:364 +msgid "Configuration Help" +msgstr "" + +#: ../../extend/addon/addon/jappixmini/jappixmini.php:368 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1149 +msgid "Add Contact" +msgstr "" + +#: ../../extend/addon/addon/jappixmini/jappixmini.php:371 +msgid "Jappix Mini Settings" +msgstr "" + +#: ../../extend/addon/addon/js_upload/js_upload.php:44 +msgid "Upload a file" +msgstr "" + +#: ../../extend/addon/addon/js_upload/js_upload.php:45 +msgid "Drop files here to upload" +msgstr "" + +#: ../../extend/addon/addon/js_upload/js_upload.php:47 +msgid "Failed" +msgstr "" + +#: ../../extend/addon/addon/js_upload/js_upload.php:315 +msgid "No files were uploaded." +msgstr "" + +#: ../../extend/addon/addon/js_upload/js_upload.php:322 +msgid "Uploaded file is empty" +msgstr "" + +#: ../../extend/addon/addon/js_upload/js_upload.php:335 +msgid "Image exceeds size limit of " +msgstr "" + +#: ../../extend/addon/addon/js_upload/js_upload.php:347 +msgid "File has an invalid extension, it should be one of " +msgstr "" + +#: ../../extend/addon/addon/js_upload/js_upload.php:359 +msgid "Upload was cancelled, or server error encountered" +msgstr "" + +#: ../../extend/addon/addon/ldapauth/ldapauth.php:61 +msgid "An account has been created for you." +msgstr "" + +#: ../../extend/addon/addon/ldapauth/ldapauth.php:68 +msgid "Authentication successful but rejected: account creation is disabled." +msgstr "" + +#: ../../extend/addon/addon/libertree/libertree.php:38 +msgid "Post to Libertree" +msgstr "" + +#: ../../extend/addon/addon/libertree/libertree.php:69 +msgid "Enable Libertree Post Plugin" +msgstr "" + +#: ../../extend/addon/addon/libertree/libertree.php:73 +msgid "Libertree API token" +msgstr "" + +#: ../../extend/addon/addon/libertree/libertree.php:77 +msgid "Libertree site URL" +msgstr "" + +#: ../../extend/addon/addon/libertree/libertree.php:81 +msgid "Post to Libertree by default" +msgstr "" + +#: ../../extend/addon/addon/libertree/libertree.php:85 +msgid "Libertree Post Settings" +msgstr "" + +#: ../../extend/addon/addon/libertree/libertree.php:99 +msgid "Libertree Settings saved." +msgstr "" + +#: ../../extend/addon/addon/ljpost/ljpost.php:42 +msgid "Post to LiveJournal" +msgstr "" + +#: ../../extend/addon/addon/ljpost/ljpost.php:70 +msgid "Enable LiveJournal Post Plugin" +msgstr "" + +#: ../../extend/addon/addon/ljpost/ljpost.php:74 +msgid "LiveJournal username" +msgstr "" + +#: ../../extend/addon/addon/ljpost/ljpost.php:78 +msgid "LiveJournal password" +msgstr "" + +#: ../../extend/addon/addon/ljpost/ljpost.php:82 +msgid "Post to LiveJournal by default" +msgstr "" + +#: ../../extend/addon/addon/ljpost/ljpost.php:86 +msgid "LiveJournal Post Settings" +msgstr "" + +#: ../../extend/addon/addon/ljpost/ljpost.php:101 +msgid "LiveJournal Settings saved." +msgstr "" + +#: ../../extend/addon/addon/logrot/logrot.php:36 +msgid "Logfile archive directory" +msgstr "" + +#: ../../extend/addon/addon/logrot/logrot.php:36 +msgid "Directory to store rotated logs" +msgstr "" + +#: ../../extend/addon/addon/logrot/logrot.php:37 +msgid "Logfile size in bytes before rotating" +msgstr "" + +#: ../../extend/addon/addon/logrot/logrot.php:38 +msgid "Number of logfiles to retain" +msgstr "" + +#: ../../extend/addon/addon/mailhost/mailhost.php:36 +msgid "Email notification hub" +msgstr "" + +#: ../../extend/addon/addon/mailhost/mailhost.php:36 +msgid "Hostname" +msgstr "" + +#: ../../extend/addon/addon/mailhost/mailhost.php:40 +msgid "Mailhost Settings" +msgstr "" + +#: ../../extend/addon/addon/mailhost/mailhost.php:54 +msgid "MAILHOST Settings saved." +msgstr "" + +#: ../../extend/addon/addon/moremoods/moremoods.php:19 +msgid "lonely" +msgstr "" + +#: ../../extend/addon/addon/moremoods/moremoods.php:20 +msgid "drunk" +msgstr "" + +#: ../../extend/addon/addon/moremoods/moremoods.php:21 +msgid "horny" +msgstr "" + +#: ../../extend/addon/addon/moremoods/moremoods.php:22 +msgid "stoned" +msgstr "" + +#: ../../extend/addon/addon/moremoods/moremoods.php:23 +msgid "fucked up" +msgstr "" + +#: ../../extend/addon/addon/moremoods/moremoods.php:24 +msgid "clusterfucked" +msgstr "" + +#: ../../extend/addon/addon/moremoods/moremoods.php:25 +msgid "crazy" +msgstr "" + +#: ../../extend/addon/addon/moremoods/moremoods.php:26 +msgid "hurt" +msgstr "" + +#: ../../extend/addon/addon/moremoods/moremoods.php:27 +msgid "sleepy" +msgstr "" + +#: ../../extend/addon/addon/moremoods/moremoods.php:28 +msgid "grumpy" +msgstr "" + +#: ../../extend/addon/addon/moremoods/moremoods.php:29 +msgid "high" +msgstr "" + +#: ../../extend/addon/addon/moremoods/moremoods.php:30 +msgid "semi-conscious" +msgstr "" + +#: ../../extend/addon/addon/moremoods/moremoods.php:31 +msgid "in love" +msgstr "" + +#: ../../extend/addon/addon/moremoods/moremoods.php:32 +msgid "in lust" +msgstr "" + +#: ../../extend/addon/addon/moremoods/moremoods.php:33 +msgid "naked" +msgstr "" + +#: ../../extend/addon/addon/moremoods/moremoods.php:34 +msgid "stinky" +msgstr "" + +#: ../../extend/addon/addon/moremoods/moremoods.php:35 +msgid "sweaty" +msgstr "" + +#: ../../extend/addon/addon/moremoods/moremoods.php:36 +msgid "bleeding out" +msgstr "" + +#: ../../extend/addon/addon/moremoods/moremoods.php:37 +msgid "victorious" +msgstr "" + +#: ../../extend/addon/addon/moremoods/moremoods.php:38 +msgid "defeated" +msgstr "" + +#: ../../extend/addon/addon/moremoods/moremoods.php:39 +msgid "envious" +msgstr "" + +#: ../../extend/addon/addon/moremoods/moremoods.php:40 +msgid "jealous" +msgstr "" + +#: ../../extend/addon/addon/morepokes/morepokes.php:19 +msgid "bitchslap" +msgstr "" + +#: ../../extend/addon/addon/morepokes/morepokes.php:19 +msgid "bitchslapped" +msgstr "" + +#: ../../extend/addon/addon/morepokes/morepokes.php:20 +msgid "shag" +msgstr "" + +#: ../../extend/addon/addon/morepokes/morepokes.php:20 +msgid "shagged" +msgstr "" + +#: ../../extend/addon/addon/morepokes/morepokes.php:21 +msgid "patent" +msgstr "" + +#: ../../extend/addon/addon/morepokes/morepokes.php:21 +msgid "patented" +msgstr "" + +#: ../../extend/addon/addon/morepokes/morepokes.php:22 +msgid "hug" +msgstr "" + +#: ../../extend/addon/addon/morepokes/morepokes.php:22 +msgid "hugged" +msgstr "" + +#: ../../extend/addon/addon/morepokes/morepokes.php:23 +msgid "murder" +msgstr "" + +#: ../../extend/addon/addon/morepokes/morepokes.php:23 +msgid "murdered" +msgstr "" + +#: ../../extend/addon/addon/morepokes/morepokes.php:24 +msgid "worship" +msgstr "" + +#: ../../extend/addon/addon/morepokes/morepokes.php:24 +msgid "worshipped" +msgstr "" + +#: ../../extend/addon/addon/morepokes/morepokes.php:25 +msgid "kiss" +msgstr "" + +#: ../../extend/addon/addon/morepokes/morepokes.php:25 +msgid "kissed" +msgstr "" + +#: ../../extend/addon/addon/morepokes/morepokes.php:26 +msgid "tempt" +msgstr "" + +#: ../../extend/addon/addon/morepokes/morepokes.php:26 +msgid "tempted" +msgstr "" + +#: ../../extend/addon/addon/morepokes/morepokes.php:27 +msgid "raise eyebrows at" +msgstr "" + +#: ../../extend/addon/addon/morepokes/morepokes.php:27 +msgid "raised their eyebrows at" +msgstr "" + +#: ../../extend/addon/addon/morepokes/morepokes.php:28 +msgid "insult" +msgstr "" + +#: ../../extend/addon/addon/morepokes/morepokes.php:28 +msgid "insulted" +msgstr "" + +#: ../../extend/addon/addon/morepokes/morepokes.php:29 +msgid "praise" +msgstr "" + +#: ../../extend/addon/addon/morepokes/morepokes.php:29 +msgid "praised" +msgstr "" + +#: ../../extend/addon/addon/morepokes/morepokes.php:30 +msgid "be dubious of" +msgstr "" + +#: ../../extend/addon/addon/morepokes/morepokes.php:30 +msgid "was dubious of" +msgstr "" + +#: ../../extend/addon/addon/morepokes/morepokes.php:31 +msgid "eat" +msgstr "" + +#: ../../extend/addon/addon/morepokes/morepokes.php:31 +msgid "ate" +msgstr "" + +#: ../../extend/addon/addon/morepokes/morepokes.php:32 +msgid "giggle and fawn at" +msgstr "" + +#: ../../extend/addon/addon/morepokes/morepokes.php:32 +msgid "giggled and fawned at" +msgstr "" + +#: ../../extend/addon/addon/morepokes/morepokes.php:33 +msgid "doubt" +msgstr "" + +#: ../../extend/addon/addon/morepokes/morepokes.php:33 +msgid "doubted" +msgstr "" + +#: ../../extend/addon/addon/morepokes/morepokes.php:34 +msgid "glare" +msgstr "" + +#: ../../extend/addon/addon/morepokes/morepokes.php:34 +msgid "glared at" +msgstr "" + +#: ../../extend/addon/addon/morepokes/morepokes.php:35 +msgid "fuck" +msgstr "" + +#: ../../extend/addon/addon/morepokes/morepokes.php:35 +msgid "fucked" +msgstr "" + +#: ../../extend/addon/addon/morepokes/morepokes.php:36 +msgid "bonk" +msgstr "" + +#: ../../extend/addon/addon/morepokes/morepokes.php:36 +msgid "bonked" +msgstr "" + +#: ../../extend/addon/addon/morepokes/morepokes.php:37 +msgid "declare undying love for" +msgstr "" + +#: ../../extend/addon/addon/morepokes/morepokes.php:37 +msgid "declared undying love for" +msgstr "" + +#: ../../extend/addon/addon/msgfooter/msgfooter.php:46 +#: ../../extend/addon/addon/xmpp/xmpp.php:91 +msgid "Save Settings" +msgstr "" + +#: ../../extend/addon/addon/msgfooter/msgfooter.php:47 +msgid "text to include in all outgoing posts from this site" +msgstr "" + +#: ../../extend/addon/addon/nofed/nofed.php:42 +msgid "Federate" +msgstr "" + +#: ../../extend/addon/addon/nofed/nofed.php:56 +msgid "nofed Settings saved." +msgstr "" + +#: ../../extend/addon/addon/nofed/nofed.php:72 +msgid "Allow Federation Toggle" +msgstr "" + +#: ../../extend/addon/addon/nofed/nofed.php:76 +msgid "Federate posts by default" +msgstr "" + +#: ../../extend/addon/addon/nofed/nofed.php:80 +msgid "NoFed Settings" +msgstr "" + +#: ../../extend/addon/addon/nsabait/nsabait.php:125 +msgid "Nsabait Settings updated." +msgstr "" + +#: ../../extend/addon/addon/nsabait/nsabait.php:157 +msgid "Enable NSAbait Plugin" +msgstr "" + +#: ../../extend/addon/addon/nsabait/nsabait.php:161 +msgid "NSAbait Settings" +msgstr "" + +#: ../../extend/addon/addon/nsfw/nsfw.php:80 +msgid "" +"This plugin looks in posts for the words/text you specify below, and " +"collapses any content containing those keywords so it is not displayed at " +"inappropriate times, such as sexual innuendo that may be improper in a work " +"setting. It is polite and recommended to tag any content containing nudity " +"with #NSFW. This filter can also match any other word/text you specify, and " +"can thereby be used as a general purpose content filter." +msgstr "" + +#: ../../extend/addon/addon/nsfw/nsfw.php:84 +msgid "Enable Content filter" +msgstr "" + +#: ../../extend/addon/addon/nsfw/nsfw.php:88 +msgid "Comma separated list of keywords to hide" +msgstr "" + +#: ../../extend/addon/addon/nsfw/nsfw.php:88 +msgid "Use /expression/ to provide regular expressions" +msgstr "" + +#: ../../extend/addon/addon/nsfw/nsfw.php:92 +msgid "Not Safe For Work Settings" +msgstr "" + +#: ../../extend/addon/addon/nsfw/nsfw.php:92 +msgid "General Purpose Content Filter" +msgstr "" + +#: ../../extend/addon/addon/nsfw/nsfw.php:110 +msgid "NSFW Settings saved." +msgstr "" + +#: ../../extend/addon/addon/nsfw/nsfw.php:207 +msgid "Possible adult content" +msgstr "" + +#: ../../extend/addon/addon/nsfw/nsfw.php:211 +#, php-format +msgid "%s - click to open/close" +msgstr "" + +#: ../../extend/addon/addon/openclipatar/openclipatar.php:49 +#: ../../extend/addon/addon/openclipatar/openclipatar.php:127 +msgid "System defaults:" +msgstr "" + +#: ../../extend/addon/addon/openclipatar/openclipatar.php:53 +msgid "Preferred Clipart IDs" +msgstr "" + +#: ../../extend/addon/addon/openclipatar/openclipatar.php:53 +msgid "List of preferred clipart ids. These will be shown first." +msgstr "" + +#: ../../extend/addon/addon/openclipatar/openclipatar.php:54 +msgid "Default Search Term" +msgstr "" + +#: ../../extend/addon/addon/openclipatar/openclipatar.php:54 +msgid "The default search term. These will be shown second." +msgstr "" + +#: ../../extend/addon/addon/openclipatar/openclipatar.php:55 +msgid "Return After" +msgstr "" + +#: ../../extend/addon/addon/openclipatar/openclipatar.php:55 +msgid "Page to load after image selection." +msgstr "" + +#: ../../extend/addon/addon/openclipatar/openclipatar.php:57 +#: ../../include/channel.php:965 ../../include/nav.php:93 +msgid "Edit Profile" +msgstr "" + +#: ../../extend/addon/addon/openclipatar/openclipatar.php:58 +msgid "Profile List" +msgstr "" + +#: ../../extend/addon/addon/openclipatar/openclipatar.php:60 +msgid "Order of Preferred" +msgstr "" + +#: ../../extend/addon/addon/openclipatar/openclipatar.php:60 +msgid "Sort order of preferred clipart ids." +msgstr "" + +#: ../../extend/addon/addon/openclipatar/openclipatar.php:61 +#: ../../extend/addon/addon/openclipatar/openclipatar.php:67 +msgid "Newest first" +msgstr "" + +#: ../../extend/addon/addon/openclipatar/openclipatar.php:64 +msgid "As entered" +msgstr "" + +#: ../../extend/addon/addon/openclipatar/openclipatar.php:66 +msgid "Order of other" +msgstr "" + +#: ../../extend/addon/addon/openclipatar/openclipatar.php:66 +msgid "Sort order of other clipart ids." +msgstr "" + +#: ../../extend/addon/addon/openclipatar/openclipatar.php:68 +msgid "Most downloaded first" +msgstr "" + +#: ../../extend/addon/addon/openclipatar/openclipatar.php:69 +msgid "Most liked first" +msgstr "" + +#: ../../extend/addon/addon/openclipatar/openclipatar.php:71 +msgid "Preferred IDs Message" +msgstr "" + +#: ../../extend/addon/addon/openclipatar/openclipatar.php:71 +msgid "Message to display above preferred results." +msgstr "" + +#: ../../extend/addon/addon/openclipatar/openclipatar.php:77 +msgid "Uploaded by: " +msgstr "" + +#: ../../extend/addon/addon/openclipatar/openclipatar.php:77 +msgid "Drawn by: " +msgstr "" + +#: ../../extend/addon/addon/openclipatar/openclipatar.php:191 +msgid "Or select from a free OpenClipart.org image:" +msgstr "" + +#: ../../extend/addon/addon/openclipatar/openclipatar.php:194 +msgid "Search Term" +msgstr "" + +#: ../../extend/addon/addon/openclipatar/openclipatar.php:216 +msgid "Unknown error. Please try again later." +msgstr "" + +#: ../../extend/addon/addon/openclipatar/openclipatar.php:303 +msgid "Profile photo updated successfully." +msgstr "" + +#: ../../extend/addon/addon/openstreetmap/openstreetmap.php:146 +msgid "View Larger" +msgstr "" + +#: ../../extend/addon/addon/openstreetmap/openstreetmap.php:169 +msgid "Tile Server URL" +msgstr "" + +#: ../../extend/addon/addon/openstreetmap/openstreetmap.php:169 +msgid "" +"A list of public tile servers" +msgstr "" + +#: ../../extend/addon/addon/openstreetmap/openstreetmap.php:170 +msgid "Nominatim (reverse geocoding) Server URL" +msgstr "" + +#: ../../extend/addon/addon/openstreetmap/openstreetmap.php:170 +msgid "" +"A list of Nominatim servers" +msgstr "" + +#: ../../extend/addon/addon/openstreetmap/openstreetmap.php:171 +msgid "Default zoom" +msgstr "" + +#: ../../extend/addon/addon/openstreetmap/openstreetmap.php:171 +msgid "" +"The default zoom level. (1:world, 18:highest, also depends on tile server)" +msgstr "" + +#: ../../extend/addon/addon/openstreetmap/openstreetmap.php:172 +msgid "Include marker on map" +msgstr "" + +#: ../../extend/addon/addon/openstreetmap/openstreetmap.php:172 +msgid "Include a marker on the map." +msgstr "" + +#: ../../extend/addon/addon/pageheader/pageheader.php:43 +msgid "Message to display on every page on this server" +msgstr "" + +#: ../../extend/addon/addon/pageheader/pageheader.php:48 +msgid "Pageheader Settings" +msgstr "" + +#: ../../extend/addon/addon/pageheader/pageheader.php:64 +msgid "pageheader Settings saved." +msgstr "" + +#: ../../extend/addon/addon/piwik/piwik.php:85 +msgid "" +"This website is tracked using the Piwik " +"analytics tool." +msgstr "" + +#: ../../extend/addon/addon/piwik/piwik.php:88 +#, php-format +msgid "" +"If you do not want that your visits are logged this way you can " +"set a cookie to prevent Piwik from tracking further visits of the site " +"(opt-out)." +msgstr "" + +#: ../../extend/addon/addon/piwik/piwik.php:96 +msgid "Piwik Base URL" +msgstr "" + +#: ../../extend/addon/addon/piwik/piwik.php:96 +msgid "" +"Absolute path to your Piwik installation. (without protocol (http/s), with " +"trailing slash)" +msgstr "" + +#: ../../extend/addon/addon/piwik/piwik.php:97 +msgid "Site ID" +msgstr "" + +#: ../../extend/addon/addon/piwik/piwik.php:98 +msgid "Show opt-out cookie link?" +msgstr "" + +#: ../../extend/addon/addon/piwik/piwik.php:99 +msgid "Asynchronous tracking" +msgstr "" + +#: ../../extend/addon/addon/piwik/piwik.php:100 +msgid "Enable frontend JavaScript error tracking" +msgstr "" + +#: ../../extend/addon/addon/piwik/piwik.php:100 +msgid "This feature requires Piwik >= 2.2.0" +msgstr "" + +#: ../../extend/addon/addon/planets/planets.php:121 +msgid "Planets Settings updated." +msgstr "" + +#: ../../extend/addon/addon/planets/planets.php:153 +msgid "Enable Planets Plugin" +msgstr "" + +#: ../../extend/addon/addon/planets/planets.php:157 +msgid "Planets Settings" +msgstr "" + +#: ../../extend/addon/addon/pumpio/pumpio.php:148 +msgid "You are now authenticated to pumpio." +msgstr "" + +#: ../../extend/addon/addon/pumpio/pumpio.php:149 +msgid "return to the featured settings page" +msgstr "" + +#: ../../extend/addon/addon/pumpio/pumpio.php:163 +msgid "Post to Pump.io" +msgstr "" + +#: ../../extend/addon/addon/pumpio/pumpio.php:198 +msgid "Pump.io servername" +msgstr "" + +#: ../../extend/addon/addon/pumpio/pumpio.php:198 +msgid "Without \"http://\" or \"https://\"" +msgstr "" + +#: ../../extend/addon/addon/pumpio/pumpio.php:202 +msgid "Pump.io username" +msgstr "" + +#: ../../extend/addon/addon/pumpio/pumpio.php:202 +msgid "Without the servername" +msgstr "" + +#: ../../extend/addon/addon/pumpio/pumpio.php:213 +msgid "You are not authenticated to pumpio" +msgstr "" + +#: ../../extend/addon/addon/pumpio/pumpio.php:215 +msgid "(Re-)Authenticate your pump.io connection" +msgstr "" + +#: ../../extend/addon/addon/pumpio/pumpio.php:219 +msgid "Enable pump.io Post Plugin" +msgstr "" + +#: ../../extend/addon/addon/pumpio/pumpio.php:223 +msgid "Post to pump.io by default" +msgstr "" + +#: ../../extend/addon/addon/pumpio/pumpio.php:227 +msgid "Should posts be public" +msgstr "" + +#: ../../extend/addon/addon/pumpio/pumpio.php:231 +msgid "Mirror all public posts" +msgstr "" + +#: ../../extend/addon/addon/pumpio/pumpio.php:237 +msgid "Pump.io Post Settings" +msgstr "" + +#: ../../extend/addon/addon/pumpio/pumpio.php:266 +msgid "PumpIO Settings saved." +msgstr "" + +#: ../../extend/addon/addon/qrator/qrator.php:48 +msgid "QR code" +msgstr "" + +#: ../../extend/addon/addon/qrator/qrator.php:63 +msgid "QR Generator" +msgstr "" + +#: ../../extend/addon/addon/qrator/qrator.php:64 +msgid "Enter some text" +msgstr "" + +#: ../../extend/addon/addon/rainbowtag/rainbowtag.php:81 +msgid "Enable Rainbowtag" +msgstr "" + +#: ../../extend/addon/addon/rainbowtag/rainbowtag.php:85 +msgid "Rainbowtag Settings" +msgstr "" + +#: ../../extend/addon/addon/rainbowtag/rainbowtag.php:101 +msgid "Rainbowtag Settings saved." +msgstr "" + +#: ../../extend/addon/addon/randpost/randpost.php:97 +msgid "You're welcome." +msgstr "" + +#: ../../extend/addon/addon/randpost/randpost.php:98 +msgid "Ah shucks..." +msgstr "" + +#: ../../extend/addon/addon/randpost/randpost.php:99 +msgid "Don't mention it." +msgstr "" + +#: ../../extend/addon/addon/randpost/randpost.php:100 +msgid "<blush>" +msgstr "" + +#: ../../extend/addon/addon/redfiles/redfiles.php:119 +msgid "Redmatrix File Storage Import" +msgstr "" + +#: ../../extend/addon/addon/redfiles/redfiles.php:120 +msgid "This will import all your Redmatrix cloud files to this channel." +msgstr "" + +#: ../../extend/addon/addon/redfiles/redfiles.php:121 +#: ../../extend/addon/addon/redphotos/redphotos.php:131 +msgid "Redmatrix Server base URL" +msgstr "" + +#: ../../extend/addon/addon/redfiles/redfiles.php:122 +#: ../../extend/addon/addon/redphotos/redphotos.php:132 +msgid "Redmatrix Login Username" +msgstr "" + +#: ../../extend/addon/addon/redfiles/redfiles.php:123 +#: ../../extend/addon/addon/redphotos/redphotos.php:133 +msgid "Redmatrix Login Password" +msgstr "" + +#: ../../extend/addon/addon/redfiles/redfilehelper.php:67 +msgid "file" +msgstr "" + +#: ../../extend/addon/addon/redphotos/redphotos.php:106 +msgid "Photos imported" +msgstr "" + +#: ../../extend/addon/addon/redphotos/redphotos.php:129 +msgid "Redmatrix Photo Album Import" +msgstr "" + +#: ../../extend/addon/addon/redphotos/redphotos.php:130 +msgid "This will import all your Redmatrix photo albums to this channel." +msgstr "" + +#: ../../extend/addon/addon/redphotos/redphotos.php:134 +msgid "Import just this album" +msgstr "" + +#: ../../extend/addon/addon/redphotos/redphotos.php:134 +msgid "Leave blank to import all albums" +msgstr "" + +#: ../../extend/addon/addon/redphotos/redphotos.php:135 +msgid "Maximum count to import" +msgstr "" + +#: ../../extend/addon/addon/redphotos/redphotos.php:135 +msgid "0 or blank to import all available" +msgstr "" + +#: ../../extend/addon/addon/redred/redred.php:45 +msgid "Post to Red" +msgstr "" + +#: ../../extend/addon/addon/redred/redred.php:60 +msgid "Channel is required." +msgstr "" + +#: ../../extend/addon/addon/redred/redred.php:65 +msgid "Invalid channel." +msgstr "" + +#: ../../extend/addon/addon/redred/redred.php:76 +msgid "redred Settings saved." +msgstr "" + +#: ../../extend/addon/addon/redred/redred.php:95 +msgid "Allow posting to another Hubzilla Channel" +msgstr "" + +#: ../../extend/addon/addon/redred/redred.php:99 +msgid "Send public postings to Hubzilla channel by default" +msgstr "" + +#: ../../extend/addon/addon/redred/redred.php:103 +msgid "Hubzilla API Path" +msgstr "" + +#: ../../extend/addon/addon/redred/redred.php:103 +#: ../../extend/addon/addon/rtof/rtof.php:89 +msgid "https://{sitename}/api" +msgstr "" + +#: ../../extend/addon/addon/redred/redred.php:107 +msgid "Hubzilla login name" +msgstr "" + +#: ../../extend/addon/addon/redred/redred.php:111 +msgid "Hubzilla channel name" +msgstr "" + +#: ../../extend/addon/addon/redred/redred.php:111 +#: ../../extend/addon/addon/openid/MysqlProvider.php:54 +msgid "Nickname" +msgstr "" + +#: ../../extend/addon/addon/redred/redred.php:119 +msgid "Hubzilla Crosspost Settings" +msgstr "" + +#: ../../extend/addon/addon/rtof/rtof.php:45 +msgid "Post to Friendica" +msgstr "" + +#: ../../extend/addon/addon/rtof/rtof.php:62 +msgid "rtof Settings saved." +msgstr "" + +#: ../../extend/addon/addon/rtof/rtof.php:81 +msgid "Allow posting to Friendica" +msgstr "" + +#: ../../extend/addon/addon/rtof/rtof.php:85 +msgid "Send public postings to Friendica by default" +msgstr "" + +#: ../../extend/addon/addon/rtof/rtof.php:89 +msgid "Friendica API Path" +msgstr "" + +#: ../../extend/addon/addon/rtof/rtof.php:93 +msgid "Friendica login name" +msgstr "" + +#: ../../extend/addon/addon/rtof/rtof.php:97 +msgid "Friendica password" +msgstr "" + +#: ../../extend/addon/addon/rtof/rtof.php:101 +msgid "Hubzilla to Friendica Post Settings" +msgstr "" + +#: ../../extend/addon/addon/sendzid/sendzid.php:25 +msgid "Extended Identity Sharing" +msgstr "" + +#: ../../extend/addon/addon/sendzid/sendzid.php:26 +msgid "" +"Share your identity with all websites on the internet. When disabled, " +"identity is only shared with sites in the matrix." +msgstr "" + +#: ../../extend/addon/addon/skeleton/skeleton.php:59 +msgid "Some setting" +msgstr "" + +#: ../../extend/addon/addon/skeleton/skeleton.php:61 +msgid "A setting" +msgstr "" + +#: ../../extend/addon/addon/skeleton/skeleton.php:64 +msgid "Skeleton Settings" +msgstr "" + +#: ../../extend/addon/addon/smileybutton/smileybutton.php:273 +msgid "Deactivate the feature" +msgstr "" + +#: ../../extend/addon/addon/smileybutton/smileybutton.php:277 +msgid "Hide the button and show the smilies directly." +msgstr "" + +#: ../../extend/addon/addon/smileybutton/smileybutton.php:281 +msgid "Smileybutton Settings" +msgstr "" + +#: ../../extend/addon/addon/startpage/startpage.php:109 +msgid "Page to load after login" +msgstr "" + +#: ../../extend/addon/addon/startpage/startpage.php:109 +msgid "" +"Examples: "apps", "network?f=&gid=37" (privacy " +"collection), "channel" or "notifications/system" (leave " +"blank for default network page (grid)." +msgstr "" + +#: ../../extend/addon/addon/startpage/startpage.php:113 +msgid "Startpage Settings" +msgstr "" + +#: ../../extend/addon/addon/statusnet/statusnet.php:143 +msgid "Post to GNU social" +msgstr "" + +#: ../../extend/addon/addon/statusnet/statusnet.php:195 +msgid "" +"Please contact your site administrator.
        The provided API URL is not " +"valid." +msgstr "" + +#: ../../extend/addon/addon/statusnet/statusnet.php:232 +msgid "We could not contact the GNU social API with the Path you entered." +msgstr "" + +#: ../../extend/addon/addon/statusnet/statusnet.php:266 +msgid "GNU social settings updated." +msgstr "" + +#: ../../extend/addon/addon/statusnet/statusnet.php:310 +msgid "Globally Available GNU social OAuthKeys" +msgstr "" + +#: ../../extend/addon/addon/statusnet/statusnet.php:312 +msgid "" +"There are preconfigured OAuth key pairs for some GNU social servers " +"available. If you are using one of them, please use these credentials.
        If not feel free to connect to any other GNU social instance (see below)." +msgstr "" + +#: ../../extend/addon/addon/statusnet/statusnet.php:327 +msgid "Provide your own OAuth Credentials" +msgstr "" + +#: ../../extend/addon/addon/statusnet/statusnet.php:329 +msgid "" +"No consumer key pair for GNU social found. Register your Hubzilla Account as " +"an desktop client on your GNU social account, copy the consumer key pair " +"here and enter the API base root.
        Before you register your own OAuth " +"key pair ask the administrator if there is already a key pair for this " +"Hubzilla installation at your favourite GNU social installation." +msgstr "" + +#: ../../extend/addon/addon/statusnet/statusnet.php:333 +msgid "OAuth Consumer Key" +msgstr "" + +#: ../../extend/addon/addon/statusnet/statusnet.php:337 +msgid "OAuth Consumer Secret" +msgstr "" + +#: ../../extend/addon/addon/statusnet/statusnet.php:341 +msgid "Base API Path" +msgstr "" + +#: ../../extend/addon/addon/statusnet/statusnet.php:341 +msgid "Remember the trailing /" +msgstr "" + +#: ../../extend/addon/addon/statusnet/statusnet.php:345 +msgid "GNU social application name" +msgstr "" + +#: ../../extend/addon/addon/statusnet/statusnet.php:368 +msgid "" +"To connect to your GNU social account click the button below to get a " +"security code from GNU social which you have to copy into the input box " +"below and submit the form. Only your public posts will be " +"posted to GNU social." +msgstr "" + +#: ../../extend/addon/addon/statusnet/statusnet.php:370 +msgid "Log in with GNU social" +msgstr "" + +#: ../../extend/addon/addon/statusnet/statusnet.php:373 +msgid "Copy the security code from GNU social here" +msgstr "" + +#: ../../extend/addon/addon/statusnet/statusnet.php:383 +msgid "Cancel Connection Process" +msgstr "" + +#: ../../extend/addon/addon/statusnet/statusnet.php:385 +msgid "Current GNU social API is" +msgstr "" + +#: ../../extend/addon/addon/statusnet/statusnet.php:389 +msgid "Cancel GNU social Connection" +msgstr "" + +#: ../../extend/addon/addon/statusnet/statusnet.php:401 +#: ../../extend/addon/addon/twitter/twitter.php:232 +msgid "Currently connected to: " +msgstr "" + +#: ../../extend/addon/addon/statusnet/statusnet.php:406 +msgid "" +"Note: Due your privacy settings (Hide your profile " +"details from unknown viewers?) the link potentially included in public " +"postings relayed to GNU social will lead the visitor to a blank page " +"informing the visitor that the access to your profile has been restricted." +msgstr "" + +#: ../../extend/addon/addon/statusnet/statusnet.php:411 +msgid "Allow posting to GNU social" +msgstr "" + +#: ../../extend/addon/addon/statusnet/statusnet.php:411 +msgid "" +"If enabled your public postings can be posted to the associated GNU-social " +"account" +msgstr "" + +#: ../../extend/addon/addon/statusnet/statusnet.php:415 +msgid "Post to GNU social by default" +msgstr "" + +#: ../../extend/addon/addon/statusnet/statusnet.php:415 +msgid "" +"If enabled your public postings will be posted to the associated GNU-social " +"account by default" +msgstr "" + +#: ../../extend/addon/addon/statusnet/statusnet.php:424 +#: ../../extend/addon/addon/twitter/twitter.php:255 +msgid "Clear OAuth configuration" +msgstr "" + +#: ../../extend/addon/addon/statusnet/statusnet.php:432 +msgid "GNU social Post Settings" +msgstr "" + +#: ../../extend/addon/addon/statusnet/statusnet.php:891 +msgid "API URL" +msgstr "" + +#: ../../extend/addon/addon/statusnet/statusnet.php:894 +msgid "Application name" +msgstr "" + +#: ../../extend/addon/addon/superblock/superblock.php:106 +msgid "Currently blocked" +msgstr "" + +#: ../../extend/addon/addon/superblock/superblock.php:108 +msgid "No channels currently blocked" +msgstr "" + +#: ../../extend/addon/addon/superblock/superblock.php:114 +msgid "\"Superblock\" Settings" +msgstr "" + +#: ../../extend/addon/addon/superblock/superblock.php:279 +msgid "Block Completely" +msgstr "" + +#: ../../extend/addon/addon/superblock/superblock.php:326 +msgid "superblock settings updated" +msgstr "" + +#: ../../extend/addon/addon/testdrive/testdrive.php:104 +#, php-format +msgid "Your account on %s will expire in a few days." +msgstr "" + +#: ../../extend/addon/addon/testdrive/testdrive.php:105 +msgid "Your $Productname test account is about to expire." +msgstr "" + +#: ../../extend/addon/addon/tictac/tictac.php:21 +msgid "Three Dimensional Tic-Tac-Toe" +msgstr "" + +#: ../../extend/addon/addon/tictac/tictac.php:54 +msgid "3D Tic-Tac-Toe" +msgstr "" + +#: ../../extend/addon/addon/tictac/tictac.php:59 +msgid "New game" +msgstr "" + +#: ../../extend/addon/addon/tictac/tictac.php:60 +msgid "New game with handicap" +msgstr "" + +#: ../../extend/addon/addon/tictac/tictac.php:61 +msgid "" +"Three dimensional tic-tac-toe is just like the traditional game except that " +"it is played on multiple levels simultaneously. " +msgstr "" + +#: ../../extend/addon/addon/tictac/tictac.php:62 +msgid "" +"In this case there are three levels. You win by getting three in a row on " +"any level, as well as up, down, and diagonally across the different levels." +msgstr "" + +#: ../../extend/addon/addon/tictac/tictac.php:64 +msgid "" +"The handicap game disables the center position on the middle level because " +"the player claiming this square often has an unfair advantage." +msgstr "" + +#: ../../extend/addon/addon/tictac/tictac.php:183 +msgid "You go first..." +msgstr "" + +#: ../../extend/addon/addon/tictac/tictac.php:188 +msgid "I'm going first this time..." +msgstr "" + +#: ../../extend/addon/addon/tictac/tictac.php:194 +msgid "You won!" +msgstr "" + +#: ../../extend/addon/addon/tictac/tictac.php:200 +#: ../../extend/addon/addon/tictac/tictac.php:225 +msgid "\"Cat\" game!" +msgstr "" + +#: ../../extend/addon/addon/tictac/tictac.php:223 +msgid "I won!" +msgstr "" + +#: ../../extend/addon/addon/tour/tour.php:75 +msgid "Edit your profile and change settings." +msgstr "" + +#: ../../extend/addon/addon/tour/tour.php:76 +msgid "Click here to see activity from your connections." +msgstr "" + +#: ../../extend/addon/addon/tour/tour.php:77 +msgid "Click here to see your channel home." +msgstr "" + +#: ../../extend/addon/addon/tour/tour.php:78 +msgid "You can access your private messages from here." +msgstr "" + +#: ../../extend/addon/addon/tour/tour.php:79 +msgid "Create new events here." +msgstr "" + +#: ../../extend/addon/addon/tour/tour.php:80 +msgid "" +"You can accept new connections and change permissions for existing ones " +"here. You can also e.g. create groups of contacts." +msgstr "" + +#: ../../extend/addon/addon/tour/tour.php:81 +msgid "System notifications will arrive here" +msgstr "" + +#: ../../extend/addon/addon/tour/tour.php:82 +msgid "Search for content and users" +msgstr "" + +#: ../../extend/addon/addon/tour/tour.php:83 +msgid "Browse for new contacts" +msgstr "" + +#: ../../extend/addon/addon/tour/tour.php:84 +msgid "Launch installed apps" +msgstr "" + +#: ../../extend/addon/addon/tour/tour.php:85 +msgid "Looking for help? Click here." +msgstr "" + +#: ../../extend/addon/addon/tour/tour.php:86 +msgid "" +"New events have occurred in your network. Click here to see what has " +"happened!" +msgstr "" + +#: ../../extend/addon/addon/tour/tour.php:87 +msgid "You have received a new private message. Click here to see from who!" +msgstr "" + +#: ../../extend/addon/addon/tour/tour.php:88 +msgid "There are events this week. Click here too see which!" +msgstr "" + +#: ../../extend/addon/addon/tour/tour.php:89 +msgid "You have received a new introduction. Click here to see who!" +msgstr "" + +#: ../../extend/addon/addon/tour/tour.php:90 +msgid "" +"There is a new system notification. Click here to see what has happened!" +msgstr "" + +#: ../../extend/addon/addon/tour/tour.php:93 +msgid "Click here to share text, images, videos and sound." +msgstr "" + +#: ../../extend/addon/addon/tour/tour.php:94 +msgid "You can write an optional title for your update (good for long posts)." +msgstr "" + +#: ../../extend/addon/addon/tour/tour.php:95 +msgid "Entering some categories here makes it easier to find your post later." +msgstr "" + +#: ../../extend/addon/addon/tour/tour.php:96 +msgid "Share photos, links, location, etc." +msgstr "" + +#: ../../extend/addon/addon/tour/tour.php:97 +msgid "" +"Only want to share content for a while? Make it expire at a certain date." +msgstr "" + +#: ../../extend/addon/addon/tour/tour.php:98 +msgid "You can password protect content." +msgstr "" + +#: ../../extend/addon/addon/tour/tour.php:99 +msgid "Choose who you share with." +msgstr "" + +#: ../../extend/addon/addon/tour/tour.php:101 +msgid "Click here when you are done." +msgstr "" + +#: ../../extend/addon/addon/tour/tour.php:104 +msgid "Adjust from which channels posts should be displayed." +msgstr "" + +#: ../../extend/addon/addon/tour/tour.php:105 +msgid "Only show posts from channels in the specified privacy group." +msgstr "" + +#: ../../extend/addon/addon/tour/tour.php:109 +msgid "" +"Easily find posts containing tags (keywords preceded by the \"#\" symbol)." +msgstr "" + +#: ../../extend/addon/addon/tour/tour.php:110 +msgid "Easily find posts in given category." +msgstr "" + +#: ../../extend/addon/addon/tour/tour.php:111 +msgid "Easily find posts by date." +msgstr "" + +#: ../../extend/addon/addon/tour/tour.php:112 +msgid "" +"Suggested users who have volounteered to be shown as suggestions, and who we " +"think you might find interesting." +msgstr "" + +#: ../../extend/addon/addon/tour/tour.php:113 +msgid "Here you see channels you have connected to." +msgstr "" + +#: ../../extend/addon/addon/tour/tour.php:114 +msgid "Save your search so you can repeat it at a later date." +msgstr "" + +#: ../../extend/addon/addon/tour/tour.php:117 +msgid "" +"If you see this icon you can be sure that the sender is who it say it is. It " +"is normal that it is not always possible to verify the sender, so the icon " +"will be missing sometimes. There is usually no need to worry about that." +msgstr "" + +#: ../../extend/addon/addon/tour/tour.php:118 +msgid "" +"Danger! It seems someone tried to forge a message! This message is not " +"necessarily from who it says it is from!" +msgstr "" + +#: ../../extend/addon/addon/tour/tour.php:125 +msgid "" +"Welcome to Hubzilla! Would you like to see a tour of the UI?

        You can " +"pause it at any time and continue where you left off by reloading the page, " +"or navigting to another page.

        You can also advance by pressing the " +"return key" +msgstr "" + +#: ../../extend/addon/addon/twitter/twitter.php:99 +msgid "Post to Twitter" +msgstr "" + +#: ../../extend/addon/addon/twitter/twitter.php:154 +msgid "Twitter settings updated." +msgstr "" + +#: ../../extend/addon/addon/twitter/twitter.php:183 +msgid "" +"No consumer key pair for Twitter found. Please contact your site " +"administrator." +msgstr "" + +#: ../../extend/addon/addon/twitter/twitter.php:205 +msgid "" +"At this Hubzilla instance the Twitter plugin was enabled but you have not " +"yet connected your account to your Twitter account. To do so click the " +"button below to get a PIN from Twitter which you have to copy into the input " +"box below and submit the form. Only your public posts will " +"be posted to Twitter." +msgstr "" + +#: ../../extend/addon/addon/twitter/twitter.php:207 +msgid "Log in with Twitter" +msgstr "" + +#: ../../extend/addon/addon/twitter/twitter.php:210 +msgid "Copy the PIN from Twitter here" +msgstr "" + +#: ../../extend/addon/addon/twitter/twitter.php:237 +msgid "" +"Note: Due your privacy settings (Hide your profile " +"details from unknown viewers?) the link potentially included in public " +"postings relayed to Twitter will lead the visitor to a blank page informing " +"the visitor that the access to your profile has been restricted." +msgstr "" + +#: ../../extend/addon/addon/twitter/twitter.php:242 +msgid "Allow posting to Twitter" +msgstr "" + +#: ../../extend/addon/addon/twitter/twitter.php:242 +msgid "" +"If enabled your public postings can be posted to the associated Twitter " +"account" +msgstr "" + +#: ../../extend/addon/addon/twitter/twitter.php:246 +msgid "Send public postings to Twitter by default" +msgstr "" + +#: ../../extend/addon/addon/twitter/twitter.php:246 +msgid "" +"If enabled your public postings will be posted to the associated Twitter " +"account by default" +msgstr "" + +#: ../../extend/addon/addon/twitter/twitter.php:264 +msgid "Twitter Post Settings" +msgstr "" + +#: ../../extend/addon/addon/twitter/twitter.php:773 +#: ../../extend/addon/addon/rendezvous/rendezvous.php:95 +msgid "Submit Settings" +msgstr "" + +#: ../../extend/addon/addon/upload_limits/upload_limits.php:25 +msgid "Show Upload Limits" +msgstr "" + +#: ../../extend/addon/addon/upload_limits/upload_limits.php:27 +msgid "Hubzilla configured maximum size: " +msgstr "" + +#: ../../extend/addon/addon/upload_limits/upload_limits.php:28 +msgid "PHP upload_max_filesize: " +msgstr "" + +#: ../../extend/addon/addon/upload_limits/upload_limits.php:29 +msgid "PHP post_max_size (must be larger than upload_max_filesize): " +msgstr "" + +#: ../../extend/addon/addon/visage/visage.php:93 +msgid "Recent Channel/Profile Viewers" +msgstr "" + +#: ../../extend/addon/addon/visage/visage.php:98 +msgid "This plugin/addon has not been configured." +msgstr "" + +#: ../../extend/addon/addon/visage/visage.php:99 +#, php-format +msgid "Please visit the Visage settings on %s" +msgstr "" + +#: ../../extend/addon/addon/visage/visage.php:99 +msgid "your feature settings page" +msgstr "" + +#: ../../extend/addon/addon/visage/visage.php:112 +msgid "No entries." +msgstr "" + +#: ../../extend/addon/addon/visage/visage.php:166 +msgid "Enable Visage Visitor Logging" +msgstr "" + +#: ../../extend/addon/addon/visage/visage.php:170 +msgid "Visage Settings" +msgstr "" + +#: ../../extend/addon/addon/wholikesme/wholikesme.php:29 +msgid "Who likes me?" +msgstr "" + +#: ../../extend/addon/addon/wppost/wppost.php:45 +msgid "Post to WordPress" +msgstr "" + +#: ../../extend/addon/addon/wppost/wppost.php:82 +msgid "Enable WordPress Post Plugin" +msgstr "" + +#: ../../extend/addon/addon/wppost/wppost.php:86 +msgid "WordPress username" +msgstr "" + +#: ../../extend/addon/addon/wppost/wppost.php:90 +msgid "WordPress password" +msgstr "" + +#: ../../extend/addon/addon/wppost/wppost.php:94 +msgid "WordPress API URL" +msgstr "" + +#: ../../extend/addon/addon/wppost/wppost.php:95 +msgid "Typically https://your-blog.tld/xmlrpc.php" +msgstr "" + +#: ../../extend/addon/addon/wppost/wppost.php:98 +msgid "WordPress blogid" +msgstr "" + +#: ../../extend/addon/addon/wppost/wppost.php:99 +msgid "For multi-user sites such as wordpress.com, otherwise leave blank" +msgstr "" + +#: ../../extend/addon/addon/wppost/wppost.php:105 +msgid "Post to WordPress by default" +msgstr "" + +#: ../../extend/addon/addon/wppost/wppost.php:109 +msgid "Forward comments (requires hubzilla_wp plugin)" +msgstr "" + +#: ../../extend/addon/addon/wppost/wppost.php:113 +msgid "WordPress Post Settings" +msgstr "" + +#: ../../extend/addon/addon/wppost/wppost.php:129 +msgid "Wordpress Settings saved." +msgstr "" + +#: ../../extend/addon/addon/xmpp/xmpp.php:31 +msgid "XMPP settings updated." +msgstr "" + +#: ../../extend/addon/addon/xmpp/xmpp.php:53 +msgid "Enable Chat" +msgstr "" + +#: ../../extend/addon/addon/xmpp/xmpp.php:58 +msgid "Individual credentials" +msgstr "" + +#: ../../extend/addon/addon/xmpp/xmpp.php:64 +msgid "Jabber BOSH server" +msgstr "" + +#: ../../extend/addon/addon/xmpp/xmpp.php:69 +msgid "XMPP Settings" +msgstr "" + +#: ../../extend/addon/addon/xmpp/xmpp.php:92 +msgid "Jabber BOSH host" +msgstr "" + +#: ../../extend/addon/addon/xmpp/xmpp.php:93 +msgid "Use central userbase" +msgstr "" + +#: ../../extend/addon/addon/xmpp/xmpp.php:93 +msgid "" +"If enabled, members will automatically login to an ejabberd server that has " +"to be installed on this machine with synchronized credentials via the " +"\"auth_ejabberd.php\" script." +msgstr "" + +#: ../../extend/addon/addon/cdav/include/widgets.php:37 +msgid "Select Channel" +msgstr "" + +#: ../../extend/addon/addon/cdav/include/widgets.php:42 +msgid "Read-write" +msgstr "" + +#: ../../extend/addon/addon/cdav/include/widgets.php:43 +msgid "Read-only" +msgstr "" + +#: ../../extend/addon/addon/cdav/include/widgets.php:116 +msgid "My Calendars" +msgstr "" + +#: ../../extend/addon/addon/cdav/include/widgets.php:118 +msgid "Shared Calendars" +msgstr "" + +#: ../../extend/addon/addon/cdav/include/widgets.php:122 +msgid "Share this calendar" +msgstr "" + +#: ../../extend/addon/addon/cdav/include/widgets.php:124 +msgid "Calendar name and color" +msgstr "" + +#: ../../extend/addon/addon/cdav/include/widgets.php:126 +msgid "Create new calendar" +msgstr "" + +#: ../../extend/addon/addon/cdav/include/widgets.php:128 +msgid "Calendar Name" +msgstr "" + +#: ../../extend/addon/addon/cdav/include/widgets.php:129 +msgid "Calendar Tools" +msgstr "" + +#: ../../extend/addon/addon/cdav/include/widgets.php:130 +msgid "Import calendar" +msgstr "" + +#: ../../extend/addon/addon/cdav/include/widgets.php:131 +msgid "Select a calendar to import to" +msgstr "" + +#: ../../extend/addon/addon/cdav/include/widgets.php:158 +msgid "Addressbooks" +msgstr "" + +#: ../../extend/addon/addon/cdav/include/widgets.php:160 +msgid "Addressbook name" +msgstr "" + +#: ../../extend/addon/addon/cdav/include/widgets.php:162 +msgid "Create new addressbook" +msgstr "" + +#: ../../extend/addon/addon/cdav/include/widgets.php:163 +msgid "Addressbook Name" +msgstr "" + +#: ../../extend/addon/addon/cdav/include/widgets.php:165 +msgid "Addressbook Tools" +msgstr "" + +#: ../../extend/addon/addon/cdav/include/widgets.php:166 +msgid "Import addressbook" +msgstr "" + +#: ../../extend/addon/addon/cdav/include/widgets.php:167 +msgid "Select an addressbook to import to" +msgstr "" + +#: ../../extend/addon/addon/cdav/cdav.php:36 +msgid "Errors encountered creating database table: " +msgstr "" + +#: ../../extend/addon/addon/cdav/cdav.php:197 +msgid "Default Calendar" +msgstr "" + +#: ../../extend/addon/addon/cdav/cdav.php:206 +msgid "Default Addressbook" +msgstr "" + +#: ../../extend/addon/addon/cdav/cdav.php:215 +msgid "CalDAV/CardDAV Settings saved." +msgstr "" + +#: ../../extend/addon/addon/cdav/cdav.php:234 +msgid "Enable CalDAV/CardDAV Server for this channel" +msgstr "" + +#: ../../extend/addon/addon/cdav/cdav.php:237 +#, php-format +msgid "Your CalDAV resources are located at %s " +msgstr "" + +#: ../../extend/addon/addon/cdav/cdav.php:240 +#, php-format +msgid "Your CardDAV resources are located at %s " +msgstr "" + +#: ../../extend/addon/addon/cdav/cdav.php:246 +msgid "CalDAV/CardDAV Settings" +msgstr "" + +#: ../../extend/addon/addon/cdav/cdav.php:270 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1145 +msgid "Mobile" +msgstr "" + +#: ../../extend/addon/addon/cdav/cdav.php:271 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1146 ../../include/nav.php:88 +msgid "Home" +msgstr "" + +#: ../../extend/addon/addon/cdav/cdav.php:272 +msgid "Home, Voice" +msgstr "" + +#: ../../extend/addon/addon/cdav/cdav.php:273 +msgid "Home, Fax" +msgstr "" + +#: ../../extend/addon/addon/cdav/cdav.php:274 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1147 +msgid "Work" +msgstr "" + +#: ../../extend/addon/addon/cdav/cdav.php:275 +msgid "Work, Voice" +msgstr "" + +#: ../../extend/addon/addon/cdav/cdav.php:276 +msgid "Work, Fax" +msgstr "" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:744 +msgid "INVALID EVENT DISMISSED!" +msgstr "" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:745 +msgid "Summary: " +msgstr "" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:746 +msgid "Date: " +msgstr "" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:747 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:754 +msgid "Reason: " +msgstr "" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:752 +msgid "INVALID CARD DISMISSED!" +msgstr "" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:753 +msgid "Name: " +msgstr "" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:770 +msgid "" +"You have to enable this plugin in Feature/Addon Settings > CalDAV/CardDAV " +"Settings before you can use it." +msgstr "" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:836 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:837 +msgid "Example: YYYY-MM-DD HH:mm" +msgstr "" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:837 +msgid "End date and time" +msgstr "" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:852 +msgid "List month" +msgstr "" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:853 +msgid "List week" +msgstr "" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:854 +msgid "List day" +msgstr "" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:861 +msgid "More" +msgstr "" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:862 +msgid "Less" +msgstr "" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:863 +msgid "Select calendar" +msgstr "" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:865 +msgid "Delete all" +msgstr "" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:867 +msgid "Sorry! Editing of recurrent events is not yet implemented." +msgstr "" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1137 +msgid "Organisation" +msgstr "" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1138 +#: ../../include/page_widgets.php:46 +msgid "Title" +msgstr "" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1139 +msgid "Phone" +msgstr "" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1141 +msgid "Instant messenger" +msgstr "" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1142 +msgid "Website" +msgstr "" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1144 +msgid "Note" +msgstr "" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1150 +msgid "Add Field" +msgstr "" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1155 +msgid "P.O. Box" +msgstr "" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1156 +msgid "Additional" +msgstr "" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1157 +msgid "Street" +msgstr "" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1158 +msgid "Locality" +msgstr "" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1159 +msgid "Region" +msgstr "" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1160 +msgid "ZIP Code" +msgstr "" + +#: ../../extend/addon/addon/chess/chess.php:276 +#: ../../extend/addon/addon/chess/chess.php:430 +msgid "Invalid game." +msgstr "" + +#: ../../extend/addon/addon/chess/chess.php:282 +#: ../../extend/addon/addon/chess/chess.php:436 +msgid "You are not a player in this game." +msgstr "" + +#: ../../extend/addon/addon/chess/chess.php:315 +msgid "You must be a local channel to create a game." +msgstr "" + +#: ../../extend/addon/addon/chess/chess.php:333 +msgid "You must select one opponent that is not yourself." +msgstr "" + +#: ../../extend/addon/addon/chess/chess.php:336 +msgid "Creating new game..." +msgstr "" + +#: ../../extend/addon/addon/chess/chess.php:342 +msgid "You must select white or black." +msgstr "" + +#: ../../extend/addon/addon/chess/chess.php:349 +msgid "Error creating new game." +msgstr "" + +#: ../../extend/addon/addon/chess/chess.php:379 ../../include/channel.php:816 +msgid "Requested channel is not available." +msgstr "" + +#: ../../extend/addon/addon/chess/chess.php:392 +msgid "You must select a local channel /chess/channelname" +msgstr "" + +#: ../../extend/addon/addon/chess/chess.php:920 +msgid "Enable notifications" +msgstr "" + +#: ../../extend/addon/addon/likebanner/likebanner.php:51 +msgid "Your Webbie:" +msgstr "" + +#: ../../extend/addon/addon/likebanner/likebanner.php:54 +msgid "Fontsize (px):" +msgstr "" + +#: ../../extend/addon/addon/likebanner/likebanner.php:68 +msgid "Link:" +msgstr "" + +#: ../../extend/addon/addon/likebanner/likebanner.php:70 +msgid "Like us on Hubzilla" +msgstr "" + +#: ../../extend/addon/addon/likebanner/likebanner.php:72 +msgid "Embed:" +msgstr "" + +#: ../../extend/addon/addon/openid/Mod_Id.php:85 +#: ../../include/selectors.php:49 ../../include/selectors.php:66 +msgid "Male" +msgstr "" + +#: ../../extend/addon/addon/openid/Mod_Id.php:87 +#: ../../include/selectors.php:49 ../../include/selectors.php:66 +msgid "Female" +msgstr "" + +#: ../../extend/addon/addon/openid/Mod_Openid.php:30 +msgid "OpenID protocol error. No ID returned." +msgstr "" + +#: ../../extend/addon/addon/openid/Mod_Openid.php:193 +#: ../../include/auth.php:286 +msgid "Login failed." +msgstr "" + +#: ../../extend/addon/addon/openid/MysqlProvider.php:52 +msgid "First Name" +msgstr "" + +#: ../../extend/addon/addon/openid/MysqlProvider.php:53 +msgid "Last Name" +msgstr "" + +#: ../../extend/addon/addon/openid/MysqlProvider.php:55 +msgid "Full Name" +msgstr "" + +#: ../../extend/addon/addon/openid/MysqlProvider.php:61 +msgid "Profile Photo 16px" +msgstr "" + +#: ../../extend/addon/addon/openid/MysqlProvider.php:62 +msgid "Profile Photo 32px" +msgstr "" + +#: ../../extend/addon/addon/openid/MysqlProvider.php:63 +msgid "Profile Photo 48px" +msgstr "" + +#: ../../extend/addon/addon/openid/MysqlProvider.php:64 +msgid "Profile Photo 64px" +msgstr "" + +#: ../../extend/addon/addon/openid/MysqlProvider.php:65 +msgid "Profile Photo 80px" +msgstr "" + +#: ../../extend/addon/addon/openid/MysqlProvider.php:66 +msgid "Profile Photo 128px" +msgstr "" + +#: ../../extend/addon/addon/openid/MysqlProvider.php:67 +msgid "Timezone" +msgstr "" + +#: ../../extend/addon/addon/openid/MysqlProvider.php:70 +msgid "Birth Year" +msgstr "" + +#: ../../extend/addon/addon/openid/MysqlProvider.php:71 +msgid "Birth Month" +msgstr "" + +#: ../../extend/addon/addon/openid/MysqlProvider.php:72 +msgid "Birth Day" +msgstr "" + +#: ../../extend/addon/addon/openid/MysqlProvider.php:73 +msgid "Birthdate" +msgstr "" + +#: ../../extend/addon/addon/openid/openid.php:49 +msgid "" +"We encountered a problem while logging in with the OpenID you provided. " +"Please check the correct spelling of the ID." +msgstr "" + +#: ../../extend/addon/addon/openid/openid.php:49 +msgid "The error message was:" +msgstr "" + +#: ../../extend/addon/addon/diaspora_reconnect/diaspora_reconnect.php:44 +#, php-format +msgid "Reconnecting %d connections" +msgstr "" + +#: ../../extend/addon/addon/diaspora_reconnect/diaspora_reconnect.php:63 +msgid "Diaspora Reconnect" +msgstr "" + +#: ../../extend/addon/addon/diaspora_reconnect/diaspora_reconnect.php:65 +msgid "" +"Use this form to re-establish Diaspora connections which were initially made " +"from a different hub." +msgstr "" + +#: ../../extend/addon/addon/diaspora_reconnect/diaspora_reconnect.php:70 +msgid "Reconnect" +msgstr "" + +#: ../../extend/addon/addon/mailtest/mailtest.php:19 +msgid "Send test email" +msgstr "" + +#: ../../extend/addon/addon/mailtest/mailtest.php:66 +msgid "Mail sent." +msgstr "" + +#: ../../extend/addon/addon/mailtest/mailtest.php:68 +msgid "Sending of mail failed." +msgstr "" + +#: ../../extend/addon/addon/mailtest/mailtest.php:77 +msgid "Mail Test" +msgstr "" + +#: ../../extend/addon/addon/rendezvous/rendezvous.php:57 +msgid "Errors encountered deleting database table " +msgstr "" + +#: ../../extend/addon/addon/rendezvous/rendezvous.php:96 +msgid "Drop tables when uninstalling?" +msgstr "" + +#: ../../extend/addon/addon/rendezvous/rendezvous.php:96 +msgid "" +"If checked, the Rendezvous database tables will be deleted when the plugin " +"is uninstalled." +msgstr "" + +#: ../../extend/addon/addon/rendezvous/rendezvous.php:97 +msgid "Mapbox Access Token" +msgstr "" + +#: ../../extend/addon/addon/rendezvous/rendezvous.php:97 +msgid "" +"If you enter a Mapbox access token, it will be used to retrieve map tiles " +"from Mapbox instead of the default OpenStreetMap tile server." +msgstr "" + +#: ../../extend/addon/addon/rendezvous/rendezvous.php:122 +msgid "Rendezvous" +msgstr "" + +#: ../../extend/addon/addon/rendezvous/rendezvous.php:127 +msgid "" +"This identity has been deleted by another member due to inactivity. Please " +"press the \"New identity\" button or refresh the page to register a new " +"identity. You may use the same name." +msgstr "" + +#: ../../extend/addon/addon/rendezvous/rendezvous.php:128 +msgid "Welcome to Rendezvous!" +msgstr "" + +#: ../../extend/addon/addon/rendezvous/rendezvous.php:129 +msgid "" +"Enter your name to join this rendezvous. To begin sharing your location with " +"the other members, tap the GPS control. When your location is discovered, a " +"red dot will appear and others will be able to see you on the map." +msgstr "" + +#: ../../extend/addon/addon/rendezvous/rendezvous.php:131 +msgid "Let's meet here" +msgstr "" + +#: ../../extend/addon/addon/rendezvous/rendezvous.php:134 +msgid "New marker" +msgstr "" + +#: ../../extend/addon/addon/rendezvous/rendezvous.php:135 +msgid "Edit marker" +msgstr "" + +#: ../../extend/addon/addon/rendezvous/rendezvous.php:136 +msgid "New identity" +msgstr "" + +#: ../../extend/addon/addon/rendezvous/rendezvous.php:137 +msgid "Delete marker" +msgstr "" + +#: ../../extend/addon/addon/rendezvous/rendezvous.php:138 +msgid "Delete member" +msgstr "" + +#: ../../extend/addon/addon/rendezvous/rendezvous.php:139 +msgid "Edit proximity alert" +msgstr "" + +#: ../../extend/addon/addon/rendezvous/rendezvous.php:140 +msgid "" +"A proximity alert will be issued when this member is within a certain radius " +"of you.

        Enter a radius in meters (0 to disable):" +msgstr "" + +#: ../../extend/addon/addon/rendezvous/rendezvous.php:140 +msgid "distance" +msgstr "" + +#: ../../extend/addon/addon/rendezvous/rendezvous.php:150 +msgid "Add new rendezvous" +msgstr "" + +#: ../../extend/addon/addon/rendezvous/rendezvous.php:151 +msgid "" +"Create a new rendezvous and share the access link with those you wish to " +"invite to the group. Those who open the link become members of the " +"rendezvous. They can view other member locations, add markers to the map, or " +"share their own locations with the group." +msgstr "" + #: ../../include/Import/import_diaspora.php:16 msgid "No username found in import file." msgstr "" @@ -7188,204 +10376,11 @@ msgstr "" msgid "Unable to create a unique channel address. Import failed." msgstr "" -#: ../../include/dba/dba_driver.php:180 +#: ../../include/dba/dba_driver.php:187 #, php-format msgid "Cannot locate DNS info for database server '%s'" msgstr "" -#: ../../include/nav.php:85 ../../include/nav.php:118 ../../boot.php:1738 -msgid "Logout" -msgstr "" - -#: ../../include/nav.php:85 ../../include/nav.php:118 -msgid "End this session" -msgstr "" - -#: ../../include/nav.php:88 ../../include/nav.php:149 -msgid "Home" -msgstr "" - -#: ../../include/nav.php:88 -msgid "Your posts and conversations" -msgstr "" - -#: ../../include/nav.php:89 -msgid "Your profile page" -msgstr "" - -#: ../../include/nav.php:91 -msgid "Manage/Edit profiles" -msgstr "" - -#: ../../include/nav.php:93 ../../include/channel.php:965 -msgid "Edit Profile" -msgstr "" - -#: ../../include/nav.php:93 -msgid "Edit your profile" -msgstr "" - -#: ../../include/nav.php:95 -msgid "Your photos" -msgstr "" - -#: ../../include/nav.php:96 -msgid "Your files" -msgstr "" - -#: ../../include/nav.php:99 -msgid "Your chatrooms" -msgstr "" - -#: ../../include/nav.php:105 ../../include/conversation.php:1715 -msgid "Bookmarks" -msgstr "" - -#: ../../include/nav.php:105 -msgid "Your bookmarks" -msgstr "" - -#: ../../include/nav.php:109 -msgid "Your webpages" -msgstr "" - -#: ../../include/nav.php:111 -msgid "Your wiki" -msgstr "" - -#: ../../include/nav.php:115 -msgid "Sign in" -msgstr "" - -#: ../../include/nav.php:132 -#, php-format -msgid "%s - click to logout" -msgstr "" - -#: ../../include/nav.php:135 -msgid "Remote authentication" -msgstr "" - -#: ../../include/nav.php:135 -msgid "Click to authenticate to your home hub" -msgstr "" - -#: ../../include/nav.php:149 -msgid "Home Page" -msgstr "" - -#: ../../include/nav.php:152 -msgid "Create an account" -msgstr "" - -#: ../../include/nav.php:164 -msgid "Help and documentation" -msgstr "" - -#: ../../include/nav.php:168 -msgid "Applications, utilities, links, games" -msgstr "" - -#: ../../include/nav.php:170 -msgid "Search site @name, #tag, ?docs, content" -msgstr "" - -#: ../../include/nav.php:172 -msgid "Channel Directory" -msgstr "" - -#: ../../include/nav.php:184 -msgid "Your grid" -msgstr "" - -#: ../../include/nav.php:185 -msgid "Mark all grid notifications seen" -msgstr "" - -#: ../../include/nav.php:187 -msgid "Channel home" -msgstr "" - -#: ../../include/nav.php:188 -msgid "Mark all channel notifications seen" -msgstr "" - -#: ../../include/nav.php:194 -msgid "Notices" -msgstr "" - -#: ../../include/nav.php:194 -msgid "Notifications" -msgstr "" - -#: ../../include/nav.php:195 -msgid "See all notifications" -msgstr "" - -#: ../../include/nav.php:198 -msgid "Private mail" -msgstr "" - -#: ../../include/nav.php:199 -msgid "See all private messages" -msgstr "" - -#: ../../include/nav.php:200 -msgid "Mark all private messages seen" -msgstr "" - -#: ../../include/nav.php:201 ../../include/widgets.php:700 -msgid "Inbox" -msgstr "" - -#: ../../include/nav.php:202 ../../include/widgets.php:705 -msgid "Outbox" -msgstr "" - -#: ../../include/nav.php:203 ../../include/widgets.php:710 -msgid "New Message" -msgstr "" - -#: ../../include/nav.php:206 -msgid "Event Calendar" -msgstr "" - -#: ../../include/nav.php:207 -msgid "See all events" -msgstr "" - -#: ../../include/nav.php:208 -msgid "Mark all events seen" -msgstr "" - -#: ../../include/nav.php:211 -msgid "Manage Your Channels" -msgstr "" - -#: ../../include/nav.php:213 -msgid "Account/Channel Settings" -msgstr "" - -#: ../../include/nav.php:221 ../../include/widgets.php:1593 -msgid "Admin" -msgstr "" - -#: ../../include/nav.php:221 -msgid "Site Setup and Configuration" -msgstr "" - -#: ../../include/nav.php:252 ../../include/conversation.php:853 -msgid "Loading..." -msgstr "" - -#: ../../include/nav.php:257 -msgid "@name, #tag, ?doc, content" -msgstr "" - -#: ../../include/nav.php:258 -msgid "Please wait..." -msgstr "" - #: ../../include/datetime.php:147 msgid "Birthday" msgstr "" @@ -7398,7 +10393,7 @@ msgstr "" msgid "YYYY-MM-DD or MM-DD" msgstr "" -#: ../../include/datetime.php:286 ../../boot.php:2578 +#: ../../include/datetime.php:286 ../../boot.php:2563 msgid "never" msgstr "" @@ -7471,428 +10466,487 @@ msgstr "" msgid "Happy Birthday %1$s" msgstr "" -#: ../../include/text.php:459 -msgid "prev" +#: ../../include/account.php:35 +msgid "Not a valid email address" msgstr "" -#: ../../include/text.php:461 -msgid "first" +#: ../../include/account.php:37 +msgid "Your email domain is not among those allowed on this site" msgstr "" -#: ../../include/text.php:490 -msgid "last" +#: ../../include/account.php:43 +msgid "Your email address is already registered at this site." msgstr "" -#: ../../include/text.php:493 -msgid "next" +#: ../../include/account.php:75 +msgid "An invitation is required." msgstr "" -#: ../../include/text.php:504 -msgid "older" +#: ../../include/account.php:79 +msgid "Invitation could not be verified." msgstr "" -#: ../../include/text.php:506 -msgid "newer" +#: ../../include/account.php:130 +msgid "Please enter the required information." msgstr "" -#: ../../include/text.php:911 -msgid "No connections" +#: ../../include/account.php:198 +msgid "Failed to store account information." msgstr "" -#: ../../include/text.php:936 +#: ../../include/account.php:263 #, php-format -msgid "View all %s connections" +msgid "Registration confirmation for %s" msgstr "" -#: ../../include/text.php:1081 ../../include/text.php:1086 -msgid "poke" -msgstr "" - -#: ../../include/text.php:1081 ../../include/text.php:1086 -#: ../../include/conversation.php:243 -msgid "poked" -msgstr "" - -#: ../../include/text.php:1087 -msgid "ping" -msgstr "" - -#: ../../include/text.php:1087 -msgid "pinged" -msgstr "" - -#: ../../include/text.php:1088 -msgid "prod" -msgstr "" - -#: ../../include/text.php:1088 -msgid "prodded" -msgstr "" - -#: ../../include/text.php:1089 -msgid "slap" -msgstr "" - -#: ../../include/text.php:1089 -msgid "slapped" -msgstr "" - -#: ../../include/text.php:1090 -msgid "finger" -msgstr "" - -#: ../../include/text.php:1090 -msgid "fingered" -msgstr "" - -#: ../../include/text.php:1091 -msgid "rebuff" -msgstr "" - -#: ../../include/text.php:1091 -msgid "rebuffed" -msgstr "" - -#: ../../include/text.php:1103 -msgid "happy" -msgstr "" - -#: ../../include/text.php:1104 -msgid "sad" -msgstr "" - -#: ../../include/text.php:1105 -msgid "mellow" -msgstr "" - -#: ../../include/text.php:1106 -msgid "tired" -msgstr "" - -#: ../../include/text.php:1107 -msgid "perky" -msgstr "" - -#: ../../include/text.php:1108 -msgid "angry" -msgstr "" - -#: ../../include/text.php:1109 -msgid "stupefied" -msgstr "" - -#: ../../include/text.php:1110 -msgid "puzzled" -msgstr "" - -#: ../../include/text.php:1111 -msgid "interested" -msgstr "" - -#: ../../include/text.php:1112 -msgid "bitter" -msgstr "" - -#: ../../include/text.php:1113 -msgid "cheerful" -msgstr "" - -#: ../../include/text.php:1114 -msgid "alive" -msgstr "" - -#: ../../include/text.php:1115 -msgid "annoyed" -msgstr "" - -#: ../../include/text.php:1116 -msgid "anxious" -msgstr "" - -#: ../../include/text.php:1117 -msgid "cranky" -msgstr "" - -#: ../../include/text.php:1118 -msgid "disturbed" -msgstr "" - -#: ../../include/text.php:1119 -msgid "frustrated" -msgstr "" - -#: ../../include/text.php:1120 -msgid "depressed" -msgstr "" - -#: ../../include/text.php:1121 -msgid "motivated" -msgstr "" - -#: ../../include/text.php:1122 -msgid "relaxed" -msgstr "" - -#: ../../include/text.php:1123 -msgid "surprised" -msgstr "" - -#: ../../include/text.php:1310 ../../include/js_strings.php:70 -msgid "Monday" -msgstr "" - -#: ../../include/text.php:1310 ../../include/js_strings.php:71 -msgid "Tuesday" -msgstr "" - -#: ../../include/text.php:1310 ../../include/js_strings.php:72 -msgid "Wednesday" -msgstr "" - -#: ../../include/text.php:1310 ../../include/js_strings.php:73 -msgid "Thursday" -msgstr "" - -#: ../../include/text.php:1310 ../../include/js_strings.php:74 -msgid "Friday" -msgstr "" - -#: ../../include/text.php:1310 ../../include/js_strings.php:75 -msgid "Saturday" -msgstr "" - -#: ../../include/text.php:1310 ../../include/js_strings.php:69 -msgid "Sunday" -msgstr "" - -#: ../../include/text.php:1314 ../../include/js_strings.php:45 -msgid "January" -msgstr "" - -#: ../../include/text.php:1314 ../../include/js_strings.php:46 -msgid "February" -msgstr "" - -#: ../../include/text.php:1314 ../../include/js_strings.php:47 -msgid "March" -msgstr "" - -#: ../../include/text.php:1314 ../../include/js_strings.php:48 -msgid "April" -msgstr "" - -#: ../../include/text.php:1314 -msgid "May" -msgstr "" - -#: ../../include/text.php:1314 ../../include/js_strings.php:50 -msgid "June" -msgstr "" - -#: ../../include/text.php:1314 ../../include/js_strings.php:51 -msgid "July" -msgstr "" - -#: ../../include/text.php:1314 ../../include/js_strings.php:52 -msgid "August" -msgstr "" - -#: ../../include/text.php:1314 ../../include/js_strings.php:53 -msgid "September" -msgstr "" - -#: ../../include/text.php:1314 ../../include/js_strings.php:54 -msgid "October" -msgstr "" - -#: ../../include/text.php:1314 ../../include/js_strings.php:55 -msgid "November" -msgstr "" - -#: ../../include/text.php:1314 ../../include/js_strings.php:56 -msgid "December" -msgstr "" - -#: ../../include/text.php:1391 ../../include/text.php:1395 -msgid "Unknown Attachment" -msgstr "" - -#: ../../include/text.php:1397 -msgid "unknown" -msgstr "" - -#: ../../include/text.php:1433 -msgid "remove category" -msgstr "" - -#: ../../include/text.php:1510 -msgid "remove from file" -msgstr "" - -#: ../../include/text.php:1814 ../../include/language.php:367 -msgid "default" -msgstr "" - -#: ../../include/text.php:1822 -msgid "Page layout" -msgstr "" - -#: ../../include/text.php:1822 -msgid "You can create your own with the layouts tool" -msgstr "" - -#: ../../include/text.php:1864 -msgid "Page content type" -msgstr "" - -#: ../../include/text.php:1997 -msgid "activity" -msgstr "" - -#: ../../include/text.php:2308 -msgid "Design Tools" -msgstr "" - -#: ../../include/text.php:2314 -msgid "Pages" -msgstr "" - -#: ../../include/text.php:2336 -msgid "Import website..." -msgstr "" - -#: ../../include/text.php:2337 -msgid "Select folder to import" -msgstr "" - -#: ../../include/text.php:2338 -msgid "Import from a zipped folder:" -msgstr "" - -#: ../../include/text.php:2339 -msgid "Import from cloud files:" -msgstr "" - -#: ../../include/text.php:2340 -msgid "/cloud/channel/path/to/folder" -msgstr "" - -#: ../../include/text.php:2341 -msgid "Enter path to website files" -msgstr "" - -#: ../../include/text.php:2342 -msgid "Select folder" -msgstr "" - -#: ../../include/text.php:2343 -msgid "Export website..." -msgstr "" - -#: ../../include/text.php:2344 -msgid "Export to a zip file" -msgstr "" - -#: ../../include/text.php:2345 -msgid "website.zip" -msgstr "" - -#: ../../include/text.php:2346 -msgid "Enter a name for the zip file." -msgstr "" - -#: ../../include/text.php:2347 -msgid "Export to cloud files" -msgstr "" - -#: ../../include/text.php:2348 -msgid "/path/to/export/folder" -msgstr "" - -#: ../../include/text.php:2349 -msgid "Enter a path to a cloud files destination." -msgstr "" - -#: ../../include/text.php:2350 -msgid "Specify folder" -msgstr "" - -#: ../../include/bbcode.php:134 ../../include/bbcode.php:902 -#: ../../include/bbcode.php:905 ../../include/bbcode.php:910 -#: ../../include/bbcode.php:913 ../../include/bbcode.php:916 -#: ../../include/bbcode.php:919 ../../include/bbcode.php:924 -#: ../../include/bbcode.php:927 ../../include/bbcode.php:932 -#: ../../include/bbcode.php:935 ../../include/bbcode.php:938 -#: ../../include/bbcode.php:941 -msgid "Image/photo" -msgstr "" - -#: ../../include/bbcode.php:173 ../../include/bbcode.php:952 -msgid "Encrypted content" -msgstr "" - -#: ../../include/bbcode.php:189 +#: ../../include/account.php:330 #, php-format -msgid "Install %s element: " +msgid "Registration request at %s" msgstr "" -#: ../../include/bbcode.php:193 +#: ../../include/account.php:352 +msgid "your registration password" +msgstr "" + +#: ../../include/account.php:358 ../../include/account.php:420 #, php-format +msgid "Registration details for %s" +msgstr "" + +#: ../../include/account.php:431 +msgid "Account approved." +msgstr "" + +#: ../../include/account.php:471 +#, php-format +msgid "Registration revoked for %s" +msgstr "" + +#: ../../include/account.php:756 ../../include/account.php:758 +msgid "Click here to upgrade." +msgstr "" + +#: ../../include/account.php:764 +msgid "This action exceeds the limits set by your subscription plan." +msgstr "" + +#: ../../include/account.php:769 +msgid "This action is not available under your subscription plan." +msgstr "" + +#: ../../include/message.php:20 +msgid "No recipient provided." +msgstr "" + +#: ../../include/message.php:25 +msgid "[no subject]" +msgstr "" + +#: ../../include/message.php:45 +msgid "Unable to determine sender." +msgstr "" + +#: ../../include/message.php:223 +msgid "Stored post could not be verified." +msgstr "" + +#: ../../include/selectors.php:30 +msgid "Frequently" +msgstr "" + +#: ../../include/selectors.php:31 +msgid "Hourly" +msgstr "" + +#: ../../include/selectors.php:32 +msgid "Twice daily" +msgstr "" + +#: ../../include/selectors.php:33 +msgid "Daily" +msgstr "" + +#: ../../include/selectors.php:34 +msgid "Weekly" +msgstr "" + +#: ../../include/selectors.php:35 +msgid "Monthly" +msgstr "" + +#: ../../include/selectors.php:49 +msgid "Currently Male" +msgstr "" + +#: ../../include/selectors.php:49 +msgid "Currently Female" +msgstr "" + +#: ../../include/selectors.php:49 +msgid "Mostly Male" +msgstr "" + +#: ../../include/selectors.php:49 +msgid "Mostly Female" +msgstr "" + +#: ../../include/selectors.php:49 +msgid "Transgender" +msgstr "" + +#: ../../include/selectors.php:49 +msgid "Intersex" +msgstr "" + +#: ../../include/selectors.php:49 +msgid "Transsexual" +msgstr "" + +#: ../../include/selectors.php:49 +msgid "Hermaphrodite" +msgstr "" + +#: ../../include/selectors.php:49 +msgid "Neuter" +msgstr "" + +#: ../../include/selectors.php:49 +msgid "Non-specific" +msgstr "" + +#: ../../include/selectors.php:49 +msgid "Undecided" +msgstr "" + +#: ../../include/selectors.php:85 ../../include/selectors.php:104 +msgid "Males" +msgstr "" + +#: ../../include/selectors.php:85 ../../include/selectors.php:104 +msgid "Females" +msgstr "" + +#: ../../include/selectors.php:85 +msgid "Gay" +msgstr "" + +#: ../../include/selectors.php:85 +msgid "Lesbian" +msgstr "" + +#: ../../include/selectors.php:85 +msgid "No Preference" +msgstr "" + +#: ../../include/selectors.php:85 +msgid "Bisexual" +msgstr "" + +#: ../../include/selectors.php:85 +msgid "Autosexual" +msgstr "" + +#: ../../include/selectors.php:85 +msgid "Abstinent" +msgstr "" + +#: ../../include/selectors.php:85 +msgid "Virgin" +msgstr "" + +#: ../../include/selectors.php:85 +msgid "Deviant" +msgstr "" + +#: ../../include/selectors.php:85 +msgid "Fetish" +msgstr "" + +#: ../../include/selectors.php:85 +msgid "Oodles" +msgstr "" + +#: ../../include/selectors.php:85 +msgid "Nonsexual" +msgstr "" + +#: ../../include/selectors.php:123 ../../include/selectors.php:140 +msgid "Single" +msgstr "" + +#: ../../include/selectors.php:123 +msgid "Lonely" +msgstr "" + +#: ../../include/selectors.php:123 +msgid "Available" +msgstr "" + +#: ../../include/selectors.php:123 +msgid "Unavailable" +msgstr "" + +#: ../../include/selectors.php:123 +msgid "Has crush" +msgstr "" + +#: ../../include/selectors.php:123 +msgid "Infatuated" +msgstr "" + +#: ../../include/selectors.php:123 ../../include/selectors.php:140 +msgid "Dating" +msgstr "" + +#: ../../include/selectors.php:123 +msgid "Unfaithful" +msgstr "" + +#: ../../include/selectors.php:123 +msgid "Sex Addict" +msgstr "" + +#: ../../include/selectors.php:123 +msgid "Friends/Benefits" +msgstr "" + +#: ../../include/selectors.php:123 +msgid "Casual" +msgstr "" + +#: ../../include/selectors.php:123 +msgid "Engaged" +msgstr "" + +#: ../../include/selectors.php:123 ../../include/selectors.php:140 +msgid "Married" +msgstr "" + +#: ../../include/selectors.php:123 +msgid "Imaginarily married" +msgstr "" + +#: ../../include/selectors.php:123 +msgid "Partners" +msgstr "" + +#: ../../include/selectors.php:123 ../../include/selectors.php:140 +msgid "Cohabiting" +msgstr "" + +#: ../../include/selectors.php:123 +msgid "Common law" +msgstr "" + +#: ../../include/selectors.php:123 +msgid "Happy" +msgstr "" + +#: ../../include/selectors.php:123 +msgid "Not looking" +msgstr "" + +#: ../../include/selectors.php:123 +msgid "Swinger" +msgstr "" + +#: ../../include/selectors.php:123 +msgid "Betrayed" +msgstr "" + +#: ../../include/selectors.php:123 ../../include/selectors.php:140 +msgid "Separated" +msgstr "" + +#: ../../include/selectors.php:123 +msgid "Unstable" +msgstr "" + +#: ../../include/selectors.php:123 ../../include/selectors.php:140 +msgid "Divorced" +msgstr "" + +#: ../../include/selectors.php:123 +msgid "Imaginarily divorced" +msgstr "" + +#: ../../include/selectors.php:123 ../../include/selectors.php:140 +msgid "Widowed" +msgstr "" + +#: ../../include/selectors.php:123 +msgid "Uncertain" +msgstr "" + +#: ../../include/selectors.php:123 ../../include/selectors.php:140 +msgid "It's complicated" +msgstr "" + +#: ../../include/selectors.php:123 +msgid "Don't care" +msgstr "" + +#: ../../include/selectors.php:123 +msgid "Ask me" +msgstr "" + +#: ../../include/channel.php:33 +msgid "Unable to obtain identity information from database" +msgstr "" + +#: ../../include/channel.php:67 +msgid "Empty name" +msgstr "" + +#: ../../include/channel.php:70 +msgid "Name too long" +msgstr "" + +#: ../../include/channel.php:181 +msgid "No account identifier" +msgstr "" + +#: ../../include/channel.php:193 +msgid "Nickname is required." +msgstr "" + +#: ../../include/channel.php:207 +msgid "Reserved nickname. Please choose another." +msgstr "" + +#: ../../include/channel.php:212 msgid "" -"This post contains an installable %s element, however you lack permissions " -"to install it on this site." +"Nickname has unsupported characters or is already being used on this site." msgstr "" -#: ../../include/bbcode.php:272 +#: ../../include/channel.php:272 +msgid "Unable to retrieve created identity" +msgstr "" + +#: ../../include/channel.php:341 +msgid "Default Profile" +msgstr "" + +#: ../../include/channel.php:962 +msgid "Create New Profile" +msgstr "" + +#: ../../include/channel.php:982 +msgid "Visible to everybody" +msgstr "" + +#: ../../include/channel.php:1055 ../../include/channel.php:1174 +msgid "Gender:" +msgstr "" + +#: ../../include/channel.php:1057 ../../include/channel.php:1229 +msgid "Homepage:" +msgstr "" + +#: ../../include/channel.php:1058 +msgid "Online Now" +msgstr "" + +#: ../../include/channel.php:1179 +msgid "Like this channel" +msgstr "" + +#: ../../include/channel.php:1203 +msgid "j F, Y" +msgstr "" + +#: ../../include/channel.php:1204 +msgid "j F" +msgstr "" + +#: ../../include/channel.php:1211 +msgid "Birthday:" +msgstr "" + +#: ../../include/channel.php:1224 #, php-format -msgid "%1$s wrote the following %2$s %3$s" +msgid "for %1$d %2$s" msgstr "" -#: ../../include/bbcode.php:349 ../../include/bbcode.php:357 -msgid "Click to open/close" +#: ../../include/channel.php:1227 +msgid "Sexual Preference:" msgstr "" -#: ../../include/bbcode.php:357 -msgid "spoiler" +#: ../../include/channel.php:1233 +msgid "Tags:" msgstr "" -#: ../../include/bbcode.php:633 ../../include/wiki.php:525 -msgid "Different viewers will see this text differently" +#: ../../include/channel.php:1235 +msgid "Political Views:" msgstr "" -#: ../../include/bbcode.php:890 -msgid "$1 wrote:" +#: ../../include/channel.php:1237 +msgid "Religion:" msgstr "" -#: ../../include/photos.php:114 +#: ../../include/channel.php:1241 +msgid "Hobbies/Interests:" +msgstr "" + +#: ../../include/channel.php:1243 +msgid "Likes:" +msgstr "" + +#: ../../include/channel.php:1245 +msgid "Dislikes:" +msgstr "" + +#: ../../include/channel.php:1247 +msgid "Contact information and Social Networks:" +msgstr "" + +#: ../../include/channel.php:1249 +msgid "My other channels:" +msgstr "" + +#: ../../include/channel.php:1251 +msgid "Musical interests:" +msgstr "" + +#: ../../include/channel.php:1253 +msgid "Books, literature:" +msgstr "" + +#: ../../include/channel.php:1255 +msgid "Television:" +msgstr "" + +#: ../../include/channel.php:1257 +msgid "Film/dance/culture/entertainment:" +msgstr "" + +#: ../../include/channel.php:1259 +msgid "Love/Romance:" +msgstr "" + +#: ../../include/channel.php:1261 +msgid "Work/employment:" +msgstr "" + +#: ../../include/channel.php:1263 +msgid "School/education:" +msgstr "" + +#: ../../include/channel.php:1284 +msgid "Like this thing" +msgstr "" + +#: ../../include/connections.php:95 +msgid "New window" +msgstr "" + +#: ../../include/connections.php:96 +msgid "Open the selected location in a different window or browser tab" +msgstr "" + +#: ../../include/connections.php:214 #, php-format -msgid "Image exceeds website size limit of %lu bytes" -msgstr "" - -#: ../../include/photos.php:121 -msgid "Image file is empty." -msgstr "" - -#: ../../include/photos.php:259 -msgid "Photo storage failed." -msgstr "" - -#: ../../include/photos.php:299 -msgid "a new photo" -msgstr "" - -#: ../../include/photos.php:303 -#, php-format -msgctxt "photo_upload" -msgid "%1$s posted %2$s to %3$s" -msgstr "" - -#: ../../include/photos.php:506 ../../include/conversation.php:1675 -msgid "Photo Albums" -msgstr "" - -#: ../../include/photos.php:510 -msgid "Upload New Photos" +msgid "User '%s' deleted" msgstr "" #: ../../include/dir_fns.php:141 @@ -7911,6 +10965,190 @@ msgstr "" msgid "This Website Only" msgstr "" +#: ../../include/nav.php:85 ../../include/nav.php:118 ../../boot.php:1718 +msgid "Logout" +msgstr "" + +#: ../../include/nav.php:85 ../../include/nav.php:118 +msgid "End this session" +msgstr "" + +#: ../../include/nav.php:88 +msgid "Your posts and conversations" +msgstr "" + +#: ../../include/nav.php:89 +msgid "Your profile page" +msgstr "" + +#: ../../include/nav.php:91 +msgid "Manage/Edit profiles" +msgstr "" + +#: ../../include/nav.php:93 +msgid "Edit your profile" +msgstr "" + +#: ../../include/nav.php:95 +msgid "Your photos" +msgstr "" + +#: ../../include/nav.php:96 +msgid "Your files" +msgstr "" + +#: ../../include/nav.php:99 +msgid "Your chatrooms" +msgstr "" + +#: ../../include/nav.php:105 ../../include/conversation.php:1735 +msgid "Bookmarks" +msgstr "" + +#: ../../include/nav.php:105 +msgid "Your bookmarks" +msgstr "" + +#: ../../include/nav.php:109 +msgid "Your webpages" +msgstr "" + +#: ../../include/nav.php:111 +msgid "Your wikis" +msgstr "" + +#: ../../include/nav.php:115 +msgid "Sign in" +msgstr "" + +#: ../../include/nav.php:131 +msgid "Remote authentication" +msgstr "" + +#: ../../include/nav.php:131 +msgid "Click to authenticate to your home hub" +msgstr "" + +#: ../../include/nav.php:143 +msgid "Get me home" +msgstr "" + +#: ../../include/nav.php:145 +msgid "Log me out of this site" +msgstr "" + +#: ../../include/nav.php:150 +msgid "Create an account" +msgstr "" + +#: ../../include/nav.php:162 +msgid "Help and documentation" +msgstr "" + +#: ../../include/nav.php:166 +msgid "Applications, utilities, links, games" +msgstr "" + +#: ../../include/nav.php:168 +msgid "Search site @name, #tag, ?docs, content" +msgstr "" + +#: ../../include/nav.php:170 +msgid "Channel Directory" +msgstr "" + +#: ../../include/nav.php:182 +msgid "Your grid" +msgstr "" + +#: ../../include/nav.php:183 +msgid "Mark all grid notifications seen" +msgstr "" + +#: ../../include/nav.php:185 +msgid "Channel home" +msgstr "" + +#: ../../include/nav.php:186 +msgid "Mark all channel notifications seen" +msgstr "" + +#: ../../include/nav.php:192 +msgid "Notices" +msgstr "" + +#: ../../include/nav.php:192 +msgid "Notifications" +msgstr "" + +#: ../../include/nav.php:193 +msgid "See all notifications" +msgstr "" + +#: ../../include/nav.php:196 +msgid "Private mail" +msgstr "" + +#: ../../include/nav.php:197 +msgid "See all private messages" +msgstr "" + +#: ../../include/nav.php:198 +msgid "Mark all private messages seen" +msgstr "" + +#: ../../include/nav.php:199 ../../include/widgets.php:700 +msgid "Inbox" +msgstr "" + +#: ../../include/nav.php:200 ../../include/widgets.php:705 +msgid "Outbox" +msgstr "" + +#: ../../include/nav.php:201 ../../include/widgets.php:710 +msgid "New Message" +msgstr "" + +#: ../../include/nav.php:204 +msgid "Event Calendar" +msgstr "" + +#: ../../include/nav.php:205 +msgid "See all events" +msgstr "" + +#: ../../include/nav.php:206 +msgid "Mark all events seen" +msgstr "" + +#: ../../include/nav.php:209 +msgid "Manage Your Channels" +msgstr "" + +#: ../../include/nav.php:211 +msgid "Account/Channel Settings" +msgstr "" + +#: ../../include/nav.php:219 ../../include/widgets.php:1665 +msgid "Admin" +msgstr "" + +#: ../../include/nav.php:219 +msgid "Site Setup and Configuration" +msgstr "" + +#: ../../include/nav.php:250 ../../include/conversation.php:869 +msgid "Loading..." +msgstr "" + +#: ../../include/nav.php:255 +msgid "@name, #tag, ?doc, content" +msgstr "" + +#: ../../include/nav.php:256 +msgid "Please wait..." +msgstr "" + #: ../../include/features.php:58 msgid "General Features" msgstr "" @@ -8170,8 +11408,8 @@ msgstr "" msgid "Add emoji reaction ability to posts" msgstr "" -#: ../../include/features.php:372 ../../include/widgets.php:346 -#: ../../include/contact_widgets.php:53 +#: ../../include/features.php:372 ../../include/contact_widgets.php:53 +#: ../../include/widgets.php:346 msgid "Saved Folders" msgstr "" @@ -8213,306 +11451,350 @@ msgid "" "channel" msgstr "" -#: ../../include/network.php:704 -msgid "view full size" +#: ../../include/text.php:460 +msgid "prev" msgstr "" -#: ../../include/network.php:1937 -msgid "Administrator" +#: ../../include/text.php:462 +msgid "first" msgstr "" -#: ../../include/network.php:1953 -msgid "No Subject" +#: ../../include/text.php:491 +msgid "last" msgstr "" -#: ../../include/network.php:2207 ../../include/network.php:2208 -msgid "Friendica" +#: ../../include/text.php:494 +msgid "next" msgstr "" -#: ../../include/network.php:2209 -msgid "OStatus" +#: ../../include/text.php:505 +msgid "older" msgstr "" -#: ../../include/network.php:2210 -msgid "GNU-Social" +#: ../../include/text.php:507 +msgid "newer" msgstr "" -#: ../../include/network.php:2211 -msgid "RSS/Atom" +#: ../../include/text.php:904 +msgid "No connections" msgstr "" -#: ../../include/network.php:2213 -msgid "Diaspora" -msgstr "" - -#: ../../include/network.php:2214 -msgid "Facebook" -msgstr "" - -#: ../../include/network.php:2215 -msgid "Zot" -msgstr "" - -#: ../../include/network.php:2216 -msgid "LinkedIn" -msgstr "" - -#: ../../include/network.php:2217 -msgid "XMPP/IM" -msgstr "" - -#: ../../include/network.php:2218 -msgid "MySpace" -msgstr "" - -#: ../../include/widgets.php:46 ../../include/widgets.php:465 -#: ../../include/taxonomy.php:188 ../../include/taxonomy.php:270 -#: ../../include/contact_widgets.php:91 -msgid "Categories" -msgstr "" - -#: ../../include/widgets.php:103 -msgid "System" -msgstr "" - -#: ../../include/widgets.php:106 -msgid "New App" -msgstr "" - -#: ../../include/widgets.php:154 -msgid "Suggestions" -msgstr "" - -#: ../../include/widgets.php:155 -msgid "See more..." -msgstr "" - -#: ../../include/widgets.php:175 +#: ../../include/text.php:929 #, php-format -msgid "You have %1$.0f of %2$.0f allowed connections." +msgid "View all %s connections" msgstr "" -#: ../../include/widgets.php:181 -msgid "Add New Connection" +#: ../../include/text.php:1074 ../../include/text.php:1079 +msgid "poke" msgstr "" -#: ../../include/widgets.php:182 -msgid "Enter channel address" +#: ../../include/text.php:1074 ../../include/text.php:1079 +#: ../../include/conversation.php:243 +msgid "poked" msgstr "" -#: ../../include/widgets.php:183 -msgid "Examples: bob@example.com, https://example.com/barbara" +#: ../../include/text.php:1080 +msgid "ping" msgstr "" -#: ../../include/widgets.php:199 -msgid "Notes" +#: ../../include/text.php:1080 +msgid "pinged" msgstr "" -#: ../../include/widgets.php:275 -msgid "Remove term" +#: ../../include/text.php:1081 +msgid "prod" msgstr "" -#: ../../include/widgets.php:284 ../../include/group.php:316 -msgid "add" +#: ../../include/text.php:1081 +msgid "prodded" msgstr "" -#: ../../include/widgets.php:349 ../../include/widgets.php:468 -#: ../../include/contact_widgets.php:56 ../../include/contact_widgets.php:94 -msgid "Everything" +#: ../../include/text.php:1082 +msgid "slap" msgstr "" -#: ../../include/widgets.php:390 -msgid "Archives" +#: ../../include/text.php:1082 +msgid "slapped" msgstr "" -#: ../../include/widgets.php:552 -msgid "Refresh" +#: ../../include/text.php:1083 +msgid "finger" msgstr "" -#: ../../include/widgets.php:592 -msgid "Account settings" +#: ../../include/text.php:1083 +msgid "fingered" msgstr "" -#: ../../include/widgets.php:598 -msgid "Channel settings" +#: ../../include/text.php:1084 +msgid "rebuff" msgstr "" -#: ../../include/widgets.php:607 -msgid "Additional features" +#: ../../include/text.php:1084 +msgid "rebuffed" msgstr "" -#: ../../include/widgets.php:614 -msgid "Feature/Addon settings" +#: ../../include/text.php:1096 +msgid "happy" msgstr "" -#: ../../include/widgets.php:620 -msgid "Display settings" +#: ../../include/text.php:1097 +msgid "sad" msgstr "" -#: ../../include/widgets.php:627 -msgid "Manage locations" +#: ../../include/text.php:1098 +msgid "mellow" msgstr "" -#: ../../include/widgets.php:634 -msgid "Export channel" +#: ../../include/text.php:1099 +msgid "tired" msgstr "" -#: ../../include/widgets.php:640 -msgid "Connected apps" +#: ../../include/text.php:1100 +msgid "perky" msgstr "" -#: ../../include/widgets.php:664 -msgid "Premium Channel Settings" +#: ../../include/text.php:1101 +msgid "angry" msgstr "" -#: ../../include/widgets.php:693 -msgid "Private Mail Menu" +#: ../../include/text.php:1102 +msgid "stupefied" msgstr "" -#: ../../include/widgets.php:695 -msgid "Combined View" +#: ../../include/text.php:1103 +msgid "puzzled" msgstr "" -#: ../../include/widgets.php:727 ../../include/widgets.php:739 -msgid "Conversations" +#: ../../include/text.php:1104 +msgid "interested" msgstr "" -#: ../../include/widgets.php:731 -msgid "Received Messages" +#: ../../include/text.php:1105 +msgid "bitter" msgstr "" -#: ../../include/widgets.php:735 -msgid "Sent Messages" +#: ../../include/text.php:1106 +msgid "cheerful" msgstr "" -#: ../../include/widgets.php:749 -msgid "No messages." +#: ../../include/text.php:1107 +msgid "alive" msgstr "" -#: ../../include/widgets.php:767 -msgid "Delete conversation" +#: ../../include/text.php:1108 +msgid "annoyed" msgstr "" -#: ../../include/widgets.php:793 -msgid "Events Tools" +#: ../../include/text.php:1109 +msgid "anxious" msgstr "" -#: ../../include/widgets.php:794 -msgid "Export Calendar" +#: ../../include/text.php:1110 +msgid "cranky" msgstr "" -#: ../../include/widgets.php:795 -msgid "Import Calendar" +#: ../../include/text.php:1111 +msgid "disturbed" msgstr "" -#: ../../include/widgets.php:883 ../../include/conversation.php:1702 -#: ../../include/conversation.php:1705 -msgid "Chatrooms" +#: ../../include/text.php:1112 +msgid "frustrated" msgstr "" -#: ../../include/widgets.php:887 -msgid "Overview" +#: ../../include/text.php:1113 +msgid "depressed" msgstr "" -#: ../../include/widgets.php:894 -msgid "Chat Members" +#: ../../include/text.php:1114 +msgid "motivated" msgstr "" -#: ../../include/widgets.php:916 -msgid "Wiki List" +#: ../../include/text.php:1115 +msgid "relaxed" msgstr "" -#: ../../include/widgets.php:954 -msgid "Wiki Pages" +#: ../../include/text.php:1116 +msgid "surprised" msgstr "" -#: ../../include/widgets.php:989 -msgid "Bookmarked Chatrooms" +#: ../../include/text.php:1303 ../../include/js_strings.php:70 +msgid "Monday" msgstr "" -#: ../../include/widgets.php:1020 -msgid "Suggested Chatrooms" +#: ../../include/text.php:1303 ../../include/js_strings.php:71 +msgid "Tuesday" msgstr "" -#: ../../include/widgets.php:1165 ../../include/widgets.php:1277 -msgid "photo/image" +#: ../../include/text.php:1303 ../../include/js_strings.php:72 +msgid "Wednesday" msgstr "" -#: ../../include/widgets.php:1220 -msgid "Click to show more" +#: ../../include/text.php:1303 ../../include/js_strings.php:73 +msgid "Thursday" msgstr "" -#: ../../include/widgets.php:1371 -msgid "Rating Tools" +#: ../../include/text.php:1303 ../../include/js_strings.php:74 +msgid "Friday" msgstr "" -#: ../../include/widgets.php:1375 ../../include/widgets.php:1377 -msgid "Rate Me" +#: ../../include/text.php:1303 ../../include/js_strings.php:75 +msgid "Saturday" msgstr "" -#: ../../include/widgets.php:1380 -msgid "View Ratings" +#: ../../include/text.php:1303 ../../include/js_strings.php:69 +msgid "Sunday" msgstr "" -#: ../../include/widgets.php:1464 -msgid "Forums" +#: ../../include/text.php:1307 ../../include/js_strings.php:45 +msgid "January" msgstr "" -#: ../../include/widgets.php:1493 -msgid "Tasks" +#: ../../include/text.php:1307 ../../include/js_strings.php:46 +msgid "February" msgstr "" -#: ../../include/widgets.php:1504 -msgid "Documentation" +#: ../../include/text.php:1307 ../../include/js_strings.php:47 +msgid "March" msgstr "" -#: ../../include/widgets.php:1560 ../../include/widgets.php:1598 -msgid "Member registrations waiting for confirmation" +#: ../../include/text.php:1307 ../../include/js_strings.php:48 +msgid "April" msgstr "" -#: ../../include/widgets.php:1566 -msgid "Inspect queue" +#: ../../include/text.php:1307 +msgid "May" msgstr "" -#: ../../include/widgets.php:1568 -msgid "DB updates" +#: ../../include/text.php:1307 ../../include/js_strings.php:50 +msgid "June" msgstr "" -#: ../../include/widgets.php:1594 -msgid "Plugin Features" +#: ../../include/text.php:1307 ../../include/js_strings.php:51 +msgid "July" msgstr "" -#: ../../include/bb2diaspora.php:404 -msgid "Attachments:" +#: ../../include/text.php:1307 ../../include/js_strings.php:52 +msgid "August" msgstr "" -#: ../../include/bb2diaspora.php:491 ../../include/event.php:22 -#: ../../include/event.php:69 -msgid "l F d, Y \\@ g:i A" +#: ../../include/text.php:1307 ../../include/js_strings.php:53 +msgid "September" msgstr "" -#: ../../include/bb2diaspora.php:493 -msgid "$Projectname event notification:" +#: ../../include/text.php:1307 ../../include/js_strings.php:54 +msgid "October" msgstr "" -#: ../../include/bb2diaspora.php:497 ../../include/event.php:30 -#: ../../include/event.php:73 -msgid "Starts:" +#: ../../include/text.php:1307 ../../include/js_strings.php:55 +msgid "November" msgstr "" -#: ../../include/bb2diaspora.php:505 ../../include/event.php:40 -#: ../../include/event.php:77 -msgid "Finishes:" +#: ../../include/text.php:1307 ../../include/js_strings.php:56 +msgid "December" msgstr "" -#: ../../include/security.php:117 -msgid "guest:" +#: ../../include/text.php:1384 ../../include/text.php:1388 +msgid "Unknown Attachment" msgstr "" -#: ../../include/security.php:535 -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/text.php:1390 +msgid "unknown" +msgstr "" + +#: ../../include/text.php:1426 +msgid "remove category" +msgstr "" + +#: ../../include/text.php:1503 +msgid "remove from file" +msgstr "" + +#: ../../include/text.php:1770 ../../include/language.php:367 +msgid "default" +msgstr "" + +#: ../../include/text.php:1778 +msgid "Page layout" +msgstr "" + +#: ../../include/text.php:1778 +msgid "You can create your own with the layouts tool" +msgstr "" + +#: ../../include/text.php:1820 +msgid "Page content type" +msgstr "" + +#: ../../include/text.php:1953 +msgid "activity" +msgstr "" + +#: ../../include/text.php:2267 +msgid "Design Tools" +msgstr "" + +#: ../../include/text.php:2273 +msgid "Pages" +msgstr "" + +#: ../../include/text.php:2295 +msgid "Import website..." +msgstr "" + +#: ../../include/text.php:2296 +msgid "Select folder to import" +msgstr "" + +#: ../../include/text.php:2297 +msgid "Import from a zipped folder:" +msgstr "" + +#: ../../include/text.php:2298 +msgid "Import from cloud files:" +msgstr "" + +#: ../../include/text.php:2299 +msgid "/cloud/channel/path/to/folder" +msgstr "" + +#: ../../include/text.php:2300 +msgid "Enter path to website files" +msgstr "" + +#: ../../include/text.php:2301 +msgid "Select folder" +msgstr "" + +#: ../../include/text.php:2302 +msgid "Export website..." +msgstr "" + +#: ../../include/text.php:2303 +msgid "Export to a zip file" +msgstr "" + +#: ../../include/text.php:2304 +msgid "website.zip" +msgstr "" + +#: ../../include/text.php:2305 +msgid "Enter a name for the zip file." +msgstr "" + +#: ../../include/text.php:2306 +msgid "Export to cloud files" +msgstr "" + +#: ../../include/text.php:2307 +msgid "/path/to/export/folder" +msgstr "" + +#: ../../include/text.php:2308 +msgid "Enter a path to a cloud files destination." +msgstr "" + +#: ../../include/text.php:2309 +msgid "Specify folder" msgstr "" #: ../../include/bookmarks.php:35 @@ -8520,615 +11802,74 @@ msgstr "" msgid "%1$s's bookmarks" msgstr "" -#: ../../include/group.php:26 -msgid "" -"A deleted group with this name was revived. Existing item permissions " -"may apply to this group and any future members. If this is " -"not what you intended, please create another group with a different name." +#: ../../include/wiki.php:545 ../../include/bbcode.php:552 +#: ../../include/bbcode.php:683 +msgid "Different viewers will see this text differently" msgstr "" -#: ../../include/group.php:248 -msgid "Add new connections to this privacy group" -msgstr "" - -#: ../../include/group.php:289 -msgid "edit" -msgstr "" - -#: ../../include/group.php:312 -msgid "Edit group" -msgstr "" - -#: ../../include/group.php:313 -msgid "Add privacy group" -msgstr "" - -#: ../../include/group.php:314 -msgid "Channels not in any privacy group" -msgstr "" - -#: ../../include/import.php:30 -msgid "" -"Cannot create a duplicate channel identifier on this system. Import failed." -msgstr "" - -#: ../../include/import.php:90 -msgid "Channel clone failed. Import failed." -msgstr "" - -#: ../../include/import.php:1354 -msgid "Unable to import element \"" -msgstr "" - -#: ../../include/language.php:380 -msgid "Select an alternate language" -msgstr "" - -#: ../../include/message.php:20 -msgid "No recipient provided." -msgstr "" - -#: ../../include/message.php:25 -msgid "[no subject]" -msgstr "" - -#: ../../include/message.php:45 -msgid "Unable to determine sender." -msgstr "" - -#: ../../include/message.php:222 -msgid "Stored post could not be verified." +#: ../../include/help.php:31 +msgid "Help:" msgstr "" #: ../../include/page_widgets.php:7 msgid "New Page" msgstr "" -#: ../../include/page_widgets.php:46 -msgid "Title" -msgstr "" - -#: ../../include/oembed.php:322 -msgid " by " -msgstr "" - -#: ../../include/oembed.php:323 -msgid " on " -msgstr "" - -#: ../../include/oembed.php:352 -msgid "Embedded content" -msgstr "" - -#: ../../include/oembed.php:361 -msgid "Embedding disabled" -msgstr "" - -#: ../../include/account.php:35 -msgid "Not a valid email address" -msgstr "" - -#: ../../include/account.php:37 -msgid "Your email domain is not among those allowed on this site" -msgstr "" - -#: ../../include/account.php:43 -msgid "Your email address is already registered at this site." -msgstr "" - -#: ../../include/account.php:75 -msgid "An invitation is required." -msgstr "" - -#: ../../include/account.php:79 -msgid "Invitation could not be verified." -msgstr "" - -#: ../../include/account.php:130 -msgid "Please enter the required information." -msgstr "" - -#: ../../include/account.php:198 -msgid "Failed to store account information." -msgstr "" - -#: ../../include/account.php:263 +#: ../../include/contact_widgets.php:11 #, php-format -msgid "Registration confirmation for %s" +msgid "%d invitation available" +msgid_plural "%d invitations available" +msgstr[0] "" +msgstr[1] "" + +#: ../../include/contact_widgets.php:19 +msgid "Find Channels" msgstr "" -#: ../../include/account.php:330 +#: ../../include/contact_widgets.php:20 +msgid "Enter name or interest" +msgstr "" + +#: ../../include/contact_widgets.php:21 +msgid "Connect/Follow" +msgstr "" + +#: ../../include/contact_widgets.php:22 +msgid "Examples: Robert Morgenstein, Fishing" +msgstr "" + +#: ../../include/contact_widgets.php:26 +msgid "Random Profile" +msgstr "" + +#: ../../include/contact_widgets.php:27 +msgid "Invite Friends" +msgstr "" + +#: ../../include/contact_widgets.php:29 +msgid "Advanced example: name=fred and country=iceland" +msgstr "" + +#: ../../include/contact_widgets.php:56 ../../include/contact_widgets.php:94 +#: ../../include/widgets.php:349 ../../include/widgets.php:468 +msgid "Everything" +msgstr "" + +#: ../../include/contact_widgets.php:91 ../../include/taxonomy.php:188 +#: ../../include/taxonomy.php:270 ../../include/widgets.php:46 +#: ../../include/widgets.php:465 +msgid "Categories" +msgstr "" + +#: ../../include/contact_widgets.php:122 #, php-format -msgid "Registration request at %s" -msgstr "" +msgid "%d connection in common" +msgid_plural "%d connections in common" +msgstr[0] "" +msgstr[1] "" -#: ../../include/account.php:352 -msgid "your registration password" -msgstr "" - -#: ../../include/account.php:358 ../../include/account.php:420 -#, php-format -msgid "Registration details for %s" -msgstr "" - -#: ../../include/account.php:431 -msgid "Account approved." -msgstr "" - -#: ../../include/account.php:471 -#, php-format -msgid "Registration revoked for %s" -msgstr "" - -#: ../../include/account.php:756 ../../include/account.php:758 -msgid "Click here to upgrade." -msgstr "" - -#: ../../include/account.php:764 -msgid "This action exceeds the limits set by your subscription plan." -msgstr "" - -#: ../../include/account.php:769 -msgid "This action is not available under your subscription plan." -msgstr "" - -#: ../../include/js_strings.php:5 -msgid "Delete this item?" -msgstr "" - -#: ../../include/js_strings.php:8 -#, php-format -msgid "%s show less" -msgstr "" - -#: ../../include/js_strings.php:9 -#, php-format -msgid "%s expand" -msgstr "" - -#: ../../include/js_strings.php:10 -#, php-format -msgid "%s collapse" -msgstr "" - -#: ../../include/js_strings.php:11 -msgid "Password too short" -msgstr "" - -#: ../../include/js_strings.php:12 -msgid "Passwords do not match" -msgstr "" - -#: ../../include/js_strings.php:13 -msgid "everybody" -msgstr "" - -#: ../../include/js_strings.php:14 -msgid "Secret Passphrase" -msgstr "" - -#: ../../include/js_strings.php:15 -msgid "Passphrase hint" -msgstr "" - -#: ../../include/js_strings.php:16 -msgid "Notice: Permissions have changed but have not yet been submitted." -msgstr "" - -#: ../../include/js_strings.php:17 -msgid "close all" -msgstr "" - -#: ../../include/js_strings.php:18 -msgid "Nothing new here" -msgstr "" - -#: ../../include/js_strings.php:19 -msgid "Rate This Channel (this is public)" -msgstr "" - -#: ../../include/js_strings.php:21 -msgid "Describe (optional)" -msgstr "" - -#: ../../include/js_strings.php:23 -msgid "Please enter a link URL" -msgstr "" - -#: ../../include/js_strings.php:24 -msgid "Unsaved changes. Are you sure you wish to leave this page?" -msgstr "" - -#: ../../include/js_strings.php:27 -msgid "timeago.prefixAgo" -msgstr "" - -#: ../../include/js_strings.php:28 -msgid "timeago.prefixFromNow" -msgstr "" - -#: ../../include/js_strings.php:29 -msgid "ago" -msgstr "" - -#: ../../include/js_strings.php:30 -msgid "from now" -msgstr "" - -#: ../../include/js_strings.php:31 -msgid "less than a minute" -msgstr "" - -#: ../../include/js_strings.php:32 -msgid "about a minute" -msgstr "" - -#: ../../include/js_strings.php:33 -#, php-format -msgid "%d minutes" -msgstr "" - -#: ../../include/js_strings.php:34 -msgid "about an hour" -msgstr "" - -#: ../../include/js_strings.php:35 -#, php-format -msgid "about %d hours" -msgstr "" - -#: ../../include/js_strings.php:36 -msgid "a day" -msgstr "" - -#: ../../include/js_strings.php:37 -#, php-format -msgid "%d days" -msgstr "" - -#: ../../include/js_strings.php:38 -msgid "about a month" -msgstr "" - -#: ../../include/js_strings.php:39 -#, php-format -msgid "%d months" -msgstr "" - -#: ../../include/js_strings.php:40 -msgid "about a year" -msgstr "" - -#: ../../include/js_strings.php:41 -#, php-format -msgid "%d years" -msgstr "" - -#: ../../include/js_strings.php:42 -msgid " " -msgstr "" - -#: ../../include/js_strings.php:43 -msgid "timeago.numbers" -msgstr "" - -#: ../../include/js_strings.php:49 -msgctxt "long" -msgid "May" -msgstr "" - -#: ../../include/js_strings.php:57 -msgid "Jan" -msgstr "" - -#: ../../include/js_strings.php:58 -msgid "Feb" -msgstr "" - -#: ../../include/js_strings.php:59 -msgid "Mar" -msgstr "" - -#: ../../include/js_strings.php:60 -msgid "Apr" -msgstr "" - -#: ../../include/js_strings.php:61 -msgctxt "short" -msgid "May" -msgstr "" - -#: ../../include/js_strings.php:62 -msgid "Jun" -msgstr "" - -#: ../../include/js_strings.php:63 -msgid "Jul" -msgstr "" - -#: ../../include/js_strings.php:64 -msgid "Aug" -msgstr "" - -#: ../../include/js_strings.php:65 -msgid "Sep" -msgstr "" - -#: ../../include/js_strings.php:66 -msgid "Oct" -msgstr "" - -#: ../../include/js_strings.php:67 -msgid "Nov" -msgstr "" - -#: ../../include/js_strings.php:68 -msgid "Dec" -msgstr "" - -#: ../../include/js_strings.php:76 -msgid "Sun" -msgstr "" - -#: ../../include/js_strings.php:77 -msgid "Mon" -msgstr "" - -#: ../../include/js_strings.php:78 -msgid "Tue" -msgstr "" - -#: ../../include/js_strings.php:79 -msgid "Wed" -msgstr "" - -#: ../../include/js_strings.php:80 -msgid "Thu" -msgstr "" - -#: ../../include/js_strings.php:81 -msgid "Fri" -msgstr "" - -#: ../../include/js_strings.php:82 -msgid "Sat" -msgstr "" - -#: ../../include/js_strings.php:83 -msgctxt "calendar" -msgid "today" -msgstr "" - -#: ../../include/js_strings.php:84 -msgctxt "calendar" -msgid "month" -msgstr "" - -#: ../../include/js_strings.php:85 -msgctxt "calendar" -msgid "week" -msgstr "" - -#: ../../include/js_strings.php:86 -msgctxt "calendar" -msgid "day" -msgstr "" - -#: ../../include/js_strings.php:87 -msgctxt "calendar" -msgid "All day" -msgstr "" - -#: ../../include/follow.php:27 -msgid "Channel is blocked on this site." -msgstr "" - -#: ../../include/follow.php:32 -msgid "Channel location missing." -msgstr "" - -#: ../../include/follow.php:80 -msgid "Response from remote channel was incomplete." -msgstr "" - -#: ../../include/follow.php:97 -msgid "Channel was deleted and no longer exists." -msgstr "" - -#: ../../include/follow.php:147 ../../include/follow.php:183 -msgid "Protocol disabled." -msgstr "" - -#: ../../include/follow.php:171 -msgid "Channel discovery failed." -msgstr "" - -#: ../../include/follow.php:210 -msgid "Cannot connect to yourself." -msgstr "" - -#: ../../include/selectors.php:30 -msgid "Frequently" -msgstr "" - -#: ../../include/selectors.php:31 -msgid "Hourly" -msgstr "" - -#: ../../include/selectors.php:32 -msgid "Twice daily" -msgstr "" - -#: ../../include/selectors.php:33 -msgid "Daily" -msgstr "" - -#: ../../include/selectors.php:34 -msgid "Weekly" -msgstr "" - -#: ../../include/selectors.php:35 -msgid "Monthly" -msgstr "" - -#: ../../include/selectors.php:49 ../../include/selectors.php:66 -msgid "Male" -msgstr "" - -#: ../../include/selectors.php:49 ../../include/selectors.php:66 -msgid "Female" -msgstr "" - -#: ../../include/selectors.php:49 -msgid "Currently Male" -msgstr "" - -#: ../../include/selectors.php:49 -msgid "Currently Female" -msgstr "" - -#: ../../include/selectors.php:49 -msgid "Mostly Male" -msgstr "" - -#: ../../include/selectors.php:49 -msgid "Mostly Female" -msgstr "" - -#: ../../include/selectors.php:49 -msgid "Transgender" -msgstr "" - -#: ../../include/selectors.php:49 -msgid "Intersex" -msgstr "" - -#: ../../include/selectors.php:49 -msgid "Transsexual" -msgstr "" - -#: ../../include/selectors.php:49 -msgid "Hermaphrodite" -msgstr "" - -#: ../../include/selectors.php:49 -msgid "Neuter" -msgstr "" - -#: ../../include/selectors.php:49 -msgid "Non-specific" -msgstr "" - -#: ../../include/selectors.php:49 -msgid "Undecided" -msgstr "" - -#: ../../include/selectors.php:85 ../../include/selectors.php:104 -msgid "Males" -msgstr "" - -#: ../../include/selectors.php:85 ../../include/selectors.php:104 -msgid "Females" -msgstr "" - -#: ../../include/selectors.php:85 -msgid "Gay" -msgstr "" - -#: ../../include/selectors.php:85 -msgid "Lesbian" -msgstr "" - -#: ../../include/selectors.php:85 -msgid "No Preference" -msgstr "" - -#: ../../include/selectors.php:85 -msgid "Bisexual" -msgstr "" - -#: ../../include/selectors.php:85 -msgid "Autosexual" -msgstr "" - -#: ../../include/selectors.php:85 -msgid "Abstinent" -msgstr "" - -#: ../../include/selectors.php:85 -msgid "Virgin" -msgstr "" - -#: ../../include/selectors.php:85 -msgid "Deviant" -msgstr "" - -#: ../../include/selectors.php:85 -msgid "Fetish" -msgstr "" - -#: ../../include/selectors.php:85 -msgid "Oodles" -msgstr "" - -#: ../../include/selectors.php:85 -msgid "Nonsexual" -msgstr "" - -#: ../../include/selectors.php:123 ../../include/selectors.php:140 -msgid "Single" -msgstr "" - -#: ../../include/selectors.php:123 -msgid "Lonely" -msgstr "" - -#: ../../include/selectors.php:123 -msgid "Available" -msgstr "" - -#: ../../include/selectors.php:123 -msgid "Unavailable" -msgstr "" - -#: ../../include/selectors.php:123 -msgid "Has crush" -msgstr "" - -#: ../../include/selectors.php:123 -msgid "Infatuated" -msgstr "" - -#: ../../include/selectors.php:123 ../../include/selectors.php:140 -msgid "Dating" -msgstr "" - -#: ../../include/selectors.php:123 -msgid "Unfaithful" -msgstr "" - -#: ../../include/selectors.php:123 -msgid "Sex Addict" -msgstr "" - -#: ../../include/selectors.php:123 -msgid "Friends/Benefits" -msgstr "" - -#: ../../include/selectors.php:123 -msgid "Casual" -msgstr "" - -#: ../../include/selectors.php:123 -msgid "Engaged" -msgstr "" - -#: ../../include/selectors.php:123 ../../include/selectors.php:140 -msgid "Married" -msgstr "" - -#: ../../include/selectors.php:123 -msgid "Imaginarily married" +#: ../../include/contact_widgets.php:127 +msgid "show more" msgstr "" #: ../../include/selectors.php:123 @@ -9243,332 +11984,46 @@ msgstr "" msgid "Can administer my channel resources" msgstr "" -#: ../../include/permissions.php:55 -msgid "Extremely advanced. Leave this alone unless you know what you are doing" +#: ../../include/network.php:729 +msgid "view full size" msgstr "" -#: ../../include/connections.php:95 -msgid "New window" +#: ../../include/network.php:1978 +msgid "No Subject" msgstr "" -#: ../../include/connections.php:96 -msgid "Open the selected location in a different window or browser tab" +#: ../../include/network.php:2234 +msgid "OStatus" msgstr "" -#: ../../include/connections.php:214 -#, php-format -msgid "User '%s' deleted" +#: ../../include/network.php:2235 +msgid "GNU-Social" msgstr "" -#: ../../include/auth.php:148 -msgid "Logged out." +#: ../../include/network.php:2236 +msgid "RSS/Atom" msgstr "" -#: ../../include/auth.php:275 -msgid "Failed authentication" +#: ../../include/network.php:2239 +msgid "Facebook" msgstr "" -#: ../../include/auth.php:286 -msgid "Login failed." +#: ../../include/network.php:2240 +msgid "Zot" msgstr "" -#: ../../include/activities.php:41 -msgid " and " +#: ../../include/network.php:2241 +msgid "LinkedIn" msgstr "" -#: ../../include/activities.php:49 -msgid "public profile" +#: ../../include/network.php:2242 +msgid "XMPP/IM" msgstr "" -#: ../../include/activities.php:58 -#, php-format -msgid "%1$s changed %2$s to “%3$s”" +#: ../../include/network.php:2243 +msgid "MySpace" msgstr "" -#: ../../include/activities.php:59 -#, php-format -msgid "Visit %1$s's %2$s" -msgstr "" - -#: ../../include/activities.php:62 -#, php-format -msgid "%1$s has an updated %2$s, changing %3$s." -msgstr "" - -#: ../../include/conversation.php:204 -#, php-format -msgid "%1$s is now connected with %2$s" -msgstr "" - -#: ../../include/conversation.php:239 -#, php-format -msgid "%1$s poked %2$s" -msgstr "" - -#: ../../include/conversation.php:694 -#, php-format -msgid "View %s's profile @ %s" -msgstr "" - -#: ../../include/conversation.php:713 -msgid "Categories:" -msgstr "" - -#: ../../include/conversation.php:714 -msgid "Filed under:" -msgstr "" - -#: ../../include/conversation.php:739 -msgid "View in context" -msgstr "" - -#: ../../include/conversation.php:849 -msgid "remove" -msgstr "" - -#: ../../include/conversation.php:854 -msgid "Delete Selected Items" -msgstr "" - -#: ../../include/conversation.php:947 -msgid "View Source" -msgstr "" - -#: ../../include/conversation.php:948 -msgid "Follow Thread" -msgstr "" - -#: ../../include/conversation.php:949 -msgid "Unfollow Thread" -msgstr "" - -#: ../../include/conversation.php:954 -msgid "Activity/Posts" -msgstr "" - -#: ../../include/conversation.php:956 -msgid "Edit Connection" -msgstr "" - -#: ../../include/conversation.php:957 -msgid "Message" -msgstr "" - -#: ../../include/conversation.php:1077 -#, php-format -msgid "%s likes this." -msgstr "" - -#: ../../include/conversation.php:1077 -#, php-format -msgid "%s doesn't like this." -msgstr "" - -#: ../../include/conversation.php:1081 -#, php-format -msgid "%2$d people like this." -msgid_plural "%2$d people like this." -msgstr[0] "" -msgstr[1] "" - -#: ../../include/conversation.php:1083 -#, php-format -msgid "%2$d people don't like this." -msgid_plural "%2$d people don't like this." -msgstr[0] "" -msgstr[1] "" - -#: ../../include/conversation.php:1089 -msgid "and" -msgstr "" - -#: ../../include/conversation.php:1092 -#, php-format -msgid ", and %d other people" -msgid_plural ", and %d other people" -msgstr[0] "" -msgstr[1] "" - -#: ../../include/conversation.php:1093 -#, php-format -msgid "%s like this." -msgstr "" - -#: ../../include/conversation.php:1093 -#, php-format -msgid "%s don't like this." -msgstr "" - -#: ../../include/conversation.php:1136 -msgid "Set your location" -msgstr "" - -#: ../../include/conversation.php:1137 -msgid "Clear browser location" -msgstr "" - -#: ../../include/conversation.php:1185 -msgid "Tag term:" -msgstr "" - -#: ../../include/conversation.php:1186 -msgid "Where are you right now?" -msgstr "" - -#: ../../include/conversation.php:1195 -msgid "Comments enabled" -msgstr "" - -#: ../../include/conversation.php:1196 -msgid "Comments disabled" -msgstr "" - -#: ../../include/conversation.php:1234 -msgid "Page link name" -msgstr "" - -#: ../../include/conversation.php:1237 -msgid "Post as" -msgstr "" - -#: ../../include/conversation.php:1251 -msgid "Toggle voting" -msgstr "" - -#: ../../include/conversation.php:1254 -msgid "Disable comments" -msgstr "" - -#: ../../include/conversation.php:1255 -msgid "Toggle comments" -msgstr "" - -#: ../../include/conversation.php:1263 -msgid "Categories (optional, comma-separated list)" -msgstr "" - -#: ../../include/conversation.php:1286 -msgid "Other networks and post services" -msgstr "" - -#: ../../include/conversation.php:1292 -msgid "Set publish date" -msgstr "" - -#: ../../include/conversation.php:1541 -msgid "Discover" -msgstr "" - -#: ../../include/conversation.php:1544 -msgid "Imported public streams" -msgstr "" - -#: ../../include/conversation.php:1549 -msgid "Commented Order" -msgstr "" - -#: ../../include/conversation.php:1552 -msgid "Sort by Comment Date" -msgstr "" - -#: ../../include/conversation.php:1556 -msgid "Posted Order" -msgstr "" - -#: ../../include/conversation.php:1559 -msgid "Sort by Post Date" -msgstr "" - -#: ../../include/conversation.php:1567 -msgid "Posts that mention or involve you" -msgstr "" - -#: ../../include/conversation.php:1576 -msgid "Activity Stream - by date" -msgstr "" - -#: ../../include/conversation.php:1582 -msgid "Starred" -msgstr "" - -#: ../../include/conversation.php:1585 -msgid "Favourite Posts" -msgstr "" - -#: ../../include/conversation.php:1592 -msgid "Spam" -msgstr "" - -#: ../../include/conversation.php:1595 -msgid "Posts flagged as SPAM" -msgstr "" - -#: ../../include/conversation.php:1654 -msgid "Status Messages and Posts" -msgstr "" - -#: ../../include/conversation.php:1663 -msgid "About" -msgstr "" - -#: ../../include/conversation.php:1666 -msgid "Profile Details" -msgstr "" - -#: ../../include/conversation.php:1682 -msgid "Files and Storage" -msgstr "" - -#: ../../include/conversation.php:1718 -msgid "Saved Bookmarks" -msgstr "" - -#: ../../include/conversation.php:1728 -msgid "Manage Webpages" -msgstr "" - -#: ../../include/conversation.php:1793 -msgctxt "noun" -msgid "Attending" -msgid_plural "Attending" -msgstr[0] "" -msgstr[1] "" - -#: ../../include/conversation.php:1796 -msgctxt "noun" -msgid "Not Attending" -msgid_plural "Not Attending" -msgstr[0] "" -msgstr[1] "" - -#: ../../include/conversation.php:1799 -msgctxt "noun" -msgid "Undecided" -msgid_plural "Undecided" -msgstr[0] "" -msgstr[1] "" - -#: ../../include/conversation.php:1802 -msgctxt "noun" -msgid "Agree" -msgid_plural "Agrees" -msgstr[0] "" -msgstr[1] "" - -#: ../../include/conversation.php:1805 -msgctxt "noun" -msgid "Disagree" -msgid_plural "Disagrees" -msgstr[0] "" -msgstr[1] "" - -#: ../../include/conversation.php:1808 -msgctxt "noun" -msgid "Abstain" -msgid_plural "Abstains" -msgstr[0] "" -msgstr[1] "" - #: ../../include/taxonomy.php:228 ../../include/taxonomy.php:249 msgid "Tags" msgstr "" @@ -9601,157 +12056,144 @@ msgstr "" msgid "dislikes" msgstr "" -#: ../../include/event.php:824 -msgid "This event has been added to your calendar." +#: ../../include/import.php:30 +msgid "" +"Cannot create a duplicate channel identifier on this system. Import failed." msgstr "" -#: ../../include/event.php:1024 -msgid "Not specified" +#: ../../include/import.php:90 +msgid "Channel clone failed. Import failed." msgstr "" -#: ../../include/event.php:1025 -msgid "Needs Action" +#: ../../include/import.php:1354 +msgid "Unable to import element \"" msgstr "" -#: ../../include/event.php:1026 -msgid "Completed" +#: ../../include/security.php:117 +msgid "guest:" msgstr "" -#: ../../include/event.php:1027 -msgid "In Process" +#: ../../include/security.php:535 +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/event.php:1028 -msgid "Cancelled" +#: ../../include/zot.php:662 +msgid "Invalid data packet" msgstr "" -#: ../../include/items.php:909 ../../include/items.php:954 +#: ../../include/zot.php:678 +msgid "Unable to verify channel signature" +msgstr "" + +#: ../../include/zot.php:2320 +#, php-format +msgid "Unable to verify site signature for %s" +msgstr "" + +#: ../../include/zot.php:3718 +msgid "invalid target signature" +msgstr "" + +#: ../../include/items.php:837 ../../include/items.php:882 msgid "(Unknown)" msgstr "" -#: ../../include/items.php:1152 +#: ../../include/items.php:1080 msgid "Visible to anybody on the internet." msgstr "" -#: ../../include/items.php:1154 +#: ../../include/items.php:1082 msgid "Visible to you only." msgstr "" -#: ../../include/items.php:1156 +#: ../../include/items.php:1084 msgid "Visible to anybody in this network." msgstr "" -#: ../../include/items.php:1158 +#: ../../include/items.php:1086 msgid "Visible to anybody authenticated." msgstr "" -#: ../../include/items.php:1160 +#: ../../include/items.php:1088 #, php-format msgid "Visible to anybody on %s." msgstr "" -#: ../../include/items.php:1162 +#: ../../include/items.php:1090 msgid "Visible to all connections." msgstr "" -#: ../../include/items.php:1164 +#: ../../include/items.php:1092 msgid "Visible to approved connections." msgstr "" -#: ../../include/items.php:1166 +#: ../../include/items.php:1094 msgid "Visible to specific connections." msgstr "" -#: ../../include/items.php:3960 +#: ../../include/items.php:3892 msgid "Privacy group is empty." msgstr "" -#: ../../include/items.php:3967 +#: ../../include/items.php:3899 #, php-format msgid "Privacy group: %s" msgstr "" -#: ../../include/items.php:3979 +#: ../../include/items.php:3911 msgid "Connection not found." msgstr "" -#: ../../include/items.php:4332 +#: ../../include/items.php:4260 msgid "profile photo" msgstr "" -#: ../../include/contact_widgets.php:11 +#: ../../include/items.php:4456 #, php-format -msgid "%d invitation available" -msgid_plural "%d invitations available" -msgstr[0] "" -msgstr[1] "" - -#: ../../include/contact_widgets.php:19 -msgid "Find Channels" +msgid "[Edited %s]" msgstr "" -#: ../../include/contact_widgets.php:20 -msgid "Enter name or interest" +#: ../../include/items.php:4456 +msgctxt "edit_activity" +msgid "Post" msgstr "" -#: ../../include/contact_widgets.php:21 -msgid "Connect/Follow" +#: ../../include/items.php:4456 +msgctxt "edit_activity" +msgid "Comment" msgstr "" -#: ../../include/contact_widgets.php:22 -msgid "Examples: Robert Morgenstein, Fishing" +#: ../../include/auth.php:148 +msgid "Logged out." msgstr "" -#: ../../include/contact_widgets.php:26 -msgid "Random Profile" +#: ../../include/auth.php:275 +msgid "Failed authentication" msgstr "" -#: ../../include/contact_widgets.php:27 -msgid "Invite Friends" +#: ../../include/activities.php:41 +msgid " and " msgstr "" -#: ../../include/contact_widgets.php:29 -msgid "Advanced example: name=fred and country=iceland" +#: ../../include/activities.php:49 +msgid "public profile" msgstr "" -#: ../../include/contact_widgets.php:122 +#: ../../include/activities.php:58 #, php-format -msgid "%d connection in common" -msgid_plural "%d connections in common" -msgstr[0] "" -msgstr[1] "" - -#: ../../include/contact_widgets.php:127 -msgid "show more" +msgid "%1$s changed %2$s to “%3$s”" msgstr "" -#: ../../include/acl_selectors.php:172 -msgid "Who can see this?" -msgstr "" - -#: ../../include/acl_selectors.php:173 -msgid "Custom selection" -msgstr "" - -#: ../../include/acl_selectors.php:174 -msgid "" -"Select \"Show\" to allow viewing. \"Don't show\" lets you override and limit " -"the scope of \"Show\"." -msgstr "" - -#: ../../include/acl_selectors.php:175 -msgid "Show" -msgstr "" - -#: ../../include/acl_selectors.php:176 -msgid "Don't show" -msgstr "" - -#: ../../include/acl_selectors.php:209 +#: ../../include/activities.php:59 #, php-format -msgid "" -"Post permissions %s cannot be changed %s after a post is shared.
        These " -"permissions set who is allowed to view the post." +msgid "Visit %1$s's %2$s" +msgstr "" + +#: ../../include/activities.php:62 +#, php-format +msgid "%1$s has an updated %2$s, changing %3$s." msgstr "" #: ../../include/attach.php:248 ../../include/attach.php:336 @@ -9780,215 +12222,813 @@ msgstr "" msgid "You have reached your limit of %1$.0f Mbytes attachment storage." msgstr "" -#: ../../include/attach.php:846 +#: ../../include/attach.php:852 msgid "File upload failed. Possible system limit or action terminated." msgstr "" -#: ../../include/attach.php:859 +#: ../../include/attach.php:865 msgid "Stored file could not be verified. Upload failed." msgstr "" -#: ../../include/attach.php:914 ../../include/attach.php:930 +#: ../../include/attach.php:920 ../../include/attach.php:936 msgid "Path not available." msgstr "" -#: ../../include/attach.php:976 ../../include/attach.php:1128 +#: ../../include/attach.php:982 ../../include/attach.php:1140 msgid "Empty pathname" msgstr "" -#: ../../include/attach.php:1002 +#: ../../include/attach.php:1008 msgid "duplicate filename or path" msgstr "" -#: ../../include/attach.php:1024 +#: ../../include/attach.php:1030 msgid "Path not found." msgstr "" -#: ../../include/attach.php:1082 +#: ../../include/attach.php:1094 msgid "mkdir failed." msgstr "" -#: ../../include/attach.php:1086 +#: ../../include/attach.php:1098 msgid "database storage failed." msgstr "" -#: ../../include/attach.php:1134 +#: ../../include/attach.php:1146 msgid "Empty path" msgstr "" -#: ../../include/channel.php:33 -msgid "Unable to obtain identity information from database" +#: ../../include/event.php:22 ../../include/event.php:69 +#: ../../include/bb2diaspora.php:498 +msgid "l F d, Y \\@ g:i A" msgstr "" -#: ../../include/channel.php:67 -msgid "Empty name" +#: ../../include/event.php:30 ../../include/event.php:73 +#: ../../include/bb2diaspora.php:504 +msgid "Starts:" msgstr "" -#: ../../include/channel.php:70 -msgid "Name too long" +#: ../../include/event.php:40 ../../include/event.php:77 +#: ../../include/bb2diaspora.php:512 +msgid "Finishes:" msgstr "" -#: ../../include/channel.php:181 -msgid "No account identifier" +#: ../../include/event.php:824 +msgid "This event has been added to your calendar." msgstr "" -#: ../../include/channel.php:193 -msgid "Nickname is required." +#: ../../include/event.php:1024 +msgid "Not specified" msgstr "" -#: ../../include/channel.php:207 -msgid "Reserved nickname. Please choose another." +#: ../../include/event.php:1025 +msgid "Needs Action" msgstr "" -#: ../../include/channel.php:212 +#: ../../include/event.php:1026 +msgid "Completed" +msgstr "" + +#: ../../include/event.php:1027 +msgid "In Process" +msgstr "" + +#: ../../include/event.php:1028 +msgid "Cancelled" +msgstr "" + +#: ../../include/follow.php:27 +msgid "Channel is blocked on this site." +msgstr "" + +#: ../../include/follow.php:32 +msgid "Channel location missing." +msgstr "" + +#: ../../include/follow.php:80 +msgid "Response from remote channel was incomplete." +msgstr "" + +#: ../../include/follow.php:97 +msgid "Channel was deleted and no longer exists." +msgstr "" + +#: ../../include/follow.php:147 ../../include/follow.php:183 +msgid "Protocol disabled." +msgstr "" + +#: ../../include/follow.php:171 +msgid "Channel discovery failed." +msgstr "" + +#: ../../include/follow.php:210 +msgid "Cannot connect to yourself." +msgstr "" + +#: ../../include/group.php:26 msgid "" -"Nickname has unsupported characters or is already being used on this site." +"A deleted group with this name was revived. Existing item permissions " +"may 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/channel.php:272 -msgid "Unable to retrieve created identity" +#: ../../include/group.php:248 +msgid "Add new connections to this privacy group" msgstr "" -#: ../../include/channel.php:341 -msgid "Default Profile" +#: ../../include/group.php:289 +msgid "edit" msgstr "" -#: ../../include/channel.php:816 -msgid "Requested channel is not available." +#: ../../include/group.php:312 +msgid "Edit group" msgstr "" -#: ../../include/channel.php:962 -msgid "Create New Profile" +#: ../../include/group.php:313 +msgid "Add privacy group" msgstr "" -#: ../../include/channel.php:982 -msgid "Visible to everybody" +#: ../../include/group.php:314 +msgid "Channels not in any privacy group" msgstr "" -#: ../../include/channel.php:1055 ../../include/channel.php:1174 -msgid "Gender:" +#: ../../include/group.php:316 ../../include/widgets.php:284 +msgid "add" msgstr "" -#: ../../include/channel.php:1056 ../../include/channel.php:1218 -msgid "Status:" +#: ../../include/language.php:380 +msgid "Select an alternate language" msgstr "" -#: ../../include/channel.php:1057 ../../include/channel.php:1229 -msgid "Homepage:" -msgstr "" - -#: ../../include/channel.php:1058 -msgid "Online Now" -msgstr "" - -#: ../../include/channel.php:1179 -msgid "Like this channel" -msgstr "" - -#: ../../include/channel.php:1203 -msgid "j F, Y" -msgstr "" - -#: ../../include/channel.php:1204 -msgid "j F" -msgstr "" - -#: ../../include/channel.php:1211 -msgid "Birthday:" -msgstr "" - -#: ../../include/channel.php:1224 +#: ../../include/photos.php:115 #, php-format -msgid "for %1$d %2$s" +msgid "Image exceeds website size limit of %lu bytes" msgstr "" -#: ../../include/channel.php:1227 -msgid "Sexual Preference:" +#: ../../include/photos.php:122 +msgid "Image file is empty." msgstr "" -#: ../../include/channel.php:1233 -msgid "Tags:" +#: ../../include/photos.php:260 +msgid "Photo storage failed." msgstr "" -#: ../../include/channel.php:1235 -msgid "Political Views:" +#: ../../include/photos.php:300 +msgid "a new photo" msgstr "" -#: ../../include/channel.php:1237 -msgid "Religion:" -msgstr "" - -#: ../../include/channel.php:1241 -msgid "Hobbies/Interests:" -msgstr "" - -#: ../../include/channel.php:1243 -msgid "Likes:" -msgstr "" - -#: ../../include/channel.php:1245 -msgid "Dislikes:" -msgstr "" - -#: ../../include/channel.php:1247 -msgid "Contact information and Social Networks:" -msgstr "" - -#: ../../include/channel.php:1249 -msgid "My other channels:" -msgstr "" - -#: ../../include/channel.php:1251 -msgid "Musical interests:" -msgstr "" - -#: ../../include/channel.php:1253 -msgid "Books, literature:" -msgstr "" - -#: ../../include/channel.php:1255 -msgid "Television:" -msgstr "" - -#: ../../include/channel.php:1257 -msgid "Film/dance/culture/entertainment:" -msgstr "" - -#: ../../include/channel.php:1259 -msgid "Love/Romance:" -msgstr "" - -#: ../../include/channel.php:1261 -msgid "Work/employment:" -msgstr "" - -#: ../../include/channel.php:1263 -msgid "School/education:" -msgstr "" - -#: ../../include/channel.php:1284 -msgid "Like this thing" -msgstr "" - -#: ../../include/help.php:31 -msgid "Help:" -msgstr "" - -#: ../../include/zot.php:705 -msgid "Invalid data packet" -msgstr "" - -#: ../../include/zot.php:721 -msgid "Unable to verify channel signature" -msgstr "" - -#: ../../include/zot.php:2336 +#: ../../include/photos.php:304 #, php-format -msgid "Unable to verify site signature for %s" +msgctxt "photo_upload" +msgid "%1$s posted %2$s to %3$s" msgstr "" -#: ../../include/zot.php:3721 -msgid "invalid target signature" +#: ../../include/photos.php:507 ../../include/conversation.php:1695 +msgid "Photo Albums" +msgstr "" + +#: ../../include/photos.php:511 +msgid "Upload New Photos" +msgstr "" + +#: ../../include/widgets.php:103 +msgid "System" +msgstr "" + +#: ../../include/widgets.php:106 +msgid "New App" +msgstr "" + +#: ../../include/widgets.php:154 +msgid "Suggestions" +msgstr "" + +#: ../../include/widgets.php:155 +msgid "See more..." +msgstr "" + +#: ../../include/widgets.php:175 +#, php-format +msgid "You have %1$.0f of %2$.0f allowed connections." +msgstr "" + +#: ../../include/widgets.php:181 +msgid "Add New Connection" +msgstr "" + +#: ../../include/widgets.php:182 +msgid "Enter channel address" +msgstr "" + +#: ../../include/widgets.php:183 +msgid "Examples: bob@example.com, https://example.com/barbara" +msgstr "" + +#: ../../include/widgets.php:199 +msgid "Notes" +msgstr "" + +#: ../../include/widgets.php:275 +msgid "Remove term" +msgstr "" + +#: ../../include/widgets.php:390 +msgid "Archives" +msgstr "" + +#: ../../include/widgets.php:552 +msgid "Refresh" +msgstr "" + +#: ../../include/widgets.php:592 +msgid "Account settings" +msgstr "" + +#: ../../include/widgets.php:598 +msgid "Channel settings" +msgstr "" + +#: ../../include/widgets.php:607 +msgid "Additional features" +msgstr "" + +#: ../../include/widgets.php:614 +msgid "Feature/Addon settings" +msgstr "" + +#: ../../include/widgets.php:620 +msgid "Display settings" +msgstr "" + +#: ../../include/widgets.php:627 +msgid "Manage locations" +msgstr "" + +#: ../../include/widgets.php:634 +msgid "Export channel" +msgstr "" + +#: ../../include/widgets.php:640 +msgid "Connected apps" +msgstr "" + +#: ../../include/widgets.php:664 +msgid "Premium Channel Settings" +msgstr "" + +#: ../../include/widgets.php:693 +msgid "Private Mail Menu" +msgstr "" + +#: ../../include/widgets.php:695 +msgid "Combined View" +msgstr "" + +#: ../../include/widgets.php:727 ../../include/widgets.php:739 +msgid "Conversations" +msgstr "" + +#: ../../include/widgets.php:731 +msgid "Received Messages" +msgstr "" + +#: ../../include/widgets.php:735 +msgid "Sent Messages" +msgstr "" + +#: ../../include/widgets.php:749 +msgid "No messages." +msgstr "" + +#: ../../include/widgets.php:767 +msgid "Delete conversation" +msgstr "" + +#: ../../include/widgets.php:793 +msgid "Events Tools" +msgstr "" + +#: ../../include/widgets.php:794 +msgid "Export Calendar" +msgstr "" + +#: ../../include/widgets.php:795 +msgid "Import Calendar" +msgstr "" + +#: ../../include/widgets.php:883 ../../include/conversation.php:1722 +#: ../../include/conversation.php:1725 +msgid "Chatrooms" +msgstr "" + +#: ../../include/widgets.php:887 +msgid "Overview" +msgstr "" + +#: ../../include/widgets.php:894 +msgid "Chat Members" +msgstr "" + +#: ../../include/widgets.php:960 +msgid "Wiki List" +msgstr "" + +#: ../../include/widgets.php:968 +msgid "Create new wiki" +msgstr "" + +#: ../../include/widgets.php:978 +msgid "Send notification" +msgstr "" + +#: ../../include/widgets.php:1014 +msgid "Wiki Pages" +msgstr "" + +#: ../../include/widgets.php:1019 +msgid "Add new page" +msgstr "" + +#: ../../include/widgets.php:1020 +msgid "Page name" +msgstr "" + +#: ../../include/widgets.php:1052 +msgid "Bookmarked Chatrooms" +msgstr "" + +#: ../../include/widgets.php:1083 +msgid "Suggested Chatrooms" +msgstr "" + +#: ../../include/widgets.php:1228 ../../include/widgets.php:1340 +msgid "photo/image" +msgstr "" + +#: ../../include/widgets.php:1283 +msgid "Click to show more" +msgstr "" + +#: ../../include/widgets.php:1434 +msgid "Rating Tools" +msgstr "" + +#: ../../include/widgets.php:1438 ../../include/widgets.php:1440 +msgid "Rate Me" +msgstr "" + +#: ../../include/widgets.php:1443 +msgid "View Ratings" +msgstr "" + +#: ../../include/widgets.php:1536 +msgid "Forums" +msgstr "" + +#: ../../include/widgets.php:1565 +msgid "Tasks" +msgstr "" + +#: ../../include/widgets.php:1576 +msgid "Documentation" +msgstr "" + +#: ../../include/widgets.php:1632 ../../include/widgets.php:1670 +msgid "Member registrations waiting for confirmation" +msgstr "" + +#: ../../include/widgets.php:1638 +msgid "Inspect queue" +msgstr "" + +#: ../../include/widgets.php:1640 +msgid "DB updates" +msgstr "" + +#: ../../include/widgets.php:1666 +msgid "Plugin Features" +msgstr "" + +#: ../../include/acl_selectors.php:198 +msgid "Who can see this?" +msgstr "" + +#: ../../include/acl_selectors.php:199 +msgid "Custom selection" +msgstr "" + +#: ../../include/acl_selectors.php:200 +msgid "" +"Select \"Show\" to allow viewing. \"Don't show\" lets you override and limit " +"the scope of \"Show\"." +msgstr "" + +#: ../../include/acl_selectors.php:201 +msgid "Show" +msgstr "" + +#: ../../include/acl_selectors.php:202 +msgid "Don't show" +msgstr "" + +#: ../../include/acl_selectors.php:235 +#, php-format +msgid "" +"Post permissions %s cannot be changed %s after a post is shared.
        These " +"permissions set who is allowed to view the post." +msgstr "" + +#: ../../include/oembed.php:312 +msgid " by " +msgstr "" + +#: ../../include/oembed.php:313 +msgid " on " +msgstr "" + +#: ../../include/oembed.php:342 +msgid "Embedded content" +msgstr "" + +#: ../../include/oembed.php:351 +msgid "Embedding disabled" +msgstr "" + +#: ../../include/bb2diaspora.php:403 +msgid "Attachments:" +msgstr "" + +#: ../../include/bb2diaspora.php:500 +msgid "$Projectname event notification:" +msgstr "" + +#: ../../include/permissions.php:35 +msgid "Can view my normal stream and posts" +msgstr "" + +#: ../../include/permissions.php:39 +msgid "Can view my webpages" +msgstr "" + +#: ../../include/permissions.php:43 +msgid "Can post on my channel page (\"wall\")" +msgstr "" + +#: ../../include/permissions.php:46 +msgid "Can like/dislike stuff" +msgstr "" + +#: ../../include/permissions.php:46 +msgid "Profiles and things other than posts/comments" +msgstr "" + +#: ../../include/permissions.php:48 +msgid "Can forward to all my channel contacts via post @mentions" +msgstr "" + +#: ../../include/permissions.php:48 +msgid "Advanced - useful for creating group forum channels" +msgstr "" + +#: ../../include/permissions.php:49 +msgid "Can chat with me (when available)" +msgstr "" + +#: ../../include/permissions.php:50 +msgid "Can write to my file storage and photos" +msgstr "" + +#: ../../include/permissions.php:51 +msgid "Can edit my webpages" +msgstr "" + +#: ../../include/permissions.php:53 +msgid "Somewhat advanced - very useful in open communities" +msgstr "" + +#: ../../include/permissions.php:55 +msgid "Can administer my channel resources" +msgstr "" + +#: ../../include/permissions.php:55 +msgid "Extremely advanced. Leave this alone unless you know what you are doing" +msgstr "" + +#: ../../include/conversation.php:204 +#, php-format +msgid "%1$s is now connected with %2$s" +msgstr "" + +#: ../../include/conversation.php:239 +#, php-format +msgid "%1$s poked %2$s" +msgstr "" + +#: ../../include/conversation.php:710 +#, php-format +msgid "View %s's profile @ %s" +msgstr "" + +#: ../../include/conversation.php:729 +msgid "Categories:" +msgstr "" + +#: ../../include/conversation.php:730 +msgid "Filed under:" +msgstr "" + +#: ../../include/conversation.php:755 +msgid "View in context" +msgstr "" + +#: ../../include/conversation.php:865 +msgid "remove" +msgstr "" + +#: ../../include/conversation.php:870 +msgid "Delete Selected Items" +msgstr "" + +#: ../../include/conversation.php:963 +msgid "View Source" +msgstr "" + +#: ../../include/conversation.php:964 +msgid "Follow Thread" +msgstr "" + +#: ../../include/conversation.php:965 +msgid "Unfollow Thread" +msgstr "" + +#: ../../include/conversation.php:970 +msgid "Activity/Posts" +msgstr "" + +#: ../../include/conversation.php:972 +msgid "Edit Connection" +msgstr "" + +#: ../../include/conversation.php:973 +msgid "Message" +msgstr "" + +#: ../../include/conversation.php:1093 +#, php-format +msgid "%s likes this." +msgstr "" + +#: ../../include/conversation.php:1093 +#, php-format +msgid "%s doesn't like this." +msgstr "" + +#: ../../include/conversation.php:1097 +#, php-format +msgid "%2$d people like this." +msgid_plural "%2$d people like this." +msgstr[0] "" +msgstr[1] "" + +#: ../../include/conversation.php:1099 +#, php-format +msgid "%2$d people don't like this." +msgid_plural "%2$d people don't like this." +msgstr[0] "" +msgstr[1] "" + +#: ../../include/conversation.php:1105 +msgid "and" +msgstr "" + +#: ../../include/conversation.php:1108 +#, php-format +msgid ", and %d other people" +msgid_plural ", and %d other people" +msgstr[0] "" +msgstr[1] "" + +#: ../../include/conversation.php:1109 +#, php-format +msgid "%s like this." +msgstr "" + +#: ../../include/conversation.php:1109 +#, php-format +msgid "%s don't like this." +msgstr "" + +#: ../../include/conversation.php:1152 +msgid "Set your location" +msgstr "" + +#: ../../include/conversation.php:1153 +msgid "Clear browser location" +msgstr "" + +#: ../../include/conversation.php:1201 +msgid "Tag term:" +msgstr "" + +#: ../../include/conversation.php:1202 +msgid "Where are you right now?" +msgstr "" + +#: ../../include/conversation.php:1211 +msgid "Comments enabled" +msgstr "" + +#: ../../include/conversation.php:1212 +msgid "Comments disabled" +msgstr "" + +#: ../../include/conversation.php:1250 +msgid "Page link name" +msgstr "" + +#: ../../include/conversation.php:1253 +msgid "Post as" +msgstr "" + +#: ../../include/conversation.php:1267 +msgid "Toggle voting" +msgstr "" + +#: ../../include/conversation.php:1270 +msgid "Disable comments" +msgstr "" + +#: ../../include/conversation.php:1271 +msgid "Toggle comments" +msgstr "" + +#: ../../include/conversation.php:1279 +msgid "Categories (optional, comma-separated list)" +msgstr "" + +#: ../../include/conversation.php:1302 +msgid "Other networks and post services" +msgstr "" + +#: ../../include/conversation.php:1308 +msgid "Set publish date" +msgstr "" + +#: ../../include/conversation.php:1562 +msgid "Discover" +msgstr "" + +#: ../../include/conversation.php:1565 +msgid "Imported public streams" +msgstr "" + +#: ../../include/conversation.php:1570 +msgid "Commented Order" +msgstr "" + +#: ../../include/conversation.php:1573 +msgid "Sort by Comment Date" +msgstr "" + +#: ../../include/conversation.php:1577 +msgid "Posted Order" +msgstr "" + +#: ../../include/conversation.php:1580 +msgid "Sort by Post Date" +msgstr "" + +#: ../../include/conversation.php:1588 +msgid "Posts that mention or involve you" +msgstr "" + +#: ../../include/conversation.php:1597 +msgid "Activity Stream - by date" +msgstr "" + +#: ../../include/conversation.php:1603 +msgid "Starred" +msgstr "" + +#: ../../include/conversation.php:1606 +msgid "Favourite Posts" +msgstr "" + +#: ../../include/conversation.php:1613 +msgid "Spam" +msgstr "" + +#: ../../include/conversation.php:1616 +msgid "Posts flagged as SPAM" +msgstr "" + +#: ../../include/conversation.php:1674 +msgid "Status Messages and Posts" +msgstr "" + +#: ../../include/conversation.php:1683 +msgid "About" +msgstr "" + +#: ../../include/conversation.php:1686 +msgid "Profile Details" +msgstr "" + +#: ../../include/conversation.php:1702 +msgid "Files and Storage" +msgstr "" + +#: ../../include/conversation.php:1738 +msgid "Saved Bookmarks" +msgstr "" + +#: ../../include/conversation.php:1748 +msgid "Manage Webpages" +msgstr "" + +#: ../../include/conversation.php:1813 +msgctxt "noun" +msgid "Attending" +msgid_plural "Attending" +msgstr[0] "" +msgstr[1] "" + +#: ../../include/conversation.php:1816 +msgctxt "noun" +msgid "Not Attending" +msgid_plural "Not Attending" +msgstr[0] "" +msgstr[1] "" + +#: ../../include/conversation.php:1819 +msgctxt "noun" +msgid "Undecided" +msgid_plural "Undecided" +msgstr[0] "" +msgstr[1] "" + +#: ../../include/conversation.php:1822 +msgctxt "noun" +msgid "Agree" +msgid_plural "Agrees" +msgstr[0] "" +msgstr[1] "" + +#: ../../include/conversation.php:1825 +msgctxt "noun" +msgid "Disagree" +msgid_plural "Disagrees" +msgstr[0] "" +msgstr[1] "" + +#: ../../include/conversation.php:1828 +msgctxt "noun" +msgid "Abstain" +msgid_plural "Abstains" +msgstr[0] "" +msgstr[1] "" + +#: ../../include/bbcode.php:134 ../../include/bbcode.php:962 +#: ../../include/bbcode.php:965 ../../include/bbcode.php:970 +#: ../../include/bbcode.php:973 ../../include/bbcode.php:976 +#: ../../include/bbcode.php:979 ../../include/bbcode.php:984 +#: ../../include/bbcode.php:987 ../../include/bbcode.php:992 +#: ../../include/bbcode.php:995 ../../include/bbcode.php:998 +#: ../../include/bbcode.php:1001 +msgid "Image/photo" +msgstr "" + +#: ../../include/bbcode.php:173 ../../include/bbcode.php:1012 +msgid "Encrypted content" +msgstr "" + +#: ../../include/bbcode.php:189 +#, php-format +msgid "Install %s element: " +msgstr "" + +#: ../../include/bbcode.php:193 +#, php-format +msgid "" +"This post contains an installable %s element, however you lack permissions " +"to install it on this site." +msgstr "" + +#: ../../include/bbcode.php:272 +#, php-format +msgid "%1$s wrote the following %2$s %3$s" +msgstr "" + +#: ../../include/bbcode.php:349 ../../include/bbcode.php:357 +msgid "Click to open/close" +msgstr "" + +#: ../../include/bbcode.php:357 +msgid "spoiler" +msgstr "" + +#: ../../include/bbcode.php:950 +msgid "$1 wrote:" msgstr "" #: ../../view/theme/redbasic/php/config.php:9 @@ -10123,66 +13163,66 @@ msgstr "" msgid "Set size of followup author photos" msgstr "" -#: ../../boot.php:1195 +#: ../../boot.php:1175 #, php-format msgctxt "opensearch" msgid "Search %1$s (%2$s)" msgstr "" -#: ../../boot.php:1195 +#: ../../boot.php:1175 msgctxt "opensearch" msgid "$Projectname" msgstr "" -#: ../../boot.php:1513 +#: ../../boot.php:1493 #, php-format msgid "Update %s failed. See error logs." msgstr "" -#: ../../boot.php:1516 +#: ../../boot.php:1496 #, php-format msgid "Update Error at %s" msgstr "" -#: ../../boot.php:1720 +#: ../../boot.php:1700 msgid "" "Create an account to access services and applications within the Hubzilla" msgstr "" -#: ../../boot.php:1741 +#: ../../boot.php:1721 msgid "Login/Email" msgstr "" -#: ../../boot.php:1742 +#: ../../boot.php:1722 msgid "Password" msgstr "" -#: ../../boot.php:1743 +#: ../../boot.php:1723 msgid "Remember me" msgstr "" -#: ../../boot.php:1746 +#: ../../boot.php:1726 msgid "Forgot your password?" msgstr "" -#: ../../boot.php:2315 +#: ../../boot.php:2287 msgid "toggle mobile" msgstr "" -#: ../../boot.php:2470 +#: ../../boot.php:2442 msgid "Website SSL certificate is not valid. Please correct." msgstr "" -#: ../../boot.php:2473 +#: ../../boot.php:2445 #, php-format msgid "[hubzilla] Website SSL error for %s" msgstr "" -#: ../../boot.php:2577 +#: ../../boot.php:2562 msgid "Cron/Scheduled tasks not running." msgstr "" -#: ../../boot.php:2581 +#: ../../boot.php:2566 #, php-format msgid "[hubzilla] Cron tasks not running on %s" msgstr "" diff --git a/util/run_xgettext.sh b/util/run_xgettext.sh index 9402546a8..918597882 100755 --- a/util/run_xgettext.sh +++ b/util/run_xgettext.sh @@ -2,6 +2,12 @@ FULLPATH=$(dirname $(readlink -f "$0")) +VINFO=`echo ", YEAR.//g" "$OUTFILE" sed -i "s/PACKAGE VERSION//g" "$OUTFILE" - sed -i "s/PACKAGE/Hubzilla $ADDONNAME addon/g" "$OUTFILE" + sed -i "s/PACKAGE/$PROJECTNAME $ADDONNAME addon/g" "$OUTFILE" sed -i "s/CHARSET/UTF-8/g" "$OUTFILE" sed -i '/^\"Plural-Forms/d' "$OUTFILE" else - sed -i "s/SOME DESCRIPTIVE TITLE./Hubzilla Project/g" "$OUTFILE" - sed -i "s/YEAR THE PACKAGE'S COPYRIGHT HOLDER/2012-2014 the Hubzilla Project/g" "$OUTFILE" + sed -i "s/SOME DESCRIPTIVE TITLE./$PROJECTNAME/g" "$OUTFILE" + sed -i "s/YEAR THE PACKAGE'S COPYRIGHT HOLDER/2012-2016 $PROJECTNAME/g" "$OUTFILE" sed -i "s/FIRST AUTHOR , YEAR./Mike Macgirvin, 2012/g" "$OUTFILE" sed -i "s/PACKAGE VERSION/$F9KVERSION/g" "$OUTFILE" - sed -i "s/PACKAGE/Red/g" "$OUTFILE" + sed -i "s/PACKAGE/$PROJECTNAME/g" "$OUTFILE" sed -i "s/CHARSET/UTF-8/g" "$OUTFILE" sed -i '/^\"Plural-Forms/d' "$OUTFILE" fi diff --git a/util/zotsh/README.txt b/util/zotsh/README.txt index 3f31bba7f..facddc850 100644 --- a/util/zotsh/README.txt +++ b/util/zotsh/README.txt @@ -8,6 +8,8 @@ Install ZotSH requires 'requests'(1). Please refer to requests docs on how to install it (2) +The initially connected server must have the twitter_api plugin installed + Extract somewere and launch zotsh.py @@ -106,4 +108,4 @@ Links _0 : https://github.com/amnong/easywebdav _1 : http://docs.python-requests.org/en/latest/ -_2 : http://docs.python-requests.org/en/latest/user/install/ \ No newline at end of file +_2 : http://docs.python-requests.org/en/latest/user/install/ diff --git a/util/zotsh/easywebdav/__init__.pyc b/util/zotsh/easywebdav/__init__.pyc index b609b06c1..4f30c1871 100644 Binary files a/util/zotsh/easywebdav/__init__.pyc and b/util/zotsh/easywebdav/__init__.pyc differ diff --git a/util/zotsh/easywebdav/__version__.pyc b/util/zotsh/easywebdav/__version__.pyc index 5da5a28ec..b19bf50b0 100644 Binary files a/util/zotsh/easywebdav/__version__.pyc and b/util/zotsh/easywebdav/__version__.pyc differ diff --git a/util/zotsh/easywebdav/client.pyc b/util/zotsh/easywebdav/client.pyc index 4c42d2603..cf074d522 100644 Binary files a/util/zotsh/easywebdav/client.pyc and b/util/zotsh/easywebdav/client.pyc differ diff --git a/vendor/autoload.php b/vendor/autoload.php index f9e0189d7..063a1b7e1 100644 --- a/vendor/autoload.php +++ b/vendor/autoload.php @@ -4,4 +4,4 @@ require_once __DIR__ . '/composer' . '/autoload_real.php'; -return ComposerAutoloaderInit02c7a5bb99a87a4c8dbf069d69b1a15c::getLoader(); +return ComposerAutoloaderInit7b34d7e50a62201ec5d5e526a5b8b35d::getLoader(); diff --git a/vendor/composer/ClassLoader.php b/vendor/composer/ClassLoader.php index ff6ecfb82..ac67d302a 100644 --- a/vendor/composer/ClassLoader.php +++ b/vendor/composer/ClassLoader.php @@ -53,8 +53,8 @@ class ClassLoader private $useIncludePath = false; private $classMap = array(); - private $classMapAuthoritative = false; + private $missingClasses = array(); public function getPrefixes() { @@ -322,20 +322,20 @@ class ClassLoader if (isset($this->classMap[$class])) { return $this->classMap[$class]; } - if ($this->classMapAuthoritative) { + if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) { return false; } $file = $this->findFileWithExtension($class, '.php'); // Search for Hack files if we are running on HHVM - if ($file === null && defined('HHVM_VERSION')) { + if (false === $file && defined('HHVM_VERSION')) { $file = $this->findFileWithExtension($class, '.hh'); } - if ($file === null) { + if (false === $file) { // Remember that this class does not exist. - return $this->classMap[$class] = false; + $this->missingClasses[$class] = true; } return $file; @@ -399,6 +399,8 @@ class ClassLoader if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) { return $file; } + + return false; } } diff --git a/vendor/composer/autoload_classmap.php b/vendor/composer/autoload_classmap.php index 7a91153b0..ad3291349 100644 --- a/vendor/composer/autoload_classmap.php +++ b/vendor/composer/autoload_classmap.php @@ -6,4 +6,609 @@ $vendorDir = dirname(dirname(__FILE__)); $baseDir = dirname($vendorDir); return array( + 'Hubzilla\\Import\\Import' => $baseDir . '/include/Import/Importer.php', + 'Psr\\Log\\AbstractLogger' => $vendorDir . '/psr/log/Psr/Log/AbstractLogger.php', + 'Psr\\Log\\InvalidArgumentException' => $vendorDir . '/psr/log/Psr/Log/InvalidArgumentException.php', + 'Psr\\Log\\LogLevel' => $vendorDir . '/psr/log/Psr/Log/LogLevel.php', + 'Psr\\Log\\LoggerAwareInterface' => $vendorDir . '/psr/log/Psr/Log/LoggerAwareInterface.php', + 'Psr\\Log\\LoggerAwareTrait' => $vendorDir . '/psr/log/Psr/Log/LoggerAwareTrait.php', + 'Psr\\Log\\LoggerInterface' => $vendorDir . '/psr/log/Psr/Log/LoggerInterface.php', + 'Psr\\Log\\LoggerTrait' => $vendorDir . '/psr/log/Psr/Log/LoggerTrait.php', + 'Psr\\Log\\NullLogger' => $vendorDir . '/psr/log/Psr/Log/NullLogger.php', + 'Sabre\\CalDAV\\Backend\\AbstractBackend' => $vendorDir . '/sabre/dav/lib/CalDAV/Backend/AbstractBackend.php', + 'Sabre\\CalDAV\\Backend\\BackendInterface' => $vendorDir . '/sabre/dav/lib/CalDAV/Backend/BackendInterface.php', + 'Sabre\\CalDAV\\Backend\\NotificationSupport' => $vendorDir . '/sabre/dav/lib/CalDAV/Backend/NotificationSupport.php', + 'Sabre\\CalDAV\\Backend\\PDO' => $vendorDir . '/sabre/dav/lib/CalDAV/Backend/PDO.php', + 'Sabre\\CalDAV\\Backend\\SchedulingSupport' => $vendorDir . '/sabre/dav/lib/CalDAV/Backend/SchedulingSupport.php', + 'Sabre\\CalDAV\\Backend\\SharingSupport' => $vendorDir . '/sabre/dav/lib/CalDAV/Backend/SharingSupport.php', + 'Sabre\\CalDAV\\Backend\\SimplePDO' => $vendorDir . '/sabre/dav/lib/CalDAV/Backend/SimplePDO.php', + 'Sabre\\CalDAV\\Backend\\SubscriptionSupport' => $vendorDir . '/sabre/dav/lib/CalDAV/Backend/SubscriptionSupport.php', + 'Sabre\\CalDAV\\Backend\\SyncSupport' => $vendorDir . '/sabre/dav/lib/CalDAV/Backend/SyncSupport.php', + 'Sabre\\CalDAV\\Calendar' => $vendorDir . '/sabre/dav/lib/CalDAV/Calendar.php', + 'Sabre\\CalDAV\\CalendarHome' => $vendorDir . '/sabre/dav/lib/CalDAV/CalendarHome.php', + 'Sabre\\CalDAV\\CalendarObject' => $vendorDir . '/sabre/dav/lib/CalDAV/CalendarObject.php', + 'Sabre\\CalDAV\\CalendarQueryValidator' => $vendorDir . '/sabre/dav/lib/CalDAV/CalendarQueryValidator.php', + 'Sabre\\CalDAV\\CalendarRoot' => $vendorDir . '/sabre/dav/lib/CalDAV/CalendarRoot.php', + 'Sabre\\CalDAV\\Exception\\InvalidComponentType' => $vendorDir . '/sabre/dav/lib/CalDAV/Exception/InvalidComponentType.php', + 'Sabre\\CalDAV\\ICSExportPlugin' => $vendorDir . '/sabre/dav/lib/CalDAV/ICSExportPlugin.php', + 'Sabre\\CalDAV\\ICalendar' => $vendorDir . '/sabre/dav/lib/CalDAV/ICalendar.php', + 'Sabre\\CalDAV\\ICalendarObject' => $vendorDir . '/sabre/dav/lib/CalDAV/ICalendarObject.php', + 'Sabre\\CalDAV\\ICalendarObjectContainer' => $vendorDir . '/sabre/dav/lib/CalDAV/ICalendarObjectContainer.php', + 'Sabre\\CalDAV\\ISharedCalendar' => $vendorDir . '/sabre/dav/lib/CalDAV/ISharedCalendar.php', + 'Sabre\\CalDAV\\Notifications\\Collection' => $vendorDir . '/sabre/dav/lib/CalDAV/Notifications/Collection.php', + 'Sabre\\CalDAV\\Notifications\\ICollection' => $vendorDir . '/sabre/dav/lib/CalDAV/Notifications/ICollection.php', + 'Sabre\\CalDAV\\Notifications\\INode' => $vendorDir . '/sabre/dav/lib/CalDAV/Notifications/INode.php', + 'Sabre\\CalDAV\\Notifications\\Node' => $vendorDir . '/sabre/dav/lib/CalDAV/Notifications/Node.php', + 'Sabre\\CalDAV\\Notifications\\Plugin' => $vendorDir . '/sabre/dav/lib/CalDAV/Notifications/Plugin.php', + 'Sabre\\CalDAV\\Plugin' => $vendorDir . '/sabre/dav/lib/CalDAV/Plugin.php', + 'Sabre\\CalDAV\\Principal\\Collection' => $vendorDir . '/sabre/dav/lib/CalDAV/Principal/Collection.php', + 'Sabre\\CalDAV\\Principal\\IProxyRead' => $vendorDir . '/sabre/dav/lib/CalDAV/Principal/IProxyRead.php', + 'Sabre\\CalDAV\\Principal\\IProxyWrite' => $vendorDir . '/sabre/dav/lib/CalDAV/Principal/IProxyWrite.php', + 'Sabre\\CalDAV\\Principal\\ProxyRead' => $vendorDir . '/sabre/dav/lib/CalDAV/Principal/ProxyRead.php', + 'Sabre\\CalDAV\\Principal\\ProxyWrite' => $vendorDir . '/sabre/dav/lib/CalDAV/Principal/ProxyWrite.php', + 'Sabre\\CalDAV\\Principal\\User' => $vendorDir . '/sabre/dav/lib/CalDAV/Principal/User.php', + 'Sabre\\CalDAV\\Schedule\\IInbox' => $vendorDir . '/sabre/dav/lib/CalDAV/Schedule/IInbox.php', + 'Sabre\\CalDAV\\Schedule\\IMipPlugin' => $vendorDir . '/sabre/dav/lib/CalDAV/Schedule/IMipPlugin.php', + 'Sabre\\CalDAV\\Schedule\\IOutbox' => $vendorDir . '/sabre/dav/lib/CalDAV/Schedule/IOutbox.php', + 'Sabre\\CalDAV\\Schedule\\ISchedulingObject' => $vendorDir . '/sabre/dav/lib/CalDAV/Schedule/ISchedulingObject.php', + 'Sabre\\CalDAV\\Schedule\\Inbox' => $vendorDir . '/sabre/dav/lib/CalDAV/Schedule/Inbox.php', + 'Sabre\\CalDAV\\Schedule\\Outbox' => $vendorDir . '/sabre/dav/lib/CalDAV/Schedule/Outbox.php', + 'Sabre\\CalDAV\\Schedule\\Plugin' => $vendorDir . '/sabre/dav/lib/CalDAV/Schedule/Plugin.php', + 'Sabre\\CalDAV\\Schedule\\SchedulingObject' => $vendorDir . '/sabre/dav/lib/CalDAV/Schedule/SchedulingObject.php', + 'Sabre\\CalDAV\\SharedCalendar' => $vendorDir . '/sabre/dav/lib/CalDAV/SharedCalendar.php', + 'Sabre\\CalDAV\\SharingPlugin' => $vendorDir . '/sabre/dav/lib/CalDAV/SharingPlugin.php', + 'Sabre\\CalDAV\\Subscriptions\\ISubscription' => $vendorDir . '/sabre/dav/lib/CalDAV/Subscriptions/ISubscription.php', + 'Sabre\\CalDAV\\Subscriptions\\Plugin' => $vendorDir . '/sabre/dav/lib/CalDAV/Subscriptions/Plugin.php', + 'Sabre\\CalDAV\\Subscriptions\\Subscription' => $vendorDir . '/sabre/dav/lib/CalDAV/Subscriptions/Subscription.php', + 'Sabre\\CalDAV\\Xml\\Filter\\CalendarData' => $vendorDir . '/sabre/dav/lib/CalDAV/Xml/Filter/CalendarData.php', + 'Sabre\\CalDAV\\Xml\\Filter\\CompFilter' => $vendorDir . '/sabre/dav/lib/CalDAV/Xml/Filter/CompFilter.php', + 'Sabre\\CalDAV\\Xml\\Filter\\ParamFilter' => $vendorDir . '/sabre/dav/lib/CalDAV/Xml/Filter/ParamFilter.php', + 'Sabre\\CalDAV\\Xml\\Filter\\PropFilter' => $vendorDir . '/sabre/dav/lib/CalDAV/Xml/Filter/PropFilter.php', + 'Sabre\\CalDAV\\Xml\\Notification\\Invite' => $vendorDir . '/sabre/dav/lib/CalDAV/Xml/Notification/Invite.php', + 'Sabre\\CalDAV\\Xml\\Notification\\InviteReply' => $vendorDir . '/sabre/dav/lib/CalDAV/Xml/Notification/InviteReply.php', + 'Sabre\\CalDAV\\Xml\\Notification\\NotificationInterface' => $vendorDir . '/sabre/dav/lib/CalDAV/Xml/Notification/NotificationInterface.php', + 'Sabre\\CalDAV\\Xml\\Notification\\SystemStatus' => $vendorDir . '/sabre/dav/lib/CalDAV/Xml/Notification/SystemStatus.php', + 'Sabre\\CalDAV\\Xml\\Property\\AllowedSharingModes' => $vendorDir . '/sabre/dav/lib/CalDAV/Xml/Property/AllowedSharingModes.php', + 'Sabre\\CalDAV\\Xml\\Property\\EmailAddressSet' => $vendorDir . '/sabre/dav/lib/CalDAV/Xml/Property/EmailAddressSet.php', + 'Sabre\\CalDAV\\Xml\\Property\\Invite' => $vendorDir . '/sabre/dav/lib/CalDAV/Xml/Property/Invite.php', + 'Sabre\\CalDAV\\Xml\\Property\\ScheduleCalendarTransp' => $vendorDir . '/sabre/dav/lib/CalDAV/Xml/Property/ScheduleCalendarTransp.php', + 'Sabre\\CalDAV\\Xml\\Property\\SupportedCalendarComponentSet' => $vendorDir . '/sabre/dav/lib/CalDAV/Xml/Property/SupportedCalendarComponentSet.php', + 'Sabre\\CalDAV\\Xml\\Property\\SupportedCalendarData' => $vendorDir . '/sabre/dav/lib/CalDAV/Xml/Property/SupportedCalendarData.php', + 'Sabre\\CalDAV\\Xml\\Property\\SupportedCollationSet' => $vendorDir . '/sabre/dav/lib/CalDAV/Xml/Property/SupportedCollationSet.php', + 'Sabre\\CalDAV\\Xml\\Request\\CalendarMultiGetReport' => $vendorDir . '/sabre/dav/lib/CalDAV/Xml/Request/CalendarMultiGetReport.php', + 'Sabre\\CalDAV\\Xml\\Request\\CalendarQueryReport' => $vendorDir . '/sabre/dav/lib/CalDAV/Xml/Request/CalendarQueryReport.php', + 'Sabre\\CalDAV\\Xml\\Request\\FreeBusyQueryReport' => $vendorDir . '/sabre/dav/lib/CalDAV/Xml/Request/FreeBusyQueryReport.php', + 'Sabre\\CalDAV\\Xml\\Request\\InviteReply' => $vendorDir . '/sabre/dav/lib/CalDAV/Xml/Request/InviteReply.php', + 'Sabre\\CalDAV\\Xml\\Request\\MkCalendar' => $vendorDir . '/sabre/dav/lib/CalDAV/Xml/Request/MkCalendar.php', + 'Sabre\\CalDAV\\Xml\\Request\\Share' => $vendorDir . '/sabre/dav/lib/CalDAV/Xml/Request/Share.php', + 'Sabre\\CardDAV\\AddressBook' => $vendorDir . '/sabre/dav/lib/CardDAV/AddressBook.php', + 'Sabre\\CardDAV\\AddressBookHome' => $vendorDir . '/sabre/dav/lib/CardDAV/AddressBookHome.php', + 'Sabre\\CardDAV\\AddressBookRoot' => $vendorDir . '/sabre/dav/lib/CardDAV/AddressBookRoot.php', + 'Sabre\\CardDAV\\Backend\\AbstractBackend' => $vendorDir . '/sabre/dav/lib/CardDAV/Backend/AbstractBackend.php', + 'Sabre\\CardDAV\\Backend\\BackendInterface' => $vendorDir . '/sabre/dav/lib/CardDAV/Backend/BackendInterface.php', + 'Sabre\\CardDAV\\Backend\\PDO' => $vendorDir . '/sabre/dav/lib/CardDAV/Backend/PDO.php', + 'Sabre\\CardDAV\\Backend\\SyncSupport' => $vendorDir . '/sabre/dav/lib/CardDAV/Backend/SyncSupport.php', + 'Sabre\\CardDAV\\Card' => $vendorDir . '/sabre/dav/lib/CardDAV/Card.php', + 'Sabre\\CardDAV\\IAddressBook' => $vendorDir . '/sabre/dav/lib/CardDAV/IAddressBook.php', + 'Sabre\\CardDAV\\ICard' => $vendorDir . '/sabre/dav/lib/CardDAV/ICard.php', + 'Sabre\\CardDAV\\IDirectory' => $vendorDir . '/sabre/dav/lib/CardDAV/IDirectory.php', + 'Sabre\\CardDAV\\Plugin' => $vendorDir . '/sabre/dav/lib/CardDAV/Plugin.php', + 'Sabre\\CardDAV\\VCFExportPlugin' => $vendorDir . '/sabre/dav/lib/CardDAV/VCFExportPlugin.php', + 'Sabre\\CardDAV\\Xml\\Filter\\AddressData' => $vendorDir . '/sabre/dav/lib/CardDAV/Xml/Filter/AddressData.php', + 'Sabre\\CardDAV\\Xml\\Filter\\ParamFilter' => $vendorDir . '/sabre/dav/lib/CardDAV/Xml/Filter/ParamFilter.php', + 'Sabre\\CardDAV\\Xml\\Filter\\PropFilter' => $vendorDir . '/sabre/dav/lib/CardDAV/Xml/Filter/PropFilter.php', + 'Sabre\\CardDAV\\Xml\\Property\\SupportedAddressData' => $vendorDir . '/sabre/dav/lib/CardDAV/Xml/Property/SupportedAddressData.php', + 'Sabre\\CardDAV\\Xml\\Property\\SupportedCollationSet' => $vendorDir . '/sabre/dav/lib/CardDAV/Xml/Property/SupportedCollationSet.php', + 'Sabre\\CardDAV\\Xml\\Request\\AddressBookMultiGetReport' => $vendorDir . '/sabre/dav/lib/CardDAV/Xml/Request/AddressBookMultiGetReport.php', + 'Sabre\\CardDAV\\Xml\\Request\\AddressBookQueryReport' => $vendorDir . '/sabre/dav/lib/CardDAV/Xml/Request/AddressBookQueryReport.php', + 'Sabre\\DAVACL\\ACLTrait' => $vendorDir . '/sabre/dav/lib/DAVACL/ACLTrait.php', + 'Sabre\\DAVACL\\AbstractPrincipalCollection' => $vendorDir . '/sabre/dav/lib/DAVACL/AbstractPrincipalCollection.php', + 'Sabre\\DAVACL\\Exception\\AceConflict' => $vendorDir . '/sabre/dav/lib/DAVACL/Exception/AceConflict.php', + 'Sabre\\DAVACL\\Exception\\NeedPrivileges' => $vendorDir . '/sabre/dav/lib/DAVACL/Exception/NeedPrivileges.php', + 'Sabre\\DAVACL\\Exception\\NoAbstract' => $vendorDir . '/sabre/dav/lib/DAVACL/Exception/NoAbstract.php', + 'Sabre\\DAVACL\\Exception\\NotRecognizedPrincipal' => $vendorDir . '/sabre/dav/lib/DAVACL/Exception/NotRecognizedPrincipal.php', + 'Sabre\\DAVACL\\Exception\\NotSupportedPrivilege' => $vendorDir . '/sabre/dav/lib/DAVACL/Exception/NotSupportedPrivilege.php', + 'Sabre\\DAVACL\\FS\\Collection' => $vendorDir . '/sabre/dav/lib/DAVACL/FS/Collection.php', + 'Sabre\\DAVACL\\FS\\File' => $vendorDir . '/sabre/dav/lib/DAVACL/FS/File.php', + 'Sabre\\DAVACL\\FS\\HomeCollection' => $vendorDir . '/sabre/dav/lib/DAVACL/FS/HomeCollection.php', + 'Sabre\\DAVACL\\IACL' => $vendorDir . '/sabre/dav/lib/DAVACL/IACL.php', + 'Sabre\\DAVACL\\IPrincipal' => $vendorDir . '/sabre/dav/lib/DAVACL/IPrincipal.php', + 'Sabre\\DAVACL\\IPrincipalCollection' => $vendorDir . '/sabre/dav/lib/DAVACL/IPrincipalCollection.php', + 'Sabre\\DAVACL\\Plugin' => $vendorDir . '/sabre/dav/lib/DAVACL/Plugin.php', + 'Sabre\\DAVACL\\Principal' => $vendorDir . '/sabre/dav/lib/DAVACL/Principal.php', + 'Sabre\\DAVACL\\PrincipalBackend\\AbstractBackend' => $vendorDir . '/sabre/dav/lib/DAVACL/PrincipalBackend/AbstractBackend.php', + 'Sabre\\DAVACL\\PrincipalBackend\\BackendInterface' => $vendorDir . '/sabre/dav/lib/DAVACL/PrincipalBackend/BackendInterface.php', + 'Sabre\\DAVACL\\PrincipalBackend\\CreatePrincipalSupport' => $vendorDir . '/sabre/dav/lib/DAVACL/PrincipalBackend/CreatePrincipalSupport.php', + 'Sabre\\DAVACL\\PrincipalBackend\\PDO' => $vendorDir . '/sabre/dav/lib/DAVACL/PrincipalBackend/PDO.php', + 'Sabre\\DAVACL\\PrincipalCollection' => $vendorDir . '/sabre/dav/lib/DAVACL/PrincipalCollection.php', + 'Sabre\\DAVACL\\Xml\\Property\\Acl' => $vendorDir . '/sabre/dav/lib/DAVACL/Xml/Property/Acl.php', + 'Sabre\\DAVACL\\Xml\\Property\\AclRestrictions' => $vendorDir . '/sabre/dav/lib/DAVACL/Xml/Property/AclRestrictions.php', + 'Sabre\\DAVACL\\Xml\\Property\\CurrentUserPrivilegeSet' => $vendorDir . '/sabre/dav/lib/DAVACL/Xml/Property/CurrentUserPrivilegeSet.php', + 'Sabre\\DAVACL\\Xml\\Property\\Principal' => $vendorDir . '/sabre/dav/lib/DAVACL/Xml/Property/Principal.php', + 'Sabre\\DAVACL\\Xml\\Property\\SupportedPrivilegeSet' => $vendorDir . '/sabre/dav/lib/DAVACL/Xml/Property/SupportedPrivilegeSet.php', + 'Sabre\\DAVACL\\Xml\\Request\\AclPrincipalPropSetReport' => $vendorDir . '/sabre/dav/lib/DAVACL/Xml/Request/AclPrincipalPropSetReport.php', + 'Sabre\\DAVACL\\Xml\\Request\\ExpandPropertyReport' => $vendorDir . '/sabre/dav/lib/DAVACL/Xml/Request/ExpandPropertyReport.php', + 'Sabre\\DAVACL\\Xml\\Request\\PrincipalMatchReport' => $vendorDir . '/sabre/dav/lib/DAVACL/Xml/Request/PrincipalMatchReport.php', + 'Sabre\\DAVACL\\Xml\\Request\\PrincipalPropertySearchReport' => $vendorDir . '/sabre/dav/lib/DAVACL/Xml/Request/PrincipalPropertySearchReport.php', + 'Sabre\\DAVACL\\Xml\\Request\\PrincipalSearchPropertySetReport' => $vendorDir . '/sabre/dav/lib/DAVACL/Xml/Request/PrincipalSearchPropertySetReport.php', + 'Sabre\\DAV\\Auth\\Backend\\AbstractBasic' => $vendorDir . '/sabre/dav/lib/DAV/Auth/Backend/AbstractBasic.php', + 'Sabre\\DAV\\Auth\\Backend\\AbstractBearer' => $vendorDir . '/sabre/dav/lib/DAV/Auth/Backend/AbstractBearer.php', + 'Sabre\\DAV\\Auth\\Backend\\AbstractDigest' => $vendorDir . '/sabre/dav/lib/DAV/Auth/Backend/AbstractDigest.php', + 'Sabre\\DAV\\Auth\\Backend\\Apache' => $vendorDir . '/sabre/dav/lib/DAV/Auth/Backend/Apache.php', + 'Sabre\\DAV\\Auth\\Backend\\BackendInterface' => $vendorDir . '/sabre/dav/lib/DAV/Auth/Backend/BackendInterface.php', + 'Sabre\\DAV\\Auth\\Backend\\BasicCallBack' => $vendorDir . '/sabre/dav/lib/DAV/Auth/Backend/BasicCallBack.php', + 'Sabre\\DAV\\Auth\\Backend\\File' => $vendorDir . '/sabre/dav/lib/DAV/Auth/Backend/File.php', + 'Sabre\\DAV\\Auth\\Backend\\PDO' => $vendorDir . '/sabre/dav/lib/DAV/Auth/Backend/PDO.php', + 'Sabre\\DAV\\Auth\\Plugin' => $vendorDir . '/sabre/dav/lib/DAV/Auth/Plugin.php', + 'Sabre\\DAV\\Browser\\GuessContentType' => $vendorDir . '/sabre/dav/lib/DAV/Browser/GuessContentType.php', + 'Sabre\\DAV\\Browser\\HtmlOutput' => $vendorDir . '/sabre/dav/lib/DAV/Browser/HtmlOutput.php', + 'Sabre\\DAV\\Browser\\HtmlOutputHelper' => $vendorDir . '/sabre/dav/lib/DAV/Browser/HtmlOutputHelper.php', + 'Sabre\\DAV\\Browser\\MapGetToPropFind' => $vendorDir . '/sabre/dav/lib/DAV/Browser/MapGetToPropFind.php', + 'Sabre\\DAV\\Browser\\Plugin' => $vendorDir . '/sabre/dav/lib/DAV/Browser/Plugin.php', + 'Sabre\\DAV\\Browser\\PropFindAll' => $vendorDir . '/sabre/dav/lib/DAV/Browser/PropFindAll.php', + 'Sabre\\DAV\\Client' => $vendorDir . '/sabre/dav/lib/DAV/Client.php', + 'Sabre\\DAV\\Collection' => $vendorDir . '/sabre/dav/lib/DAV/Collection.php', + 'Sabre\\DAV\\CorePlugin' => $vendorDir . '/sabre/dav/lib/DAV/CorePlugin.php', + 'Sabre\\DAV\\Exception' => $vendorDir . '/sabre/dav/lib/DAV/Exception.php', + 'Sabre\\DAV\\Exception\\BadRequest' => $vendorDir . '/sabre/dav/lib/DAV/Exception/BadRequest.php', + 'Sabre\\DAV\\Exception\\Conflict' => $vendorDir . '/sabre/dav/lib/DAV/Exception/Conflict.php', + 'Sabre\\DAV\\Exception\\ConflictingLock' => $vendorDir . '/sabre/dav/lib/DAV/Exception/ConflictingLock.php', + 'Sabre\\DAV\\Exception\\Forbidden' => $vendorDir . '/sabre/dav/lib/DAV/Exception/Forbidden.php', + 'Sabre\\DAV\\Exception\\InsufficientStorage' => $vendorDir . '/sabre/dav/lib/DAV/Exception/InsufficientStorage.php', + 'Sabre\\DAV\\Exception\\InvalidResourceType' => $vendorDir . '/sabre/dav/lib/DAV/Exception/InvalidResourceType.php', + 'Sabre\\DAV\\Exception\\InvalidSyncToken' => $vendorDir . '/sabre/dav/lib/DAV/Exception/InvalidSyncToken.php', + 'Sabre\\DAV\\Exception\\LengthRequired' => $vendorDir . '/sabre/dav/lib/DAV/Exception/LengthRequired.php', + 'Sabre\\DAV\\Exception\\LockTokenMatchesRequestUri' => $vendorDir . '/sabre/dav/lib/DAV/Exception/LockTokenMatchesRequestUri.php', + 'Sabre\\DAV\\Exception\\Locked' => $vendorDir . '/sabre/dav/lib/DAV/Exception/Locked.php', + 'Sabre\\DAV\\Exception\\MethodNotAllowed' => $vendorDir . '/sabre/dav/lib/DAV/Exception/MethodNotAllowed.php', + 'Sabre\\DAV\\Exception\\NotAuthenticated' => $vendorDir . '/sabre/dav/lib/DAV/Exception/NotAuthenticated.php', + 'Sabre\\DAV\\Exception\\NotFound' => $vendorDir . '/sabre/dav/lib/DAV/Exception/NotFound.php', + 'Sabre\\DAV\\Exception\\NotImplemented' => $vendorDir . '/sabre/dav/lib/DAV/Exception/NotImplemented.php', + 'Sabre\\DAV\\Exception\\PaymentRequired' => $vendorDir . '/sabre/dav/lib/DAV/Exception/PaymentRequired.php', + 'Sabre\\DAV\\Exception\\PreconditionFailed' => $vendorDir . '/sabre/dav/lib/DAV/Exception/PreconditionFailed.php', + 'Sabre\\DAV\\Exception\\ReportNotSupported' => $vendorDir . '/sabre/dav/lib/DAV/Exception/ReportNotSupported.php', + 'Sabre\\DAV\\Exception\\RequestedRangeNotSatisfiable' => $vendorDir . '/sabre/dav/lib/DAV/Exception/RequestedRangeNotSatisfiable.php', + 'Sabre\\DAV\\Exception\\ServiceUnavailable' => $vendorDir . '/sabre/dav/lib/DAV/Exception/ServiceUnavailable.php', + 'Sabre\\DAV\\Exception\\TooManyMatches' => $vendorDir . '/sabre/dav/lib/DAV/Exception/TooManyMatches.php', + 'Sabre\\DAV\\Exception\\UnsupportedMediaType' => $vendorDir . '/sabre/dav/lib/DAV/Exception/UnsupportedMediaType.php', + 'Sabre\\DAV\\FSExt\\Directory' => $vendorDir . '/sabre/dav/lib/DAV/FSExt/Directory.php', + 'Sabre\\DAV\\FSExt\\File' => $vendorDir . '/sabre/dav/lib/DAV/FSExt/File.php', + 'Sabre\\DAV\\FS\\Directory' => $vendorDir . '/sabre/dav/lib/DAV/FS/Directory.php', + 'Sabre\\DAV\\FS\\File' => $vendorDir . '/sabre/dav/lib/DAV/FS/File.php', + 'Sabre\\DAV\\FS\\Node' => $vendorDir . '/sabre/dav/lib/DAV/FS/Node.php', + 'Sabre\\DAV\\File' => $vendorDir . '/sabre/dav/lib/DAV/File.php', + 'Sabre\\DAV\\ICollection' => $vendorDir . '/sabre/dav/lib/DAV/ICollection.php', + 'Sabre\\DAV\\IExtendedCollection' => $vendorDir . '/sabre/dav/lib/DAV/IExtendedCollection.php', + 'Sabre\\DAV\\IFile' => $vendorDir . '/sabre/dav/lib/DAV/IFile.php', + 'Sabre\\DAV\\IMoveTarget' => $vendorDir . '/sabre/dav/lib/DAV/IMoveTarget.php', + 'Sabre\\DAV\\IMultiGet' => $vendorDir . '/sabre/dav/lib/DAV/IMultiGet.php', + 'Sabre\\DAV\\INode' => $vendorDir . '/sabre/dav/lib/DAV/INode.php', + 'Sabre\\DAV\\IProperties' => $vendorDir . '/sabre/dav/lib/DAV/IProperties.php', + 'Sabre\\DAV\\IQuota' => $vendorDir . '/sabre/dav/lib/DAV/IQuota.php', + 'Sabre\\DAV\\Locks\\Backend\\AbstractBackend' => $vendorDir . '/sabre/dav/lib/DAV/Locks/Backend/AbstractBackend.php', + 'Sabre\\DAV\\Locks\\Backend\\BackendInterface' => $vendorDir . '/sabre/dav/lib/DAV/Locks/Backend/BackendInterface.php', + 'Sabre\\DAV\\Locks\\Backend\\File' => $vendorDir . '/sabre/dav/lib/DAV/Locks/Backend/File.php', + 'Sabre\\DAV\\Locks\\Backend\\PDO' => $vendorDir . '/sabre/dav/lib/DAV/Locks/Backend/PDO.php', + 'Sabre\\DAV\\Locks\\LockInfo' => $vendorDir . '/sabre/dav/lib/DAV/Locks/LockInfo.php', + 'Sabre\\DAV\\Locks\\Plugin' => $vendorDir . '/sabre/dav/lib/DAV/Locks/Plugin.php', + 'Sabre\\DAV\\MkCol' => $vendorDir . '/sabre/dav/lib/DAV/MkCol.php', + 'Sabre\\DAV\\Mount\\Plugin' => $vendorDir . '/sabre/dav/lib/DAV/Mount/Plugin.php', + 'Sabre\\DAV\\Node' => $vendorDir . '/sabre/dav/lib/DAV/Node.php', + 'Sabre\\DAV\\PartialUpdate\\IPatchSupport' => $vendorDir . '/sabre/dav/lib/DAV/PartialUpdate/IPatchSupport.php', + 'Sabre\\DAV\\PartialUpdate\\Plugin' => $vendorDir . '/sabre/dav/lib/DAV/PartialUpdate/Plugin.php', + 'Sabre\\DAV\\PropFind' => $vendorDir . '/sabre/dav/lib/DAV/PropFind.php', + 'Sabre\\DAV\\PropPatch' => $vendorDir . '/sabre/dav/lib/DAV/PropPatch.php', + 'Sabre\\DAV\\PropertyStorage\\Backend\\BackendInterface' => $vendorDir . '/sabre/dav/lib/DAV/PropertyStorage/Backend/BackendInterface.php', + 'Sabre\\DAV\\PropertyStorage\\Backend\\PDO' => $vendorDir . '/sabre/dav/lib/DAV/PropertyStorage/Backend/PDO.php', + 'Sabre\\DAV\\PropertyStorage\\Plugin' => $vendorDir . '/sabre/dav/lib/DAV/PropertyStorage/Plugin.php', + 'Sabre\\DAV\\Server' => $vendorDir . '/sabre/dav/lib/DAV/Server.php', + 'Sabre\\DAV\\ServerPlugin' => $vendorDir . '/sabre/dav/lib/DAV/ServerPlugin.php', + 'Sabre\\DAV\\Sharing\\ISharedNode' => $vendorDir . '/sabre/dav/lib/DAV/Sharing/ISharedNode.php', + 'Sabre\\DAV\\Sharing\\Plugin' => $vendorDir . '/sabre/dav/lib/DAV/Sharing/Plugin.php', + 'Sabre\\DAV\\SimpleCollection' => $vendorDir . '/sabre/dav/lib/DAV/SimpleCollection.php', + 'Sabre\\DAV\\SimpleFile' => $vendorDir . '/sabre/dav/lib/DAV/SimpleFile.php', + 'Sabre\\DAV\\StringUtil' => $vendorDir . '/sabre/dav/lib/DAV/StringUtil.php', + 'Sabre\\DAV\\Sync\\ISyncCollection' => $vendorDir . '/sabre/dav/lib/DAV/Sync/ISyncCollection.php', + 'Sabre\\DAV\\Sync\\Plugin' => $vendorDir . '/sabre/dav/lib/DAV/Sync/Plugin.php', + 'Sabre\\DAV\\TemporaryFileFilterPlugin' => $vendorDir . '/sabre/dav/lib/DAV/TemporaryFileFilterPlugin.php', + 'Sabre\\DAV\\Tree' => $vendorDir . '/sabre/dav/lib/DAV/Tree.php', + 'Sabre\\DAV\\UUIDUtil' => $vendorDir . '/sabre/dav/lib/DAV/UUIDUtil.php', + 'Sabre\\DAV\\Version' => $vendorDir . '/sabre/dav/lib/DAV/Version.php', + 'Sabre\\DAV\\Xml\\Element\\Prop' => $vendorDir . '/sabre/dav/lib/DAV/Xml/Element/Prop.php', + 'Sabre\\DAV\\Xml\\Element\\Response' => $vendorDir . '/sabre/dav/lib/DAV/Xml/Element/Response.php', + 'Sabre\\DAV\\Xml\\Element\\Sharee' => $vendorDir . '/sabre/dav/lib/DAV/Xml/Element/Sharee.php', + 'Sabre\\DAV\\Xml\\Property\\Complex' => $vendorDir . '/sabre/dav/lib/DAV/Xml/Property/Complex.php', + 'Sabre\\DAV\\Xml\\Property\\GetLastModified' => $vendorDir . '/sabre/dav/lib/DAV/Xml/Property/GetLastModified.php', + 'Sabre\\DAV\\Xml\\Property\\Href' => $vendorDir . '/sabre/dav/lib/DAV/Xml/Property/Href.php', + 'Sabre\\DAV\\Xml\\Property\\Invite' => $vendorDir . '/sabre/dav/lib/DAV/Xml/Property/Invite.php', + 'Sabre\\DAV\\Xml\\Property\\LocalHref' => $vendorDir . '/sabre/dav/lib/DAV/Xml/Property/LocalHref.php', + 'Sabre\\DAV\\Xml\\Property\\LockDiscovery' => $vendorDir . '/sabre/dav/lib/DAV/Xml/Property/LockDiscovery.php', + 'Sabre\\DAV\\Xml\\Property\\ResourceType' => $vendorDir . '/sabre/dav/lib/DAV/Xml/Property/ResourceType.php', + 'Sabre\\DAV\\Xml\\Property\\ShareAccess' => $vendorDir . '/sabre/dav/lib/DAV/Xml/Property/ShareAccess.php', + 'Sabre\\DAV\\Xml\\Property\\SupportedLock' => $vendorDir . '/sabre/dav/lib/DAV/Xml/Property/SupportedLock.php', + 'Sabre\\DAV\\Xml\\Property\\SupportedMethodSet' => $vendorDir . '/sabre/dav/lib/DAV/Xml/Property/SupportedMethodSet.php', + 'Sabre\\DAV\\Xml\\Property\\SupportedReportSet' => $vendorDir . '/sabre/dav/lib/DAV/Xml/Property/SupportedReportSet.php', + 'Sabre\\DAV\\Xml\\Request\\Lock' => $vendorDir . '/sabre/dav/lib/DAV/Xml/Request/Lock.php', + 'Sabre\\DAV\\Xml\\Request\\MkCol' => $vendorDir . '/sabre/dav/lib/DAV/Xml/Request/MkCol.php', + 'Sabre\\DAV\\Xml\\Request\\PropFind' => $vendorDir . '/sabre/dav/lib/DAV/Xml/Request/PropFind.php', + 'Sabre\\DAV\\Xml\\Request\\PropPatch' => $vendorDir . '/sabre/dav/lib/DAV/Xml/Request/PropPatch.php', + 'Sabre\\DAV\\Xml\\Request\\ShareResource' => $vendorDir . '/sabre/dav/lib/DAV/Xml/Request/ShareResource.php', + 'Sabre\\DAV\\Xml\\Request\\SyncCollectionReport' => $vendorDir . '/sabre/dav/lib/DAV/Xml/Request/SyncCollectionReport.php', + 'Sabre\\DAV\\Xml\\Response\\MultiStatus' => $vendorDir . '/sabre/dav/lib/DAV/Xml/Response/MultiStatus.php', + 'Sabre\\DAV\\Xml\\Service' => $vendorDir . '/sabre/dav/lib/DAV/Xml/Service.php', + 'Sabre\\Event\\EventEmitter' => $vendorDir . '/sabre/event/lib/EventEmitter.php', + 'Sabre\\Event\\EventEmitterInterface' => $vendorDir . '/sabre/event/lib/EventEmitterInterface.php', + 'Sabre\\Event\\EventEmitterTrait' => $vendorDir . '/sabre/event/lib/EventEmitterTrait.php', + 'Sabre\\Event\\Loop\\Loop' => $vendorDir . '/sabre/event/lib/Loop/Loop.php', + 'Sabre\\Event\\Promise' => $vendorDir . '/sabre/event/lib/Promise.php', + 'Sabre\\Event\\PromiseAlreadyResolvedException' => $vendorDir . '/sabre/event/lib/PromiseAlreadyResolvedException.php', + 'Sabre\\Event\\Version' => $vendorDir . '/sabre/event/lib/Version.php', + 'Sabre\\HTTP\\Auth\\AWS' => $vendorDir . '/sabre/http/lib/Auth/AWS.php', + 'Sabre\\HTTP\\Auth\\AbstractAuth' => $vendorDir . '/sabre/http/lib/Auth/AbstractAuth.php', + 'Sabre\\HTTP\\Auth\\Basic' => $vendorDir . '/sabre/http/lib/Auth/Basic.php', + 'Sabre\\HTTP\\Auth\\Bearer' => $vendorDir . '/sabre/http/lib/Auth/Bearer.php', + 'Sabre\\HTTP\\Auth\\Digest' => $vendorDir . '/sabre/http/lib/Auth/Digest.php', + 'Sabre\\HTTP\\Client' => $vendorDir . '/sabre/http/lib/Client.php', + 'Sabre\\HTTP\\ClientException' => $vendorDir . '/sabre/http/lib/ClientException.php', + 'Sabre\\HTTP\\ClientHttpException' => $vendorDir . '/sabre/http/lib/ClientHttpException.php', + 'Sabre\\HTTP\\HttpException' => $vendorDir . '/sabre/http/lib/HttpException.php', + 'Sabre\\HTTP\\Message' => $vendorDir . '/sabre/http/lib/Message.php', + 'Sabre\\HTTP\\MessageDecoratorTrait' => $vendorDir . '/sabre/http/lib/MessageDecoratorTrait.php', + 'Sabre\\HTTP\\MessageInterface' => $vendorDir . '/sabre/http/lib/MessageInterface.php', + 'Sabre\\HTTP\\Request' => $vendorDir . '/sabre/http/lib/Request.php', + 'Sabre\\HTTP\\RequestDecorator' => $vendorDir . '/sabre/http/lib/RequestDecorator.php', + 'Sabre\\HTTP\\RequestInterface' => $vendorDir . '/sabre/http/lib/RequestInterface.php', + 'Sabre\\HTTP\\Response' => $vendorDir . '/sabre/http/lib/Response.php', + 'Sabre\\HTTP\\ResponseDecorator' => $vendorDir . '/sabre/http/lib/ResponseDecorator.php', + 'Sabre\\HTTP\\ResponseInterface' => $vendorDir . '/sabre/http/lib/ResponseInterface.php', + 'Sabre\\HTTP\\Sapi' => $vendorDir . '/sabre/http/lib/Sapi.php', + 'Sabre\\HTTP\\URLUtil' => $vendorDir . '/sabre/http/lib/URLUtil.php', + 'Sabre\\HTTP\\Util' => $vendorDir . '/sabre/http/lib/Util.php', + 'Sabre\\HTTP\\Version' => $vendorDir . '/sabre/http/lib/Version.php', + 'Sabre\\Uri\\Version' => $vendorDir . '/sabre/uri/lib/Version.php', + 'Sabre\\VObject\\BirthdayCalendarGenerator' => $vendorDir . '/sabre/vobject/lib/BirthdayCalendarGenerator.php', + 'Sabre\\VObject\\Cli' => $vendorDir . '/sabre/vobject/lib/Cli.php', + 'Sabre\\VObject\\Component' => $vendorDir . '/sabre/vobject/lib/Component.php', + 'Sabre\\VObject\\Component\\Available' => $vendorDir . '/sabre/vobject/lib/Component/Available.php', + 'Sabre\\VObject\\Component\\VAlarm' => $vendorDir . '/sabre/vobject/lib/Component/VAlarm.php', + 'Sabre\\VObject\\Component\\VAvailability' => $vendorDir . '/sabre/vobject/lib/Component/VAvailability.php', + 'Sabre\\VObject\\Component\\VCalendar' => $vendorDir . '/sabre/vobject/lib/Component/VCalendar.php', + 'Sabre\\VObject\\Component\\VCard' => $vendorDir . '/sabre/vobject/lib/Component/VCard.php', + 'Sabre\\VObject\\Component\\VEvent' => $vendorDir . '/sabre/vobject/lib/Component/VEvent.php', + 'Sabre\\VObject\\Component\\VFreeBusy' => $vendorDir . '/sabre/vobject/lib/Component/VFreeBusy.php', + 'Sabre\\VObject\\Component\\VJournal' => $vendorDir . '/sabre/vobject/lib/Component/VJournal.php', + 'Sabre\\VObject\\Component\\VTimeZone' => $vendorDir . '/sabre/vobject/lib/Component/VTimeZone.php', + 'Sabre\\VObject\\Component\\VTodo' => $vendorDir . '/sabre/vobject/lib/Component/VTodo.php', + 'Sabre\\VObject\\DateTimeParser' => $vendorDir . '/sabre/vobject/lib/DateTimeParser.php', + 'Sabre\\VObject\\Document' => $vendorDir . '/sabre/vobject/lib/Document.php', + 'Sabre\\VObject\\ElementList' => $vendorDir . '/sabre/vobject/lib/ElementList.php', + 'Sabre\\VObject\\EofException' => $vendorDir . '/sabre/vobject/lib/EofException.php', + 'Sabre\\VObject\\FreeBusyData' => $vendorDir . '/sabre/vobject/lib/FreeBusyData.php', + 'Sabre\\VObject\\FreeBusyGenerator' => $vendorDir . '/sabre/vobject/lib/FreeBusyGenerator.php', + 'Sabre\\VObject\\ITip\\Broker' => $vendorDir . '/sabre/vobject/lib/ITip/Broker.php', + 'Sabre\\VObject\\ITip\\ITipException' => $vendorDir . '/sabre/vobject/lib/ITip/ITipException.php', + 'Sabre\\VObject\\ITip\\Message' => $vendorDir . '/sabre/vobject/lib/ITip/Message.php', + 'Sabre\\VObject\\ITip\\SameOrganizerForAllComponentsException' => $vendorDir . '/sabre/vobject/lib/ITip/SameOrganizerForAllComponentsException.php', + 'Sabre\\VObject\\InvalidDataException' => $vendorDir . '/sabre/vobject/lib/InvalidDataException.php', + 'Sabre\\VObject\\Node' => $vendorDir . '/sabre/vobject/lib/Node.php', + 'Sabre\\VObject\\PHPUnitAssertions' => $vendorDir . '/sabre/vobject/lib/PHPUnitAssertions.php', + 'Sabre\\VObject\\Parameter' => $vendorDir . '/sabre/vobject/lib/Parameter.php', + 'Sabre\\VObject\\ParseException' => $vendorDir . '/sabre/vobject/lib/ParseException.php', + 'Sabre\\VObject\\Parser\\Json' => $vendorDir . '/sabre/vobject/lib/Parser/Json.php', + 'Sabre\\VObject\\Parser\\MimeDir' => $vendorDir . '/sabre/vobject/lib/Parser/MimeDir.php', + 'Sabre\\VObject\\Parser\\Parser' => $vendorDir . '/sabre/vobject/lib/Parser/Parser.php', + 'Sabre\\VObject\\Parser\\XML' => $vendorDir . '/sabre/vobject/lib/Parser/XML.php', + 'Sabre\\VObject\\Parser\\XML\\Element\\KeyValue' => $vendorDir . '/sabre/vobject/lib/Parser/XML/Element/KeyValue.php', + 'Sabre\\VObject\\Property' => $vendorDir . '/sabre/vobject/lib/Property.php', + 'Sabre\\VObject\\Property\\Binary' => $vendorDir . '/sabre/vobject/lib/Property/Binary.php', + 'Sabre\\VObject\\Property\\Boolean' => $vendorDir . '/sabre/vobject/lib/Property/Boolean.php', + 'Sabre\\VObject\\Property\\FlatText' => $vendorDir . '/sabre/vobject/lib/Property/FlatText.php', + 'Sabre\\VObject\\Property\\FloatValue' => $vendorDir . '/sabre/vobject/lib/Property/FloatValue.php', + 'Sabre\\VObject\\Property\\ICalendar\\CalAddress' => $vendorDir . '/sabre/vobject/lib/Property/ICalendar/CalAddress.php', + 'Sabre\\VObject\\Property\\ICalendar\\Date' => $vendorDir . '/sabre/vobject/lib/Property/ICalendar/Date.php', + 'Sabre\\VObject\\Property\\ICalendar\\DateTime' => $vendorDir . '/sabre/vobject/lib/Property/ICalendar/DateTime.php', + 'Sabre\\VObject\\Property\\ICalendar\\Duration' => $vendorDir . '/sabre/vobject/lib/Property/ICalendar/Duration.php', + 'Sabre\\VObject\\Property\\ICalendar\\Period' => $vendorDir . '/sabre/vobject/lib/Property/ICalendar/Period.php', + 'Sabre\\VObject\\Property\\ICalendar\\Recur' => $vendorDir . '/sabre/vobject/lib/Property/ICalendar/Recur.php', + 'Sabre\\VObject\\Property\\IntegerValue' => $vendorDir . '/sabre/vobject/lib/Property/IntegerValue.php', + 'Sabre\\VObject\\Property\\Text' => $vendorDir . '/sabre/vobject/lib/Property/Text.php', + 'Sabre\\VObject\\Property\\Time' => $vendorDir . '/sabre/vobject/lib/Property/Time.php', + 'Sabre\\VObject\\Property\\Unknown' => $vendorDir . '/sabre/vobject/lib/Property/Unknown.php', + 'Sabre\\VObject\\Property\\Uri' => $vendorDir . '/sabre/vobject/lib/Property/Uri.php', + 'Sabre\\VObject\\Property\\UtcOffset' => $vendorDir . '/sabre/vobject/lib/Property/UtcOffset.php', + 'Sabre\\VObject\\Property\\VCard\\Date' => $vendorDir . '/sabre/vobject/lib/Property/VCard/Date.php', + 'Sabre\\VObject\\Property\\VCard\\DateAndOrTime' => $vendorDir . '/sabre/vobject/lib/Property/VCard/DateAndOrTime.php', + 'Sabre\\VObject\\Property\\VCard\\DateTime' => $vendorDir . '/sabre/vobject/lib/Property/VCard/DateTime.php', + 'Sabre\\VObject\\Property\\VCard\\LanguageTag' => $vendorDir . '/sabre/vobject/lib/Property/VCard/LanguageTag.php', + 'Sabre\\VObject\\Property\\VCard\\TimeStamp' => $vendorDir . '/sabre/vobject/lib/Property/VCard/TimeStamp.php', + 'Sabre\\VObject\\Reader' => $vendorDir . '/sabre/vobject/lib/Reader.php', + 'Sabre\\VObject\\Recur\\EventIterator' => $vendorDir . '/sabre/vobject/lib/Recur/EventIterator.php', + 'Sabre\\VObject\\Recur\\MaxInstancesExceededException' => $vendorDir . '/sabre/vobject/lib/Recur/MaxInstancesExceededException.php', + 'Sabre\\VObject\\Recur\\NoInstancesException' => $vendorDir . '/sabre/vobject/lib/Recur/NoInstancesException.php', + 'Sabre\\VObject\\Recur\\RDateIterator' => $vendorDir . '/sabre/vobject/lib/Recur/RDateIterator.php', + 'Sabre\\VObject\\Recur\\RRuleIterator' => $vendorDir . '/sabre/vobject/lib/Recur/RRuleIterator.php', + 'Sabre\\VObject\\Settings' => $vendorDir . '/sabre/vobject/lib/Settings.php', + 'Sabre\\VObject\\Splitter\\ICalendar' => $vendorDir . '/sabre/vobject/lib/Splitter/ICalendar.php', + 'Sabre\\VObject\\Splitter\\SplitterInterface' => $vendorDir . '/sabre/vobject/lib/Splitter/SplitterInterface.php', + 'Sabre\\VObject\\Splitter\\VCard' => $vendorDir . '/sabre/vobject/lib/Splitter/VCard.php', + 'Sabre\\VObject\\StringUtil' => $vendorDir . '/sabre/vobject/lib/StringUtil.php', + 'Sabre\\VObject\\TimeZoneUtil' => $vendorDir . '/sabre/vobject/lib/TimeZoneUtil.php', + 'Sabre\\VObject\\UUIDUtil' => $vendorDir . '/sabre/vobject/lib/UUIDUtil.php', + 'Sabre\\VObject\\VCardConverter' => $vendorDir . '/sabre/vobject/lib/VCardConverter.php', + 'Sabre\\VObject\\Version' => $vendorDir . '/sabre/vobject/lib/Version.php', + 'Sabre\\VObject\\Writer' => $vendorDir . '/sabre/vobject/lib/Writer.php', + 'Sabre\\Xml\\ContextStackTrait' => $vendorDir . '/sabre/xml/lib/ContextStackTrait.php', + 'Sabre\\Xml\\Element' => $vendorDir . '/sabre/xml/lib/Element.php', + 'Sabre\\Xml\\Element\\Base' => $vendorDir . '/sabre/xml/lib/Element/Base.php', + 'Sabre\\Xml\\Element\\Cdata' => $vendorDir . '/sabre/xml/lib/Element/Cdata.php', + 'Sabre\\Xml\\Element\\Elements' => $vendorDir . '/sabre/xml/lib/Element/Elements.php', + 'Sabre\\Xml\\Element\\KeyValue' => $vendorDir . '/sabre/xml/lib/Element/KeyValue.php', + 'Sabre\\Xml\\Element\\Uri' => $vendorDir . '/sabre/xml/lib/Element/Uri.php', + 'Sabre\\Xml\\Element\\XmlFragment' => $vendorDir . '/sabre/xml/lib/Element/XmlFragment.php', + 'Sabre\\Xml\\LibXMLException' => $vendorDir . '/sabre/xml/lib/LibXMLException.php', + 'Sabre\\Xml\\ParseException' => $vendorDir . '/sabre/xml/lib/ParseException.php', + 'Sabre\\Xml\\Reader' => $vendorDir . '/sabre/xml/lib/Reader.php', + 'Sabre\\Xml\\Service' => $vendorDir . '/sabre/xml/lib/Service.php', + 'Sabre\\Xml\\Version' => $vendorDir . '/sabre/xml/lib/Version.php', + 'Sabre\\Xml\\Writer' => $vendorDir . '/sabre/xml/lib/Writer.php', + 'Sabre\\Xml\\XmlDeserializable' => $vendorDir . '/sabre/xml/lib/XmlDeserializable.php', + 'Sabre\\Xml\\XmlSerializable' => $vendorDir . '/sabre/xml/lib/XmlSerializable.php', + 'Zotlabs\\Access\\AccessList' => $baseDir . '/Zotlabs/Access/AccessList.php', + 'Zotlabs\\Access\\PermissionLimits' => $baseDir . '/Zotlabs/Access/PermissionLimits.php', + 'Zotlabs\\Access\\PermissionRoles' => $baseDir . '/Zotlabs/Access/PermissionRoles.php', + 'Zotlabs\\Access\\Permissions' => $baseDir . '/Zotlabs/Access/Permissions.php', + 'Zotlabs\\Daemon\\Checksites' => $baseDir . '/Zotlabs/Daemon/Checksites.php', + 'Zotlabs\\Daemon\\Cli_suggest' => $baseDir . '/Zotlabs/Daemon/Cli_suggest.php', + 'Zotlabs\\Daemon\\Cron' => $baseDir . '/Zotlabs/Daemon/Cron.php', + 'Zotlabs\\Daemon\\Cron_daily' => $baseDir . '/Zotlabs/Daemon/Cron_daily.php', + 'Zotlabs\\Daemon\\Cron_weekly' => $baseDir . '/Zotlabs/Daemon/Cron_weekly.php', + 'Zotlabs\\Daemon\\Cronhooks' => $baseDir . '/Zotlabs/Daemon/Cronhooks.php', + 'Zotlabs\\Daemon\\CurlAuth' => $baseDir . '/Zotlabs/Daemon/CurlAuth.php', + 'Zotlabs\\Daemon\\Deliver' => $baseDir . '/Zotlabs/Daemon/Deliver.php', + 'Zotlabs\\Daemon\\Deliver_hooks' => $baseDir . '/Zotlabs/Daemon/Deliver_hooks.php', + 'Zotlabs\\Daemon\\Directory' => $baseDir . '/Zotlabs/Daemon/Directory.php', + 'Zotlabs\\Daemon\\Expire' => $baseDir . '/Zotlabs/Daemon/Expire.php', + 'Zotlabs\\Daemon\\Externals' => $baseDir . '/Zotlabs/Daemon/Externals.php', + 'Zotlabs\\Daemon\\Gprobe' => $baseDir . '/Zotlabs/Daemon/Gprobe.php', + 'Zotlabs\\Daemon\\Importdoc' => $baseDir . '/Zotlabs/Daemon/Importdoc.php', + 'Zotlabs\\Daemon\\Master' => $baseDir . '/Zotlabs/Daemon/Master.php', + 'Zotlabs\\Daemon\\Notifier' => $baseDir . '/Zotlabs/Daemon/Notifier.php', + 'Zotlabs\\Daemon\\Onedirsync' => $baseDir . '/Zotlabs/Daemon/Onedirsync.php', + 'Zotlabs\\Daemon\\Onepoll' => $baseDir . '/Zotlabs/Daemon/Onepoll.php', + 'Zotlabs\\Daemon\\Poller' => $baseDir . '/Zotlabs/Daemon/Poller.php', + 'Zotlabs\\Daemon\\Queue' => $baseDir . '/Zotlabs/Daemon/Queue.php', + 'Zotlabs\\Daemon\\Ratenotif' => $baseDir . '/Zotlabs/Daemon/Ratenotif.php', + 'Zotlabs\\Extend\\Hook' => $baseDir . '/Zotlabs/Extend/Hook.php', + 'Zotlabs\\Identity\\BasicId\\BasicId' => $baseDir . '/Zotlabs/Identity/BasicId.php', + 'Zotlabs\\Identity\\ProfilePhoto\\ProfilePhoto' => $baseDir . '/Zotlabs/Identity/ProfilePhoto.php', + 'Zotlabs\\Lib\\AConfig' => $baseDir . '/Zotlabs/Lib/AConfig.php', + 'Zotlabs\\Lib\\AbConfig' => $baseDir . '/Zotlabs/Lib/AbConfig.php', + 'Zotlabs\\Lib\\Api_router' => $baseDir . '/Zotlabs/Lib/Api_router.php', + 'Zotlabs\\Lib\\Apps' => $baseDir . '/Zotlabs/Lib/Apps.php', + 'Zotlabs\\Lib\\Cache' => $baseDir . '/Zotlabs/Lib/Cache.php', + 'Zotlabs\\Lib\\Chatroom' => $baseDir . '/Zotlabs/Lib/Chatroom.php', + 'Zotlabs\\Lib\\Config' => $baseDir . '/Zotlabs/Lib/Config.php', + 'Zotlabs\\Lib\\Enotify' => $baseDir . '/Zotlabs/Lib/Enotify.php', + 'Zotlabs\\Lib\\ExtendedZip' => $baseDir . '/Zotlabs/Lib/ExtendedZip.php', + 'Zotlabs\\Lib\\IConfig' => $baseDir . '/Zotlabs/Lib/IConfig.php', + 'Zotlabs\\Lib\\PConfig' => $baseDir . '/Zotlabs/Lib/PConfig.php', + 'Zotlabs\\Lib\\PermissionDescription' => $baseDir . '/Zotlabs/Lib/PermissionDescription.php', + 'Zotlabs\\Lib\\ProtoDriver' => $baseDir . '/Zotlabs/Lib/ProtoDriver.php', + 'Zotlabs\\Lib\\SuperCurl' => $baseDir . '/Zotlabs/Lib/SuperCurl.php', + 'Zotlabs\\Lib\\System' => $baseDir . '/Zotlabs/Lib/System.php', + 'Zotlabs\\Lib\\Techlevels' => $baseDir . '/Zotlabs/Lib/Techlevels.php', + 'Zotlabs\\Lib\\ThreadItem' => $baseDir . '/Zotlabs/Lib/ThreadItem.php', + 'Zotlabs\\Lib\\ThreadStream' => $baseDir . '/Zotlabs/Lib/ThreadStream.php', + 'Zotlabs\\Lib\\XConfig' => $baseDir . '/Zotlabs/Lib/XConfig.php', + 'Zotlabs\\Lib\\ZotDriver' => $baseDir . '/Zotlabs/Lib/ZotDriver.php', + 'Zotlabs\\Module\\Achievements' => $baseDir . '/Zotlabs/Module/Achievements.php', + 'Zotlabs\\Module\\Acl' => $baseDir . '/Zotlabs/Module/Acl.php', + 'Zotlabs\\Module\\Admin' => $baseDir . '/Zotlabs/Module/Admin.php', + 'Zotlabs\\Module\\Admin\\Account_edit' => $baseDir . '/Zotlabs/Module/Admin/Account_edit.php', + 'Zotlabs\\Module\\Admin\\Accounts' => $baseDir . '/Zotlabs/Module/Admin/Accounts.php', + 'Zotlabs\\Module\\Admin\\Channels' => $baseDir . '/Zotlabs/Module/Admin/Channels.php', + 'Zotlabs\\Module\\Admin\\Dbsync' => $baseDir . '/Zotlabs/Module/Admin/Dbsync.php', + 'Zotlabs\\Module\\Admin\\Features' => $baseDir . '/Zotlabs/Module/Admin/Features.php', + 'Zotlabs\\Module\\Admin\\Logs' => $baseDir . '/Zotlabs/Module/Admin/Logs.php', + 'Zotlabs\\Module\\Admin\\Plugins' => $baseDir . '/Zotlabs/Module/Admin/Plugins.php', + 'Zotlabs\\Module\\Admin\\Profs' => $baseDir . '/Zotlabs/Module/Admin/Profs.php', + 'Zotlabs\\Module\\Admin\\Queue' => $baseDir . '/Zotlabs/Module/Admin/Queue.php', + 'Zotlabs\\Module\\Admin\\Security' => $baseDir . '/Zotlabs/Module/Admin/Security.php', + 'Zotlabs\\Module\\Admin\\Site' => $baseDir . '/Zotlabs/Module/Admin/Site.php', + 'Zotlabs\\Module\\Admin\\Themes' => $baseDir . '/Zotlabs/Module/Admin/Themes.php', + 'Zotlabs\\Module\\Api' => $baseDir . '/Zotlabs/Module/Api.php', + 'Zotlabs\\Module\\Appman' => $baseDir . '/Zotlabs/Module/Appman.php', + 'Zotlabs\\Module\\Apps' => $baseDir . '/Zotlabs/Module/Apps.php', + 'Zotlabs\\Module\\Attach' => $baseDir . '/Zotlabs/Module/Attach.php', + 'Zotlabs\\Module\\Authtest' => $baseDir . '/Zotlabs/Module/Authtest.php', + 'Zotlabs\\Module\\Block' => $baseDir . '/Zotlabs/Module/Block.php', + 'Zotlabs\\Module\\Blocks' => $baseDir . '/Zotlabs/Module/Blocks.php', + 'Zotlabs\\Module\\Bookmarks' => $baseDir . '/Zotlabs/Module/Bookmarks.php', + 'Zotlabs\\Module\\Branchtopic' => $baseDir . '/Zotlabs/Module/Branchtopic.php', + 'Zotlabs\\Module\\Cal' => $baseDir . '/Zotlabs/Module/Cal.php', + 'Zotlabs\\Module\\Channel' => $baseDir . '/Zotlabs/Module/Channel.php', + 'Zotlabs\\Module\\Chanview' => $baseDir . '/Zotlabs/Module/Chanview.php', + 'Zotlabs\\Module\\Chat' => $baseDir . '/Zotlabs/Module/Chat.php', + 'Zotlabs\\Module\\Chatsvc' => $baseDir . '/Zotlabs/Module/Chatsvc.php', + 'Zotlabs\\Module\\Cloud' => $baseDir . '/Zotlabs/Module/Cloud.php', + 'Zotlabs\\Module\\Common' => $baseDir . '/Zotlabs/Module/Common.php', + 'Zotlabs\\Module\\Connect' => $baseDir . '/Zotlabs/Module/Connect.php', + 'Zotlabs\\Module\\Connections' => $baseDir . '/Zotlabs/Module/Connections.php', + 'Zotlabs\\Module\\Connedit' => $baseDir . '/Zotlabs/Module/Connedit.php', + 'Zotlabs\\Module\\Contactgroup' => $baseDir . '/Zotlabs/Module/Contactgroup.php', + 'Zotlabs\\Module\\Cover_photo' => $baseDir . '/Zotlabs/Module/Cover_photo.php', + 'Zotlabs\\Module\\Dav' => $baseDir . '/Zotlabs/Module/Dav.php', + 'Zotlabs\\Module\\Directory' => $baseDir . '/Zotlabs/Module/Directory.php', + 'Zotlabs\\Module\\Dirsearch' => $baseDir . '/Zotlabs/Module/Dirsearch.php', + 'Zotlabs\\Module\\Display' => $baseDir . '/Zotlabs/Module/Display.php', + 'Zotlabs\\Module\\Dreport' => $baseDir . '/Zotlabs/Module/Dreport.php', + 'Zotlabs\\Module\\Editblock' => $baseDir . '/Zotlabs/Module/Editblock.php', + 'Zotlabs\\Module\\Editlayout' => $baseDir . '/Zotlabs/Module/Editlayout.php', + 'Zotlabs\\Module\\Editpost' => $baseDir . '/Zotlabs/Module/Editpost.php', + 'Zotlabs\\Module\\Editwebpage' => $baseDir . '/Zotlabs/Module/Editwebpage.php', + 'Zotlabs\\Module\\Embedphotos' => $baseDir . '/Zotlabs/Module/Embedphotos.php', + 'Zotlabs\\Module\\Events' => $baseDir . '/Zotlabs/Module/Events.php', + 'Zotlabs\\Module\\Fbrowser' => $baseDir . '/Zotlabs/Module/Fbrowser.php', + 'Zotlabs\\Module\\Feed' => $baseDir . '/Zotlabs/Module/Feed.php', + 'Zotlabs\\Module\\Ffsapi' => $baseDir . '/Zotlabs/Module/Ffsapi.php', + 'Zotlabs\\Module\\Fhublocs' => $baseDir . '/Zotlabs/Module/Fhublocs.php', + 'Zotlabs\\Module\\File_upload' => $baseDir . '/Zotlabs/Module/File_upload.php', + 'Zotlabs\\Module\\Filer' => $baseDir . '/Zotlabs/Module/Filer.php', + 'Zotlabs\\Module\\Filerm' => $baseDir . '/Zotlabs/Module/Filerm.php', + 'Zotlabs\\Module\\Filestorage' => $baseDir . '/Zotlabs/Module/Filestorage.php', + 'Zotlabs\\Module\\Follow' => $baseDir . '/Zotlabs/Module/Follow.php', + 'Zotlabs\\Module\\Getfile' => $baseDir . '/Zotlabs/Module/Getfile.php', + 'Zotlabs\\Module\\Group' => $baseDir . '/Zotlabs/Module/Group.php', + 'Zotlabs\\Module\\Hcard' => $baseDir . '/Zotlabs/Module/Hcard.php', + 'Zotlabs\\Module\\Help' => $baseDir . '/Zotlabs/Module/Help.php', + 'Zotlabs\\Module\\Home' => $baseDir . '/Zotlabs/Module/Home.php', + 'Zotlabs\\Module\\Hostxrd' => $baseDir . '/Zotlabs/Module/Hostxrd.php', + 'Zotlabs\\Module\\Impel' => $baseDir . '/Zotlabs/Module/Impel.php', + 'Zotlabs\\Module\\Import' => $baseDir . '/Zotlabs/Module/Import.php', + 'Zotlabs\\Module\\Import_items' => $baseDir . '/Zotlabs/Module/Import_items.php', + 'Zotlabs\\Module\\Invite' => $baseDir . '/Zotlabs/Module/Invite.php', + 'Zotlabs\\Module\\Item' => $baseDir . '/Zotlabs/Module/Item.php', + 'Zotlabs\\Module\\Lang' => $baseDir . '/Zotlabs/Module/Lang.php', + 'Zotlabs\\Module\\Layouts' => $baseDir . '/Zotlabs/Module/Layouts.php', + 'Zotlabs\\Module\\Like' => $baseDir . '/Zotlabs/Module/Like.php', + 'Zotlabs\\Module\\Linkinfo' => $baseDir . '/Zotlabs/Module/Linkinfo.php', + 'Zotlabs\\Module\\Lockview' => $baseDir . '/Zotlabs/Module/Lockview.php', + 'Zotlabs\\Module\\Locs' => $baseDir . '/Zotlabs/Module/Locs.php', + 'Zotlabs\\Module\\Login' => $baseDir . '/Zotlabs/Module/Login.php', + 'Zotlabs\\Module\\Lostpass' => $baseDir . '/Zotlabs/Module/Lostpass.php', + 'Zotlabs\\Module\\Magic' => $baseDir . '/Zotlabs/Module/Magic.php', + 'Zotlabs\\Module\\Mail' => $baseDir . '/Zotlabs/Module/Mail.php', + 'Zotlabs\\Module\\Manage' => $baseDir . '/Zotlabs/Module/Manage.php', + 'Zotlabs\\Module\\Match' => $baseDir . '/Zotlabs/Module/Match.php', + 'Zotlabs\\Module\\Menu' => $baseDir . '/Zotlabs/Module/Menu.php', + 'Zotlabs\\Module\\Message' => $baseDir . '/Zotlabs/Module/Message.php', + 'Zotlabs\\Module\\Mitem' => $baseDir . '/Zotlabs/Module/Mitem.php', + 'Zotlabs\\Module\\Mood' => $baseDir . '/Zotlabs/Module/Mood.php', + 'Zotlabs\\Module\\Network' => $baseDir . '/Zotlabs/Module/Network.php', + 'Zotlabs\\Module\\New_channel' => $baseDir . '/Zotlabs/Module/New_channel.php', + 'Zotlabs\\Module\\Nojs' => $baseDir . '/Zotlabs/Module/Nojs.php', + 'Zotlabs\\Module\\Notes' => $baseDir . '/Zotlabs/Module/Notes.php', + 'Zotlabs\\Module\\Notifications' => $baseDir . '/Zotlabs/Module/Notifications.php', + 'Zotlabs\\Module\\Notify' => $baseDir . '/Zotlabs/Module/Notify.php', + 'Zotlabs\\Module\\Oembed' => $baseDir . '/Zotlabs/Module/Oembed.php', + 'Zotlabs\\Module\\Oep' => $baseDir . '/Zotlabs/Module/Oep.php', + 'Zotlabs\\Module\\Oexchange' => $baseDir . '/Zotlabs/Module/Oexchange.php', + 'Zotlabs\\Module\\Online' => $baseDir . '/Zotlabs/Module/Online.php', + 'Zotlabs\\Module\\Opensearch' => $baseDir . '/Zotlabs/Module/Opensearch.php', + 'Zotlabs\\Module\\Page' => $baseDir . '/Zotlabs/Module/Page.php', + 'Zotlabs\\Module\\Pconfig' => $baseDir . '/Zotlabs/Module/Pconfig.php', + 'Zotlabs\\Module\\Pdledit' => $baseDir . '/Zotlabs/Module/Pdledit.php', + 'Zotlabs\\Module\\Photo' => $baseDir . '/Zotlabs/Module/Photo.php', + 'Zotlabs\\Module\\Photos' => $baseDir . '/Zotlabs/Module/Photos.php', + 'Zotlabs\\Module\\Ping' => $baseDir . '/Zotlabs/Module/Ping.php', + 'Zotlabs\\Module\\Poco' => $baseDir . '/Zotlabs/Module/Poco.php', + 'Zotlabs\\Module\\Poke' => $baseDir . '/Zotlabs/Module/Poke.php', + 'Zotlabs\\Module\\Post' => $baseDir . '/Zotlabs/Module/Post.php', + 'Zotlabs\\Module\\Prate' => $baseDir . '/Zotlabs/Module/Prate.php', + 'Zotlabs\\Module\\Pretheme' => $baseDir . '/Zotlabs/Module/Pretheme.php', + 'Zotlabs\\Module\\Probe' => $baseDir . '/Zotlabs/Module/Probe.php', + 'Zotlabs\\Module\\Profile' => $baseDir . '/Zotlabs/Module/Profile.php', + 'Zotlabs\\Module\\Profile_photo' => $baseDir . '/Zotlabs/Module/Profile_photo.php', + 'Zotlabs\\Module\\Profiles' => $baseDir . '/Zotlabs/Module/Profiles.php', + 'Zotlabs\\Module\\Profperm' => $baseDir . '/Zotlabs/Module/Profperm.php', + 'Zotlabs\\Module\\Pubsites' => $baseDir . '/Zotlabs/Module/Pubsites.php', + 'Zotlabs\\Module\\Pubstream' => $baseDir . '/Zotlabs/Module/Pubstream.php', + 'Zotlabs\\Module\\Randprof' => $baseDir . '/Zotlabs/Module/Randprof.php', + 'Zotlabs\\Module\\Rate' => $baseDir . '/Zotlabs/Module/Rate.php', + 'Zotlabs\\Module\\Ratings' => $baseDir . '/Zotlabs/Module/Ratings.php', + 'Zotlabs\\Module\\Ratingsearch' => $baseDir . '/Zotlabs/Module/Ratingsearch.php', + 'Zotlabs\\Module\\Rbmark' => $baseDir . '/Zotlabs/Module/Rbmark.php', + 'Zotlabs\\Module\\React' => $baseDir . '/Zotlabs/Module/React.php', + 'Zotlabs\\Module\\Regdir' => $baseDir . '/Zotlabs/Module/Regdir.php', + 'Zotlabs\\Module\\Register' => $baseDir . '/Zotlabs/Module/Register.php', + 'Zotlabs\\Module\\Regmod' => $baseDir . '/Zotlabs/Module/Regmod.php', + 'Zotlabs\\Module\\Regver' => $baseDir . '/Zotlabs/Module/Regver.php', + 'Zotlabs\\Module\\Removeaccount' => $baseDir . '/Zotlabs/Module/Removeaccount.php', + 'Zotlabs\\Module\\Removeme' => $baseDir . '/Zotlabs/Module/Removeme.php', + 'Zotlabs\\Module\\Rmagic' => $baseDir . '/Zotlabs/Module/Rmagic.php', + 'Zotlabs\\Module\\Rpost' => $baseDir . '/Zotlabs/Module/Rpost.php', + 'Zotlabs\\Module\\Rsd_xml' => $baseDir . '/Zotlabs/Module/Rsd_xml.php', + 'Zotlabs\\Module\\Search' => $baseDir . '/Zotlabs/Module/Search.php', + 'Zotlabs\\Module\\Search_ac' => $baseDir . '/Zotlabs/Module/Search_ac.php', + 'Zotlabs\\Module\\Service_limits' => $baseDir . '/Zotlabs/Module/Service_limits.php', + 'Zotlabs\\Module\\Settings' => $baseDir . '/Zotlabs/Module/Settings.php', + 'Zotlabs\\Module\\Settings\\Account' => $baseDir . '/Zotlabs/Module/Settings/Account.php', + 'Zotlabs\\Module\\Settings\\Channel' => $baseDir . '/Zotlabs/Module/Settings/Channel.php', + 'Zotlabs\\Module\\Settings\\Display' => $baseDir . '/Zotlabs/Module/Settings/Display.php', + 'Zotlabs\\Module\\Settings\\Featured' => $baseDir . '/Zotlabs/Module/Settings/Featured.php', + 'Zotlabs\\Module\\Settings\\Features' => $baseDir . '/Zotlabs/Module/Settings/Features.php', + 'Zotlabs\\Module\\Settings\\Oauth' => $baseDir . '/Zotlabs/Module/Settings/Oauth.php', + 'Zotlabs\\Module\\Settings\\Tokens' => $baseDir . '/Zotlabs/Module/Settings/Tokens.php', + 'Zotlabs\\Module\\Setup' => $baseDir . '/Zotlabs/Module/Setup.php', + 'Zotlabs\\Module\\Share' => $baseDir . '/Zotlabs/Module/Share.php', + 'Zotlabs\\Module\\Sharedwithme' => $baseDir . '/Zotlabs/Module/Sharedwithme.php', + 'Zotlabs\\Module\\Siteinfo' => $baseDir . '/Zotlabs/Module/Siteinfo.php', + 'Zotlabs\\Module\\Siteinfo_json' => $baseDir . '/Zotlabs/Module/Siteinfo_json.php', + 'Zotlabs\\Module\\Sitelist' => $baseDir . '/Zotlabs/Module/Sitelist.php', + 'Zotlabs\\Module\\Smilies' => $baseDir . '/Zotlabs/Module/Smilies.php', + 'Zotlabs\\Module\\Snap' => $baseDir . '/Zotlabs/Module/Snap.php', + 'Zotlabs\\Module\\Sources' => $baseDir . '/Zotlabs/Module/Sources.php', + 'Zotlabs\\Module\\Sslify' => $baseDir . '/Zotlabs/Module/Sslify.php', + 'Zotlabs\\Module\\Starred' => $baseDir . '/Zotlabs/Module/Starred.php', + 'Zotlabs\\Module\\Subthread' => $baseDir . '/Zotlabs/Module/Subthread.php', + 'Zotlabs\\Module\\Suggest' => $baseDir . '/Zotlabs/Module/Suggest.php', + 'Zotlabs\\Module\\Tagger' => $baseDir . '/Zotlabs/Module/Tagger.php', + 'Zotlabs\\Module\\Tagrm' => $baseDir . '/Zotlabs/Module/Tagrm.php', + 'Zotlabs\\Module\\Tasks' => $baseDir . '/Zotlabs/Module/Tasks.php', + 'Zotlabs\\Module\\Theme_info' => $baseDir . '/Zotlabs/Module/Theme_info.php', + 'Zotlabs\\Module\\Thing' => $baseDir . '/Zotlabs/Module/Thing.php', + 'Zotlabs\\Module\\Toggle_mobile' => $baseDir . '/Zotlabs/Module/Toggle_mobile.php', + 'Zotlabs\\Module\\Toggle_safesearch' => $baseDir . '/Zotlabs/Module/Toggle_safesearch.php', + 'Zotlabs\\Module\\Uexport' => $baseDir . '/Zotlabs/Module/Uexport.php', + 'Zotlabs\\Module\\Update_channel' => $baseDir . '/Zotlabs/Module/Update_channel.php', + 'Zotlabs\\Module\\Update_display' => $baseDir . '/Zotlabs/Module/Update_display.php', + 'Zotlabs\\Module\\Update_home' => $baseDir . '/Zotlabs/Module/Update_home.php', + 'Zotlabs\\Module\\Update_network' => $baseDir . '/Zotlabs/Module/Update_network.php', + 'Zotlabs\\Module\\Update_pubstream' => $baseDir . '/Zotlabs/Module/Update_pubstream.php', + 'Zotlabs\\Module\\Update_search' => $baseDir . '/Zotlabs/Module/Update_search.php', + 'Zotlabs\\Module\\View' => $baseDir . '/Zotlabs/Module/View.php', + 'Zotlabs\\Module\\Viewconnections' => $baseDir . '/Zotlabs/Module/Viewconnections.php', + 'Zotlabs\\Module\\Viewsrc' => $baseDir . '/Zotlabs/Module/Viewsrc.php', + 'Zotlabs\\Module\\Wall_attach' => $baseDir . '/Zotlabs/Module/Wall_attach.php', + 'Zotlabs\\Module\\Wall_upload' => $baseDir . '/Zotlabs/Module/Wall_upload.php', + 'Zotlabs\\Module\\Webfinger' => $baseDir . '/Zotlabs/Module/Webfinger.php', + 'Zotlabs\\Module\\Webpages' => $baseDir . '/Zotlabs/Module/Webpages.php', + 'Zotlabs\\Module\\Well_known' => $baseDir . '/Zotlabs/Module/Well_known.php', + 'Zotlabs\\Module\\Wfinger' => $baseDir . '/Zotlabs/Module/Wfinger.php', + 'Zotlabs\\Module\\Wiki' => $baseDir . '/Zotlabs/Module/Wiki.php', + 'Zotlabs\\Module\\Xchan' => $baseDir . '/Zotlabs/Module/Xchan.php', + 'Zotlabs\\Module\\Xpoco' => $baseDir . '/Zotlabs/Module/Xpoco.php', + 'Zotlabs\\Module\\Xrd' => $baseDir . '/Zotlabs/Module/Xrd.php', + 'Zotlabs\\Module\\Xref' => $baseDir . '/Zotlabs/Module/Xref.php', + 'Zotlabs\\Module\\Zfinger' => $baseDir . '/Zotlabs/Module/Zfinger.php', + 'Zotlabs\\Module\\Zotfeed' => $baseDir . '/Zotlabs/Module/Zotfeed.php', + 'Zotlabs\\Module\\Zping' => $baseDir . '/Zotlabs/Module/Zping.php', + 'Zotlabs\\Render\\Comanche' => $baseDir . '/Zotlabs/Render/Comanche.php', + 'Zotlabs\\Render\\SimpleTemplate' => $baseDir . '/Zotlabs/Render/SimpleTemplate.php', + 'Zotlabs\\Render\\SmartyInterface' => $baseDir . '/Zotlabs/Render/SmartyInterface.php', + 'Zotlabs\\Render\\SmartyTemplate' => $baseDir . '/Zotlabs/Render/SmartyTemplate.php', + 'Zotlabs\\Render\\TemplateEngine' => $baseDir . '/Zotlabs/Render/TemplateEngine.php', + 'Zotlabs\\Render\\Theme' => $baseDir . '/Zotlabs/Render/Theme.php', + 'Zotlabs\\Storage\\BasicAuth' => $baseDir . '/Zotlabs/Storage/BasicAuth.php', + 'Zotlabs\\Storage\\Browser' => $baseDir . '/Zotlabs/Storage/Browser.php', + 'Zotlabs\\Storage\\CalDAVClient' => $baseDir . '/Zotlabs/Storage/CalDAVClient.php', + 'Zotlabs\\Storage\\Directory' => $baseDir . '/Zotlabs/Storage/Directory.php', + 'Zotlabs\\Storage\\File' => $baseDir . '/Zotlabs/Storage/File.php', + 'Zotlabs\\Storage\\GitRepo' => $baseDir . '/Zotlabs/Storage/GitRepo.php', + 'Zotlabs\\Text\\Tagadelic' => $baseDir . '/Zotlabs/Text/Tagadelic.php', + 'Zotlabs\\Web\\CheckJS' => $baseDir . '/Zotlabs/Web/CheckJS.php', + 'Zotlabs\\Web\\Controller' => $baseDir . '/Zotlabs/Web/Controller.php', + 'Zotlabs\\Web\\HttpMeta' => $baseDir . '/Zotlabs/Web/HttpMeta.php', + 'Zotlabs\\Web\\Router' => $baseDir . '/Zotlabs/Web/Router.php', + 'Zotlabs\\Web\\Session' => $baseDir . '/Zotlabs/Web/Session.php', + 'Zotlabs\\Web\\SessionHandler' => $baseDir . '/Zotlabs/Web/SessionHandler.php', + 'Zotlabs\\Web\\SubModule' => $baseDir . '/Zotlabs/Web/SubModule.php', + 'Zotlabs\\Web\\WebServer' => $baseDir . '/Zotlabs/Web/WebServer.php', + 'Zotlabs\\Zot\\Auth' => $baseDir . '/Zotlabs/Zot/Auth.php', + 'Zotlabs\\Zot\\DReport' => $baseDir . '/Zotlabs/Zot/DReport.php', + 'Zotlabs\\Zot\\Finger' => $baseDir . '/Zotlabs/Zot/Finger.php', + 'Zotlabs\\Zot\\IHandler' => $baseDir . '/Zotlabs/Zot/IHandler.php', + 'Zotlabs\\Zot\\Receiver' => $baseDir . '/Zotlabs/Zot/Receiver.php', + 'Zotlabs\\Zot\\Verify' => $baseDir . '/Zotlabs/Zot/Verify.php', + 'Zotlabs\\Zot\\ZotHandler' => $baseDir . '/Zotlabs/Zot/ZotHandler.php', ); diff --git a/vendor/composer/autoload_files.php b/vendor/composer/autoload_files.php index 24ffd3718..a78cbe6fb 100644 --- a/vendor/composer/autoload_files.php +++ b/vendor/composer/autoload_files.php @@ -7,10 +7,10 @@ $baseDir = dirname($vendorDir); return array( '383eaff206634a77a1be54e64e6459c7' => $vendorDir . '/sabre/uri/lib/functions.php', - '3569eecfeed3bcf0bad3c998a494ecb8' => $vendorDir . '/sabre/xml/lib/Deserializer/functions.php', - '93aa591bc4ca510c520999e34229ee79' => $vendorDir . '/sabre/xml/lib/Serializer/functions.php', '2b9d0f43f9552984cfa82fee95491826' => $vendorDir . '/sabre/event/lib/coroutine.php', 'd81bab31d3feb45bfe2f283ea3c8fdf7' => $vendorDir . '/sabre/event/lib/Loop/functions.php', 'a1cce3d26cc15c00fcd0b3354bd72c88' => $vendorDir . '/sabre/event/lib/Promise/functions.php', + '3569eecfeed3bcf0bad3c998a494ecb8' => $vendorDir . '/sabre/xml/lib/Deserializer/functions.php', + '93aa591bc4ca510c520999e34229ee79' => $vendorDir . '/sabre/xml/lib/Serializer/functions.php', 'ebdb698ed4152ae445614b69b5e4bb6a' => $vendorDir . '/sabre/http/lib/functions.php', ); diff --git a/vendor/composer/autoload_namespaces.php b/vendor/composer/autoload_namespaces.php index 10c9b8207..b7fc0125d 100644 --- a/vendor/composer/autoload_namespaces.php +++ b/vendor/composer/autoload_namespaces.php @@ -6,5 +6,4 @@ $vendorDir = dirname(dirname(__FILE__)); $baseDir = dirname($vendorDir); return array( - 'Psr\\Log\\' => array($vendorDir . '/psr/log'), ); diff --git a/vendor/composer/autoload_psr4.php b/vendor/composer/autoload_psr4.php index 8e90b0195..e8ea2ed78 100644 --- a/vendor/composer/autoload_psr4.php +++ b/vendor/composer/autoload_psr4.php @@ -6,6 +6,7 @@ $vendorDir = dirname(dirname(__FILE__)); $baseDir = dirname($vendorDir); return array( + 'Zotlabs\\' => array($baseDir . '/Zotlabs'), 'Sabre\\Xml\\' => array($vendorDir . '/sabre/xml/lib'), 'Sabre\\VObject\\' => array($vendorDir . '/sabre/vobject/lib'), 'Sabre\\Uri\\' => array($vendorDir . '/sabre/uri/lib'), @@ -15,4 +16,6 @@ return array( 'Sabre\\DAVACL\\' => array($vendorDir . '/sabre/dav/lib/DAVACL'), 'Sabre\\CardDAV\\' => array($vendorDir . '/sabre/dav/lib/CardDAV'), 'Sabre\\CalDAV\\' => array($vendorDir . '/sabre/dav/lib/CalDAV'), + 'Psr\\Log\\' => array($vendorDir . '/psr/log/Psr/Log'), + 'Hubzilla\\' => array($baseDir . '/include'), ); diff --git a/vendor/composer/autoload_real.php b/vendor/composer/autoload_real.php index 16f7dea85..24b45085d 100644 --- a/vendor/composer/autoload_real.php +++ b/vendor/composer/autoload_real.php @@ -2,7 +2,7 @@ // autoload_real.php @generated by Composer -class ComposerAutoloaderInit02c7a5bb99a87a4c8dbf069d69b1a15c +class ComposerAutoloaderInit7b34d7e50a62201ec5d5e526a5b8b35d { private static $loader; @@ -19,15 +19,15 @@ class ComposerAutoloaderInit02c7a5bb99a87a4c8dbf069d69b1a15c return self::$loader; } - spl_autoload_register(array('ComposerAutoloaderInit02c7a5bb99a87a4c8dbf069d69b1a15c', 'loadClassLoader'), true, true); + spl_autoload_register(array('ComposerAutoloaderInit7b34d7e50a62201ec5d5e526a5b8b35d', 'loadClassLoader'), true, true); self::$loader = $loader = new \Composer\Autoload\ClassLoader(); - spl_autoload_unregister(array('ComposerAutoloaderInit02c7a5bb99a87a4c8dbf069d69b1a15c', 'loadClassLoader')); + spl_autoload_unregister(array('ComposerAutoloaderInit7b34d7e50a62201ec5d5e526a5b8b35d', 'loadClassLoader')); $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION'); if ($useStaticLoader) { require_once __DIR__ . '/autoload_static.php'; - call_user_func(\Composer\Autoload\ComposerStaticInit02c7a5bb99a87a4c8dbf069d69b1a15c::getInitializer($loader)); + call_user_func(\Composer\Autoload\ComposerStaticInit7b34d7e50a62201ec5d5e526a5b8b35d::getInitializer($loader)); } else { $map = require __DIR__ . '/autoload_namespaces.php'; foreach ($map as $namespace => $path) { @@ -48,19 +48,19 @@ class ComposerAutoloaderInit02c7a5bb99a87a4c8dbf069d69b1a15c $loader->register(true); if ($useStaticLoader) { - $includeFiles = Composer\Autoload\ComposerStaticInit02c7a5bb99a87a4c8dbf069d69b1a15c::$files; + $includeFiles = Composer\Autoload\ComposerStaticInit7b34d7e50a62201ec5d5e526a5b8b35d::$files; } else { $includeFiles = require __DIR__ . '/autoload_files.php'; } foreach ($includeFiles as $fileIdentifier => $file) { - composerRequire02c7a5bb99a87a4c8dbf069d69b1a15c($fileIdentifier, $file); + composerRequire7b34d7e50a62201ec5d5e526a5b8b35d($fileIdentifier, $file); } return $loader; } } -function composerRequire02c7a5bb99a87a4c8dbf069d69b1a15c($fileIdentifier, $file) +function composerRequire7b34d7e50a62201ec5d5e526a5b8b35d($fileIdentifier, $file) { if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) { require $file; diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php index 15dc46f55..7f2551665 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -4,19 +4,23 @@ namespace Composer\Autoload; -class ComposerStaticInit02c7a5bb99a87a4c8dbf069d69b1a15c +class ComposerStaticInit7b34d7e50a62201ec5d5e526a5b8b35d { public static $files = array ( '383eaff206634a77a1be54e64e6459c7' => __DIR__ . '/..' . '/sabre/uri/lib/functions.php', - '3569eecfeed3bcf0bad3c998a494ecb8' => __DIR__ . '/..' . '/sabre/xml/lib/Deserializer/functions.php', - '93aa591bc4ca510c520999e34229ee79' => __DIR__ . '/..' . '/sabre/xml/lib/Serializer/functions.php', '2b9d0f43f9552984cfa82fee95491826' => __DIR__ . '/..' . '/sabre/event/lib/coroutine.php', 'd81bab31d3feb45bfe2f283ea3c8fdf7' => __DIR__ . '/..' . '/sabre/event/lib/Loop/functions.php', 'a1cce3d26cc15c00fcd0b3354bd72c88' => __DIR__ . '/..' . '/sabre/event/lib/Promise/functions.php', + '3569eecfeed3bcf0bad3c998a494ecb8' => __DIR__ . '/..' . '/sabre/xml/lib/Deserializer/functions.php', + '93aa591bc4ca510c520999e34229ee79' => __DIR__ . '/..' . '/sabre/xml/lib/Serializer/functions.php', 'ebdb698ed4152ae445614b69b5e4bb6a' => __DIR__ . '/..' . '/sabre/http/lib/functions.php', ); public static $prefixLengthsPsr4 = array ( + 'Z' => + array ( + 'Zotlabs\\' => 8, + ), 'S' => array ( 'Sabre\\Xml\\' => 10, @@ -29,9 +33,21 @@ class ComposerStaticInit02c7a5bb99a87a4c8dbf069d69b1a15c 'Sabre\\CardDAV\\' => 14, 'Sabre\\CalDAV\\' => 13, ), + 'P' => + array ( + 'Psr\\Log\\' => 8, + ), + 'H' => + array ( + 'Hubzilla\\' => 9, + ), ); public static $prefixDirsPsr4 = array ( + 'Zotlabs\\' => + array ( + 0 => __DIR__ . '/../..' . '/Zotlabs', + ), 'Sabre\\Xml\\' => array ( 0 => __DIR__ . '/..' . '/sabre/xml/lib', @@ -68,24 +84,630 @@ class ComposerStaticInit02c7a5bb99a87a4c8dbf069d69b1a15c array ( 0 => __DIR__ . '/..' . '/sabre/dav/lib/CalDAV', ), + 'Psr\\Log\\' => + array ( + 0 => __DIR__ . '/..' . '/psr/log/Psr/Log', + ), + 'Hubzilla\\' => + array ( + 0 => __DIR__ . '/../..' . '/include', + ), ); - public static $prefixesPsr0 = array ( - 'P' => - array ( - 'Psr\\Log\\' => - array ( - 0 => __DIR__ . '/..' . '/psr/log', - ), - ), + public static $classMap = array ( + 'Hubzilla\\Import\\Import' => __DIR__ . '/../..' . '/include/Import/Importer.php', + 'Psr\\Log\\AbstractLogger' => __DIR__ . '/..' . '/psr/log/Psr/Log/AbstractLogger.php', + 'Psr\\Log\\InvalidArgumentException' => __DIR__ . '/..' . '/psr/log/Psr/Log/InvalidArgumentException.php', + 'Psr\\Log\\LogLevel' => __DIR__ . '/..' . '/psr/log/Psr/Log/LogLevel.php', + 'Psr\\Log\\LoggerAwareInterface' => __DIR__ . '/..' . '/psr/log/Psr/Log/LoggerAwareInterface.php', + 'Psr\\Log\\LoggerAwareTrait' => __DIR__ . '/..' . '/psr/log/Psr/Log/LoggerAwareTrait.php', + 'Psr\\Log\\LoggerInterface' => __DIR__ . '/..' . '/psr/log/Psr/Log/LoggerInterface.php', + 'Psr\\Log\\LoggerTrait' => __DIR__ . '/..' . '/psr/log/Psr/Log/LoggerTrait.php', + 'Psr\\Log\\NullLogger' => __DIR__ . '/..' . '/psr/log/Psr/Log/NullLogger.php', + 'Sabre\\CalDAV\\Backend\\AbstractBackend' => __DIR__ . '/..' . '/sabre/dav/lib/CalDAV/Backend/AbstractBackend.php', + 'Sabre\\CalDAV\\Backend\\BackendInterface' => __DIR__ . '/..' . '/sabre/dav/lib/CalDAV/Backend/BackendInterface.php', + 'Sabre\\CalDAV\\Backend\\NotificationSupport' => __DIR__ . '/..' . '/sabre/dav/lib/CalDAV/Backend/NotificationSupport.php', + 'Sabre\\CalDAV\\Backend\\PDO' => __DIR__ . '/..' . '/sabre/dav/lib/CalDAV/Backend/PDO.php', + 'Sabre\\CalDAV\\Backend\\SchedulingSupport' => __DIR__ . '/..' . '/sabre/dav/lib/CalDAV/Backend/SchedulingSupport.php', + 'Sabre\\CalDAV\\Backend\\SharingSupport' => __DIR__ . '/..' . '/sabre/dav/lib/CalDAV/Backend/SharingSupport.php', + 'Sabre\\CalDAV\\Backend\\SimplePDO' => __DIR__ . '/..' . '/sabre/dav/lib/CalDAV/Backend/SimplePDO.php', + 'Sabre\\CalDAV\\Backend\\SubscriptionSupport' => __DIR__ . '/..' . '/sabre/dav/lib/CalDAV/Backend/SubscriptionSupport.php', + 'Sabre\\CalDAV\\Backend\\SyncSupport' => __DIR__ . '/..' . '/sabre/dav/lib/CalDAV/Backend/SyncSupport.php', + 'Sabre\\CalDAV\\Calendar' => __DIR__ . '/..' . '/sabre/dav/lib/CalDAV/Calendar.php', + 'Sabre\\CalDAV\\CalendarHome' => __DIR__ . '/..' . '/sabre/dav/lib/CalDAV/CalendarHome.php', + 'Sabre\\CalDAV\\CalendarObject' => __DIR__ . '/..' . '/sabre/dav/lib/CalDAV/CalendarObject.php', + 'Sabre\\CalDAV\\CalendarQueryValidator' => __DIR__ . '/..' . '/sabre/dav/lib/CalDAV/CalendarQueryValidator.php', + 'Sabre\\CalDAV\\CalendarRoot' => __DIR__ . '/..' . '/sabre/dav/lib/CalDAV/CalendarRoot.php', + 'Sabre\\CalDAV\\Exception\\InvalidComponentType' => __DIR__ . '/..' . '/sabre/dav/lib/CalDAV/Exception/InvalidComponentType.php', + 'Sabre\\CalDAV\\ICSExportPlugin' => __DIR__ . '/..' . '/sabre/dav/lib/CalDAV/ICSExportPlugin.php', + 'Sabre\\CalDAV\\ICalendar' => __DIR__ . '/..' . '/sabre/dav/lib/CalDAV/ICalendar.php', + 'Sabre\\CalDAV\\ICalendarObject' => __DIR__ . '/..' . '/sabre/dav/lib/CalDAV/ICalendarObject.php', + 'Sabre\\CalDAV\\ICalendarObjectContainer' => __DIR__ . '/..' . '/sabre/dav/lib/CalDAV/ICalendarObjectContainer.php', + 'Sabre\\CalDAV\\ISharedCalendar' => __DIR__ . '/..' . '/sabre/dav/lib/CalDAV/ISharedCalendar.php', + 'Sabre\\CalDAV\\Notifications\\Collection' => __DIR__ . '/..' . '/sabre/dav/lib/CalDAV/Notifications/Collection.php', + 'Sabre\\CalDAV\\Notifications\\ICollection' => __DIR__ . '/..' . '/sabre/dav/lib/CalDAV/Notifications/ICollection.php', + 'Sabre\\CalDAV\\Notifications\\INode' => __DIR__ . '/..' . '/sabre/dav/lib/CalDAV/Notifications/INode.php', + 'Sabre\\CalDAV\\Notifications\\Node' => __DIR__ . '/..' . '/sabre/dav/lib/CalDAV/Notifications/Node.php', + 'Sabre\\CalDAV\\Notifications\\Plugin' => __DIR__ . '/..' . '/sabre/dav/lib/CalDAV/Notifications/Plugin.php', + 'Sabre\\CalDAV\\Plugin' => __DIR__ . '/..' . '/sabre/dav/lib/CalDAV/Plugin.php', + 'Sabre\\CalDAV\\Principal\\Collection' => __DIR__ . '/..' . '/sabre/dav/lib/CalDAV/Principal/Collection.php', + 'Sabre\\CalDAV\\Principal\\IProxyRead' => __DIR__ . '/..' . '/sabre/dav/lib/CalDAV/Principal/IProxyRead.php', + 'Sabre\\CalDAV\\Principal\\IProxyWrite' => __DIR__ . '/..' . '/sabre/dav/lib/CalDAV/Principal/IProxyWrite.php', + 'Sabre\\CalDAV\\Principal\\ProxyRead' => __DIR__ . '/..' . '/sabre/dav/lib/CalDAV/Principal/ProxyRead.php', + 'Sabre\\CalDAV\\Principal\\ProxyWrite' => __DIR__ . '/..' . '/sabre/dav/lib/CalDAV/Principal/ProxyWrite.php', + 'Sabre\\CalDAV\\Principal\\User' => __DIR__ . '/..' . '/sabre/dav/lib/CalDAV/Principal/User.php', + 'Sabre\\CalDAV\\Schedule\\IInbox' => __DIR__ . '/..' . '/sabre/dav/lib/CalDAV/Schedule/IInbox.php', + 'Sabre\\CalDAV\\Schedule\\IMipPlugin' => __DIR__ . '/..' . '/sabre/dav/lib/CalDAV/Schedule/IMipPlugin.php', + 'Sabre\\CalDAV\\Schedule\\IOutbox' => __DIR__ . '/..' . '/sabre/dav/lib/CalDAV/Schedule/IOutbox.php', + 'Sabre\\CalDAV\\Schedule\\ISchedulingObject' => __DIR__ . '/..' . '/sabre/dav/lib/CalDAV/Schedule/ISchedulingObject.php', + 'Sabre\\CalDAV\\Schedule\\Inbox' => __DIR__ . '/..' . '/sabre/dav/lib/CalDAV/Schedule/Inbox.php', + 'Sabre\\CalDAV\\Schedule\\Outbox' => __DIR__ . '/..' . '/sabre/dav/lib/CalDAV/Schedule/Outbox.php', + 'Sabre\\CalDAV\\Schedule\\Plugin' => __DIR__ . '/..' . '/sabre/dav/lib/CalDAV/Schedule/Plugin.php', + 'Sabre\\CalDAV\\Schedule\\SchedulingObject' => __DIR__ . '/..' . '/sabre/dav/lib/CalDAV/Schedule/SchedulingObject.php', + 'Sabre\\CalDAV\\SharedCalendar' => __DIR__ . '/..' . '/sabre/dav/lib/CalDAV/SharedCalendar.php', + 'Sabre\\CalDAV\\SharingPlugin' => __DIR__ . '/..' . '/sabre/dav/lib/CalDAV/SharingPlugin.php', + 'Sabre\\CalDAV\\Subscriptions\\ISubscription' => __DIR__ . '/..' . '/sabre/dav/lib/CalDAV/Subscriptions/ISubscription.php', + 'Sabre\\CalDAV\\Subscriptions\\Plugin' => __DIR__ . '/..' . '/sabre/dav/lib/CalDAV/Subscriptions/Plugin.php', + 'Sabre\\CalDAV\\Subscriptions\\Subscription' => __DIR__ . '/..' . '/sabre/dav/lib/CalDAV/Subscriptions/Subscription.php', + 'Sabre\\CalDAV\\Xml\\Filter\\CalendarData' => __DIR__ . '/..' . '/sabre/dav/lib/CalDAV/Xml/Filter/CalendarData.php', + 'Sabre\\CalDAV\\Xml\\Filter\\CompFilter' => __DIR__ . '/..' . '/sabre/dav/lib/CalDAV/Xml/Filter/CompFilter.php', + 'Sabre\\CalDAV\\Xml\\Filter\\ParamFilter' => __DIR__ . '/..' . '/sabre/dav/lib/CalDAV/Xml/Filter/ParamFilter.php', + 'Sabre\\CalDAV\\Xml\\Filter\\PropFilter' => __DIR__ . '/..' . '/sabre/dav/lib/CalDAV/Xml/Filter/PropFilter.php', + 'Sabre\\CalDAV\\Xml\\Notification\\Invite' => __DIR__ . '/..' . '/sabre/dav/lib/CalDAV/Xml/Notification/Invite.php', + 'Sabre\\CalDAV\\Xml\\Notification\\InviteReply' => __DIR__ . '/..' . '/sabre/dav/lib/CalDAV/Xml/Notification/InviteReply.php', + 'Sabre\\CalDAV\\Xml\\Notification\\NotificationInterface' => __DIR__ . '/..' . '/sabre/dav/lib/CalDAV/Xml/Notification/NotificationInterface.php', + 'Sabre\\CalDAV\\Xml\\Notification\\SystemStatus' => __DIR__ . '/..' . '/sabre/dav/lib/CalDAV/Xml/Notification/SystemStatus.php', + 'Sabre\\CalDAV\\Xml\\Property\\AllowedSharingModes' => __DIR__ . '/..' . '/sabre/dav/lib/CalDAV/Xml/Property/AllowedSharingModes.php', + 'Sabre\\CalDAV\\Xml\\Property\\EmailAddressSet' => __DIR__ . '/..' . '/sabre/dav/lib/CalDAV/Xml/Property/EmailAddressSet.php', + 'Sabre\\CalDAV\\Xml\\Property\\Invite' => __DIR__ . '/..' . '/sabre/dav/lib/CalDAV/Xml/Property/Invite.php', + 'Sabre\\CalDAV\\Xml\\Property\\ScheduleCalendarTransp' => __DIR__ . '/..' . '/sabre/dav/lib/CalDAV/Xml/Property/ScheduleCalendarTransp.php', + 'Sabre\\CalDAV\\Xml\\Property\\SupportedCalendarComponentSet' => __DIR__ . '/..' . '/sabre/dav/lib/CalDAV/Xml/Property/SupportedCalendarComponentSet.php', + 'Sabre\\CalDAV\\Xml\\Property\\SupportedCalendarData' => __DIR__ . '/..' . '/sabre/dav/lib/CalDAV/Xml/Property/SupportedCalendarData.php', + 'Sabre\\CalDAV\\Xml\\Property\\SupportedCollationSet' => __DIR__ . '/..' . '/sabre/dav/lib/CalDAV/Xml/Property/SupportedCollationSet.php', + 'Sabre\\CalDAV\\Xml\\Request\\CalendarMultiGetReport' => __DIR__ . '/..' . '/sabre/dav/lib/CalDAV/Xml/Request/CalendarMultiGetReport.php', + 'Sabre\\CalDAV\\Xml\\Request\\CalendarQueryReport' => __DIR__ . '/..' . '/sabre/dav/lib/CalDAV/Xml/Request/CalendarQueryReport.php', + 'Sabre\\CalDAV\\Xml\\Request\\FreeBusyQueryReport' => __DIR__ . '/..' . '/sabre/dav/lib/CalDAV/Xml/Request/FreeBusyQueryReport.php', + 'Sabre\\CalDAV\\Xml\\Request\\InviteReply' => __DIR__ . '/..' . '/sabre/dav/lib/CalDAV/Xml/Request/InviteReply.php', + 'Sabre\\CalDAV\\Xml\\Request\\MkCalendar' => __DIR__ . '/..' . '/sabre/dav/lib/CalDAV/Xml/Request/MkCalendar.php', + 'Sabre\\CalDAV\\Xml\\Request\\Share' => __DIR__ . '/..' . '/sabre/dav/lib/CalDAV/Xml/Request/Share.php', + 'Sabre\\CardDAV\\AddressBook' => __DIR__ . '/..' . '/sabre/dav/lib/CardDAV/AddressBook.php', + 'Sabre\\CardDAV\\AddressBookHome' => __DIR__ . '/..' . '/sabre/dav/lib/CardDAV/AddressBookHome.php', + 'Sabre\\CardDAV\\AddressBookRoot' => __DIR__ . '/..' . '/sabre/dav/lib/CardDAV/AddressBookRoot.php', + 'Sabre\\CardDAV\\Backend\\AbstractBackend' => __DIR__ . '/..' . '/sabre/dav/lib/CardDAV/Backend/AbstractBackend.php', + 'Sabre\\CardDAV\\Backend\\BackendInterface' => __DIR__ . '/..' . '/sabre/dav/lib/CardDAV/Backend/BackendInterface.php', + 'Sabre\\CardDAV\\Backend\\PDO' => __DIR__ . '/..' . '/sabre/dav/lib/CardDAV/Backend/PDO.php', + 'Sabre\\CardDAV\\Backend\\SyncSupport' => __DIR__ . '/..' . '/sabre/dav/lib/CardDAV/Backend/SyncSupport.php', + 'Sabre\\CardDAV\\Card' => __DIR__ . '/..' . '/sabre/dav/lib/CardDAV/Card.php', + 'Sabre\\CardDAV\\IAddressBook' => __DIR__ . '/..' . '/sabre/dav/lib/CardDAV/IAddressBook.php', + 'Sabre\\CardDAV\\ICard' => __DIR__ . '/..' . '/sabre/dav/lib/CardDAV/ICard.php', + 'Sabre\\CardDAV\\IDirectory' => __DIR__ . '/..' . '/sabre/dav/lib/CardDAV/IDirectory.php', + 'Sabre\\CardDAV\\Plugin' => __DIR__ . '/..' . '/sabre/dav/lib/CardDAV/Plugin.php', + 'Sabre\\CardDAV\\VCFExportPlugin' => __DIR__ . '/..' . '/sabre/dav/lib/CardDAV/VCFExportPlugin.php', + 'Sabre\\CardDAV\\Xml\\Filter\\AddressData' => __DIR__ . '/..' . '/sabre/dav/lib/CardDAV/Xml/Filter/AddressData.php', + 'Sabre\\CardDAV\\Xml\\Filter\\ParamFilter' => __DIR__ . '/..' . '/sabre/dav/lib/CardDAV/Xml/Filter/ParamFilter.php', + 'Sabre\\CardDAV\\Xml\\Filter\\PropFilter' => __DIR__ . '/..' . '/sabre/dav/lib/CardDAV/Xml/Filter/PropFilter.php', + 'Sabre\\CardDAV\\Xml\\Property\\SupportedAddressData' => __DIR__ . '/..' . '/sabre/dav/lib/CardDAV/Xml/Property/SupportedAddressData.php', + 'Sabre\\CardDAV\\Xml\\Property\\SupportedCollationSet' => __DIR__ . '/..' . '/sabre/dav/lib/CardDAV/Xml/Property/SupportedCollationSet.php', + 'Sabre\\CardDAV\\Xml\\Request\\AddressBookMultiGetReport' => __DIR__ . '/..' . '/sabre/dav/lib/CardDAV/Xml/Request/AddressBookMultiGetReport.php', + 'Sabre\\CardDAV\\Xml\\Request\\AddressBookQueryReport' => __DIR__ . '/..' . '/sabre/dav/lib/CardDAV/Xml/Request/AddressBookQueryReport.php', + 'Sabre\\DAVACL\\ACLTrait' => __DIR__ . '/..' . '/sabre/dav/lib/DAVACL/ACLTrait.php', + 'Sabre\\DAVACL\\AbstractPrincipalCollection' => __DIR__ . '/..' . '/sabre/dav/lib/DAVACL/AbstractPrincipalCollection.php', + 'Sabre\\DAVACL\\Exception\\AceConflict' => __DIR__ . '/..' . '/sabre/dav/lib/DAVACL/Exception/AceConflict.php', + 'Sabre\\DAVACL\\Exception\\NeedPrivileges' => __DIR__ . '/..' . '/sabre/dav/lib/DAVACL/Exception/NeedPrivileges.php', + 'Sabre\\DAVACL\\Exception\\NoAbstract' => __DIR__ . '/..' . '/sabre/dav/lib/DAVACL/Exception/NoAbstract.php', + 'Sabre\\DAVACL\\Exception\\NotRecognizedPrincipal' => __DIR__ . '/..' . '/sabre/dav/lib/DAVACL/Exception/NotRecognizedPrincipal.php', + 'Sabre\\DAVACL\\Exception\\NotSupportedPrivilege' => __DIR__ . '/..' . '/sabre/dav/lib/DAVACL/Exception/NotSupportedPrivilege.php', + 'Sabre\\DAVACL\\FS\\Collection' => __DIR__ . '/..' . '/sabre/dav/lib/DAVACL/FS/Collection.php', + 'Sabre\\DAVACL\\FS\\File' => __DIR__ . '/..' . '/sabre/dav/lib/DAVACL/FS/File.php', + 'Sabre\\DAVACL\\FS\\HomeCollection' => __DIR__ . '/..' . '/sabre/dav/lib/DAVACL/FS/HomeCollection.php', + 'Sabre\\DAVACL\\IACL' => __DIR__ . '/..' . '/sabre/dav/lib/DAVACL/IACL.php', + 'Sabre\\DAVACL\\IPrincipal' => __DIR__ . '/..' . '/sabre/dav/lib/DAVACL/IPrincipal.php', + 'Sabre\\DAVACL\\IPrincipalCollection' => __DIR__ . '/..' . '/sabre/dav/lib/DAVACL/IPrincipalCollection.php', + 'Sabre\\DAVACL\\Plugin' => __DIR__ . '/..' . '/sabre/dav/lib/DAVACL/Plugin.php', + 'Sabre\\DAVACL\\Principal' => __DIR__ . '/..' . '/sabre/dav/lib/DAVACL/Principal.php', + 'Sabre\\DAVACL\\PrincipalBackend\\AbstractBackend' => __DIR__ . '/..' . '/sabre/dav/lib/DAVACL/PrincipalBackend/AbstractBackend.php', + 'Sabre\\DAVACL\\PrincipalBackend\\BackendInterface' => __DIR__ . '/..' . '/sabre/dav/lib/DAVACL/PrincipalBackend/BackendInterface.php', + 'Sabre\\DAVACL\\PrincipalBackend\\CreatePrincipalSupport' => __DIR__ . '/..' . '/sabre/dav/lib/DAVACL/PrincipalBackend/CreatePrincipalSupport.php', + 'Sabre\\DAVACL\\PrincipalBackend\\PDO' => __DIR__ . '/..' . '/sabre/dav/lib/DAVACL/PrincipalBackend/PDO.php', + 'Sabre\\DAVACL\\PrincipalCollection' => __DIR__ . '/..' . '/sabre/dav/lib/DAVACL/PrincipalCollection.php', + 'Sabre\\DAVACL\\Xml\\Property\\Acl' => __DIR__ . '/..' . '/sabre/dav/lib/DAVACL/Xml/Property/Acl.php', + 'Sabre\\DAVACL\\Xml\\Property\\AclRestrictions' => __DIR__ . '/..' . '/sabre/dav/lib/DAVACL/Xml/Property/AclRestrictions.php', + 'Sabre\\DAVACL\\Xml\\Property\\CurrentUserPrivilegeSet' => __DIR__ . '/..' . '/sabre/dav/lib/DAVACL/Xml/Property/CurrentUserPrivilegeSet.php', + 'Sabre\\DAVACL\\Xml\\Property\\Principal' => __DIR__ . '/..' . '/sabre/dav/lib/DAVACL/Xml/Property/Principal.php', + 'Sabre\\DAVACL\\Xml\\Property\\SupportedPrivilegeSet' => __DIR__ . '/..' . '/sabre/dav/lib/DAVACL/Xml/Property/SupportedPrivilegeSet.php', + 'Sabre\\DAVACL\\Xml\\Request\\AclPrincipalPropSetReport' => __DIR__ . '/..' . '/sabre/dav/lib/DAVACL/Xml/Request/AclPrincipalPropSetReport.php', + 'Sabre\\DAVACL\\Xml\\Request\\ExpandPropertyReport' => __DIR__ . '/..' . '/sabre/dav/lib/DAVACL/Xml/Request/ExpandPropertyReport.php', + 'Sabre\\DAVACL\\Xml\\Request\\PrincipalMatchReport' => __DIR__ . '/..' . '/sabre/dav/lib/DAVACL/Xml/Request/PrincipalMatchReport.php', + 'Sabre\\DAVACL\\Xml\\Request\\PrincipalPropertySearchReport' => __DIR__ . '/..' . '/sabre/dav/lib/DAVACL/Xml/Request/PrincipalPropertySearchReport.php', + 'Sabre\\DAVACL\\Xml\\Request\\PrincipalSearchPropertySetReport' => __DIR__ . '/..' . '/sabre/dav/lib/DAVACL/Xml/Request/PrincipalSearchPropertySetReport.php', + 'Sabre\\DAV\\Auth\\Backend\\AbstractBasic' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/Auth/Backend/AbstractBasic.php', + 'Sabre\\DAV\\Auth\\Backend\\AbstractBearer' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/Auth/Backend/AbstractBearer.php', + 'Sabre\\DAV\\Auth\\Backend\\AbstractDigest' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/Auth/Backend/AbstractDigest.php', + 'Sabre\\DAV\\Auth\\Backend\\Apache' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/Auth/Backend/Apache.php', + 'Sabre\\DAV\\Auth\\Backend\\BackendInterface' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/Auth/Backend/BackendInterface.php', + 'Sabre\\DAV\\Auth\\Backend\\BasicCallBack' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/Auth/Backend/BasicCallBack.php', + 'Sabre\\DAV\\Auth\\Backend\\File' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/Auth/Backend/File.php', + 'Sabre\\DAV\\Auth\\Backend\\PDO' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/Auth/Backend/PDO.php', + 'Sabre\\DAV\\Auth\\Plugin' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/Auth/Plugin.php', + 'Sabre\\DAV\\Browser\\GuessContentType' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/Browser/GuessContentType.php', + 'Sabre\\DAV\\Browser\\HtmlOutput' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/Browser/HtmlOutput.php', + 'Sabre\\DAV\\Browser\\HtmlOutputHelper' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/Browser/HtmlOutputHelper.php', + 'Sabre\\DAV\\Browser\\MapGetToPropFind' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/Browser/MapGetToPropFind.php', + 'Sabre\\DAV\\Browser\\Plugin' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/Browser/Plugin.php', + 'Sabre\\DAV\\Browser\\PropFindAll' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/Browser/PropFindAll.php', + 'Sabre\\DAV\\Client' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/Client.php', + 'Sabre\\DAV\\Collection' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/Collection.php', + 'Sabre\\DAV\\CorePlugin' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/CorePlugin.php', + 'Sabre\\DAV\\Exception' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/Exception.php', + 'Sabre\\DAV\\Exception\\BadRequest' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/Exception/BadRequest.php', + 'Sabre\\DAV\\Exception\\Conflict' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/Exception/Conflict.php', + 'Sabre\\DAV\\Exception\\ConflictingLock' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/Exception/ConflictingLock.php', + 'Sabre\\DAV\\Exception\\Forbidden' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/Exception/Forbidden.php', + 'Sabre\\DAV\\Exception\\InsufficientStorage' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/Exception/InsufficientStorage.php', + 'Sabre\\DAV\\Exception\\InvalidResourceType' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/Exception/InvalidResourceType.php', + 'Sabre\\DAV\\Exception\\InvalidSyncToken' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/Exception/InvalidSyncToken.php', + 'Sabre\\DAV\\Exception\\LengthRequired' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/Exception/LengthRequired.php', + 'Sabre\\DAV\\Exception\\LockTokenMatchesRequestUri' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/Exception/LockTokenMatchesRequestUri.php', + 'Sabre\\DAV\\Exception\\Locked' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/Exception/Locked.php', + 'Sabre\\DAV\\Exception\\MethodNotAllowed' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/Exception/MethodNotAllowed.php', + 'Sabre\\DAV\\Exception\\NotAuthenticated' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/Exception/NotAuthenticated.php', + 'Sabre\\DAV\\Exception\\NotFound' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/Exception/NotFound.php', + 'Sabre\\DAV\\Exception\\NotImplemented' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/Exception/NotImplemented.php', + 'Sabre\\DAV\\Exception\\PaymentRequired' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/Exception/PaymentRequired.php', + 'Sabre\\DAV\\Exception\\PreconditionFailed' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/Exception/PreconditionFailed.php', + 'Sabre\\DAV\\Exception\\ReportNotSupported' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/Exception/ReportNotSupported.php', + 'Sabre\\DAV\\Exception\\RequestedRangeNotSatisfiable' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/Exception/RequestedRangeNotSatisfiable.php', + 'Sabre\\DAV\\Exception\\ServiceUnavailable' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/Exception/ServiceUnavailable.php', + 'Sabre\\DAV\\Exception\\TooManyMatches' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/Exception/TooManyMatches.php', + 'Sabre\\DAV\\Exception\\UnsupportedMediaType' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/Exception/UnsupportedMediaType.php', + 'Sabre\\DAV\\FSExt\\Directory' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/FSExt/Directory.php', + 'Sabre\\DAV\\FSExt\\File' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/FSExt/File.php', + 'Sabre\\DAV\\FS\\Directory' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/FS/Directory.php', + 'Sabre\\DAV\\FS\\File' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/FS/File.php', + 'Sabre\\DAV\\FS\\Node' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/FS/Node.php', + 'Sabre\\DAV\\File' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/File.php', + 'Sabre\\DAV\\ICollection' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/ICollection.php', + 'Sabre\\DAV\\IExtendedCollection' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/IExtendedCollection.php', + 'Sabre\\DAV\\IFile' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/IFile.php', + 'Sabre\\DAV\\IMoveTarget' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/IMoveTarget.php', + 'Sabre\\DAV\\IMultiGet' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/IMultiGet.php', + 'Sabre\\DAV\\INode' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/INode.php', + 'Sabre\\DAV\\IProperties' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/IProperties.php', + 'Sabre\\DAV\\IQuota' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/IQuota.php', + 'Sabre\\DAV\\Locks\\Backend\\AbstractBackend' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/Locks/Backend/AbstractBackend.php', + 'Sabre\\DAV\\Locks\\Backend\\BackendInterface' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/Locks/Backend/BackendInterface.php', + 'Sabre\\DAV\\Locks\\Backend\\File' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/Locks/Backend/File.php', + 'Sabre\\DAV\\Locks\\Backend\\PDO' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/Locks/Backend/PDO.php', + 'Sabre\\DAV\\Locks\\LockInfo' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/Locks/LockInfo.php', + 'Sabre\\DAV\\Locks\\Plugin' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/Locks/Plugin.php', + 'Sabre\\DAV\\MkCol' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/MkCol.php', + 'Sabre\\DAV\\Mount\\Plugin' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/Mount/Plugin.php', + 'Sabre\\DAV\\Node' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/Node.php', + 'Sabre\\DAV\\PartialUpdate\\IPatchSupport' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/PartialUpdate/IPatchSupport.php', + 'Sabre\\DAV\\PartialUpdate\\Plugin' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/PartialUpdate/Plugin.php', + 'Sabre\\DAV\\PropFind' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/PropFind.php', + 'Sabre\\DAV\\PropPatch' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/PropPatch.php', + 'Sabre\\DAV\\PropertyStorage\\Backend\\BackendInterface' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/PropertyStorage/Backend/BackendInterface.php', + 'Sabre\\DAV\\PropertyStorage\\Backend\\PDO' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/PropertyStorage/Backend/PDO.php', + 'Sabre\\DAV\\PropertyStorage\\Plugin' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/PropertyStorage/Plugin.php', + 'Sabre\\DAV\\Server' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/Server.php', + 'Sabre\\DAV\\ServerPlugin' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/ServerPlugin.php', + 'Sabre\\DAV\\Sharing\\ISharedNode' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/Sharing/ISharedNode.php', + 'Sabre\\DAV\\Sharing\\Plugin' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/Sharing/Plugin.php', + 'Sabre\\DAV\\SimpleCollection' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/SimpleCollection.php', + 'Sabre\\DAV\\SimpleFile' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/SimpleFile.php', + 'Sabre\\DAV\\StringUtil' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/StringUtil.php', + 'Sabre\\DAV\\Sync\\ISyncCollection' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/Sync/ISyncCollection.php', + 'Sabre\\DAV\\Sync\\Plugin' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/Sync/Plugin.php', + 'Sabre\\DAV\\TemporaryFileFilterPlugin' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/TemporaryFileFilterPlugin.php', + 'Sabre\\DAV\\Tree' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/Tree.php', + 'Sabre\\DAV\\UUIDUtil' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/UUIDUtil.php', + 'Sabre\\DAV\\Version' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/Version.php', + 'Sabre\\DAV\\Xml\\Element\\Prop' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/Xml/Element/Prop.php', + 'Sabre\\DAV\\Xml\\Element\\Response' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/Xml/Element/Response.php', + 'Sabre\\DAV\\Xml\\Element\\Sharee' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/Xml/Element/Sharee.php', + 'Sabre\\DAV\\Xml\\Property\\Complex' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/Xml/Property/Complex.php', + 'Sabre\\DAV\\Xml\\Property\\GetLastModified' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/Xml/Property/GetLastModified.php', + 'Sabre\\DAV\\Xml\\Property\\Href' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/Xml/Property/Href.php', + 'Sabre\\DAV\\Xml\\Property\\Invite' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/Xml/Property/Invite.php', + 'Sabre\\DAV\\Xml\\Property\\LocalHref' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/Xml/Property/LocalHref.php', + 'Sabre\\DAV\\Xml\\Property\\LockDiscovery' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/Xml/Property/LockDiscovery.php', + 'Sabre\\DAV\\Xml\\Property\\ResourceType' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/Xml/Property/ResourceType.php', + 'Sabre\\DAV\\Xml\\Property\\ShareAccess' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/Xml/Property/ShareAccess.php', + 'Sabre\\DAV\\Xml\\Property\\SupportedLock' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/Xml/Property/SupportedLock.php', + 'Sabre\\DAV\\Xml\\Property\\SupportedMethodSet' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/Xml/Property/SupportedMethodSet.php', + 'Sabre\\DAV\\Xml\\Property\\SupportedReportSet' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/Xml/Property/SupportedReportSet.php', + 'Sabre\\DAV\\Xml\\Request\\Lock' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/Xml/Request/Lock.php', + 'Sabre\\DAV\\Xml\\Request\\MkCol' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/Xml/Request/MkCol.php', + 'Sabre\\DAV\\Xml\\Request\\PropFind' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/Xml/Request/PropFind.php', + 'Sabre\\DAV\\Xml\\Request\\PropPatch' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/Xml/Request/PropPatch.php', + 'Sabre\\DAV\\Xml\\Request\\ShareResource' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/Xml/Request/ShareResource.php', + 'Sabre\\DAV\\Xml\\Request\\SyncCollectionReport' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/Xml/Request/SyncCollectionReport.php', + 'Sabre\\DAV\\Xml\\Response\\MultiStatus' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/Xml/Response/MultiStatus.php', + 'Sabre\\DAV\\Xml\\Service' => __DIR__ . '/..' . '/sabre/dav/lib/DAV/Xml/Service.php', + 'Sabre\\Event\\EventEmitter' => __DIR__ . '/..' . '/sabre/event/lib/EventEmitter.php', + 'Sabre\\Event\\EventEmitterInterface' => __DIR__ . '/..' . '/sabre/event/lib/EventEmitterInterface.php', + 'Sabre\\Event\\EventEmitterTrait' => __DIR__ . '/..' . '/sabre/event/lib/EventEmitterTrait.php', + 'Sabre\\Event\\Loop\\Loop' => __DIR__ . '/..' . '/sabre/event/lib/Loop/Loop.php', + 'Sabre\\Event\\Promise' => __DIR__ . '/..' . '/sabre/event/lib/Promise.php', + 'Sabre\\Event\\PromiseAlreadyResolvedException' => __DIR__ . '/..' . '/sabre/event/lib/PromiseAlreadyResolvedException.php', + 'Sabre\\Event\\Version' => __DIR__ . '/..' . '/sabre/event/lib/Version.php', + 'Sabre\\HTTP\\Auth\\AWS' => __DIR__ . '/..' . '/sabre/http/lib/Auth/AWS.php', + 'Sabre\\HTTP\\Auth\\AbstractAuth' => __DIR__ . '/..' . '/sabre/http/lib/Auth/AbstractAuth.php', + 'Sabre\\HTTP\\Auth\\Basic' => __DIR__ . '/..' . '/sabre/http/lib/Auth/Basic.php', + 'Sabre\\HTTP\\Auth\\Bearer' => __DIR__ . '/..' . '/sabre/http/lib/Auth/Bearer.php', + 'Sabre\\HTTP\\Auth\\Digest' => __DIR__ . '/..' . '/sabre/http/lib/Auth/Digest.php', + 'Sabre\\HTTP\\Client' => __DIR__ . '/..' . '/sabre/http/lib/Client.php', + 'Sabre\\HTTP\\ClientException' => __DIR__ . '/..' . '/sabre/http/lib/ClientException.php', + 'Sabre\\HTTP\\ClientHttpException' => __DIR__ . '/..' . '/sabre/http/lib/ClientHttpException.php', + 'Sabre\\HTTP\\HttpException' => __DIR__ . '/..' . '/sabre/http/lib/HttpException.php', + 'Sabre\\HTTP\\Message' => __DIR__ . '/..' . '/sabre/http/lib/Message.php', + 'Sabre\\HTTP\\MessageDecoratorTrait' => __DIR__ . '/..' . '/sabre/http/lib/MessageDecoratorTrait.php', + 'Sabre\\HTTP\\MessageInterface' => __DIR__ . '/..' . '/sabre/http/lib/MessageInterface.php', + 'Sabre\\HTTP\\Request' => __DIR__ . '/..' . '/sabre/http/lib/Request.php', + 'Sabre\\HTTP\\RequestDecorator' => __DIR__ . '/..' . '/sabre/http/lib/RequestDecorator.php', + 'Sabre\\HTTP\\RequestInterface' => __DIR__ . '/..' . '/sabre/http/lib/RequestInterface.php', + 'Sabre\\HTTP\\Response' => __DIR__ . '/..' . '/sabre/http/lib/Response.php', + 'Sabre\\HTTP\\ResponseDecorator' => __DIR__ . '/..' . '/sabre/http/lib/ResponseDecorator.php', + 'Sabre\\HTTP\\ResponseInterface' => __DIR__ . '/..' . '/sabre/http/lib/ResponseInterface.php', + 'Sabre\\HTTP\\Sapi' => __DIR__ . '/..' . '/sabre/http/lib/Sapi.php', + 'Sabre\\HTTP\\URLUtil' => __DIR__ . '/..' . '/sabre/http/lib/URLUtil.php', + 'Sabre\\HTTP\\Util' => __DIR__ . '/..' . '/sabre/http/lib/Util.php', + 'Sabre\\HTTP\\Version' => __DIR__ . '/..' . '/sabre/http/lib/Version.php', + 'Sabre\\Uri\\Version' => __DIR__ . '/..' . '/sabre/uri/lib/Version.php', + 'Sabre\\VObject\\BirthdayCalendarGenerator' => __DIR__ . '/..' . '/sabre/vobject/lib/BirthdayCalendarGenerator.php', + 'Sabre\\VObject\\Cli' => __DIR__ . '/..' . '/sabre/vobject/lib/Cli.php', + 'Sabre\\VObject\\Component' => __DIR__ . '/..' . '/sabre/vobject/lib/Component.php', + 'Sabre\\VObject\\Component\\Available' => __DIR__ . '/..' . '/sabre/vobject/lib/Component/Available.php', + 'Sabre\\VObject\\Component\\VAlarm' => __DIR__ . '/..' . '/sabre/vobject/lib/Component/VAlarm.php', + 'Sabre\\VObject\\Component\\VAvailability' => __DIR__ . '/..' . '/sabre/vobject/lib/Component/VAvailability.php', + 'Sabre\\VObject\\Component\\VCalendar' => __DIR__ . '/..' . '/sabre/vobject/lib/Component/VCalendar.php', + 'Sabre\\VObject\\Component\\VCard' => __DIR__ . '/..' . '/sabre/vobject/lib/Component/VCard.php', + 'Sabre\\VObject\\Component\\VEvent' => __DIR__ . '/..' . '/sabre/vobject/lib/Component/VEvent.php', + 'Sabre\\VObject\\Component\\VFreeBusy' => __DIR__ . '/..' . '/sabre/vobject/lib/Component/VFreeBusy.php', + 'Sabre\\VObject\\Component\\VJournal' => __DIR__ . '/..' . '/sabre/vobject/lib/Component/VJournal.php', + 'Sabre\\VObject\\Component\\VTimeZone' => __DIR__ . '/..' . '/sabre/vobject/lib/Component/VTimeZone.php', + 'Sabre\\VObject\\Component\\VTodo' => __DIR__ . '/..' . '/sabre/vobject/lib/Component/VTodo.php', + 'Sabre\\VObject\\DateTimeParser' => __DIR__ . '/..' . '/sabre/vobject/lib/DateTimeParser.php', + 'Sabre\\VObject\\Document' => __DIR__ . '/..' . '/sabre/vobject/lib/Document.php', + 'Sabre\\VObject\\ElementList' => __DIR__ . '/..' . '/sabre/vobject/lib/ElementList.php', + 'Sabre\\VObject\\EofException' => __DIR__ . '/..' . '/sabre/vobject/lib/EofException.php', + 'Sabre\\VObject\\FreeBusyData' => __DIR__ . '/..' . '/sabre/vobject/lib/FreeBusyData.php', + 'Sabre\\VObject\\FreeBusyGenerator' => __DIR__ . '/..' . '/sabre/vobject/lib/FreeBusyGenerator.php', + 'Sabre\\VObject\\ITip\\Broker' => __DIR__ . '/..' . '/sabre/vobject/lib/ITip/Broker.php', + 'Sabre\\VObject\\ITip\\ITipException' => __DIR__ . '/..' . '/sabre/vobject/lib/ITip/ITipException.php', + 'Sabre\\VObject\\ITip\\Message' => __DIR__ . '/..' . '/sabre/vobject/lib/ITip/Message.php', + 'Sabre\\VObject\\ITip\\SameOrganizerForAllComponentsException' => __DIR__ . '/..' . '/sabre/vobject/lib/ITip/SameOrganizerForAllComponentsException.php', + 'Sabre\\VObject\\InvalidDataException' => __DIR__ . '/..' . '/sabre/vobject/lib/InvalidDataException.php', + 'Sabre\\VObject\\Node' => __DIR__ . '/..' . '/sabre/vobject/lib/Node.php', + 'Sabre\\VObject\\PHPUnitAssertions' => __DIR__ . '/..' . '/sabre/vobject/lib/PHPUnitAssertions.php', + 'Sabre\\VObject\\Parameter' => __DIR__ . '/..' . '/sabre/vobject/lib/Parameter.php', + 'Sabre\\VObject\\ParseException' => __DIR__ . '/..' . '/sabre/vobject/lib/ParseException.php', + 'Sabre\\VObject\\Parser\\Json' => __DIR__ . '/..' . '/sabre/vobject/lib/Parser/Json.php', + 'Sabre\\VObject\\Parser\\MimeDir' => __DIR__ . '/..' . '/sabre/vobject/lib/Parser/MimeDir.php', + 'Sabre\\VObject\\Parser\\Parser' => __DIR__ . '/..' . '/sabre/vobject/lib/Parser/Parser.php', + 'Sabre\\VObject\\Parser\\XML' => __DIR__ . '/..' . '/sabre/vobject/lib/Parser/XML.php', + 'Sabre\\VObject\\Parser\\XML\\Element\\KeyValue' => __DIR__ . '/..' . '/sabre/vobject/lib/Parser/XML/Element/KeyValue.php', + 'Sabre\\VObject\\Property' => __DIR__ . '/..' . '/sabre/vobject/lib/Property.php', + 'Sabre\\VObject\\Property\\Binary' => __DIR__ . '/..' . '/sabre/vobject/lib/Property/Binary.php', + 'Sabre\\VObject\\Property\\Boolean' => __DIR__ . '/..' . '/sabre/vobject/lib/Property/Boolean.php', + 'Sabre\\VObject\\Property\\FlatText' => __DIR__ . '/..' . '/sabre/vobject/lib/Property/FlatText.php', + 'Sabre\\VObject\\Property\\FloatValue' => __DIR__ . '/..' . '/sabre/vobject/lib/Property/FloatValue.php', + 'Sabre\\VObject\\Property\\ICalendar\\CalAddress' => __DIR__ . '/..' . '/sabre/vobject/lib/Property/ICalendar/CalAddress.php', + 'Sabre\\VObject\\Property\\ICalendar\\Date' => __DIR__ . '/..' . '/sabre/vobject/lib/Property/ICalendar/Date.php', + 'Sabre\\VObject\\Property\\ICalendar\\DateTime' => __DIR__ . '/..' . '/sabre/vobject/lib/Property/ICalendar/DateTime.php', + 'Sabre\\VObject\\Property\\ICalendar\\Duration' => __DIR__ . '/..' . '/sabre/vobject/lib/Property/ICalendar/Duration.php', + 'Sabre\\VObject\\Property\\ICalendar\\Period' => __DIR__ . '/..' . '/sabre/vobject/lib/Property/ICalendar/Period.php', + 'Sabre\\VObject\\Property\\ICalendar\\Recur' => __DIR__ . '/..' . '/sabre/vobject/lib/Property/ICalendar/Recur.php', + 'Sabre\\VObject\\Property\\IntegerValue' => __DIR__ . '/..' . '/sabre/vobject/lib/Property/IntegerValue.php', + 'Sabre\\VObject\\Property\\Text' => __DIR__ . '/..' . '/sabre/vobject/lib/Property/Text.php', + 'Sabre\\VObject\\Property\\Time' => __DIR__ . '/..' . '/sabre/vobject/lib/Property/Time.php', + 'Sabre\\VObject\\Property\\Unknown' => __DIR__ . '/..' . '/sabre/vobject/lib/Property/Unknown.php', + 'Sabre\\VObject\\Property\\Uri' => __DIR__ . '/..' . '/sabre/vobject/lib/Property/Uri.php', + 'Sabre\\VObject\\Property\\UtcOffset' => __DIR__ . '/..' . '/sabre/vobject/lib/Property/UtcOffset.php', + 'Sabre\\VObject\\Property\\VCard\\Date' => __DIR__ . '/..' . '/sabre/vobject/lib/Property/VCard/Date.php', + 'Sabre\\VObject\\Property\\VCard\\DateAndOrTime' => __DIR__ . '/..' . '/sabre/vobject/lib/Property/VCard/DateAndOrTime.php', + 'Sabre\\VObject\\Property\\VCard\\DateTime' => __DIR__ . '/..' . '/sabre/vobject/lib/Property/VCard/DateTime.php', + 'Sabre\\VObject\\Property\\VCard\\LanguageTag' => __DIR__ . '/..' . '/sabre/vobject/lib/Property/VCard/LanguageTag.php', + 'Sabre\\VObject\\Property\\VCard\\TimeStamp' => __DIR__ . '/..' . '/sabre/vobject/lib/Property/VCard/TimeStamp.php', + 'Sabre\\VObject\\Reader' => __DIR__ . '/..' . '/sabre/vobject/lib/Reader.php', + 'Sabre\\VObject\\Recur\\EventIterator' => __DIR__ . '/..' . '/sabre/vobject/lib/Recur/EventIterator.php', + 'Sabre\\VObject\\Recur\\MaxInstancesExceededException' => __DIR__ . '/..' . '/sabre/vobject/lib/Recur/MaxInstancesExceededException.php', + 'Sabre\\VObject\\Recur\\NoInstancesException' => __DIR__ . '/..' . '/sabre/vobject/lib/Recur/NoInstancesException.php', + 'Sabre\\VObject\\Recur\\RDateIterator' => __DIR__ . '/..' . '/sabre/vobject/lib/Recur/RDateIterator.php', + 'Sabre\\VObject\\Recur\\RRuleIterator' => __DIR__ . '/..' . '/sabre/vobject/lib/Recur/RRuleIterator.php', + 'Sabre\\VObject\\Settings' => __DIR__ . '/..' . '/sabre/vobject/lib/Settings.php', + 'Sabre\\VObject\\Splitter\\ICalendar' => __DIR__ . '/..' . '/sabre/vobject/lib/Splitter/ICalendar.php', + 'Sabre\\VObject\\Splitter\\SplitterInterface' => __DIR__ . '/..' . '/sabre/vobject/lib/Splitter/SplitterInterface.php', + 'Sabre\\VObject\\Splitter\\VCard' => __DIR__ . '/..' . '/sabre/vobject/lib/Splitter/VCard.php', + 'Sabre\\VObject\\StringUtil' => __DIR__ . '/..' . '/sabre/vobject/lib/StringUtil.php', + 'Sabre\\VObject\\TimeZoneUtil' => __DIR__ . '/..' . '/sabre/vobject/lib/TimeZoneUtil.php', + 'Sabre\\VObject\\UUIDUtil' => __DIR__ . '/..' . '/sabre/vobject/lib/UUIDUtil.php', + 'Sabre\\VObject\\VCardConverter' => __DIR__ . '/..' . '/sabre/vobject/lib/VCardConverter.php', + 'Sabre\\VObject\\Version' => __DIR__ . '/..' . '/sabre/vobject/lib/Version.php', + 'Sabre\\VObject\\Writer' => __DIR__ . '/..' . '/sabre/vobject/lib/Writer.php', + 'Sabre\\Xml\\ContextStackTrait' => __DIR__ . '/..' . '/sabre/xml/lib/ContextStackTrait.php', + 'Sabre\\Xml\\Element' => __DIR__ . '/..' . '/sabre/xml/lib/Element.php', + 'Sabre\\Xml\\Element\\Base' => __DIR__ . '/..' . '/sabre/xml/lib/Element/Base.php', + 'Sabre\\Xml\\Element\\Cdata' => __DIR__ . '/..' . '/sabre/xml/lib/Element/Cdata.php', + 'Sabre\\Xml\\Element\\Elements' => __DIR__ . '/..' . '/sabre/xml/lib/Element/Elements.php', + 'Sabre\\Xml\\Element\\KeyValue' => __DIR__ . '/..' . '/sabre/xml/lib/Element/KeyValue.php', + 'Sabre\\Xml\\Element\\Uri' => __DIR__ . '/..' . '/sabre/xml/lib/Element/Uri.php', + 'Sabre\\Xml\\Element\\XmlFragment' => __DIR__ . '/..' . '/sabre/xml/lib/Element/XmlFragment.php', + 'Sabre\\Xml\\LibXMLException' => __DIR__ . '/..' . '/sabre/xml/lib/LibXMLException.php', + 'Sabre\\Xml\\ParseException' => __DIR__ . '/..' . '/sabre/xml/lib/ParseException.php', + 'Sabre\\Xml\\Reader' => __DIR__ . '/..' . '/sabre/xml/lib/Reader.php', + 'Sabre\\Xml\\Service' => __DIR__ . '/..' . '/sabre/xml/lib/Service.php', + 'Sabre\\Xml\\Version' => __DIR__ . '/..' . '/sabre/xml/lib/Version.php', + 'Sabre\\Xml\\Writer' => __DIR__ . '/..' . '/sabre/xml/lib/Writer.php', + 'Sabre\\Xml\\XmlDeserializable' => __DIR__ . '/..' . '/sabre/xml/lib/XmlDeserializable.php', + 'Sabre\\Xml\\XmlSerializable' => __DIR__ . '/..' . '/sabre/xml/lib/XmlSerializable.php', + 'Zotlabs\\Access\\AccessList' => __DIR__ . '/../..' . '/Zotlabs/Access/AccessList.php', + 'Zotlabs\\Access\\PermissionLimits' => __DIR__ . '/../..' . '/Zotlabs/Access/PermissionLimits.php', + 'Zotlabs\\Access\\PermissionRoles' => __DIR__ . '/../..' . '/Zotlabs/Access/PermissionRoles.php', + 'Zotlabs\\Access\\Permissions' => __DIR__ . '/../..' . '/Zotlabs/Access/Permissions.php', + 'Zotlabs\\Daemon\\Checksites' => __DIR__ . '/../..' . '/Zotlabs/Daemon/Checksites.php', + 'Zotlabs\\Daemon\\Cli_suggest' => __DIR__ . '/../..' . '/Zotlabs/Daemon/Cli_suggest.php', + 'Zotlabs\\Daemon\\Cron' => __DIR__ . '/../..' . '/Zotlabs/Daemon/Cron.php', + 'Zotlabs\\Daemon\\Cron_daily' => __DIR__ . '/../..' . '/Zotlabs/Daemon/Cron_daily.php', + 'Zotlabs\\Daemon\\Cron_weekly' => __DIR__ . '/../..' . '/Zotlabs/Daemon/Cron_weekly.php', + 'Zotlabs\\Daemon\\Cronhooks' => __DIR__ . '/../..' . '/Zotlabs/Daemon/Cronhooks.php', + 'Zotlabs\\Daemon\\CurlAuth' => __DIR__ . '/../..' . '/Zotlabs/Daemon/CurlAuth.php', + 'Zotlabs\\Daemon\\Deliver' => __DIR__ . '/../..' . '/Zotlabs/Daemon/Deliver.php', + 'Zotlabs\\Daemon\\Deliver_hooks' => __DIR__ . '/../..' . '/Zotlabs/Daemon/Deliver_hooks.php', + 'Zotlabs\\Daemon\\Directory' => __DIR__ . '/../..' . '/Zotlabs/Daemon/Directory.php', + 'Zotlabs\\Daemon\\Expire' => __DIR__ . '/../..' . '/Zotlabs/Daemon/Expire.php', + 'Zotlabs\\Daemon\\Externals' => __DIR__ . '/../..' . '/Zotlabs/Daemon/Externals.php', + 'Zotlabs\\Daemon\\Gprobe' => __DIR__ . '/../..' . '/Zotlabs/Daemon/Gprobe.php', + 'Zotlabs\\Daemon\\Importdoc' => __DIR__ . '/../..' . '/Zotlabs/Daemon/Importdoc.php', + 'Zotlabs\\Daemon\\Master' => __DIR__ . '/../..' . '/Zotlabs/Daemon/Master.php', + 'Zotlabs\\Daemon\\Notifier' => __DIR__ . '/../..' . '/Zotlabs/Daemon/Notifier.php', + 'Zotlabs\\Daemon\\Onedirsync' => __DIR__ . '/../..' . '/Zotlabs/Daemon/Onedirsync.php', + 'Zotlabs\\Daemon\\Onepoll' => __DIR__ . '/../..' . '/Zotlabs/Daemon/Onepoll.php', + 'Zotlabs\\Daemon\\Poller' => __DIR__ . '/../..' . '/Zotlabs/Daemon/Poller.php', + 'Zotlabs\\Daemon\\Queue' => __DIR__ . '/../..' . '/Zotlabs/Daemon/Queue.php', + 'Zotlabs\\Daemon\\Ratenotif' => __DIR__ . '/../..' . '/Zotlabs/Daemon/Ratenotif.php', + 'Zotlabs\\Extend\\Hook' => __DIR__ . '/../..' . '/Zotlabs/Extend/Hook.php', + 'Zotlabs\\Identity\\BasicId\\BasicId' => __DIR__ . '/../..' . '/Zotlabs/Identity/BasicId.php', + 'Zotlabs\\Identity\\ProfilePhoto\\ProfilePhoto' => __DIR__ . '/../..' . '/Zotlabs/Identity/ProfilePhoto.php', + 'Zotlabs\\Lib\\AConfig' => __DIR__ . '/../..' . '/Zotlabs/Lib/AConfig.php', + 'Zotlabs\\Lib\\AbConfig' => __DIR__ . '/../..' . '/Zotlabs/Lib/AbConfig.php', + 'Zotlabs\\Lib\\Api_router' => __DIR__ . '/../..' . '/Zotlabs/Lib/Api_router.php', + 'Zotlabs\\Lib\\Apps' => __DIR__ . '/../..' . '/Zotlabs/Lib/Apps.php', + 'Zotlabs\\Lib\\Cache' => __DIR__ . '/../..' . '/Zotlabs/Lib/Cache.php', + 'Zotlabs\\Lib\\Chatroom' => __DIR__ . '/../..' . '/Zotlabs/Lib/Chatroom.php', + 'Zotlabs\\Lib\\Config' => __DIR__ . '/../..' . '/Zotlabs/Lib/Config.php', + 'Zotlabs\\Lib\\Enotify' => __DIR__ . '/../..' . '/Zotlabs/Lib/Enotify.php', + 'Zotlabs\\Lib\\ExtendedZip' => __DIR__ . '/../..' . '/Zotlabs/Lib/ExtendedZip.php', + 'Zotlabs\\Lib\\IConfig' => __DIR__ . '/../..' . '/Zotlabs/Lib/IConfig.php', + 'Zotlabs\\Lib\\PConfig' => __DIR__ . '/../..' . '/Zotlabs/Lib/PConfig.php', + 'Zotlabs\\Lib\\PermissionDescription' => __DIR__ . '/../..' . '/Zotlabs/Lib/PermissionDescription.php', + 'Zotlabs\\Lib\\ProtoDriver' => __DIR__ . '/../..' . '/Zotlabs/Lib/ProtoDriver.php', + 'Zotlabs\\Lib\\SuperCurl' => __DIR__ . '/../..' . '/Zotlabs/Lib/SuperCurl.php', + 'Zotlabs\\Lib\\System' => __DIR__ . '/../..' . '/Zotlabs/Lib/System.php', + 'Zotlabs\\Lib\\Techlevels' => __DIR__ . '/../..' . '/Zotlabs/Lib/Techlevels.php', + 'Zotlabs\\Lib\\ThreadItem' => __DIR__ . '/../..' . '/Zotlabs/Lib/ThreadItem.php', + 'Zotlabs\\Lib\\ThreadStream' => __DIR__ . '/../..' . '/Zotlabs/Lib/ThreadStream.php', + 'Zotlabs\\Lib\\XConfig' => __DIR__ . '/../..' . '/Zotlabs/Lib/XConfig.php', + 'Zotlabs\\Lib\\ZotDriver' => __DIR__ . '/../..' . '/Zotlabs/Lib/ZotDriver.php', + 'Zotlabs\\Module\\Achievements' => __DIR__ . '/../..' . '/Zotlabs/Module/Achievements.php', + 'Zotlabs\\Module\\Acl' => __DIR__ . '/../..' . '/Zotlabs/Module/Acl.php', + 'Zotlabs\\Module\\Admin' => __DIR__ . '/../..' . '/Zotlabs/Module/Admin.php', + 'Zotlabs\\Module\\Admin\\Account_edit' => __DIR__ . '/../..' . '/Zotlabs/Module/Admin/Account_edit.php', + 'Zotlabs\\Module\\Admin\\Accounts' => __DIR__ . '/../..' . '/Zotlabs/Module/Admin/Accounts.php', + 'Zotlabs\\Module\\Admin\\Channels' => __DIR__ . '/../..' . '/Zotlabs/Module/Admin/Channels.php', + 'Zotlabs\\Module\\Admin\\Dbsync' => __DIR__ . '/../..' . '/Zotlabs/Module/Admin/Dbsync.php', + 'Zotlabs\\Module\\Admin\\Features' => __DIR__ . '/../..' . '/Zotlabs/Module/Admin/Features.php', + 'Zotlabs\\Module\\Admin\\Logs' => __DIR__ . '/../..' . '/Zotlabs/Module/Admin/Logs.php', + 'Zotlabs\\Module\\Admin\\Plugins' => __DIR__ . '/../..' . '/Zotlabs/Module/Admin/Plugins.php', + 'Zotlabs\\Module\\Admin\\Profs' => __DIR__ . '/../..' . '/Zotlabs/Module/Admin/Profs.php', + 'Zotlabs\\Module\\Admin\\Queue' => __DIR__ . '/../..' . '/Zotlabs/Module/Admin/Queue.php', + 'Zotlabs\\Module\\Admin\\Security' => __DIR__ . '/../..' . '/Zotlabs/Module/Admin/Security.php', + 'Zotlabs\\Module\\Admin\\Site' => __DIR__ . '/../..' . '/Zotlabs/Module/Admin/Site.php', + 'Zotlabs\\Module\\Admin\\Themes' => __DIR__ . '/../..' . '/Zotlabs/Module/Admin/Themes.php', + 'Zotlabs\\Module\\Api' => __DIR__ . '/../..' . '/Zotlabs/Module/Api.php', + 'Zotlabs\\Module\\Appman' => __DIR__ . '/../..' . '/Zotlabs/Module/Appman.php', + 'Zotlabs\\Module\\Apps' => __DIR__ . '/../..' . '/Zotlabs/Module/Apps.php', + 'Zotlabs\\Module\\Attach' => __DIR__ . '/../..' . '/Zotlabs/Module/Attach.php', + 'Zotlabs\\Module\\Authtest' => __DIR__ . '/../..' . '/Zotlabs/Module/Authtest.php', + 'Zotlabs\\Module\\Block' => __DIR__ . '/../..' . '/Zotlabs/Module/Block.php', + 'Zotlabs\\Module\\Blocks' => __DIR__ . '/../..' . '/Zotlabs/Module/Blocks.php', + 'Zotlabs\\Module\\Bookmarks' => __DIR__ . '/../..' . '/Zotlabs/Module/Bookmarks.php', + 'Zotlabs\\Module\\Branchtopic' => __DIR__ . '/../..' . '/Zotlabs/Module/Branchtopic.php', + 'Zotlabs\\Module\\Cal' => __DIR__ . '/../..' . '/Zotlabs/Module/Cal.php', + 'Zotlabs\\Module\\Channel' => __DIR__ . '/../..' . '/Zotlabs/Module/Channel.php', + 'Zotlabs\\Module\\Chanview' => __DIR__ . '/../..' . '/Zotlabs/Module/Chanview.php', + 'Zotlabs\\Module\\Chat' => __DIR__ . '/../..' . '/Zotlabs/Module/Chat.php', + 'Zotlabs\\Module\\Chatsvc' => __DIR__ . '/../..' . '/Zotlabs/Module/Chatsvc.php', + 'Zotlabs\\Module\\Cloud' => __DIR__ . '/../..' . '/Zotlabs/Module/Cloud.php', + 'Zotlabs\\Module\\Common' => __DIR__ . '/../..' . '/Zotlabs/Module/Common.php', + 'Zotlabs\\Module\\Connect' => __DIR__ . '/../..' . '/Zotlabs/Module/Connect.php', + 'Zotlabs\\Module\\Connections' => __DIR__ . '/../..' . '/Zotlabs/Module/Connections.php', + 'Zotlabs\\Module\\Connedit' => __DIR__ . '/../..' . '/Zotlabs/Module/Connedit.php', + 'Zotlabs\\Module\\Contactgroup' => __DIR__ . '/../..' . '/Zotlabs/Module/Contactgroup.php', + 'Zotlabs\\Module\\Cover_photo' => __DIR__ . '/../..' . '/Zotlabs/Module/Cover_photo.php', + 'Zotlabs\\Module\\Dav' => __DIR__ . '/../..' . '/Zotlabs/Module/Dav.php', + 'Zotlabs\\Module\\Directory' => __DIR__ . '/../..' . '/Zotlabs/Module/Directory.php', + 'Zotlabs\\Module\\Dirsearch' => __DIR__ . '/../..' . '/Zotlabs/Module/Dirsearch.php', + 'Zotlabs\\Module\\Display' => __DIR__ . '/../..' . '/Zotlabs/Module/Display.php', + 'Zotlabs\\Module\\Dreport' => __DIR__ . '/../..' . '/Zotlabs/Module/Dreport.php', + 'Zotlabs\\Module\\Editblock' => __DIR__ . '/../..' . '/Zotlabs/Module/Editblock.php', + 'Zotlabs\\Module\\Editlayout' => __DIR__ . '/../..' . '/Zotlabs/Module/Editlayout.php', + 'Zotlabs\\Module\\Editpost' => __DIR__ . '/../..' . '/Zotlabs/Module/Editpost.php', + 'Zotlabs\\Module\\Editwebpage' => __DIR__ . '/../..' . '/Zotlabs/Module/Editwebpage.php', + 'Zotlabs\\Module\\Embedphotos' => __DIR__ . '/../..' . '/Zotlabs/Module/Embedphotos.php', + 'Zotlabs\\Module\\Events' => __DIR__ . '/../..' . '/Zotlabs/Module/Events.php', + 'Zotlabs\\Module\\Fbrowser' => __DIR__ . '/../..' . '/Zotlabs/Module/Fbrowser.php', + 'Zotlabs\\Module\\Feed' => __DIR__ . '/../..' . '/Zotlabs/Module/Feed.php', + 'Zotlabs\\Module\\Ffsapi' => __DIR__ . '/../..' . '/Zotlabs/Module/Ffsapi.php', + 'Zotlabs\\Module\\Fhublocs' => __DIR__ . '/../..' . '/Zotlabs/Module/Fhublocs.php', + 'Zotlabs\\Module\\File_upload' => __DIR__ . '/../..' . '/Zotlabs/Module/File_upload.php', + 'Zotlabs\\Module\\Filer' => __DIR__ . '/../..' . '/Zotlabs/Module/Filer.php', + 'Zotlabs\\Module\\Filerm' => __DIR__ . '/../..' . '/Zotlabs/Module/Filerm.php', + 'Zotlabs\\Module\\Filestorage' => __DIR__ . '/../..' . '/Zotlabs/Module/Filestorage.php', + 'Zotlabs\\Module\\Follow' => __DIR__ . '/../..' . '/Zotlabs/Module/Follow.php', + 'Zotlabs\\Module\\Getfile' => __DIR__ . '/../..' . '/Zotlabs/Module/Getfile.php', + 'Zotlabs\\Module\\Group' => __DIR__ . '/../..' . '/Zotlabs/Module/Group.php', + 'Zotlabs\\Module\\Hcard' => __DIR__ . '/../..' . '/Zotlabs/Module/Hcard.php', + 'Zotlabs\\Module\\Help' => __DIR__ . '/../..' . '/Zotlabs/Module/Help.php', + 'Zotlabs\\Module\\Home' => __DIR__ . '/../..' . '/Zotlabs/Module/Home.php', + 'Zotlabs\\Module\\Hostxrd' => __DIR__ . '/../..' . '/Zotlabs/Module/Hostxrd.php', + 'Zotlabs\\Module\\Impel' => __DIR__ . '/../..' . '/Zotlabs/Module/Impel.php', + 'Zotlabs\\Module\\Import' => __DIR__ . '/../..' . '/Zotlabs/Module/Import.php', + 'Zotlabs\\Module\\Import_items' => __DIR__ . '/../..' . '/Zotlabs/Module/Import_items.php', + 'Zotlabs\\Module\\Invite' => __DIR__ . '/../..' . '/Zotlabs/Module/Invite.php', + 'Zotlabs\\Module\\Item' => __DIR__ . '/../..' . '/Zotlabs/Module/Item.php', + 'Zotlabs\\Module\\Lang' => __DIR__ . '/../..' . '/Zotlabs/Module/Lang.php', + 'Zotlabs\\Module\\Layouts' => __DIR__ . '/../..' . '/Zotlabs/Module/Layouts.php', + 'Zotlabs\\Module\\Like' => __DIR__ . '/../..' . '/Zotlabs/Module/Like.php', + 'Zotlabs\\Module\\Linkinfo' => __DIR__ . '/../..' . '/Zotlabs/Module/Linkinfo.php', + 'Zotlabs\\Module\\Lockview' => __DIR__ . '/../..' . '/Zotlabs/Module/Lockview.php', + 'Zotlabs\\Module\\Locs' => __DIR__ . '/../..' . '/Zotlabs/Module/Locs.php', + 'Zotlabs\\Module\\Login' => __DIR__ . '/../..' . '/Zotlabs/Module/Login.php', + 'Zotlabs\\Module\\Lostpass' => __DIR__ . '/../..' . '/Zotlabs/Module/Lostpass.php', + 'Zotlabs\\Module\\Magic' => __DIR__ . '/../..' . '/Zotlabs/Module/Magic.php', + 'Zotlabs\\Module\\Mail' => __DIR__ . '/../..' . '/Zotlabs/Module/Mail.php', + 'Zotlabs\\Module\\Manage' => __DIR__ . '/../..' . '/Zotlabs/Module/Manage.php', + 'Zotlabs\\Module\\Match' => __DIR__ . '/../..' . '/Zotlabs/Module/Match.php', + 'Zotlabs\\Module\\Menu' => __DIR__ . '/../..' . '/Zotlabs/Module/Menu.php', + 'Zotlabs\\Module\\Message' => __DIR__ . '/../..' . '/Zotlabs/Module/Message.php', + 'Zotlabs\\Module\\Mitem' => __DIR__ . '/../..' . '/Zotlabs/Module/Mitem.php', + 'Zotlabs\\Module\\Mood' => __DIR__ . '/../..' . '/Zotlabs/Module/Mood.php', + 'Zotlabs\\Module\\Network' => __DIR__ . '/../..' . '/Zotlabs/Module/Network.php', + 'Zotlabs\\Module\\New_channel' => __DIR__ . '/../..' . '/Zotlabs/Module/New_channel.php', + 'Zotlabs\\Module\\Nojs' => __DIR__ . '/../..' . '/Zotlabs/Module/Nojs.php', + 'Zotlabs\\Module\\Notes' => __DIR__ . '/../..' . '/Zotlabs/Module/Notes.php', + 'Zotlabs\\Module\\Notifications' => __DIR__ . '/../..' . '/Zotlabs/Module/Notifications.php', + 'Zotlabs\\Module\\Notify' => __DIR__ . '/../..' . '/Zotlabs/Module/Notify.php', + 'Zotlabs\\Module\\Oembed' => __DIR__ . '/../..' . '/Zotlabs/Module/Oembed.php', + 'Zotlabs\\Module\\Oep' => __DIR__ . '/../..' . '/Zotlabs/Module/Oep.php', + 'Zotlabs\\Module\\Oexchange' => __DIR__ . '/../..' . '/Zotlabs/Module/Oexchange.php', + 'Zotlabs\\Module\\Online' => __DIR__ . '/../..' . '/Zotlabs/Module/Online.php', + 'Zotlabs\\Module\\Opensearch' => __DIR__ . '/../..' . '/Zotlabs/Module/Opensearch.php', + 'Zotlabs\\Module\\Page' => __DIR__ . '/../..' . '/Zotlabs/Module/Page.php', + 'Zotlabs\\Module\\Pconfig' => __DIR__ . '/../..' . '/Zotlabs/Module/Pconfig.php', + 'Zotlabs\\Module\\Pdledit' => __DIR__ . '/../..' . '/Zotlabs/Module/Pdledit.php', + 'Zotlabs\\Module\\Photo' => __DIR__ . '/../..' . '/Zotlabs/Module/Photo.php', + 'Zotlabs\\Module\\Photos' => __DIR__ . '/../..' . '/Zotlabs/Module/Photos.php', + 'Zotlabs\\Module\\Ping' => __DIR__ . '/../..' . '/Zotlabs/Module/Ping.php', + 'Zotlabs\\Module\\Poco' => __DIR__ . '/../..' . '/Zotlabs/Module/Poco.php', + 'Zotlabs\\Module\\Poke' => __DIR__ . '/../..' . '/Zotlabs/Module/Poke.php', + 'Zotlabs\\Module\\Post' => __DIR__ . '/../..' . '/Zotlabs/Module/Post.php', + 'Zotlabs\\Module\\Prate' => __DIR__ . '/../..' . '/Zotlabs/Module/Prate.php', + 'Zotlabs\\Module\\Pretheme' => __DIR__ . '/../..' . '/Zotlabs/Module/Pretheme.php', + 'Zotlabs\\Module\\Probe' => __DIR__ . '/../..' . '/Zotlabs/Module/Probe.php', + 'Zotlabs\\Module\\Profile' => __DIR__ . '/../..' . '/Zotlabs/Module/Profile.php', + 'Zotlabs\\Module\\Profile_photo' => __DIR__ . '/../..' . '/Zotlabs/Module/Profile_photo.php', + 'Zotlabs\\Module\\Profiles' => __DIR__ . '/../..' . '/Zotlabs/Module/Profiles.php', + 'Zotlabs\\Module\\Profperm' => __DIR__ . '/../..' . '/Zotlabs/Module/Profperm.php', + 'Zotlabs\\Module\\Pubsites' => __DIR__ . '/../..' . '/Zotlabs/Module/Pubsites.php', + 'Zotlabs\\Module\\Pubstream' => __DIR__ . '/../..' . '/Zotlabs/Module/Pubstream.php', + 'Zotlabs\\Module\\Randprof' => __DIR__ . '/../..' . '/Zotlabs/Module/Randprof.php', + 'Zotlabs\\Module\\Rate' => __DIR__ . '/../..' . '/Zotlabs/Module/Rate.php', + 'Zotlabs\\Module\\Ratings' => __DIR__ . '/../..' . '/Zotlabs/Module/Ratings.php', + 'Zotlabs\\Module\\Ratingsearch' => __DIR__ . '/../..' . '/Zotlabs/Module/Ratingsearch.php', + 'Zotlabs\\Module\\Rbmark' => __DIR__ . '/../..' . '/Zotlabs/Module/Rbmark.php', + 'Zotlabs\\Module\\React' => __DIR__ . '/../..' . '/Zotlabs/Module/React.php', + 'Zotlabs\\Module\\Regdir' => __DIR__ . '/../..' . '/Zotlabs/Module/Regdir.php', + 'Zotlabs\\Module\\Register' => __DIR__ . '/../..' . '/Zotlabs/Module/Register.php', + 'Zotlabs\\Module\\Regmod' => __DIR__ . '/../..' . '/Zotlabs/Module/Regmod.php', + 'Zotlabs\\Module\\Regver' => __DIR__ . '/../..' . '/Zotlabs/Module/Regver.php', + 'Zotlabs\\Module\\Removeaccount' => __DIR__ . '/../..' . '/Zotlabs/Module/Removeaccount.php', + 'Zotlabs\\Module\\Removeme' => __DIR__ . '/../..' . '/Zotlabs/Module/Removeme.php', + 'Zotlabs\\Module\\Rmagic' => __DIR__ . '/../..' . '/Zotlabs/Module/Rmagic.php', + 'Zotlabs\\Module\\Rpost' => __DIR__ . '/../..' . '/Zotlabs/Module/Rpost.php', + 'Zotlabs\\Module\\Rsd_xml' => __DIR__ . '/../..' . '/Zotlabs/Module/Rsd_xml.php', + 'Zotlabs\\Module\\Search' => __DIR__ . '/../..' . '/Zotlabs/Module/Search.php', + 'Zotlabs\\Module\\Search_ac' => __DIR__ . '/../..' . '/Zotlabs/Module/Search_ac.php', + 'Zotlabs\\Module\\Service_limits' => __DIR__ . '/../..' . '/Zotlabs/Module/Service_limits.php', + 'Zotlabs\\Module\\Settings' => __DIR__ . '/../..' . '/Zotlabs/Module/Settings.php', + 'Zotlabs\\Module\\Settings\\Account' => __DIR__ . '/../..' . '/Zotlabs/Module/Settings/Account.php', + 'Zotlabs\\Module\\Settings\\Channel' => __DIR__ . '/../..' . '/Zotlabs/Module/Settings/Channel.php', + 'Zotlabs\\Module\\Settings\\Display' => __DIR__ . '/../..' . '/Zotlabs/Module/Settings/Display.php', + 'Zotlabs\\Module\\Settings\\Featured' => __DIR__ . '/../..' . '/Zotlabs/Module/Settings/Featured.php', + 'Zotlabs\\Module\\Settings\\Features' => __DIR__ . '/../..' . '/Zotlabs/Module/Settings/Features.php', + 'Zotlabs\\Module\\Settings\\Oauth' => __DIR__ . '/../..' . '/Zotlabs/Module/Settings/Oauth.php', + 'Zotlabs\\Module\\Settings\\Tokens' => __DIR__ . '/../..' . '/Zotlabs/Module/Settings/Tokens.php', + 'Zotlabs\\Module\\Setup' => __DIR__ . '/../..' . '/Zotlabs/Module/Setup.php', + 'Zotlabs\\Module\\Share' => __DIR__ . '/../..' . '/Zotlabs/Module/Share.php', + 'Zotlabs\\Module\\Sharedwithme' => __DIR__ . '/../..' . '/Zotlabs/Module/Sharedwithme.php', + 'Zotlabs\\Module\\Siteinfo' => __DIR__ . '/../..' . '/Zotlabs/Module/Siteinfo.php', + 'Zotlabs\\Module\\Siteinfo_json' => __DIR__ . '/../..' . '/Zotlabs/Module/Siteinfo_json.php', + 'Zotlabs\\Module\\Sitelist' => __DIR__ . '/../..' . '/Zotlabs/Module/Sitelist.php', + 'Zotlabs\\Module\\Smilies' => __DIR__ . '/../..' . '/Zotlabs/Module/Smilies.php', + 'Zotlabs\\Module\\Snap' => __DIR__ . '/../..' . '/Zotlabs/Module/Snap.php', + 'Zotlabs\\Module\\Sources' => __DIR__ . '/../..' . '/Zotlabs/Module/Sources.php', + 'Zotlabs\\Module\\Sslify' => __DIR__ . '/../..' . '/Zotlabs/Module/Sslify.php', + 'Zotlabs\\Module\\Starred' => __DIR__ . '/../..' . '/Zotlabs/Module/Starred.php', + 'Zotlabs\\Module\\Subthread' => __DIR__ . '/../..' . '/Zotlabs/Module/Subthread.php', + 'Zotlabs\\Module\\Suggest' => __DIR__ . '/../..' . '/Zotlabs/Module/Suggest.php', + 'Zotlabs\\Module\\Tagger' => __DIR__ . '/../..' . '/Zotlabs/Module/Tagger.php', + 'Zotlabs\\Module\\Tagrm' => __DIR__ . '/../..' . '/Zotlabs/Module/Tagrm.php', + 'Zotlabs\\Module\\Tasks' => __DIR__ . '/../..' . '/Zotlabs/Module/Tasks.php', + 'Zotlabs\\Module\\Theme_info' => __DIR__ . '/../..' . '/Zotlabs/Module/Theme_info.php', + 'Zotlabs\\Module\\Thing' => __DIR__ . '/../..' . '/Zotlabs/Module/Thing.php', + 'Zotlabs\\Module\\Toggle_mobile' => __DIR__ . '/../..' . '/Zotlabs/Module/Toggle_mobile.php', + 'Zotlabs\\Module\\Toggle_safesearch' => __DIR__ . '/../..' . '/Zotlabs/Module/Toggle_safesearch.php', + 'Zotlabs\\Module\\Uexport' => __DIR__ . '/../..' . '/Zotlabs/Module/Uexport.php', + 'Zotlabs\\Module\\Update_channel' => __DIR__ . '/../..' . '/Zotlabs/Module/Update_channel.php', + 'Zotlabs\\Module\\Update_display' => __DIR__ . '/../..' . '/Zotlabs/Module/Update_display.php', + 'Zotlabs\\Module\\Update_home' => __DIR__ . '/../..' . '/Zotlabs/Module/Update_home.php', + 'Zotlabs\\Module\\Update_network' => __DIR__ . '/../..' . '/Zotlabs/Module/Update_network.php', + 'Zotlabs\\Module\\Update_pubstream' => __DIR__ . '/../..' . '/Zotlabs/Module/Update_pubstream.php', + 'Zotlabs\\Module\\Update_search' => __DIR__ . '/../..' . '/Zotlabs/Module/Update_search.php', + 'Zotlabs\\Module\\View' => __DIR__ . '/../..' . '/Zotlabs/Module/View.php', + 'Zotlabs\\Module\\Viewconnections' => __DIR__ . '/../..' . '/Zotlabs/Module/Viewconnections.php', + 'Zotlabs\\Module\\Viewsrc' => __DIR__ . '/../..' . '/Zotlabs/Module/Viewsrc.php', + 'Zotlabs\\Module\\Wall_attach' => __DIR__ . '/../..' . '/Zotlabs/Module/Wall_attach.php', + 'Zotlabs\\Module\\Wall_upload' => __DIR__ . '/../..' . '/Zotlabs/Module/Wall_upload.php', + 'Zotlabs\\Module\\Webfinger' => __DIR__ . '/../..' . '/Zotlabs/Module/Webfinger.php', + 'Zotlabs\\Module\\Webpages' => __DIR__ . '/../..' . '/Zotlabs/Module/Webpages.php', + 'Zotlabs\\Module\\Well_known' => __DIR__ . '/../..' . '/Zotlabs/Module/Well_known.php', + 'Zotlabs\\Module\\Wfinger' => __DIR__ . '/../..' . '/Zotlabs/Module/Wfinger.php', + 'Zotlabs\\Module\\Wiki' => __DIR__ . '/../..' . '/Zotlabs/Module/Wiki.php', + 'Zotlabs\\Module\\Xchan' => __DIR__ . '/../..' . '/Zotlabs/Module/Xchan.php', + 'Zotlabs\\Module\\Xpoco' => __DIR__ . '/../..' . '/Zotlabs/Module/Xpoco.php', + 'Zotlabs\\Module\\Xrd' => __DIR__ . '/../..' . '/Zotlabs/Module/Xrd.php', + 'Zotlabs\\Module\\Xref' => __DIR__ . '/../..' . '/Zotlabs/Module/Xref.php', + 'Zotlabs\\Module\\Zfinger' => __DIR__ . '/../..' . '/Zotlabs/Module/Zfinger.php', + 'Zotlabs\\Module\\Zotfeed' => __DIR__ . '/../..' . '/Zotlabs/Module/Zotfeed.php', + 'Zotlabs\\Module\\Zping' => __DIR__ . '/../..' . '/Zotlabs/Module/Zping.php', + 'Zotlabs\\Render\\Comanche' => __DIR__ . '/../..' . '/Zotlabs/Render/Comanche.php', + 'Zotlabs\\Render\\SimpleTemplate' => __DIR__ . '/../..' . '/Zotlabs/Render/SimpleTemplate.php', + 'Zotlabs\\Render\\SmartyInterface' => __DIR__ . '/../..' . '/Zotlabs/Render/SmartyInterface.php', + 'Zotlabs\\Render\\SmartyTemplate' => __DIR__ . '/../..' . '/Zotlabs/Render/SmartyTemplate.php', + 'Zotlabs\\Render\\TemplateEngine' => __DIR__ . '/../..' . '/Zotlabs/Render/TemplateEngine.php', + 'Zotlabs\\Render\\Theme' => __DIR__ . '/../..' . '/Zotlabs/Render/Theme.php', + 'Zotlabs\\Storage\\BasicAuth' => __DIR__ . '/../..' . '/Zotlabs/Storage/BasicAuth.php', + 'Zotlabs\\Storage\\Browser' => __DIR__ . '/../..' . '/Zotlabs/Storage/Browser.php', + 'Zotlabs\\Storage\\CalDAVClient' => __DIR__ . '/../..' . '/Zotlabs/Storage/CalDAVClient.php', + 'Zotlabs\\Storage\\Directory' => __DIR__ . '/../..' . '/Zotlabs/Storage/Directory.php', + 'Zotlabs\\Storage\\File' => __DIR__ . '/../..' . '/Zotlabs/Storage/File.php', + 'Zotlabs\\Storage\\GitRepo' => __DIR__ . '/../..' . '/Zotlabs/Storage/GitRepo.php', + 'Zotlabs\\Text\\Tagadelic' => __DIR__ . '/../..' . '/Zotlabs/Text/Tagadelic.php', + 'Zotlabs\\Web\\CheckJS' => __DIR__ . '/../..' . '/Zotlabs/Web/CheckJS.php', + 'Zotlabs\\Web\\Controller' => __DIR__ . '/../..' . '/Zotlabs/Web/Controller.php', + 'Zotlabs\\Web\\HttpMeta' => __DIR__ . '/../..' . '/Zotlabs/Web/HttpMeta.php', + 'Zotlabs\\Web\\Router' => __DIR__ . '/../..' . '/Zotlabs/Web/Router.php', + 'Zotlabs\\Web\\Session' => __DIR__ . '/../..' . '/Zotlabs/Web/Session.php', + 'Zotlabs\\Web\\SessionHandler' => __DIR__ . '/../..' . '/Zotlabs/Web/SessionHandler.php', + 'Zotlabs\\Web\\SubModule' => __DIR__ . '/../..' . '/Zotlabs/Web/SubModule.php', + 'Zotlabs\\Web\\WebServer' => __DIR__ . '/../..' . '/Zotlabs/Web/WebServer.php', + 'Zotlabs\\Zot\\Auth' => __DIR__ . '/../..' . '/Zotlabs/Zot/Auth.php', + 'Zotlabs\\Zot\\DReport' => __DIR__ . '/../..' . '/Zotlabs/Zot/DReport.php', + 'Zotlabs\\Zot\\Finger' => __DIR__ . '/../..' . '/Zotlabs/Zot/Finger.php', + 'Zotlabs\\Zot\\IHandler' => __DIR__ . '/../..' . '/Zotlabs/Zot/IHandler.php', + 'Zotlabs\\Zot\\Receiver' => __DIR__ . '/../..' . '/Zotlabs/Zot/Receiver.php', + 'Zotlabs\\Zot\\Verify' => __DIR__ . '/../..' . '/Zotlabs/Zot/Verify.php', + 'Zotlabs\\Zot\\ZotHandler' => __DIR__ . '/../..' . '/Zotlabs/Zot/ZotHandler.php', ); public static function getInitializer(ClassLoader $loader) { return \Closure::bind(function () use ($loader) { - $loader->prefixLengthsPsr4 = ComposerStaticInit02c7a5bb99a87a4c8dbf069d69b1a15c::$prefixLengthsPsr4; - $loader->prefixDirsPsr4 = ComposerStaticInit02c7a5bb99a87a4c8dbf069d69b1a15c::$prefixDirsPsr4; - $loader->prefixesPsr0 = ComposerStaticInit02c7a5bb99a87a4c8dbf069d69b1a15c::$prefixesPsr0; + $loader->prefixLengthsPsr4 = ComposerStaticInit7b34d7e50a62201ec5d5e526a5b8b35d::$prefixLengthsPsr4; + $loader->prefixDirsPsr4 = ComposerStaticInit7b34d7e50a62201ec5d5e526a5b8b35d::$prefixDirsPsr4; + $loader->classMap = ComposerStaticInit7b34d7e50a62201ec5d5e526a5b8b35d::$classMap; }, null, ClassLoader::class); } diff --git a/vendor/composer/installed.json b/vendor/composer/installed.json index 835190d7f..88acfc40c 100644 --- a/vendor/composer/installed.json +++ b/vendor/composer/installed.json @@ -52,84 +52,19 @@ "url" ] }, - { - "name": "sabre/xml", - "version": "1.4.2", - "version_normalized": "1.4.2.0", - "source": { - "type": "git", - "url": "https://github.com/fruux/sabre-xml.git", - "reference": "f48d98c22a4a4bef76cabb5968ffaddbb2bb593e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/fruux/sabre-xml/zipball/f48d98c22a4a4bef76cabb5968ffaddbb2bb593e", - "reference": "f48d98c22a4a4bef76cabb5968ffaddbb2bb593e", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "ext-xmlreader": "*", - "ext-xmlwriter": "*", - "lib-libxml": ">=2.6.20", - "php": ">=5.4.1", - "sabre/uri": "~1.0" - }, - "require-dev": { - "phpunit/phpunit": "*", - "sabre/cs": "~0.0.2" - }, - "time": "2016-05-19 21:56:49", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-4": { - "Sabre\\Xml\\": "lib/" - }, - "files": [ - "lib/Deserializer/functions.php", - "lib/Serializer/functions.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Evert Pot", - "email": "me@evertpot.com", - "homepage": "http://evertpot.com/", - "role": "Developer" - }, - { - "name": "Markus Staab", - "email": "markus.staab@redaxo.de", - "role": "Developer" - } - ], - "description": "sabre/xml is an XML library that you may not hate.", - "homepage": "https://sabre.io/xml/", - "keywords": [ - "XMLReader", - "XMLWriter", - "dom", - "xml" - ] - }, { "name": "sabre/vobject", - "version": "4.1.0", - "version_normalized": "4.1.0.0", + "version": "4.1.1", + "version_normalized": "4.1.1.0", "source": { "type": "git", "url": "https://github.com/fruux/sabre-vobject.git", - "reference": "8899c0e856b3178b17f4e9a4e85010209f32a2fa" + "reference": "a3a59b06947f122af2d45d52b72172cdc1efd68f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/fruux/sabre-vobject/zipball/8899c0e856b3178b17f4e9a4e85010209f32a2fa", - "reference": "8899c0e856b3178b17f4e9a4e85010209f32a2fa", + "url": "https://api.github.com/repos/fruux/sabre-vobject/zipball/a3a59b06947f122af2d45d52b72172cdc1efd68f", + "reference": "a3a59b06947f122af2d45d52b72172cdc1efd68f", "shasum": "" }, "require": { @@ -144,7 +79,7 @@ "suggest": { "hoa/bench": "If you would like to run the benchmark scripts" }, - "time": "2016-04-07 00:48:27", + "time": "2016-07-15 19:52:17", "bin": [ "bin/vobject", "bin/generate_vcards" @@ -191,6 +126,7 @@ "availability", "freebusy", "iCalendar", + "ical", "ics", "jCal", "jCard", @@ -208,6 +144,7 @@ "rfc6638", "rfc6715", "rfc6868", + "vCalendar", "vCard", "vcf", "xCal", @@ -330,46 +267,6 @@ "http" ] }, - { - "name": "psr/log", - "version": "1.0.0", - "version_normalized": "1.0.0.0", - "source": { - "type": "git", - "url": "https://github.com/php-fig/log.git", - "reference": "fe0936ee26643249e916849d48e3a51d5f5e278b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/fe0936ee26643249e916849d48e3a51d5f5e278b", - "reference": "fe0936ee26643249e916849d48e3a51d5f5e278b", - "shasum": "" - }, - "time": "2012-12-21 11:40:51", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-0": { - "Psr\\Log\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" - } - ], - "description": "Common interface for logging libraries", - "keywords": [ - "log", - "psr", - "psr-3" - ] - }, { "name": "sabre/dav", "version": "3.2.0", @@ -454,5 +351,119 @@ "framework", "iCalendar" ] + }, + { + "name": "sabre/xml", + "version": "1.5.0", + "version_normalized": "1.5.0.0", + "source": { + "type": "git", + "url": "https://github.com/fruux/sabre-xml.git", + "reference": "59b20e5bbace9912607481634f97d05a776ffca7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/fruux/sabre-xml/zipball/59b20e5bbace9912607481634f97d05a776ffca7", + "reference": "59b20e5bbace9912607481634f97d05a776ffca7", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-xmlreader": "*", + "ext-xmlwriter": "*", + "lib-libxml": ">=2.6.20", + "php": ">=5.5.5", + "sabre/uri": ">=1.0,<3.0.0" + }, + "require-dev": { + "phpunit/phpunit": "*", + "sabre/cs": "~1.0.0" + }, + "time": "2016-10-09 22:57:52", + "type": "library", + "installation-source": "dist", + "autoload": { + "psr-4": { + "Sabre\\Xml\\": "lib/" + }, + "files": [ + "lib/Deserializer/functions.php", + "lib/Serializer/functions.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Evert Pot", + "email": "me@evertpot.com", + "homepage": "http://evertpot.com/", + "role": "Developer" + }, + { + "name": "Markus Staab", + "email": "markus.staab@redaxo.de", + "role": "Developer" + } + ], + "description": "sabre/xml is an XML library that you may not hate.", + "homepage": "https://sabre.io/xml/", + "keywords": [ + "XMLReader", + "XMLWriter", + "dom", + "xml" + ] + }, + { + "name": "psr/log", + "version": "1.0.2", + "version_normalized": "1.0.2.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/log.git", + "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/log/zipball/4ebe3a8bf773a19edfe0a84b6585ba3d401b724d", + "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "time": "2016-10-10 12:19:37", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "Psr\\Log\\": "Psr/Log/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interface for logging libraries", + "homepage": "https://github.com/php-fig/log", + "keywords": [ + "log", + "psr", + "psr-3" + ] } ] diff --git a/vendor/psr/log/Psr/Log/AbstractLogger.php b/vendor/psr/log/Psr/Log/AbstractLogger.php index 00f903452..90e721af2 100644 --- a/vendor/psr/log/Psr/Log/AbstractLogger.php +++ b/vendor/psr/log/Psr/Log/AbstractLogger.php @@ -15,8 +15,9 @@ abstract class AbstractLogger implements LoggerInterface * System is unusable. * * @param string $message - * @param array $context - * @return null + * @param array $context + * + * @return void */ public function emergency($message, array $context = array()) { @@ -30,8 +31,9 @@ abstract class AbstractLogger implements LoggerInterface * trigger the SMS alerts and wake you up. * * @param string $message - * @param array $context - * @return null + * @param array $context + * + * @return void */ public function alert($message, array $context = array()) { @@ -44,8 +46,9 @@ abstract class AbstractLogger implements LoggerInterface * Example: Application component unavailable, unexpected exception. * * @param string $message - * @param array $context - * @return null + * @param array $context + * + * @return void */ public function critical($message, array $context = array()) { @@ -57,8 +60,9 @@ abstract class AbstractLogger implements LoggerInterface * be logged and monitored. * * @param string $message - * @param array $context - * @return null + * @param array $context + * + * @return void */ public function error($message, array $context = array()) { @@ -72,8 +76,9 @@ abstract class AbstractLogger implements LoggerInterface * that are not necessarily wrong. * * @param string $message - * @param array $context - * @return null + * @param array $context + * + * @return void */ public function warning($message, array $context = array()) { @@ -84,8 +89,9 @@ abstract class AbstractLogger implements LoggerInterface * Normal but significant events. * * @param string $message - * @param array $context - * @return null + * @param array $context + * + * @return void */ public function notice($message, array $context = array()) { @@ -98,8 +104,9 @@ abstract class AbstractLogger implements LoggerInterface * Example: User logs in, SQL logs. * * @param string $message - * @param array $context - * @return null + * @param array $context + * + * @return void */ public function info($message, array $context = array()) { @@ -110,8 +117,9 @@ abstract class AbstractLogger implements LoggerInterface * Detailed debug information. * * @param string $message - * @param array $context - * @return null + * @param array $context + * + * @return void */ public function debug($message, array $context = array()) { diff --git a/vendor/psr/log/Psr/Log/LogLevel.php b/vendor/psr/log/Psr/Log/LogLevel.php index e32c151cb..9cebcace6 100644 --- a/vendor/psr/log/Psr/Log/LogLevel.php +++ b/vendor/psr/log/Psr/Log/LogLevel.php @@ -3,16 +3,16 @@ namespace Psr\Log; /** - * Describes log levels + * Describes log levels. */ class LogLevel { const EMERGENCY = 'emergency'; - const ALERT = 'alert'; - const CRITICAL = 'critical'; - const ERROR = 'error'; - const WARNING = 'warning'; - const NOTICE = 'notice'; - const INFO = 'info'; - const DEBUG = 'debug'; + const ALERT = 'alert'; + const CRITICAL = 'critical'; + const ERROR = 'error'; + const WARNING = 'warning'; + const NOTICE = 'notice'; + const INFO = 'info'; + const DEBUG = 'debug'; } diff --git a/vendor/psr/log/Psr/Log/LoggerAwareInterface.php b/vendor/psr/log/Psr/Log/LoggerAwareInterface.php index 2eebc4ebd..4d64f4786 100644 --- a/vendor/psr/log/Psr/Log/LoggerAwareInterface.php +++ b/vendor/psr/log/Psr/Log/LoggerAwareInterface.php @@ -3,15 +3,16 @@ namespace Psr\Log; /** - * Describes a logger-aware instance + * Describes a logger-aware instance. */ interface LoggerAwareInterface { /** - * Sets a logger instance on the object + * Sets a logger instance on the object. * * @param LoggerInterface $logger - * @return null + * + * @return void */ public function setLogger(LoggerInterface $logger); } diff --git a/vendor/psr/log/Psr/Log/LoggerAwareTrait.php b/vendor/psr/log/Psr/Log/LoggerAwareTrait.php index f087a3dac..639f79bda 100644 --- a/vendor/psr/log/Psr/Log/LoggerAwareTrait.php +++ b/vendor/psr/log/Psr/Log/LoggerAwareTrait.php @@ -7,12 +7,16 @@ namespace Psr\Log; */ trait LoggerAwareTrait { - /** @var LoggerInterface */ + /** + * The logger instance. + * + * @var LoggerInterface + */ protected $logger; /** * Sets a logger. - * + * * @param LoggerInterface $logger */ public function setLogger(LoggerInterface $logger) diff --git a/vendor/psr/log/Psr/Log/LoggerInterface.php b/vendor/psr/log/Psr/Log/LoggerInterface.php index 476bb962a..5ea72438b 100644 --- a/vendor/psr/log/Psr/Log/LoggerInterface.php +++ b/vendor/psr/log/Psr/Log/LoggerInterface.php @@ -3,14 +3,14 @@ namespace Psr\Log; /** - * Describes a logger instance + * Describes a logger instance. * * The message MUST be a string or object implementing __toString(). * * The message MAY contain placeholders in the form: {foo} where foo * will be replaced by the context data in key "foo". * - * The context array can contain arbitrary data, the only assumption that + * The context array can contain arbitrary data. The only assumption that * can be made by implementors is that if an Exception instance is given * to produce a stack trace, it MUST be in a key named "exception". * @@ -23,8 +23,9 @@ interface LoggerInterface * System is unusable. * * @param string $message - * @param array $context - * @return null + * @param array $context + * + * @return void */ public function emergency($message, array $context = array()); @@ -35,8 +36,9 @@ interface LoggerInterface * trigger the SMS alerts and wake you up. * * @param string $message - * @param array $context - * @return null + * @param array $context + * + * @return void */ public function alert($message, array $context = array()); @@ -46,8 +48,9 @@ interface LoggerInterface * Example: Application component unavailable, unexpected exception. * * @param string $message - * @param array $context - * @return null + * @param array $context + * + * @return void */ public function critical($message, array $context = array()); @@ -56,8 +59,9 @@ interface LoggerInterface * be logged and monitored. * * @param string $message - * @param array $context - * @return null + * @param array $context + * + * @return void */ public function error($message, array $context = array()); @@ -68,8 +72,9 @@ interface LoggerInterface * that are not necessarily wrong. * * @param string $message - * @param array $context - * @return null + * @param array $context + * + * @return void */ public function warning($message, array $context = array()); @@ -77,8 +82,9 @@ interface LoggerInterface * Normal but significant events. * * @param string $message - * @param array $context - * @return null + * @param array $context + * + * @return void */ public function notice($message, array $context = array()); @@ -88,8 +94,9 @@ interface LoggerInterface * Example: User logs in, SQL logs. * * @param string $message - * @param array $context - * @return null + * @param array $context + * + * @return void */ public function info($message, array $context = array()); @@ -97,18 +104,20 @@ interface LoggerInterface * Detailed debug information. * * @param string $message - * @param array $context - * @return null + * @param array $context + * + * @return void */ public function debug($message, array $context = array()); /** * Logs with an arbitrary level. * - * @param mixed $level + * @param mixed $level * @param string $message - * @param array $context - * @return null + * @param array $context + * + * @return void */ public function log($level, $message, array $context = array()); } diff --git a/vendor/psr/log/Psr/Log/LoggerTrait.php b/vendor/psr/log/Psr/Log/LoggerTrait.php index 591249600..867225df1 100644 --- a/vendor/psr/log/Psr/Log/LoggerTrait.php +++ b/vendor/psr/log/Psr/Log/LoggerTrait.php @@ -6,8 +6,8 @@ namespace Psr\Log; * This is a simple Logger trait that classes unable to extend AbstractLogger * (because they extend another class, etc) can include. * - * It simply delegates all log-level-specific methods to the `log` method to - * reduce boilerplate code that a simple Logger that does the same thing with + * It simply delegates all log-level-specific methods to the `log` method to + * reduce boilerplate code that a simple Logger that does the same thing with * messages regardless of the error level has to implement. */ trait LoggerTrait @@ -16,8 +16,9 @@ trait LoggerTrait * System is unusable. * * @param string $message - * @param array $context - * @return null + * @param array $context + * + * @return void */ public function emergency($message, array $context = array()) { @@ -31,8 +32,9 @@ trait LoggerTrait * trigger the SMS alerts and wake you up. * * @param string $message - * @param array $context - * @return null + * @param array $context + * + * @return void */ public function alert($message, array $context = array()) { @@ -45,8 +47,9 @@ trait LoggerTrait * Example: Application component unavailable, unexpected exception. * * @param string $message - * @param array $context - * @return null + * @param array $context + * + * @return void */ public function critical($message, array $context = array()) { @@ -58,8 +61,9 @@ trait LoggerTrait * be logged and monitored. * * @param string $message - * @param array $context - * @return null + * @param array $context + * + * @return void */ public function error($message, array $context = array()) { @@ -73,8 +77,9 @@ trait LoggerTrait * that are not necessarily wrong. * * @param string $message - * @param array $context - * @return null + * @param array $context + * + * @return void */ public function warning($message, array $context = array()) { @@ -85,8 +90,9 @@ trait LoggerTrait * Normal but significant events. * * @param string $message - * @param array $context - * @return null + * @param array $context + * + * @return void */ public function notice($message, array $context = array()) { @@ -99,8 +105,9 @@ trait LoggerTrait * Example: User logs in, SQL logs. * * @param string $message - * @param array $context - * @return null + * @param array $context + * + * @return void */ public function info($message, array $context = array()) { @@ -111,8 +118,9 @@ trait LoggerTrait * Detailed debug information. * * @param string $message - * @param array $context - * @return null + * @param array $context + * + * @return void */ public function debug($message, array $context = array()) { @@ -122,10 +130,11 @@ trait LoggerTrait /** * Logs with an arbitrary level. * - * @param mixed $level + * @param mixed $level * @param string $message - * @param array $context - * @return null + * @param array $context + * + * @return void */ abstract public function log($level, $message, array $context = array()); } diff --git a/vendor/psr/log/Psr/Log/NullLogger.php b/vendor/psr/log/Psr/Log/NullLogger.php index 553a3c593..d8cd682c8 100644 --- a/vendor/psr/log/Psr/Log/NullLogger.php +++ b/vendor/psr/log/Psr/Log/NullLogger.php @@ -3,7 +3,7 @@ namespace Psr\Log; /** - * This Logger can be used to avoid conditional log calls + * This Logger can be used to avoid conditional log calls. * * Logging should always be optional, and if no logger is provided to your * library creating a NullLogger instance to have something to throw logs at @@ -15,10 +15,11 @@ class NullLogger extends AbstractLogger /** * Logs with an arbitrary level. * - * @param mixed $level + * @param mixed $level * @param string $message - * @param array $context - * @return null + * @param array $context + * + * @return void */ public function log($level, $message, array $context = array()) { diff --git a/vendor/psr/log/Psr/Log/Test/LoggerInterfaceTest.php b/vendor/psr/log/Psr/Log/Test/LoggerInterfaceTest.php deleted file mode 100644 index a93281511..000000000 --- a/vendor/psr/log/Psr/Log/Test/LoggerInterfaceTest.php +++ /dev/null @@ -1,116 +0,0 @@ - " - * - * Example ->error('Foo') would yield "error Foo" - * - * @return string[] - */ - abstract function getLogs(); - - public function testImplements() - { - $this->assertInstanceOf('Psr\Log\LoggerInterface', $this->getLogger()); - } - - /** - * @dataProvider provideLevelsAndMessages - */ - public function testLogsAtAllLevels($level, $message) - { - $logger = $this->getLogger(); - $logger->{$level}($message, array('user' => 'Bob')); - $logger->log($level, $message, array('user' => 'Bob')); - - $expected = array( - $level.' message of level '.$level.' with context: Bob', - $level.' message of level '.$level.' with context: Bob', - ); - $this->assertEquals($expected, $this->getLogs()); - } - - public function provideLevelsAndMessages() - { - return array( - LogLevel::EMERGENCY => array(LogLevel::EMERGENCY, 'message of level emergency with context: {user}'), - LogLevel::ALERT => array(LogLevel::ALERT, 'message of level alert with context: {user}'), - LogLevel::CRITICAL => array(LogLevel::CRITICAL, 'message of level critical with context: {user}'), - LogLevel::ERROR => array(LogLevel::ERROR, 'message of level error with context: {user}'), - LogLevel::WARNING => array(LogLevel::WARNING, 'message of level warning with context: {user}'), - LogLevel::NOTICE => array(LogLevel::NOTICE, 'message of level notice with context: {user}'), - LogLevel::INFO => array(LogLevel::INFO, 'message of level info with context: {user}'), - LogLevel::DEBUG => array(LogLevel::DEBUG, 'message of level debug with context: {user}'), - ); - } - - /** - * @expectedException Psr\Log\InvalidArgumentException - */ - public function testThrowsOnInvalidLevel() - { - $logger = $this->getLogger(); - $logger->log('invalid level', 'Foo'); - } - - public function testContextReplacement() - { - $logger = $this->getLogger(); - $logger->info('{Message {nothing} {user} {foo.bar} a}', array('user' => 'Bob', 'foo.bar' => 'Bar')); - - $expected = array('info {Message {nothing} Bob Bar a}'); - $this->assertEquals($expected, $this->getLogs()); - } - - public function testObjectCastToString() - { - $dummy = $this->getMock('Psr\Log\Test\DummyTest', array('__toString')); - $dummy->expects($this->once()) - ->method('__toString') - ->will($this->returnValue('DUMMY')); - - $this->getLogger()->warning($dummy); - } - - public function testContextCanContainAnything() - { - $context = array( - 'bool' => true, - 'null' => null, - 'string' => 'Foo', - 'int' => 0, - 'float' => 0.5, - 'nested' => array('with object' => new DummyTest), - 'object' => new \DateTime, - 'resource' => fopen('php://memory', 'r'), - ); - - $this->getLogger()->warning('Crazy context data', $context); - } - - public function testContextExceptionKeyCanBeExceptionOrOtherValues() - { - $this->getLogger()->warning('Random message', array('exception' => 'oops')); - $this->getLogger()->critical('Uncaught Exception!', array('exception' => new \LogicException('Fail'))); - } -} - -class DummyTest -{ -} \ No newline at end of file diff --git a/vendor/psr/log/composer.json b/vendor/psr/log/composer.json new file mode 100644 index 000000000..87934d707 --- /dev/null +++ b/vendor/psr/log/composer.json @@ -0,0 +1,26 @@ +{ + "name": "psr/log", + "description": "Common interface for logging libraries", + "keywords": ["psr", "psr-3", "log"], + "homepage": "https://github.com/php-fig/log", + "license": "MIT", + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "require": { + "php": ">=5.3.0" + }, + "autoload": { + "psr-4": { + "Psr\\Log\\": "Psr/Log/" + } + }, + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + } +} diff --git a/vendor/sabre/dav/composer.json b/vendor/sabre/dav/composer.json new file mode 100644 index 000000000..f85d9655e --- /dev/null +++ b/vendor/sabre/dav/composer.json @@ -0,0 +1,68 @@ +{ + "name": "sabre/dav", + "type": "library", + "description": "WebDAV Framework for PHP", + "keywords": ["Framework", "WebDAV", "CalDAV", "CardDAV", "iCalendar"], + "homepage": "http://sabre.io/", + "license" : "BSD-3-Clause", + "authors": [ + { + "name": "Evert Pot", + "email": "me@evertpot.com", + "homepage" : "http://evertpot.com/", + "role" : "Developer" + } + ], + "require": { + "php": ">=5.5.0", + "sabre/vobject": "^4.1.0", + "sabre/event" : ">=2.0.0, <4.0.0", + "sabre/xml" : "^1.4.0", + "sabre/http" : "^4.2.1", + "sabre/uri" : "^1.0.1", + "ext-dom": "*", + "ext-pcre": "*", + "ext-spl": "*", + "ext-simplexml": "*", + "ext-mbstring" : "*", + "ext-ctype" : "*", + "ext-date" : "*", + "ext-iconv" : "*", + "lib-libxml" : ">=2.7.0", + "psr/log": "^1.0" + }, + "require-dev" : { + "phpunit/phpunit" : "> 4.8, <=6.0.0", + "evert/phpdoc-md" : "~0.1.0", + "sabre/cs" : "~0.0.5", + "monolog/monolog": "^1.18" + }, + "suggest" : { + "ext-curl" : "*", + "ext-pdo" : "*" + }, + "autoload": { + "psr-4" : { + "Sabre\\DAV\\" : "lib/DAV/", + "Sabre\\DAVACL\\" : "lib/DAVACL/", + "Sabre\\CalDAV\\" : "lib/CalDAV/", + "Sabre\\CardDAV\\" : "lib/CardDAV/" + } + }, + "support" : { + "forum" : "https://groups.google.com/group/sabredav-discuss", + "source" : "https://github.com/fruux/sabre-dav" + }, + "bin" : [ + "bin/sabredav", + "bin/naturalselection" + ], + "config" : { + "bin-dir" : "./bin" + }, + "extra" : { + "branch-alias": { + "dev-master": "3.1.0-dev" + } + } +} diff --git a/vendor/sabre/dav/lib/DAV/Browser/Plugin.php b/vendor/sabre/dav/lib/DAV/Browser/Plugin.php index 4959193ea..49359a045 100644 --- a/vendor/sabre/dav/lib/DAV/Browser/Plugin.php +++ b/vendor/sabre/dav/lib/DAV/Browser/Plugin.php @@ -163,7 +163,7 @@ class Plugin extends DAV\ServerPlugin { * @return bool */ function httpPOST(RequestInterface $request, ResponseInterface $response) { - + $contentType = $request->getHeader('Content-Type'); list($contentType) = explode(';', $contentType); if ($contentType !== 'application/x-www-form-urlencoded' && @@ -179,7 +179,7 @@ class Plugin extends DAV\ServerPlugin { if ($this->server->emit('onBrowserPostAction', [$uri, $postVars['sabreAction'], $postVars])) { - switch ($postVars['sabreAction']) { + switch ($postVars['sabreAction']) { case 'mkcol' : if (isset($postVars['name']) && trim($postVars['name'])) { @@ -221,7 +221,7 @@ class Plugin extends DAV\ServerPlugin { if ($_FILES) $file = current($_FILES); else break; - + list(, $newName) = URLUtil::splitPath(trim($file['name'])); if (isset($postVars['name']) && trim($postVars['name'])) $newName = trim($postVars['name']); diff --git a/vendor/sabre/event/composer.json b/vendor/sabre/event/composer.json new file mode 100644 index 000000000..9a11b01aa --- /dev/null +++ b/vendor/sabre/event/composer.json @@ -0,0 +1,47 @@ +{ + "name": "sabre/event", + "description": "sabre/event is a library for lightweight event-based programming", + "keywords": [ + "Events", + "EventEmitter", + "Promise", + "Hooks", + "Plugin", + "Signal", + "Async" + ], + "homepage": "http://sabre.io/event/", + "license": "BSD-3-Clause", + "require": { + "php": ">=5.5" + }, + "authors": [ + { + "name": "Evert Pot", + "email": "me@evertpot.com", + "homepage": "http://evertpot.com/", + "role": "Developer" + } + ], + "support": { + "forum": "https://groups.google.com/group/sabredav-discuss", + "source": "https://github.com/fruux/sabre-event" + }, + "autoload": { + "psr-4": { + "Sabre\\Event\\": "lib/" + }, + "files" : [ + "lib/coroutine.php", + "lib/Loop/functions.php", + "lib/Promise/functions.php" + ] + }, + "require-dev": { + "sabre/cs": "~0.0.4", + "phpunit/phpunit" : "*" + }, + "config" : { + "bin-dir" : "bin/" + } +} diff --git a/vendor/sabre/http/composer.json b/vendor/sabre/http/composer.json new file mode 100644 index 000000000..b061194cf --- /dev/null +++ b/vendor/sabre/http/composer.json @@ -0,0 +1,43 @@ +{ + "name": "sabre/http", + "description" : "The sabre/http library provides utilities for dealing with http requests and responses. ", + "keywords" : [ "HTTP" ], + "homepage" : "https://github.com/fruux/sabre-http", + "license" : "BSD-3-Clause", + "require" : { + "php" : ">=5.4", + "ext-mbstring" : "*", + "sabre/event" : ">=1.0.0,<4.0.0", + "sabre/uri" : "~1.0" + }, + "require-dev" : { + "phpunit/phpunit" : "~4.3", + "sabre/cs" : "~0.0.1" + }, + "suggest" : { + "ext-curl" : " to make http requests with the Client class" + }, + "authors" : [ + { + "name" : "Evert Pot", + "email" : "me@evertpot.com", + "homepage" : "http://evertpot.com/", + "role" : "Developer" + } + ], + "support" : { + "forum" : "https://groups.google.com/group/sabredav-discuss", + "source" : "https://github.com/fruux/sabre-http" + }, + "autoload" : { + "files" : [ + "lib/functions.php" + ], + "psr-4" : { + "Sabre\\HTTP\\" : "lib/" + } + }, + "config" : { + "bin-dir" : "bin/" + } +} diff --git a/vendor/sabre/uri/composer.json b/vendor/sabre/uri/composer.json new file mode 100644 index 000000000..7b48acb71 --- /dev/null +++ b/vendor/sabre/uri/composer.json @@ -0,0 +1,41 @@ +{ + "name": "sabre/uri", + "description": "Functions for making sense out of URIs.", + "keywords": [ + "URI", + "URL", + "rfc3986" + ], + "homepage": "http://sabre.io/uri/", + "license": "BSD-3-Clause", + "require": { + "php": ">=5.4.7" + }, + "authors": [ + { + "name": "Evert Pot", + "email": "me@evertpot.com", + "homepage": "http://evertpot.com/", + "role": "Developer" + } + ], + "support": { + "forum": "https://groups.google.com/group/sabredav-discuss", + "source": "https://github.com/fruux/sabre-uri" + }, + "autoload": { + "files" : [ + "lib/functions.php" + ], + "psr-4" : { + "Sabre\\Uri\\" : "lib/" + } + }, + "require-dev": { + "sabre/cs": "~0.0.1", + "phpunit/phpunit" : "*" + }, + "config" : { + "bin-dir" : "bin/" + } +} diff --git a/vendor/sabre/vobject/.travis.yml b/vendor/sabre/vobject/.travis.yml index 06bbdf8a0..b7266a878 100644 --- a/vendor/sabre/vobject/.travis.yml +++ b/vendor/sabre/vobject/.travis.yml @@ -3,14 +3,9 @@ php: - 5.5 - 5.6 - 7 - - hhvm sudo: false -matrix: - allow_failures: - - php: hhvm - script: - phpunit --configuration tests/phpunit.xml - ./bin/sabre-cs-fixer fix . --dry-run --diff diff --git a/vendor/sabre/vobject/CHANGELOG.md b/vendor/sabre/vobject/CHANGELOG.md index 0bd7d53bd..4c72680f8 100644 --- a/vendor/sabre/vobject/CHANGELOG.md +++ b/vendor/sabre/vobject/CHANGELOG.md @@ -1,6 +1,19 @@ ChangeLog ========= +4.1.1 (2016-07-15) +------------------ + +* #327: Throwing `InvalidDataException` in more cases where invalid iCalendar + dates and times were provided. (@rsto) +* #331: Fix dealing with multiple overridden instances falling on the same + date/time (@afedyk-sugarcrm). +* #333: Fix endless loop on invalid `BYMONTH` values in recurrence. + (@PHPGangsta) +* #339: Fixed a few `validate()` results when repair is off. (@PHPGangsta) +* #338: Stripping invalid `BYMONTH=` rules during `validate()` (@PHPGangsta) +* #336: Fix incorrect `BYSECOND=` validation. (@PHPGangsta) + 4.1.0 (2016-04-06) ------------------ @@ -130,6 +143,20 @@ ChangeLog and `IntegerValue` to allow PHP 7 compatibility. +3.5.3 (????-??-??) +------------------ + +* #331: Fix dealing with multiple overridden instances falling on the same + date/time (@afedyk-sugarcrm). + + +3.5.2 (2016-04-24) +----------------- + +* #312: Backported a fix related to iTip processing of events with timezones, + without a master event. + + 3.5.1 (2016-04-06) ------------------ diff --git a/vendor/sabre/vobject/bin/bench.php b/vendor/sabre/vobject/bin/bench.php old mode 100644 new mode 100755 diff --git a/vendor/sabre/vobject/bin/fetch_windows_zones.php b/vendor/sabre/vobject/bin/fetch_windows_zones.php old mode 100644 new mode 100755 diff --git a/vendor/sabre/vobject/bin/generateicalendardata.php b/vendor/sabre/vobject/bin/generateicalendardata.php old mode 100644 new mode 100755 index dfcf18780..a2df3c63a --- a/vendor/sabre/vobject/bin/generateicalendardata.php +++ b/vendor/sabre/vobject/bin/generateicalendardata.php @@ -29,7 +29,7 @@ include __DIR__ . '/../vendor/autoload.php'; fwrite(STDERR, "Generating " . $events . " events\n"); -$currentDate = new DateTime('-' . round($events / 2) . ' days'); +$currentDate = new DateTime('-' . round($events / 2) . ' days'); $calendar = new VObject\Component\VCalendar(); diff --git a/vendor/sabre/vobject/bin/mergeduplicates.php b/vendor/sabre/vobject/bin/mergeduplicates.php old mode 100644 new mode 100755 index 1662e7bf3..076524d36 --- a/vendor/sabre/vobject/bin/mergeduplicates.php +++ b/vendor/sabre/vobject/bin/mergeduplicates.php @@ -157,7 +157,7 @@ while ($vcard = $splitter->getNext()) { // echo $newProp->serialize() . " does not appear in earlier vcard!\n"; $stats['Error']++; - if ($debug) fwrite($debug, "Missing '" . $newProp->name . "' property in duplicate. Earlier vcard:\n" . $collectedNames[$fn]->serialize() . "\n\nLater:\n" . $vcard->serialize() . "\n\n"); + if ($debug) fwrite($debug, "Missing '" . $newProp->name . "' property in duplicate. Earlier vcard:\n" . $collectedNames[$fn]->serialize() . "\n\nLater:\n" . $vcard->serialize() . "\n\n"); $vcard->destroy(); continue 2; diff --git a/vendor/sabre/vobject/composer.json b/vendor/sabre/vobject/composer.json new file mode 100644 index 000000000..bd6348a82 --- /dev/null +++ b/vendor/sabre/vobject/composer.json @@ -0,0 +1,88 @@ +{ + "name": "sabre/vobject", + "description" : "The VObject library for PHP allows you to easily parse and manipulate iCalendar and vCard objects", + "keywords" : [ + "iCalendar", + "iCal", + "vCalendar", + "vCard", + "jCard", + "jCal", + "ics", + "vcf", + "xCard", + "xCal", + "freebusy", + "recurrence", + "availability", + "rfc2425", + "rfc2426", + "rfc2739", + "rfc4770", + "rfc5545", + "rfc5546", + "rfc6321", + "rfc6350", + "rfc6351", + "rfc6474", + "rfc6638", + "rfc6715", + "rfc6868" + ], + "homepage" : "http://sabre.io/vobject/", + "license" : "BSD-3-Clause", + "require" : { + "php" : ">=5.5", + "ext-mbstring" : "*", + "sabre/xml" : "~1.1" + }, + "require-dev" : { + "phpunit/phpunit" : "*", + "sabre/cs" : "~0.0.3" + + }, + "suggest" : { + "hoa/bench" : "If you would like to run the benchmark scripts" + }, + "authors" : [ + { + "name" : "Evert Pot", + "email" : "me@evertpot.com", + "homepage" : "http://evertpot.com/", + "role" : "Developer" + }, + { + "name" : "Dominik Tobschall", + "email" : "dominik@fruux.com", + "homepage" : "http://tobschall.de/", + "role" : "Developer" + }, + { + "name" : "Ivan Enderlin", + "email" : "ivan.enderlin@hoa-project.net", + "homepage" : "http://mnt.io/", + "role" : "Developer" + } + ], + "support" : { + "forum" : "https://groups.google.com/group/sabredav-discuss", + "source" : "https://github.com/fruux/sabre-vobject" + }, + "autoload" : { + "psr-4" : { + "Sabre\\VObject\\" : "lib/" + } + }, + "bin" : [ + "bin/vobject", + "bin/generate_vcards" + ], + "extra" : { + "branch-alias" : { + "dev-master" : "4.0.x-dev" + } + }, + "config" : { + "bin-dir" : "bin" + } +} diff --git a/vendor/sabre/vobject/lib/Component/VTimeZone.php b/vendor/sabre/vobject/lib/Component/VTimeZone.php index d5d886947..f6eb6cba1 100644 --- a/vendor/sabre/vobject/lib/Component/VTimeZone.php +++ b/vendor/sabre/vobject/lib/Component/VTimeZone.php @@ -53,8 +53,7 @@ class VTimeZone extends VObject\Component { 'LAST-MODIFIED' => '?', 'TZURL' => '?', - // At least 1 STANDARD or DAYLIGHT must appear, or more. But both - // cannot appear in the same VTIMEZONE. + // At least 1 STANDARD or DAYLIGHT must appear. // // The validator is not specific yet to pick this up, so these // rules are too loose. diff --git a/vendor/sabre/vobject/lib/DateTimeParser.php b/vendor/sabre/vobject/lib/DateTimeParser.php index fc568abb0..443bbb660 100644 --- a/vendor/sabre/vobject/lib/DateTimeParser.php +++ b/vendor/sabre/vobject/lib/DateTimeParser.php @@ -43,7 +43,12 @@ class DateTimeParser { if ($matches[7] === 'Z' || is_null($tz)) { $tz = new DateTimeZone('UTC'); } - $date = new DateTimeImmutable($matches[1] . '-' . $matches[2] . '-' . $matches[3] . ' ' . $matches[4] . ':' . $matches[5] . ':' . $matches[6], $tz); + + try { + $date = new DateTimeImmutable($matches[1] . '-' . $matches[2] . '-' . $matches[3] . ' ' . $matches[4] . ':' . $matches[5] . ':' . $matches[6], $tz); + } catch (\Exception $e) { + throw new InvalidDataException('The supplied iCalendar datetime value is incorrect: ' . $dt); + } return $date; @@ -70,7 +75,11 @@ class DateTimeParser { $tz = new DateTimeZone('UTC'); } - $date = new DateTimeImmutable($matches[1] . '-' . $matches[2] . '-' . $matches[3], $tz); + try { + $date = new DateTimeImmutable($matches[1] . '-' . $matches[2] . '-' . $matches[3], $tz); + } catch (\Exception $e) { + throw new InvalidDataException('The supplied iCalendar date value is incorrect: ' . $date); + } return $date; diff --git a/vendor/sabre/vobject/lib/Property.php b/vendor/sabre/vobject/lib/Property.php index 112775131..1aaa3ed58 100644 --- a/vendor/sabre/vobject/lib/Property.php +++ b/vendor/sabre/vobject/lib/Property.php @@ -579,7 +579,7 @@ abstract class Property extends Node { // Checking if the propertyname does not contain any invalid bytes. if (!preg_match('/^([A-Z0-9-]+)$/', $this->name)) { $warnings[] = [ - 'level' => 1, + 'level' => $options & self::REPAIR ? 1 : 3, 'message' => 'The propertyname: ' . $this->name . ' contains invalid characters. Only A-Z, 0-9 and - are allowed', 'node' => $this, ]; @@ -599,7 +599,7 @@ abstract class Property extends Node { if ($this->root->getDocumentType() === Document::VCARD40) { $warnings[] = [ - 'level' => 1, + 'level' => 3, 'message' => 'ENCODING parameter is not valid in vCard 4.', 'node' => $this ]; @@ -623,7 +623,7 @@ abstract class Property extends Node { } if ($allowedEncoding && !in_array(strtoupper($encoding), $allowedEncoding)) { $warnings[] = [ - 'level' => 1, + 'level' => 3, 'message' => 'ENCODING=' . strtoupper($encoding) . ' is not valid for this document type.', 'node' => $this ]; diff --git a/vendor/sabre/vobject/lib/Property/ICalendar/Recur.php b/vendor/sabre/vobject/lib/Property/ICalendar/Recur.php index a3c36dc64..8392a5cc1 100644 --- a/vendor/sabre/vobject/lib/Property/ICalendar/Recur.php +++ b/vendor/sabre/vobject/lib/Property/ICalendar/Recur.php @@ -260,21 +260,39 @@ class Recur extends Property { foreach ($values as $key => $value) { - if (empty($value)) { + if ($value === '') { $warnings[] = [ - 'level' => $repair ? 3 : 1, + 'level' => $repair ? 1 : 3, 'message' => 'Invalid value for ' . $key . ' in ' . $this->name, 'node' => $this ]; if ($repair) { unset($values[$key]); } + } elseif ($key == 'BYMONTH') { + $byMonth = (array)$value; + foreach ($byMonth as $i => $v) { + if (!is_numeric($v) || (int)$v < 1 || (int)$v > 12) { + $warnings[] = [ + 'level' => $repair ? 1 : 3, + 'message' => 'BYMONTH in RRULE must have value(s) between 1 and 12!', + 'node' => $this + ]; + if ($repair) { + if (is_array($value)) { + unset($values[$key][$i]); + } else { + unset($values[$key]); + } + } + } + } } } if (!isset($values['FREQ'])) { $warnings[] = [ - 'level' => $repair ? 3 : 1, + 'level' => $repair ? 1 : 3, 'message' => 'FREQ is required in ' . $this->name, 'node' => $this ]; diff --git a/vendor/sabre/vobject/lib/Property/Text.php b/vendor/sabre/vobject/lib/Property/Text.php index 2e16ac534..abc17563f 100644 --- a/vendor/sabre/vobject/lib/Property/Text.php +++ b/vendor/sabre/vobject/lib/Property/Text.php @@ -397,7 +397,7 @@ class Text extends Property { if (count($parts) < $minimum) { $warnings[] = [ 'level' => $options & self::REPAIR ? 1 : 3, - 'message' => 'The ' . $this->name . ' property must have at least ' . $minimum . ' values. It only has ' . count($parts), + 'message' => 'The ' . $this->name . ' property must have at least ' . $minimum . ' values. It only has ' . count($parts), 'node' => $this, ]; if ($options & self::REPAIR) { diff --git a/vendor/sabre/vobject/lib/Recur/EventIterator.php b/vendor/sabre/vobject/lib/Recur/EventIterator.php index 86c996aec..f91c336bc 100644 --- a/vendor/sabre/vobject/lib/Recur/EventIterator.php +++ b/vendor/sabre/vobject/lib/Recur/EventIterator.php @@ -325,7 +325,7 @@ class EventIterator implements \Iterator { $index = []; foreach ($this->overriddenEvents as $key => $event) { $stamp = $event->DTSTART->getDateTime($this->timeZone)->getTimeStamp(); - $index[$stamp] = $key; + $index[$stamp][] = $key; } krsort($index); $this->counter = 0; @@ -372,8 +372,9 @@ class EventIterator implements \Iterator { // overridden event may cut ahead. if ($this->overriddenEventsIndex) { - $offset = end($this->overriddenEventsIndex); + $offsets = end($this->overriddenEventsIndex); $timestamp = key($this->overriddenEventsIndex); + $offset = end($offsets); if (!$nextDate || $timestamp < $nextDate->getTimeStamp()) { // Overridden event comes first. $this->currentOverriddenEvent = $this->overriddenEvents[$offset]; @@ -383,7 +384,10 @@ class EventIterator implements \Iterator { $this->currentDate = $this->currentOverriddenEvent->DTSTART->getDateTime($this->timeZone); // Ensuring that this item will only be used once. - array_pop($this->overriddenEventsIndex); + array_pop($this->overriddenEventsIndex[$timestamp]); + if (!$this->overriddenEventsIndex[$timestamp]) { + array_pop($this->overriddenEventsIndex); + } // Exit point! return; @@ -451,7 +455,7 @@ class EventIterator implements \Iterator { /** * Overridden event index. * - * Key is timestamp, value is the index of the item in the $overriddenEvent + * Key is timestamp, value is the list of indexes of the item in the $overriddenEvent * property. * * @var array diff --git a/vendor/sabre/vobject/lib/Recur/RRuleIterator.php b/vendor/sabre/vobject/lib/Recur/RRuleIterator.php index 402e2de83..4c89f3ce4 100644 --- a/vendor/sabre/vobject/lib/Recur/RRuleIterator.php +++ b/vendor/sabre/vobject/lib/Recur/RRuleIterator.php @@ -718,6 +718,11 @@ class RRuleIterator implements Iterator { case 'BYMONTH' : $this->byMonth = (array)$value; + foreach ($this->byMonth as $byMonth) { + if (!is_numeric($byMonth) || (int)$byMonth < 1 || (int)$byMonth > 12) { + throw new InvalidDataException('BYMONTH in RRULE must have value(s) betweeen 1 and 12!'); + } + } break; case 'BYSETPOS' : diff --git a/vendor/sabre/vobject/lib/TimeZoneUtil.php b/vendor/sabre/vobject/lib/TimeZoneUtil.php index 4873daf92..2a95ae898 100644 --- a/vendor/sabre/vobject/lib/TimeZoneUtil.php +++ b/vendor/sabre/vobject/lib/TimeZoneUtil.php @@ -240,10 +240,10 @@ class TimeZoneUtil { if (!is_null(self::$map)) return; self::$map = array_merge( - include __DIR__ . '/timezonedata/windowszones.php', - include __DIR__ . '/timezonedata/lotuszones.php', - include __DIR__ . '/timezonedata/exchangezones.php', - include __DIR__ . '/timezonedata/php-workaround.php' + include __DIR__ . '/timezonedata/windowszones.php', + include __DIR__ . '/timezonedata/lotuszones.php', + include __DIR__ . '/timezonedata/exchangezones.php', + include __DIR__ . '/timezonedata/php-workaround.php' ); } @@ -260,7 +260,7 @@ class TimeZoneUtil { * @return array */ static function getIdentifiersBC() { - return include __DIR__ . '/timezonedata/php-bc.php'; + return include __DIR__ . '/timezonedata/php-bc.php'; } } diff --git a/vendor/sabre/vobject/lib/Version.php b/vendor/sabre/vobject/lib/Version.php index 0b0e16c03..ca9f21960 100644 --- a/vendor/sabre/vobject/lib/Version.php +++ b/vendor/sabre/vobject/lib/Version.php @@ -14,6 +14,6 @@ class Version { /** * Full version number. */ - const VERSION = '4.1.0'; + const VERSION = '4.1.1'; } diff --git a/vendor/sabre/xml/.travis.yml b/vendor/sabre/xml/.travis.yml index 9bba4d451..96396564e 100644 --- a/vendor/sabre/xml/.travis.yml +++ b/vendor/sabre/xml/.travis.yml @@ -1,11 +1,9 @@ language: php php: - - 5.4 - 5.5 - 5.6 - - 7 - - nightly - - hhvm + - 7.0 + - 7.1 matrix: fast_finish: true @@ -16,10 +14,13 @@ cache: directories: - $HOME/.composer/cache +before_install: + - phpenv config-rm xdebug.ini; true + +install: + - composer install + script: - ./bin/phpunit --configuration tests/phpunit.xml.dist - ./bin/sabre-cs-fixer fix . --dry-run --diff -before_script: - - phpenv config-rm xdebug.ini; true - - composer install diff --git a/vendor/sabre/xml/CHANGELOG.md b/vendor/sabre/xml/CHANGELOG.md index a8085401b..39a39bffe 100644 --- a/vendor/sabre/xml/CHANGELOG.md +++ b/vendor/sabre/xml/CHANGELOG.md @@ -1,7 +1,16 @@ ChangeLog ========= -1.4.2 (????-??-??) +1.5.0 (2016-10-09) +------------------ + +* Now requires PHP 5.5. +* Using `finally` to always roll back the context stack when serializing. +* #94: Fixed an infinite loop condition when reading some invalid XML + documents. + + +1.4.2 (2016-05-19) ------------------ * The `contextStack` in the Reader object is now correctly rolled back in diff --git a/vendor/sabre/xml/composer.json b/vendor/sabre/xml/composer.json new file mode 100644 index 000000000..386f8213f --- /dev/null +++ b/vendor/sabre/xml/composer.json @@ -0,0 +1,53 @@ +{ + "name": "sabre/xml", + "description" : "sabre/xml is an XML library that you may not hate.", + "keywords" : [ "XML", "XMLReader", "XMLWriter", "DOM" ], + "homepage" : "https://sabre.io/xml/", + "license" : "BSD-3-Clause", + "require" : { + "php" : ">=5.5.5", + "ext-xmlwriter" : "*", + "ext-xmlreader" : "*", + "ext-dom" : "*", + "lib-libxml" : ">=2.6.20", + "sabre/uri" : ">=1.0,<3.0.0" + }, + "authors" : [ + { + "name" : "Evert Pot", + "email" : "me@evertpot.com", + "homepage" : "http://evertpot.com/", + "role" : "Developer" + }, + { + "name": "Markus Staab", + "email": "markus.staab@redaxo.de", + "role" : "Developer" + } + ], + "support" : { + "forum" : "https://groups.google.com/group/sabredav-discuss", + "source" : "https://github.com/fruux/sabre-xml" + }, + "autoload" : { + "psr-4" : { + "Sabre\\Xml\\" : "lib/" + }, + "files": [ + "lib/Deserializer/functions.php", + "lib/Serializer/functions.php" + ] + }, + "autoload-dev" : { + "psr-4" : { + "Sabre\\Xml\\" : "tests/Sabre/Xml/" + } + }, + "require-dev": { + "sabre/cs": "~1.0.0", + "phpunit/phpunit" : "*" + }, + "config" : { + "bin-dir" : "bin/" + } +} diff --git a/vendor/sabre/xml/lib/Element/XmlFragment.php b/vendor/sabre/xml/lib/Element/XmlFragment.php index 0abfac132..642241ca4 100644 --- a/vendor/sabre/xml/lib/Element/XmlFragment.php +++ b/vendor/sabre/xml/lib/Element/XmlFragment.php @@ -2,9 +2,9 @@ namespace Sabre\Xml\Element; +use Sabre\Xml\Element; use Sabre\Xml\Reader; use Sabre\Xml\Writer; -use Sabre\Xml\Element; /** * The XmlFragment element allows you to extract a portion of your xml tree, diff --git a/vendor/sabre/xml/lib/Reader.php b/vendor/sabre/xml/lib/Reader.php index f35dc8537..92e5dba96 100644 --- a/vendor/sabre/xml/lib/Reader.php +++ b/vendor/sabre/xml/lib/Reader.php @@ -59,22 +59,26 @@ class Reader extends XMLReader { $previousEntityState = libxml_disable_entity_loader(true); $previousSetting = libxml_use_internal_errors(true); - // Really sorry about the silence operator, seems like I have no - // choice. See: - // - // https://bugs.php.net/bug.php?id=64230 - while ($this->nodeType !== self::ELEMENT && @$this->read()) { - // noop - } - $result = $this->parseCurrentElement(); + try { - $errors = libxml_get_errors(); - libxml_clear_errors(); - libxml_use_internal_errors($previousSetting); - libxml_disable_entity_loader($previousEntityState); + // Really sorry about the silence operator, seems like I have no + // choice. See: + // + // https://bugs.php.net/bug.php?id=64230 + while ($this->nodeType !== self::ELEMENT && @$this->read()) { + // noop + } + $result = $this->parseCurrentElement(); - if ($errors) { - throw new LibXMLException($errors); + $errors = libxml_get_errors(); + libxml_clear_errors(); + if ($errors) { + throw new LibXMLException($errors); + } + + } finally { + libxml_use_internal_errors($previousSetting); + libxml_disable_entity_loader($previousEntityState); } return $result; @@ -138,60 +142,62 @@ class Reader extends XMLReader { $this->elementMap = $elementMap; } - // Really sorry about the silence operator, seems like I have no - // choice. See: - // - // https://bugs.php.net/bug.php?id=64230 - if (!@$this->read()) { + try { + + // Really sorry about the silence operator, seems like I have no + // choice. See: + // + // https://bugs.php.net/bug.php?id=64230 + if (!@$this->read()) { + $errors = libxml_get_errors(); + libxml_clear_errors(); + if ($errors) { + throw new LibXMLException($errors); + } + throw new ParseException('This should never happen (famous last words)'); + } + + while (true) { + + if (!$this->isValid()) { + + $errors = libxml_get_errors(); + + if ($errors) { + libxml_clear_errors(); + throw new LibXMLException($errors); + } + } + + switch ($this->nodeType) { + case self::ELEMENT : + $elements[] = $this->parseCurrentElement(); + break; + case self::TEXT : + case self::CDATA : + $text .= $this->value; + $this->read(); + break; + case self::END_ELEMENT : + // Ensuring we are moving the cursor after the end element. + $this->read(); + break 2; + case self::NONE : + throw new ParseException('We hit the end of the document prematurely. This likely means that some parser "eats" too many elements. Do not attempt to continue parsing.'); + default : + // Advance to the next element + $this->read(); + break; + } + + } + + } finally { + if (!is_null($elementMap)) { $this->popContext(); } - return false; - } - while (true) { - - if (!$this->isValid()) { - - $errors = libxml_get_errors(); - - if ($errors) { - libxml_clear_errors(); - if (!is_null($elementMap)) { - $this->popContext(); - } - throw new LibXMLException($errors); - } - } - - switch ($this->nodeType) { - case self::ELEMENT : - $elements[] = $this->parseCurrentElement(); - break; - case self::TEXT : - case self::CDATA : - $text .= $this->value; - $this->read(); - break; - case self::END_ELEMENT : - // Ensuring we are moving the cursor after the end element. - $this->read(); - break 2; - case self::NONE : - if (!is_null($elementMap)) { - $this->popContext(); - } - throw new ParseException('We hit the end of the document prematurely. This likely means that some parser "eats" too many elements. Do not attempt to continue parsing.'); - default : - // Advance to the next element - $this->read(); - break; - } - - } - - if (!is_null($elementMap)) { - $this->popContext(); } return ($elements ? $elements : $text); @@ -304,7 +310,7 @@ class Reader extends XMLReader { $deserializer = $this->elementMap[$name]; if (is_subclass_of($deserializer, 'Sabre\\Xml\\XmlDeserializable')) { - return [ $deserializer, 'xmlDeserialize' ]; + return [$deserializer, 'xmlDeserialize']; } if (is_callable($deserializer)) { diff --git a/vendor/sabre/xml/lib/Version.php b/vendor/sabre/xml/lib/Version.php index f199e7158..7edb40d67 100644 --- a/vendor/sabre/xml/lib/Version.php +++ b/vendor/sabre/xml/lib/Version.php @@ -14,6 +14,6 @@ class Version { /** * Full version number */ - const VERSION = '1.4.1'; + const VERSION = '1.5.0'; } diff --git a/vendor/sabre/xml/lib/Writer.php b/vendor/sabre/xml/lib/Writer.php index adfbe0cb0..09d4cb321 100644 --- a/vendor/sabre/xml/lib/Writer.php +++ b/vendor/sabre/xml/lib/Writer.php @@ -127,7 +127,7 @@ class Writer extends XMLWriter { if (array_key_exists($namespace, $this->namespaceMap)) { $result = $this->startElementNS( - $this->namespaceMap[$namespace] === '' ? null : $this->namespaceMap[$namespace], + $this->namespaceMap[$namespace] === '' ? null : $this->namespaceMap[$namespace], $localName, null ); diff --git a/view/css/bootstrap-red.css b/view/css/bootstrap-red.css index b68517e25..cea911440 100644 --- a/view/css/bootstrap-red.css +++ b/view/css/bootstrap-red.css @@ -60,8 +60,7 @@ aside .nav-pills > li > a, padding: 6px 10px; } -.wall-item-tools .dropdown-menu, -.section-title-wrapper .dropdown-menu { +.wall-item-tools .dropdown-menu { min-width: auto; } diff --git a/view/css/conversation.css b/view/css/conversation.css index 9272ed3f6..aec457302 100644 --- a/view/css/conversation.css +++ b/view/css/conversation.css @@ -203,6 +203,10 @@ a.wall-item-name-link { filter:alpha(opacity=100); } +.item-act-list { + width: 20px; +} + .shared_header { margin-bottom: 20px; } @@ -332,6 +336,19 @@ a.wall-item-name-link { /* bb-code */ +/* prevent [toc] bbcode links to scroll the titles behind the navbar */ +.section-content-wrapper h1, +.section-content-wrapper h2, +.section-content-wrapper h3, +.section-content-wrapper h4 { + padding-top: 60px; + margin-top: -40px; +} + +.toc { + margin-top: 1em; +} + code { font-family: Courier, monospace; font-size: 1em; diff --git a/view/css/default.css b/view/css/default.css index db0628cb3..67a411d6e 100644 --- a/view/css/default.css +++ b/view/css/default.css @@ -15,12 +15,14 @@ main { } aside { + position: relative; display: table-cell; vertical-align: top; padding: 71px 7px 0px 7px; } section { + position: relative; width: 100%; display: table-cell; vertical-align: top; diff --git a/view/css/mod_help.css b/view/css/mod_help.css new file mode 100644 index 000000000..f59a40894 --- /dev/null +++ b/view/css/mod_help.css @@ -0,0 +1,29 @@ +.doco-list-group-item > a { + font-weight: bold; +} + +.sub-menu { + margin: 3px 0px 10px 10px; +} + +#doco-content h3 { + border-bottom: #ccc 3px solid; + padding-bottom: 0.3em; +} + +#doco-content h4 { + text-decoration: underline; +} + +#doco-content h5 { + text-decoration: underline; +} + +#region_1 .widget ul ul { + list-style-type: none; +} + +.toc-content li, + #doco-top-toc li { + padding: 3px 0px; +} diff --git a/view/css/mod_wiki.css b/view/css/mod_wiki.css new file mode 100644 index 000000000..49eb89ecc --- /dev/null +++ b/view/css/mod_wiki.css @@ -0,0 +1,54 @@ +#ace-editor { + position: relative; + width: 100%; + height: 500px; + border: 1px solid #ccc; + border-top: 0px; +} + +#editor { + width: 100%; + height: 500px; + border: 1px solid #ccc; + border-top: 0px; + display: inherit; +} + +#id_commitMsg_wrapper { + margin-top: 3px; +} + +.fade.in { + -webkit-transition: opacity 0.5s 0.5s ease; + -moz-transition: opacity 0.5s 0.5s ease; + -o-transition: opacity 0.5s 0.5s ease; + transition: opacity 0.5s 0.5s ease; +} + +#new-wiki-form-wrapper { + display: none; +} + +#wikis-index { + width: 100%; +} + +#wikis-index th:nth-child(1), +#wikis-index td:nth-child(1){ + padding: 7px 3px 7px 10px; +} + +#wikis-index th:nth-child(4), +#wikis-index td:nth-child(4){ + padding: 7px 10px 7px 7px; +} + +#wikis-index th:nth-child(5), +#wikis-index td:nth-child(5){ + padding: 7px 10px 7px 7px; +} + +.wikis-index-tool { + padding: 7px 10px; +} + diff --git a/view/css/widgets.css b/view/css/widgets.css index 2a7c57f53..abaf03038 100644 --- a/view/css/widgets.css +++ b/view/css/widgets.css @@ -18,6 +18,41 @@ word-wrap: break-word; } +.widget-nav-pills-icons { + opacity: 0; + padding: 6px 10px; + float: right; + position: relative; + z-index:1; +} + + +.widget-nav-pills-checkbox { + padding: 6px 10px; + float: right; + position: relative; + z-index:1; + cursor: pointer; +} + +i.widget-nav-pills-icons, +i.widget-nav-pills-checkbox { + margin-top: 2px; +} + +.widget-nav-pills-icons:hover + a { + background-color: #eee; +} + +.widget-nav-pills-checkbox:hover + a { + background-color: #eee; +} + +li:hover .widget-nav-pills-icons { + opacity: 1; +} + + /* suggest */ .suggest-widget-more { @@ -30,7 +65,7 @@ padding: 5px; width: 100%; resize: vertical; - height: 250px; + min-height: 250px; } /* saved searches */ @@ -151,3 +186,7 @@ li:hover .group-edit-icon { .cover-photo-subtitle { font-size: 20px; } + +a.wikilist { + z-index: 1; +} diff --git a/view/de/hmessages.po b/view/de/hmessages.po index 8282f354f..fbdb33166 100644 --- a/view/de/hmessages.po +++ b/view/de/hmessages.po @@ -1,6 +1,6 @@ -# Hubzilla Project -# Copyright (C) 2012-2014 the Hubzilla Project -# This file is distributed under the same license as the Red package. +# hubzilla +# Copyright (C) 2012-2016 hubzilla +# This file is distributed under the same license as the hubzilla package. # # Translators: # Alex , 2013 @@ -10,6 +10,7 @@ # Einer von Vielen , 2013 # Ettore Atalan , 2015-2016 # Frank Dieckmann , 2013 +# Harald Klimach , 2016 # JooBee , 2014 # Kai , 2015 # Oliver , 2015-2016 @@ -24,8 +25,8 @@ msgid "" msgstr "" "Project-Id-Version: Redmatrix\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-09-17 14:51-0700\n" -"PO-Revision-Date: 2016-09-22 11:28+0000\n" +"POT-Creation-Date: 2016-12-09 00:05-0800\n" +"PO-Revision-Date: 2016-12-10 12:27+0000\n" "Last-Translator: Phellmes \n" "Language-Team: German (http://www.transifex.com/Friendica/red-matrix/language/de/)\n" "MIME-Version: 1.0\n" @@ -34,378 +35,412 @@ msgstr "" "Language: de\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../Zotlabs/Access/PermissionRoles.php:182 +#: ../../Zotlabs/Access/PermissionRoles.php:227 #: ../../include/permissions.php:945 msgid "Social Networking" msgstr "Soziales Netzwerk" -#: ../../Zotlabs/Access/PermissionRoles.php:183 +#: ../../Zotlabs/Access/PermissionRoles.php:228 #: ../../include/permissions.php:945 msgid "Social - Mostly Public" msgstr "Soziales Netzwerk - Weitgehend öffentlich" -#: ../../Zotlabs/Access/PermissionRoles.php:184 +#: ../../Zotlabs/Access/PermissionRoles.php:229 #: ../../include/permissions.php:945 msgid "Social - Restricted" msgstr "Soziales Netzwerk - Beschränkt" -#: ../../Zotlabs/Access/PermissionRoles.php:185 +#: ../../Zotlabs/Access/PermissionRoles.php:230 #: ../../include/permissions.php:945 msgid "Social - Private" msgstr "Soziales Netzwerk - Privat" -#: ../../Zotlabs/Access/PermissionRoles.php:188 +#: ../../Zotlabs/Access/PermissionRoles.php:233 #: ../../include/permissions.php:946 msgid "Community Forum" msgstr "Forum" -#: ../../Zotlabs/Access/PermissionRoles.php:189 +#: ../../Zotlabs/Access/PermissionRoles.php:234 #: ../../include/permissions.php:946 msgid "Forum - Mostly Public" msgstr "Forum - Weitgehend öffentlich" -#: ../../Zotlabs/Access/PermissionRoles.php:190 +#: ../../Zotlabs/Access/PermissionRoles.php:235 #: ../../include/permissions.php:946 msgid "Forum - Restricted" msgstr "Forum - Beschränkt" -#: ../../Zotlabs/Access/PermissionRoles.php:191 +#: ../../Zotlabs/Access/PermissionRoles.php:236 #: ../../include/permissions.php:946 msgid "Forum - Private" msgstr "Forum - Privat" -#: ../../Zotlabs/Access/PermissionRoles.php:194 +#: ../../Zotlabs/Access/PermissionRoles.php:239 #: ../../include/permissions.php:947 msgid "Feed Republish" msgstr "Teilen von Feeds" -#: ../../Zotlabs/Access/PermissionRoles.php:195 +#: ../../Zotlabs/Access/PermissionRoles.php:240 #: ../../include/permissions.php:947 msgid "Feed - Mostly Public" msgstr "Feeds - Weitgehend öffentlich" -#: ../../Zotlabs/Access/PermissionRoles.php:196 +#: ../../Zotlabs/Access/PermissionRoles.php:241 #: ../../include/permissions.php:947 msgid "Feed - Restricted" msgstr "Feeds - Beschränkt" -#: ../../Zotlabs/Access/PermissionRoles.php:199 +#: ../../Zotlabs/Access/PermissionRoles.php:244 #: ../../include/permissions.php:948 msgid "Special Purpose" msgstr "Für besondere Zwecke" -#: ../../Zotlabs/Access/PermissionRoles.php:200 +#: ../../Zotlabs/Access/PermissionRoles.php:245 #: ../../include/permissions.php:948 msgid "Special - Celebrity/Soapbox" msgstr "Speziell - Mitteilungs-Kanal (keine Kommentare)" -#: ../../Zotlabs/Access/PermissionRoles.php:201 +#: ../../Zotlabs/Access/PermissionRoles.php:246 #: ../../include/permissions.php:948 msgid "Special - Group Repository" msgstr "Speziell - Gruppenarchiv" -#: ../../Zotlabs/Access/PermissionRoles.php:204 +#: ../../Zotlabs/Access/PermissionRoles.php:249 #: ../../Zotlabs/Module/Register.php:213 #: ../../Zotlabs/Module/New_channel.php:132 -#: ../../Zotlabs/Module/Settings/Channel.php:442 -#: ../../include/permissions.php:949 ../../include/selectors.php:49 -#: ../../include/selectors.php:66 ../../include/selectors.php:104 -#: ../../include/selectors.php:140 +#: ../../Zotlabs/Module/Settings/Channel.php:445 +#: ../../extend/addon/addon/cdav/cdav.php:277 +#: ../../extend/addon/addon/cdav/cdav.php:284 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1148 +#: ../../include/selectors.php:49 ../../include/selectors.php:66 +#: ../../include/selectors.php:104 ../../include/selectors.php:140 +#: ../../include/permissions.php:949 msgid "Other" msgstr "Andere" -#: ../../Zotlabs/Access/PermissionRoles.php:205 +#: ../../Zotlabs/Access/PermissionRoles.php:250 #: ../../include/permissions.php:949 msgid "Custom/Expert Mode" msgstr "Benutzerdefiniert/Expertenmodus" -#: ../../Zotlabs/Access/Permissions.php:30 +#: ../../Zotlabs/Access/Permissions.php:46 msgid "Can view my channel stream and posts" msgstr "Kann meinen Kanal-Stream und meine Beiträge sehen" -#: ../../Zotlabs/Access/Permissions.php:31 ../../include/permissions.php:42 +#: ../../Zotlabs/Access/Permissions.php:47 ../../include/permissions.php:42 msgid "Can send me their channel stream and posts" msgstr "Kann mir die Beiträge aus seinem/ihrem Kanal schicken" -#: ../../Zotlabs/Access/Permissions.php:32 ../../include/permissions.php:36 +#: ../../Zotlabs/Access/Permissions.php:48 ../../include/permissions.php:36 msgid "Can view my default channel profile" msgstr "Kann mein Standardprofil sehen" -#: ../../Zotlabs/Access/Permissions.php:33 ../../include/permissions.php:37 +#: ../../Zotlabs/Access/Permissions.php:49 ../../include/permissions.php:37 msgid "Can view my connections" msgstr "Kann meine Verbindungen sehen" -#: ../../Zotlabs/Access/Permissions.php:34 ../../include/permissions.php:38 +#: ../../Zotlabs/Access/Permissions.php:50 ../../include/permissions.php:38 msgid "Can view my file storage and photos" msgstr "Kann meine Datei- und Bilderordner sehen" -#: ../../Zotlabs/Access/Permissions.php:35 +#: ../../Zotlabs/Access/Permissions.php:51 msgid "Can upload/modify my file storage and photos" msgstr "Kann in meine Datei- und Bilderordner hochladen/ändern" -#: ../../Zotlabs/Access/Permissions.php:36 +#: ../../Zotlabs/Access/Permissions.php:52 msgid "Can view my channel webpages" msgstr "Kann die Webseiten meines Kanals sehen" -#: ../../Zotlabs/Access/Permissions.php:37 +#: ../../Zotlabs/Access/Permissions.php:53 msgid "Can create/edit my channel webpages" msgstr "Kann Webseiten in meinem Kanal erstellen/ändern" -#: ../../Zotlabs/Access/Permissions.php:38 +#: ../../Zotlabs/Access/Permissions.php:54 msgid "Can post on my channel (wall) page" msgstr "Kann auf meiner Kanal-Seite (\"wall\") Beiträge veröffentlichen" -#: ../../Zotlabs/Access/Permissions.php:39 ../../include/permissions.php:44 +#: ../../Zotlabs/Access/Permissions.php:55 ../../include/permissions.php:44 msgid "Can comment on or like my posts" msgstr "Darf meine Beiträge kommentieren und mögen/nicht mögen" -#: ../../Zotlabs/Access/Permissions.php:40 ../../include/permissions.php:45 +#: ../../Zotlabs/Access/Permissions.php:56 ../../include/permissions.php:45 msgid "Can send me private mail messages" msgstr "Kann mir private Nachrichten schicken" -#: ../../Zotlabs/Access/Permissions.php:41 +#: ../../Zotlabs/Access/Permissions.php:57 msgid "Can like/dislike profiles and profile things" msgstr "Kann Profile und Profilsachen mögen/nicht mögen" -#: ../../Zotlabs/Access/Permissions.php:42 +#: ../../Zotlabs/Access/Permissions.php:58 msgid "Can forward to all my channel connections via @+ mentions in posts" msgstr "Kann an alle meine Verbindungen via @-Erwähnungen Nachrichten weiterleiten" -#: ../../Zotlabs/Access/Permissions.php:43 +#: ../../Zotlabs/Access/Permissions.php:59 msgid "Can chat with me" msgstr "Kann mit mir chatten" -#: ../../Zotlabs/Access/Permissions.php:44 ../../include/permissions.php:53 +#: ../../Zotlabs/Access/Permissions.php:60 ../../include/permissions.php:53 msgid "Can source my public posts in derived channels" msgstr "Kann meine öffentlichen Beiträge als Quellen für Kanäle verwenden" -#: ../../Zotlabs/Access/Permissions.php:45 +#: ../../Zotlabs/Access/Permissions.php:61 msgid "Can administer my channel" msgstr "Kann meinen Kanal administrieren" -#: ../../Zotlabs/Storage/Browser.php:107 ../../Zotlabs/Storage/Browser.php:239 +#: ../../Zotlabs/Storage/Browser.php:106 ../../Zotlabs/Storage/Browser.php:237 msgid "parent" msgstr "Übergeordnetes Verzeichnis" -#: ../../Zotlabs/Storage/Browser.php:131 ../../include/text.php:2711 +#: ../../Zotlabs/Storage/Browser.php:130 ../../include/text.php:2682 msgid "Collection" msgstr "Sammlung" -#: ../../Zotlabs/Storage/Browser.php:134 +#: ../../Zotlabs/Storage/Browser.php:133 msgid "Principal" msgstr "Prinzipal" -#: ../../Zotlabs/Storage/Browser.php:137 +#: ../../Zotlabs/Storage/Browser.php:136 msgid "Addressbook" msgstr "Adressbuch" -#: ../../Zotlabs/Storage/Browser.php:140 +#: ../../Zotlabs/Storage/Browser.php:139 msgid "Calendar" msgstr "Kalender" -#: ../../Zotlabs/Storage/Browser.php:143 +#: ../../Zotlabs/Storage/Browser.php:142 msgid "Schedule Inbox" msgstr "Posteingang für überwachte Kalender" -#: ../../Zotlabs/Storage/Browser.php:146 +#: ../../Zotlabs/Storage/Browser.php:145 msgid "Schedule Outbox" msgstr "Postausgang für überwachte Kalender" -#: ../../Zotlabs/Storage/Browser.php:164 ../../Zotlabs/Module/Photos.php:789 +#: ../../Zotlabs/Storage/Browser.php:163 ../../Zotlabs/Module/Photos.php:789 #: ../../Zotlabs/Module/Photos.php:1249 -#: ../../Zotlabs/Module/Embedphotos.php:147 ../../Zotlabs/Lib/Apps.php:490 -#: ../../Zotlabs/Lib/Apps.php:565 ../../include/conversation.php:1033 -#: ../../include/widgets.php:1679 +#: ../../Zotlabs/Module/Embedphotos.php:145 ../../Zotlabs/Lib/Apps.php:490 +#: ../../Zotlabs/Lib/Apps.php:565 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:745 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:746 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:753 +#: ../../include/widgets.php:1754 ../../include/conversation.php:1047 msgid "Unknown" msgstr "Unbekannt" -#: ../../Zotlabs/Storage/Browser.php:226 ../../Zotlabs/Module/Fbrowser.php:85 +#: ../../Zotlabs/Storage/Browser.php:224 ../../Zotlabs/Module/Fbrowser.php:85 #: ../../Zotlabs/Lib/Apps.php:217 ../../include/nav.php:96 -#: ../../include/conversation.php:1678 +#: ../../include/conversation.php:1699 msgid "Files" msgstr "Dateien" -#: ../../Zotlabs/Storage/Browser.php:227 +#: ../../Zotlabs/Storage/Browser.php:225 msgid "Total" msgstr "Summe" -#: ../../Zotlabs/Storage/Browser.php:229 +#: ../../Zotlabs/Storage/Browser.php:227 msgid "Shared" msgstr "Geteilt" -#: ../../Zotlabs/Storage/Browser.php:230 ../../Zotlabs/Storage/Browser.php:323 -#: ../../Zotlabs/Module/Menu.php:118 ../../Zotlabs/Module/Webpages.php:239 -#: ../../Zotlabs/Module/New_channel.php:147 +#: ../../Zotlabs/Storage/Browser.php:228 ../../Zotlabs/Storage/Browser.php:321 +#: ../../Zotlabs/Module/Menu.php:118 ../../Zotlabs/Module/New_channel.php:147 #: ../../Zotlabs/Module/Blocks.php:159 ../../Zotlabs/Module/Layouts.php:184 +#: ../../Zotlabs/Module/Webpages.php:239 +#: ../../extend/addon/addon/cdav/include/widgets.php:127 +#: ../../extend/addon/addon/cdav/include/widgets.php:164 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1151 +#: ../../include/widgets.php:969 msgid "Create" msgstr "Erstelle" -#: ../../Zotlabs/Storage/Browser.php:231 ../../Zotlabs/Storage/Browser.php:325 +#: ../../Zotlabs/Storage/Browser.php:229 ../../Zotlabs/Storage/Browser.php:323 #: ../../Zotlabs/Module/Cover_photo.php:357 -#: ../../Zotlabs/Module/Profile_photo.php:390 #: ../../Zotlabs/Module/Photos.php:816 ../../Zotlabs/Module/Photos.php:1370 -#: ../../Zotlabs/Module/Embedphotos.php:159 ../../include/widgets.php:1692 +#: ../../Zotlabs/Module/Profile_photo.php:410 +#: ../../Zotlabs/Module/Embedphotos.php:157 +#: ../../extend/addon/addon/cdav/include/widgets.php:132 +#: ../../extend/addon/addon/cdav/include/widgets.php:168 +#: ../../include/widgets.php:1767 msgid "Upload" msgstr "Hochladen" -#: ../../Zotlabs/Storage/Browser.php:235 -#: ../../Zotlabs/Module/Admin/Channels.php:163 -#: ../../Zotlabs/Module/Sharedwithme.php:99 ../../Zotlabs/Module/Chat.php:250 +#: ../../Zotlabs/Storage/Browser.php:233 +#: ../../Zotlabs/Module/Admin/Channels.php:159 +#: ../../Zotlabs/Module/Sharedwithme.php:99 ../../Zotlabs/Module/Wiki.php:151 #: ../../Zotlabs/Module/Settings/Oauth.php:89 #: ../../Zotlabs/Module/Settings/Oauth.php:115 +#: ../../Zotlabs/Module/Chat.php:250 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1136 +#: ../../extend/addon/addon/rendezvous/rendezvous.php:132 msgid "Name" msgstr "Name" -#: ../../Zotlabs/Storage/Browser.php:236 +#: ../../Zotlabs/Storage/Browser.php:234 ../../Zotlabs/Module/Wiki.php:152 msgid "Type" msgstr "Typ" -#: ../../Zotlabs/Storage/Browser.php:237 -#: ../../Zotlabs/Module/Sharedwithme.php:101 ../../include/text.php:1372 +#: ../../Zotlabs/Storage/Browser.php:235 +#: ../../Zotlabs/Module/Sharedwithme.php:101 ../../include/text.php:1390 msgid "Size" msgstr "Größe" -#: ../../Zotlabs/Storage/Browser.php:238 +#: ../../Zotlabs/Storage/Browser.php:236 #: ../../Zotlabs/Module/Sharedwithme.php:102 msgid "Last Modified" msgstr "Zuletzt geändert" -#: ../../Zotlabs/Storage/Browser.php:240 -#: ../../Zotlabs/Module/Admin/Profs.php:154 +#: ../../Zotlabs/Storage/Browser.php:238 #: ../../Zotlabs/Module/Connections.php:290 #: ../../Zotlabs/Module/Connections.php:310 -#: ../../Zotlabs/Module/Editblock.php:109 +#: ../../Zotlabs/Module/Admin/Profs.php:154 #: ../../Zotlabs/Module/Editlayout.php:114 #: ../../Zotlabs/Module/Editwebpage.php:145 ../../Zotlabs/Module/Menu.php:112 -#: ../../Zotlabs/Module/Webpages.php:240 ../../Zotlabs/Module/Blocks.php:160 -#: ../../Zotlabs/Module/Layouts.php:192 ../../Zotlabs/Module/Editpost.php:84 -#: ../../Zotlabs/Module/Thing.php:260 -#: ../../Zotlabs/Module/Settings/Oauth.php:149 ../../Zotlabs/Lib/Apps.php:341 -#: ../../Zotlabs/Lib/ThreadItem.php:106 ../../include/page_widgets.php:9 -#: ../../include/page_widgets.php:39 ../../include/channel.php:959 -#: ../../include/channel.php:963 ../../include/menu.php:113 +#: ../../Zotlabs/Module/Editblock.php:109 ../../Zotlabs/Module/Editpost.php:84 +#: ../../Zotlabs/Module/Blocks.php:160 ../../Zotlabs/Module/Layouts.php:192 +#: ../../Zotlabs/Module/Webpages.php:240 ../../Zotlabs/Module/Wiki.php:144 +#: ../../Zotlabs/Module/Wiki.php:252 +#: ../../Zotlabs/Module/Settings/Oauth.php:149 +#: ../../Zotlabs/Module/Thing.php:260 ../../Zotlabs/Lib/Apps.php:341 +#: ../../Zotlabs/Lib/ThreadItem.php:106 +#: ../../extend/addon/addon/cdav/include/widgets.php:125 +#: ../../extend/addon/addon/cdav/include/widgets.php:161 +#: ../../include/channel.php:961 ../../include/channel.php:965 +#: ../../include/page_widgets.php:9 ../../include/page_widgets.php:39 +#: ../../include/menu.php:113 ../../include/widgets.php:965 msgid "Edit" msgstr "Bearbeiten" -#: ../../Zotlabs/Storage/Browser.php:241 -#: ../../Zotlabs/Module/Admin/Accounts.php:174 -#: ../../Zotlabs/Module/Admin/Channels.php:153 -#: ../../Zotlabs/Module/Admin/Profs.php:155 +#: ../../Zotlabs/Storage/Browser.php:239 ../../Zotlabs/Module/Connedit.php:635 #: ../../Zotlabs/Module/Connections.php:263 -#: ../../Zotlabs/Module/Editblock.php:134 +#: ../../Zotlabs/Module/Admin/Profs.php:155 +#: ../../Zotlabs/Module/Admin/Accounts.php:173 +#: ../../Zotlabs/Module/Admin/Channels.php:149 #: ../../Zotlabs/Module/Editlayout.php:137 -#: ../../Zotlabs/Module/Editwebpage.php:170 ../../Zotlabs/Module/Group.php:177 -#: ../../Zotlabs/Module/Webpages.php:242 ../../Zotlabs/Module/Blocks.php:162 -#: ../../Zotlabs/Module/Connedit.php:607 ../../Zotlabs/Module/Thing.php:261 -#: ../../Zotlabs/Module/Photos.php:1179 -#: ../../Zotlabs/Module/Settings/Oauth.php:150 ../../Zotlabs/Lib/Apps.php:342 -#: ../../Zotlabs/Lib/ThreadItem.php:126 ../../include/conversation.php:660 +#: ../../Zotlabs/Module/Editwebpage.php:170 +#: ../../Zotlabs/Module/Editblock.php:134 ../../Zotlabs/Module/Group.php:177 +#: ../../Zotlabs/Module/Photos.php:1179 ../../Zotlabs/Module/Blocks.php:162 +#: ../../Zotlabs/Module/Webpages.php:242 +#: ../../Zotlabs/Module/Settings/Oauth.php:150 +#: ../../Zotlabs/Module/Thing.php:261 ../../Zotlabs/Lib/Apps.php:342 +#: ../../Zotlabs/Lib/ThreadItem.php:126 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:864 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1153 +#: ../../include/conversation.php:676 msgid "Delete" msgstr "Löschen" -#: ../../Zotlabs/Storage/Browser.php:301 +#: ../../Zotlabs/Storage/Browser.php:299 #, php-format msgid "You are using %1$s of your available file storage." msgstr "Sie verwenden %1$s von Ihrem verfügbaren Dateispeicher." -#: ../../Zotlabs/Storage/Browser.php:306 +#: ../../Zotlabs/Storage/Browser.php:304 #, php-format msgid "You are using %1$s of %2$s available file storage. (%3$s%)" msgstr "Sie verwenden %1$s von %2$s verfügbarem Dateispeicher. (%3$s%)" -#: ../../Zotlabs/Storage/Browser.php:317 +#: ../../Zotlabs/Storage/Browser.php:315 msgid "WARNING:" msgstr "WARNUNG:" -#: ../../Zotlabs/Storage/Browser.php:322 +#: ../../Zotlabs/Storage/Browser.php:320 msgid "Create new folder" msgstr "Neuen Ordner anlegen" -#: ../../Zotlabs/Storage/Browser.php:324 +#: ../../Zotlabs/Storage/Browser.php:322 msgid "Upload file" msgstr "Datei hochladen" -#: ../../Zotlabs/Storage/Browser.php:337 +#: ../../Zotlabs/Storage/Browser.php:335 msgid "Drop files here to immediately upload" msgstr "Dateien zum sofortigen Hochladen hier fallen lassen" -#: ../../Zotlabs/Web/Router.php:65 ../../Zotlabs/Web/WebServer.php:128 +#: ../../Zotlabs/Web/Router.php:67 ../../Zotlabs/Web/WebServer.php:128 #: ../../Zotlabs/Module/Achievements.php:34 -#: ../../Zotlabs/Module/Register.php:77 ../../Zotlabs/Module/Authtest.php:16 -#: ../../Zotlabs/Module/Bookmarks.php:61 ../../Zotlabs/Module/Page.php:35 -#: ../../Zotlabs/Module/Page.php:91 ../../Zotlabs/Module/Connections.php:33 +#: ../../Zotlabs/Module/Register.php:77 ../../Zotlabs/Module/Connedit.php:397 +#: ../../Zotlabs/Module/Authtest.php:16 ../../Zotlabs/Module/Bookmarks.php:61 +#: ../../Zotlabs/Module/Locs.php:87 ../../Zotlabs/Module/Page.php:35 +#: ../../Zotlabs/Module/Page.php:91 ../../Zotlabs/Module/Manage.php:10 +#: ../../Zotlabs/Module/Connections.php:33 #: ../../Zotlabs/Module/Cover_photo.php:277 #: ../../Zotlabs/Module/Cover_photo.php:290 -#: ../../Zotlabs/Module/Editblock.php:67 #: ../../Zotlabs/Module/Editlayout.php:67 #: ../../Zotlabs/Module/Editlayout.php:90 #: ../../Zotlabs/Module/Editwebpage.php:68 #: ../../Zotlabs/Module/Editwebpage.php:89 #: ../../Zotlabs/Module/Editwebpage.php:104 -#: ../../Zotlabs/Module/Editwebpage.php:126 ../../Zotlabs/Module/Menu.php:78 -#: ../../Zotlabs/Module/Appman.php:75 ../../Zotlabs/Module/Mail.php:121 -#: ../../Zotlabs/Module/Settings.php:59 +#: ../../Zotlabs/Module/Editwebpage.php:126 +#: ../../Zotlabs/Module/Channel.php:107 ../../Zotlabs/Module/Channel.php:237 +#: ../../Zotlabs/Module/Channel.php:277 ../../Zotlabs/Module/Network.php:15 +#: ../../Zotlabs/Module/Menu.php:78 ../../Zotlabs/Module/Appman.php:75 #: ../../Zotlabs/Module/Filestorage.php:23 #: ../../Zotlabs/Module/Filestorage.php:78 #: ../../Zotlabs/Module/Filestorage.php:93 -#: ../../Zotlabs/Module/Filestorage.php:120 ../../Zotlabs/Module/Group.php:13 -#: ../../Zotlabs/Module/Webpages.php:116 ../../Zotlabs/Module/Block.php:26 -#: ../../Zotlabs/Module/Block.php:76 ../../Zotlabs/Module/Invite.php:17 -#: ../../Zotlabs/Module/Invite.php:91 ../../Zotlabs/Module/Locs.php:87 -#: ../../Zotlabs/Module/Network.php:15 ../../Zotlabs/Module/Like.php:181 -#: ../../Zotlabs/Module/Manage.php:10 ../../Zotlabs/Module/Mitem.php:115 -#: ../../Zotlabs/Module/Message.php:18 ../../Zotlabs/Module/Rate.php:113 -#: ../../Zotlabs/Module/Mood.php:116 ../../Zotlabs/Module/Profiles.php:203 -#: ../../Zotlabs/Module/Profiles.php:601 ../../Zotlabs/Module/Api.php:12 -#: ../../Zotlabs/Module/Events.php:264 ../../Zotlabs/Module/Item.php:214 -#: ../../Zotlabs/Module/Item.php:222 ../../Zotlabs/Module/Item.php:1073 +#: ../../Zotlabs/Module/Filestorage.php:120 ../../Zotlabs/Module/Item.php:220 +#: ../../Zotlabs/Module/Item.php:230 ../../Zotlabs/Module/Item.php:1098 +#: ../../Zotlabs/Module/Settings.php:59 ../../Zotlabs/Module/Mail.php:135 +#: ../../Zotlabs/Module/Block.php:26 ../../Zotlabs/Module/Block.php:76 +#: ../../Zotlabs/Module/Invite.php:17 ../../Zotlabs/Module/Invite.php:94 +#: ../../Zotlabs/Module/Editblock.php:67 ../../Zotlabs/Module/Group.php:13 +#: ../../Zotlabs/Module/Mitem.php:115 ../../Zotlabs/Module/Message.php:18 +#: ../../Zotlabs/Module/Mood.php:116 ../../Zotlabs/Module/Photos.php:73 +#: ../../Zotlabs/Module/Setup.php:212 ../../Zotlabs/Module/Editpost.php:17 #: ../../Zotlabs/Module/New_channel.php:77 #: ../../Zotlabs/Module/New_channel.php:104 -#: ../../Zotlabs/Module/Notifications.php:70 ../../Zotlabs/Module/Poke.php:137 -#: ../../Zotlabs/Module/Setup.php:220 ../../Zotlabs/Module/Profile.php:68 -#: ../../Zotlabs/Module/Profile.php:76 ../../Zotlabs/Module/Blocks.php:73 -#: ../../Zotlabs/Module/Blocks.php:80 ../../Zotlabs/Module/Layouts.php:71 -#: ../../Zotlabs/Module/Layouts.php:78 ../../Zotlabs/Module/Layouts.php:89 -#: ../../Zotlabs/Module/Profile_photo.php:265 -#: ../../Zotlabs/Module/Profile_photo.php:278 -#: ../../Zotlabs/Module/Common.php:39 ../../Zotlabs/Module/Pdledit.php:29 -#: ../../Zotlabs/Module/Connedit.php:395 ../../Zotlabs/Module/Regmod.php:21 -#: ../../Zotlabs/Module/Editpost.php:17 ../../Zotlabs/Module/Channel.php:104 -#: ../../Zotlabs/Module/Channel.php:228 ../../Zotlabs/Module/Channel.php:269 +#: ../../Zotlabs/Module/Notifications.php:11 ../../Zotlabs/Module/Poke.php:137 +#: ../../Zotlabs/Module/Profiles.php:197 ../../Zotlabs/Module/Profiles.php:595 +#: ../../Zotlabs/Module/Profile.php:68 ../../Zotlabs/Module/Profile.php:76 +#: ../../Zotlabs/Module/Blocks.php:73 ../../Zotlabs/Module/Blocks.php:80 +#: ../../Zotlabs/Module/Layouts.php:71 ../../Zotlabs/Module/Layouts.php:78 +#: ../../Zotlabs/Module/Layouts.php:89 ../../Zotlabs/Module/Rate.php:113 +#: ../../Zotlabs/Module/Like.php:181 +#: ../../Zotlabs/Module/Profile_photo.php:273 +#: ../../Zotlabs/Module/Profile_photo.php:286 +#: ../../Zotlabs/Module/Common.php:39 ../../Zotlabs/Module/Api.php:24 +#: ../../Zotlabs/Module/Regmod.php:21 ../../Zotlabs/Module/Pdledit.php:29 #: ../../Zotlabs/Module/Service_limits.php:11 -#: ../../Zotlabs/Module/Thing.php:274 ../../Zotlabs/Module/Thing.php:294 -#: ../../Zotlabs/Module/Thing.php:335 ../../Zotlabs/Module/Sharedwithme.php:11 -#: ../../Zotlabs/Module/Sources.php:74 ../../Zotlabs/Module/Suggest.php:30 -#: ../../Zotlabs/Module/Photos.php:73 +#: ../../Zotlabs/Module/Webpages.php:116 +#: ../../Zotlabs/Module/Sharedwithme.php:11 ../../Zotlabs/Module/Wiki.php:189 +#: ../../Zotlabs/Module/Wiki.php:302 ../../Zotlabs/Module/Sources.php:74 +#: ../../Zotlabs/Module/Suggest.php:30 ../../Zotlabs/Module/Thing.php:274 +#: ../../Zotlabs/Module/Thing.php:294 ../../Zotlabs/Module/Thing.php:335 #: ../../Zotlabs/Module/Viewconnections.php:28 #: ../../Zotlabs/Module/Viewconnections.php:33 #: ../../Zotlabs/Module/Viewsrc.php:18 ../../Zotlabs/Module/Chat.php:100 -#: ../../Zotlabs/Module/Chat.php:105 ../../Zotlabs/Lib/Chatroom.php:137 -#: ../../include/photos.php:27 ../../include/items.php:3496 -#: ../../include/attach.php:142 ../../include/attach.php:190 -#: ../../include/attach.php:253 ../../include/attach.php:267 -#: ../../include/attach.php:274 ../../include/attach.php:339 -#: ../../include/attach.php:353 ../../include/attach.php:360 -#: ../../include/attach.php:440 ../../include/attach.php:902 -#: ../../include/attach.php:973 ../../include/attach.php:1125 +#: ../../Zotlabs/Module/Chat.php:105 ../../Zotlabs/Module/Events.php:267 +#: ../../Zotlabs/Lib/Chatroom.php:137 +#: ../../extend/addon/addon/friendica/dfrn_confirm.php:55 +#: ../../extend/addon/addon/keepout/keepout.php:36 +#: ../../extend/addon/addon/pumpio/pumpio.php:40 +#: ../../extend/addon/addon/openid/Mod_Id.php:53 +#: ../../extend/addon/addon/diaspora_reconnect/diaspora_reconnect.php:58 +#: ../../include/items.php:3422 ../../include/attach.php:142 +#: ../../include/attach.php:189 ../../include/attach.php:253 +#: ../../include/attach.php:267 ../../include/attach.php:274 +#: ../../include/attach.php:341 ../../include/attach.php:355 +#: ../../include/attach.php:362 ../../include/attach.php:439 +#: ../../include/attach.php:906 ../../include/attach.php:977 +#: ../../include/attach.php:1135 ../../include/photos.php:27 msgid "Permission denied." msgstr "Berechtigung verweigert." -#: ../../Zotlabs/Web/Router.php:146 ../../include/help.php:53 +#: ../../Zotlabs/Web/Router.php:148 ../../include/help.php:63 msgid "Not Found" msgstr "Nicht gefunden" -#: ../../Zotlabs/Web/Router.php:149 ../../Zotlabs/Module/Page.php:94 +#: ../../Zotlabs/Web/Router.php:151 ../../Zotlabs/Module/Page.php:94 #: ../../Zotlabs/Module/Display.php:120 ../../Zotlabs/Module/Block.php:79 -#: ../../include/help.php:56 +#: ../../include/help.php:66 msgid "Page not found." msgstr "Seite nicht gefunden." #: ../../Zotlabs/Web/WebServer.php:127 ../../Zotlabs/Module/Dreport.php:10 -#: ../../Zotlabs/Module/Dreport.php:66 ../../Zotlabs/Module/Group.php:72 -#: ../../Zotlabs/Module/Import_items.php:114 ../../Zotlabs/Module/Like.php:283 -#: ../../Zotlabs/Module/Profperm.php:28 ../../Zotlabs/Module/Subthread.php:62 -#: ../../include/items.php:403 +#: ../../Zotlabs/Module/Dreport.php:68 +#: ../../Zotlabs/Module/Import_items.php:114 ../../Zotlabs/Module/Group.php:72 +#: ../../Zotlabs/Module/Profperm.php:28 ../../Zotlabs/Module/Like.php:283 +#: ../../Zotlabs/Module/Subthread.php:62 +#: ../../extend/addon/addon/frphotos/frphotos.php:81 +#: ../../extend/addon/addon/redfiles/redfiles.php:109 +#: ../../extend/addon/addon/redphotos/redphotos.php:119 +#: ../../include/items.php:327 msgid "Permission denied" msgstr "Keine Berechtigung" @@ -415,19 +450,21 @@ msgid "" " logout and retry." msgstr "Fern-Authentifizierung blockiert. Du bist lokal auf diesem Server angemeldet. Bitte melde Dich ab und versuche es erneut." -#: ../../Zotlabs/Zot/Auth.php:246 +#: ../../Zotlabs/Zot/Auth.php:250 +#: ../../extend/addon/addon/openid/Mod_Openid.php:76 +#: ../../extend/addon/addon/openid/Mod_Openid.php:183 #, php-format msgid "Welcome %s. Remote authentication successful." msgstr "Willkommen %s. Entfernte Authentifizierung erfolgreich." #: ../../Zotlabs/Module/Achievements.php:15 -#: ../../Zotlabs/Module/Editblock.php:31 -#: ../../Zotlabs/Module/Editlayout.php:31 +#: ../../Zotlabs/Module/Connect.php:17 ../../Zotlabs/Module/Editlayout.php:31 #: ../../Zotlabs/Module/Editwebpage.php:32 -#: ../../Zotlabs/Module/Filestorage.php:59 ../../Zotlabs/Module/Connect.php:17 -#: ../../Zotlabs/Module/Webpages.php:33 ../../Zotlabs/Module/Hcard.php:12 +#: ../../Zotlabs/Module/Filestorage.php:59 +#: ../../Zotlabs/Module/Editblock.php:31 ../../Zotlabs/Module/Hcard.php:12 #: ../../Zotlabs/Module/Profile.php:20 ../../Zotlabs/Module/Blocks.php:33 -#: ../../Zotlabs/Module/Layouts.php:31 ../../include/channel.php:859 +#: ../../Zotlabs/Module/Layouts.php:31 ../../Zotlabs/Module/Webpages.php:33 +#: ../../include/channel.php:862 msgid "Requested profile is not available." msgstr "Das angefragte Profil ist nicht verfügbar." @@ -443,76 +480,6 @@ msgstr "Abwesend" msgid "Online" msgstr "Online" -#: ../../Zotlabs/Module/Dreport.php:44 -msgid "Invalid message" -msgstr "Ungültige Beitrags-ID (mid)" - -#: ../../Zotlabs/Module/Dreport.php:76 -msgid "no results" -msgstr "keine Ergebnisse" - -#: ../../Zotlabs/Module/Dreport.php:91 -msgid "channel sync processed" -msgstr "Kanal-Sync verarbeitet" - -#: ../../Zotlabs/Module/Dreport.php:95 -msgid "queued" -msgstr "zur Warteschlange hinzugefügt" - -#: ../../Zotlabs/Module/Dreport.php:99 -msgid "posted" -msgstr "zugestellt" - -#: ../../Zotlabs/Module/Dreport.php:103 -msgid "accepted for delivery" -msgstr "für Zustellung akzeptiert" - -#: ../../Zotlabs/Module/Dreport.php:107 -msgid "updated" -msgstr "aktualisiert" - -#: ../../Zotlabs/Module/Dreport.php:110 -msgid "update ignored" -msgstr "Aktualisierung ignoriert" - -#: ../../Zotlabs/Module/Dreport.php:113 -msgid "permission denied" -msgstr "Zugriff verweigert" - -#: ../../Zotlabs/Module/Dreport.php:117 -msgid "recipient not found" -msgstr "Empfänger nicht gefunden." - -#: ../../Zotlabs/Module/Dreport.php:120 -msgid "mail recalled" -msgstr "Mail widerrufen" - -#: ../../Zotlabs/Module/Dreport.php:123 -msgid "duplicate mail received" -msgstr "Doppelte Mail erhalten" - -#: ../../Zotlabs/Module/Dreport.php:126 -msgid "mail delivered" -msgstr "Mail zugestellt" - -#: ../../Zotlabs/Module/Dreport.php:146 -#, php-format -msgid "Delivery report for %1$s" -msgstr "Zustellungsbericht für %1$s" - -#: ../../Zotlabs/Module/Dreport.php:149 -msgid "Options" -msgstr "Optionen" - -#: ../../Zotlabs/Module/Dreport.php:150 -msgid "Redeliver" -msgstr "Erneut zustellen" - -#: ../../Zotlabs/Module/Probe.php:28 ../../Zotlabs/Module/Probe.php:32 -#, php-format -msgid "Fetching URL returns error: %1$s" -msgstr "Abrufen der URL gab einen Fehler zurück: %1$s" - #: ../../Zotlabs/Module/Register.php:49 msgid "Maximum daily site registrations exceeded. Please try again tomorrow." msgstr "Maximale Anzahl täglicher Neuanmeldungen erreicht. Bitte versuche es morgen noch einmal." @@ -558,7 +525,7 @@ msgid "" "Please try again tomorrow." msgstr "Die maximale Anzahl täglicher Registrierungen auf diesem Server wurde überschritten. Bitte versuche es morgen noch einmal." -#: ../../Zotlabs/Module/Register.php:221 +#: ../../Zotlabs/Module/Register.php:221 ../../Zotlabs/Module/Siteinfo.php:27 msgid "Terms of Service" msgstr "Nutzungsbedingungen" @@ -635,7 +602,7 @@ msgid "yes" msgstr "ja" #: ../../Zotlabs/Module/Register.php:253 -#: ../../Zotlabs/Module/Admin/Site.php:268 +#: ../../Zotlabs/Module/Admin/Site.php:261 msgid "Registration" msgstr "Registrierung" @@ -643,8 +610,8 @@ msgstr "Registrierung" msgid "Membership on this site is by invitation only." msgstr "Mitgliedschaft auf dieser Seite ist nur nach vorheriger Einladung möglich." -#: ../../Zotlabs/Module/Register.php:270 ../../include/nav.php:152 -#: ../../boot.php:1721 +#: ../../Zotlabs/Module/Register.php:270 ../../include/nav.php:150 +#: ../../boot.php:1701 msgid "Register" msgstr "Registrieren" @@ -652,308 +619,1088 @@ msgstr "Registrieren" msgid "" "This site may require email verification after submitting this form. If you " "are returned to a login page, please check your email for instructions." -msgstr "Diese Seite verlangt möglicherweise eine Emailbestätigung nach dem Ansenden des Formulars. Wenn Du auf eine Login-Seite zurückgeleitet wirst, prüfe bitte auf neue Mail mit entsprechenden Hinweisen." +msgstr "Diese Seite verlangt möglicherweise eine Emailbestätigung nach dem Absenden des Formulars. Wenn Du auf eine Login-Seite zurückgeleitet wirst, prüfe bitte Deinen Posteingang auf neue Mails mit entsprechenden Hinweisen." -#: ../../Zotlabs/Module/Admin/Accounts.php:36 +#: ../../Zotlabs/Module/Probe.php:28 ../../Zotlabs/Module/Probe.php:32 #, php-format -msgid "%s account blocked/unblocked" -msgid_plural "%s account blocked/unblocked" -msgstr[0] "%s Konto blockiert/freigegeben" -msgstr[1] "%s Konten blockiert/freigegeben" +msgid "Fetching URL returns error: %1$s" +msgstr "Abrufen der URL gab einen Fehler zurück: %1$s" -#: ../../Zotlabs/Module/Admin/Accounts.php:43 +#: ../../Zotlabs/Module/Match.php:26 +msgid "Profile Match" +msgstr "Profil-Übereinstimmungen" + +#: ../../Zotlabs/Module/Match.php:35 +msgid "No keywords to match. Please add keywords to your default profile." +msgstr "Keine Schlüsselwörter für den Abgleich gefunden. Bitte füge Schlüsselwörter zu Deinem Standardprofil hinzu." + +#: ../../Zotlabs/Module/Match.php:67 +msgid "is interested in:" +msgstr "interessiert sich für:" + +#: ../../Zotlabs/Module/Match.php:68 ../../Zotlabs/Module/Directory.php:328 +#: ../../Zotlabs/Module/Suggest.php:56 ../../include/channel.php:1036 +#: ../../include/connections.php:78 ../../include/widgets.php:147 +#: ../../include/widgets.php:184 ../../include/conversation.php:971 +msgid "Connect" +msgstr "Verbinden" + +#: ../../Zotlabs/Module/Match.php:74 +msgid "No matches" +msgstr "Keine Übereinstimmungen" + +#: ../../Zotlabs/Module/Connedit.php:82 +msgid "Could not access contact record." +msgstr "Konnte nicht auf den Kontakteintrag zugreifen." + +#: ../../Zotlabs/Module/Connedit.php:106 +msgid "Could not locate selected profile." +msgstr "Gewähltes Profil nicht gefunden." + +#: ../../Zotlabs/Module/Connedit.php:258 +msgid "Connection updated." +msgstr "Verbindung aktualisiert." + +#: ../../Zotlabs/Module/Connedit.php:260 +msgid "Failed to update connection record." +msgstr "Konnte den Verbindungseintrag nicht aktualisieren." + +#: ../../Zotlabs/Module/Connedit.php:310 +msgid "is now connected to" +msgstr "ist jetzt verbunden mit" + +#: ../../Zotlabs/Module/Connedit.php:411 ../../Zotlabs/Module/Connedit.php:716 +#: ../../Zotlabs/Module/Admin/Site.php:218 ../../Zotlabs/Module/Menu.php:100 +#: ../../Zotlabs/Module/Menu.php:157 ../../Zotlabs/Module/Filestorage.php:160 +#: ../../Zotlabs/Module/Filestorage.php:168 ../../Zotlabs/Module/Mitem.php:162 +#: ../../Zotlabs/Module/Mitem.php:163 ../../Zotlabs/Module/Mitem.php:240 +#: ../../Zotlabs/Module/Mitem.php:241 ../../Zotlabs/Module/Photos.php:653 +#: ../../Zotlabs/Module/Profiles.php:641 ../../Zotlabs/Module/Api.php:97 +#: ../../Zotlabs/Module/Removeme.php:63 ../../Zotlabs/Module/Wiki.php:159 +#: ../../Zotlabs/Module/Settings/Channel.php:289 +#: ../../Zotlabs/Module/Settings/Display.php:103 +#: ../../Zotlabs/Module/Events.php:463 ../../Zotlabs/Module/Events.php:464 +#: ../../extend/addon/addon/dwpost/dwpost.php:73 +#: ../../extend/addon/addon/dwpost/dwpost.php:85 +#: ../../extend/addon/addon/flattrwidget/flattrwidget.php:120 +#: ../../extend/addon/addon/friendica/dfrn_request.php:865 +#: ../../extend/addon/addon/ijpost/ijpost.php:73 +#: ../../extend/addon/addon/ijpost/ijpost.php:85 +#: ../../extend/addon/addon/jappixmini/jappixmini.php:309 +#: ../../extend/addon/addon/jappixmini/jappixmini.php:313 +#: ../../extend/addon/addon/jappixmini/jappixmini.php:343 +#: ../../extend/addon/addon/jappixmini/jappixmini.php:351 +#: ../../extend/addon/addon/jappixmini/jappixmini.php:355 +#: ../../extend/addon/addon/jappixmini/jappixmini.php:359 +#: ../../extend/addon/addon/libertree/libertree.php:69 +#: ../../extend/addon/addon/libertree/libertree.php:81 +#: ../../extend/addon/addon/ljpost/ljpost.php:70 +#: ../../extend/addon/addon/ljpost/ljpost.php:82 +#: ../../extend/addon/addon/nofed/nofed.php:72 +#: ../../extend/addon/addon/nofed/nofed.php:76 +#: ../../extend/addon/addon/nsabait/nsabait.php:157 +#: ../../extend/addon/addon/nsfw/nsfw.php:84 +#: ../../extend/addon/addon/planets/planets.php:153 +#: ../../extend/addon/addon/pumpio/pumpio.php:219 +#: ../../extend/addon/addon/pumpio/pumpio.php:223 +#: ../../extend/addon/addon/pumpio/pumpio.php:227 +#: ../../extend/addon/addon/pumpio/pumpio.php:231 +#: ../../extend/addon/addon/rainbowtag/rainbowtag.php:81 +#: ../../extend/addon/addon/redred/redred.php:95 +#: ../../extend/addon/addon/redred/redred.php:99 +#: ../../extend/addon/addon/rtof/rtof.php:81 +#: ../../extend/addon/addon/rtof/rtof.php:85 +#: ../../extend/addon/addon/smileybutton/smileybutton.php:273 +#: ../../extend/addon/addon/smileybutton/smileybutton.php:277 +#: ../../extend/addon/addon/statusnet/statusnet.php:389 +#: ../../extend/addon/addon/statusnet/statusnet.php:411 +#: ../../extend/addon/addon/statusnet/statusnet.php:415 +#: ../../extend/addon/addon/statusnet/statusnet.php:424 +#: ../../extend/addon/addon/twitter/twitter.php:242 +#: ../../extend/addon/addon/twitter/twitter.php:246 +#: ../../extend/addon/addon/twitter/twitter.php:255 +#: ../../extend/addon/addon/visage/visage.php:166 +#: ../../extend/addon/addon/wppost/wppost.php:82 +#: ../../extend/addon/addon/wppost/wppost.php:105 +#: ../../extend/addon/addon/wppost/wppost.php:109 +#: ../../extend/addon/addon/xmpp/xmpp.php:53 +#: ../../extend/addon/addon/cdav/cdav.php:234 ../../include/dir_fns.php:143 +#: ../../include/dir_fns.php:144 ../../include/dir_fns.php:145 +#: ../../include/widgets.php:978 ../../view/theme/redbasic/php/config.php:111 +#: ../../view/theme/redbasic/php/config.php:136 ../../boot.php:1723 +msgid "No" +msgstr "Nein" + +#: ../../Zotlabs/Module/Connedit.php:411 +#: ../../Zotlabs/Module/Admin/Site.php:220 ../../Zotlabs/Module/Menu.php:100 +#: ../../Zotlabs/Module/Menu.php:157 ../../Zotlabs/Module/Filestorage.php:160 +#: ../../Zotlabs/Module/Filestorage.php:168 ../../Zotlabs/Module/Mitem.php:162 +#: ../../Zotlabs/Module/Mitem.php:163 ../../Zotlabs/Module/Mitem.php:240 +#: ../../Zotlabs/Module/Mitem.php:241 ../../Zotlabs/Module/Photos.php:653 +#: ../../Zotlabs/Module/Profiles.php:641 ../../Zotlabs/Module/Api.php:96 +#: ../../Zotlabs/Module/Removeme.php:63 ../../Zotlabs/Module/Wiki.php:159 +#: ../../Zotlabs/Module/Settings/Channel.php:289 +#: ../../Zotlabs/Module/Settings/Display.php:103 +#: ../../Zotlabs/Module/Events.php:463 ../../Zotlabs/Module/Events.php:464 +#: ../../extend/addon/addon/dwpost/dwpost.php:73 +#: ../../extend/addon/addon/dwpost/dwpost.php:85 +#: ../../extend/addon/addon/flattrwidget/flattrwidget.php:120 +#: ../../extend/addon/addon/friendica/dfrn_request.php:865 +#: ../../extend/addon/addon/ijpost/ijpost.php:73 +#: ../../extend/addon/addon/ijpost/ijpost.php:85 +#: ../../extend/addon/addon/jappixmini/jappixmini.php:309 +#: ../../extend/addon/addon/jappixmini/jappixmini.php:313 +#: ../../extend/addon/addon/jappixmini/jappixmini.php:343 +#: ../../extend/addon/addon/jappixmini/jappixmini.php:351 +#: ../../extend/addon/addon/jappixmini/jappixmini.php:355 +#: ../../extend/addon/addon/jappixmini/jappixmini.php:359 +#: ../../extend/addon/addon/libertree/libertree.php:69 +#: ../../extend/addon/addon/libertree/libertree.php:81 +#: ../../extend/addon/addon/ljpost/ljpost.php:70 +#: ../../extend/addon/addon/ljpost/ljpost.php:82 +#: ../../extend/addon/addon/nofed/nofed.php:72 +#: ../../extend/addon/addon/nofed/nofed.php:76 +#: ../../extend/addon/addon/nsabait/nsabait.php:157 +#: ../../extend/addon/addon/nsfw/nsfw.php:84 +#: ../../extend/addon/addon/planets/planets.php:153 +#: ../../extend/addon/addon/pumpio/pumpio.php:219 +#: ../../extend/addon/addon/pumpio/pumpio.php:223 +#: ../../extend/addon/addon/pumpio/pumpio.php:227 +#: ../../extend/addon/addon/pumpio/pumpio.php:231 +#: ../../extend/addon/addon/rainbowtag/rainbowtag.php:81 +#: ../../extend/addon/addon/redred/redred.php:95 +#: ../../extend/addon/addon/redred/redred.php:99 +#: ../../extend/addon/addon/rtof/rtof.php:81 +#: ../../extend/addon/addon/rtof/rtof.php:85 +#: ../../extend/addon/addon/smileybutton/smileybutton.php:273 +#: ../../extend/addon/addon/smileybutton/smileybutton.php:277 +#: ../../extend/addon/addon/statusnet/statusnet.php:389 +#: ../../extend/addon/addon/statusnet/statusnet.php:411 +#: ../../extend/addon/addon/statusnet/statusnet.php:415 +#: ../../extend/addon/addon/statusnet/statusnet.php:424 +#: ../../extend/addon/addon/twitter/twitter.php:242 +#: ../../extend/addon/addon/twitter/twitter.php:246 +#: ../../extend/addon/addon/twitter/twitter.php:255 +#: ../../extend/addon/addon/visage/visage.php:166 +#: ../../extend/addon/addon/wppost/wppost.php:82 +#: ../../extend/addon/addon/wppost/wppost.php:105 +#: ../../extend/addon/addon/wppost/wppost.php:109 +#: ../../extend/addon/addon/xmpp/xmpp.php:53 +#: ../../extend/addon/addon/cdav/cdav.php:234 ../../include/dir_fns.php:143 +#: ../../include/dir_fns.php:144 ../../include/dir_fns.php:145 +#: ../../include/widgets.php:978 ../../view/theme/redbasic/php/config.php:111 +#: ../../view/theme/redbasic/php/config.php:136 ../../boot.php:1723 +msgid "Yes" +msgstr "Ja" + +#: ../../Zotlabs/Module/Connedit.php:443 +msgid "Could not access address book record." +msgstr "Konnte nicht auf den Adressbuch-Eintrag zugreifen." + +#: ../../Zotlabs/Module/Connedit.php:463 +msgid "Refresh failed - channel is currently unavailable." +msgstr "Aktualisierung fehlgeschlagen – der Kanal ist im Moment nicht erreichbar." + +#: ../../Zotlabs/Module/Connedit.php:478 ../../Zotlabs/Module/Connedit.php:487 +#: ../../Zotlabs/Module/Connedit.php:496 ../../Zotlabs/Module/Connedit.php:505 +#: ../../Zotlabs/Module/Connedit.php:518 +msgid "Unable to set address book parameters." +msgstr "Konnte die Adressbuch-Parameter nicht setzen." + +#: ../../Zotlabs/Module/Connedit.php:542 +msgid "Connection has been removed." +msgstr "Verbindung wurde gelöscht." + +#: ../../Zotlabs/Module/Connedit.php:582 ../../Zotlabs/Lib/Apps.php:221 +#: ../../extend/addon/addon/openclipatar/openclipatar.php:56 +#: ../../include/nav.php:89 ../../include/conversation.php:969 +msgid "View Profile" +msgstr "Profil ansehen" + +#: ../../Zotlabs/Module/Connedit.php:585 #, php-format -msgid "%s account deleted" -msgid_plural "%s accounts deleted" -msgstr[0] "%s Konto gelöscht" -msgstr[1] "%s Konten gelöscht" +msgid "View %s's profile" +msgstr "%ss Profil ansehen" -#: ../../Zotlabs/Module/Admin/Accounts.php:79 -msgid "Account not found" -msgstr "Konto nicht gefunden" +#: ../../Zotlabs/Module/Connedit.php:589 +msgid "Refresh Permissions" +msgstr "Zugriffsrechte neu laden" -#: ../../Zotlabs/Module/Admin/Accounts.php:90 +#: ../../Zotlabs/Module/Connedit.php:592 +msgid "Fetch updated permissions" +msgstr "Aktualisierte Zugriffsrechte abfragen" + +#: ../../Zotlabs/Module/Connedit.php:596 +msgid "Recent Activity" +msgstr "Kürzliche Aktivitäten" + +#: ../../Zotlabs/Module/Connedit.php:599 +msgid "View recent posts and comments" +msgstr "Betrachte die neuesten Beiträge und Kommentare" + +#: ../../Zotlabs/Module/Connedit.php:603 +#: ../../Zotlabs/Module/Admin/Accounts.php:175 +msgid "Unblock" +msgstr "Freigeben" + +#: ../../Zotlabs/Module/Connedit.php:603 +#: ../../Zotlabs/Module/Admin/Accounts.php:174 +msgid "Block" +msgstr "Blockieren" + +#: ../../Zotlabs/Module/Connedit.php:606 +msgid "Block (or Unblock) all communications with this connection" +msgstr "Jegliche Kommunikation mit dieser Verbindung blockieren/zulassen" + +#: ../../Zotlabs/Module/Connedit.php:607 +msgid "This connection is blocked!" +msgstr "Die Verbindung ist geblockt!" + +#: ../../Zotlabs/Module/Connedit.php:611 +msgid "Unignore" +msgstr "Nicht ignorieren" + +#: ../../Zotlabs/Module/Connedit.php:611 +#: ../../Zotlabs/Module/Connections.php:277 +msgid "Ignore" +msgstr "Ignorieren" + +#: ../../Zotlabs/Module/Connedit.php:614 +msgid "Ignore (or Unignore) all inbound communications from this connection" +msgstr "Jegliche eingehende Kommunikation von dieser Verbindung ignorieren/zulassen" + +#: ../../Zotlabs/Module/Connedit.php:615 +msgid "This connection is ignored!" +msgstr "Die Verbindung wird ignoriert!" + +#: ../../Zotlabs/Module/Connedit.php:619 +msgid "Unarchive" +msgstr "Aus Archiv zurückholen" + +#: ../../Zotlabs/Module/Connedit.php:619 +msgid "Archive" +msgstr "Archivieren" + +#: ../../Zotlabs/Module/Connedit.php:622 +msgid "" +"Archive (or Unarchive) this connection - mark channel dead but keep content" +msgstr "Verbindung archivieren/aus dem Archiv zurückholen (Archiv = Kanal als erloschen markieren, aber die Beiträge behalten)" + +#: ../../Zotlabs/Module/Connedit.php:623 +msgid "This connection is archived!" +msgstr "Die Verbindung ist archiviert!" + +#: ../../Zotlabs/Module/Connedit.php:627 +msgid "Unhide" +msgstr "Wieder sichtbar machen" + +#: ../../Zotlabs/Module/Connedit.php:627 +msgid "Hide" +msgstr "Verstecken" + +#: ../../Zotlabs/Module/Connedit.php:630 +msgid "Hide or Unhide this connection from your other connections" +msgstr "Diese Verbindung vor anderen Verbindungen verstecken/zeigen" + +#: ../../Zotlabs/Module/Connedit.php:631 +msgid "This connection is hidden!" +msgstr "Die Verbindung ist versteckt!" + +#: ../../Zotlabs/Module/Connedit.php:638 +msgid "Delete this connection" +msgstr "Verbindung löschen" + +#: ../../Zotlabs/Module/Connedit.php:655 ../../include/widgets.php:529 +msgid "Me" +msgstr "Ich" + +#: ../../Zotlabs/Module/Connedit.php:656 ../../include/widgets.php:530 +msgid "Family" +msgstr "Familie" + +#: ../../Zotlabs/Module/Connedit.php:657 +#: ../../Zotlabs/Module/Settings/Channel.php:61 +#: ../../Zotlabs/Module/Settings/Channel.php:65 +#: ../../Zotlabs/Module/Settings/Channel.php:66 +#: ../../Zotlabs/Module/Settings/Channel.php:69 +#: ../../Zotlabs/Module/Settings/Channel.php:80 +#: ../../include/selectors.php:123 ../../include/channel.php:402 +#: ../../include/channel.php:403 ../../include/channel.php:410 +#: ../../include/widgets.php:531 +msgid "Friends" +msgstr "Freunde" + +#: ../../Zotlabs/Module/Connedit.php:658 ../../include/widgets.php:532 +msgid "Acquaintances" +msgstr "Bekannte" + +#: ../../Zotlabs/Module/Connedit.php:659 +#: ../../Zotlabs/Module/Connections.php:92 +#: ../../Zotlabs/Module/Connections.php:107 ../../include/widgets.php:533 +msgid "All" +msgstr "Alle" + +#: ../../Zotlabs/Module/Connedit.php:716 +msgid "Approve this connection" +msgstr "Verbindung genehmigen" + +#: ../../Zotlabs/Module/Connedit.php:716 +msgid "Accept connection to allow communication" +msgstr "Akzeptiere die Verbindung, um Kommunikation zu ermöglichen" + +#: ../../Zotlabs/Module/Connedit.php:721 +msgid "Set Affinity" +msgstr "Beziehung festlegen" + +#: ../../Zotlabs/Module/Connedit.php:724 +msgid "Set Profile" +msgstr "Profil festlegen" + +#: ../../Zotlabs/Module/Connedit.php:727 +msgid "Set Affinity & Profile" +msgstr "Beziehung und Profile festlegen" + +#: ../../Zotlabs/Module/Connedit.php:776 +msgid "none" +msgstr "Keine" + +#: ../../Zotlabs/Module/Connedit.php:780 ../../include/widgets.php:656 +msgid "Connection Default Permissions" +msgstr "Standardzugriffsrechte für neue Verbindungen:" + +#: ../../Zotlabs/Module/Connedit.php:780 ../../include/items.php:3909 #, php-format -msgid "Account '%s' deleted" -msgstr "Konto '%s' gelöscht" +msgid "Connection: %s" +msgstr "Verbindung: %s" -#: ../../Zotlabs/Module/Admin/Accounts.php:98 -#, php-format -msgid "Account '%s' blocked" -msgstr "Konto '%s' blockiert" +#: ../../Zotlabs/Module/Connedit.php:781 +msgid "Apply these permissions automatically" +msgstr "Diese Berechtigungen automatisch anwenden" -#: ../../Zotlabs/Module/Admin/Accounts.php:106 -#, php-format -msgid "Account '%s' unblocked" -msgstr "Konto '%s' freigegeben" +#: ../../Zotlabs/Module/Connedit.php:781 +msgid "Connection requests will be approved without your interaction" +msgstr "Verbindungsanfragen werden sofort bestätigt, ohne dass Deine aktive Zustimmung erforderlich ist." -#: ../../Zotlabs/Module/Admin/Accounts.php:165 -#: ../../Zotlabs/Module/Admin/Channels.php:149 -#: ../../Zotlabs/Module/Admin/Logs.php:82 -#: ../../Zotlabs/Module/Admin/Plugins.php:336 -#: ../../Zotlabs/Module/Admin/Plugins.php:427 -#: ../../Zotlabs/Module/Admin/Security.php:86 -#: ../../Zotlabs/Module/Admin/Site.php:265 -#: ../../Zotlabs/Module/Admin/Themes.php:120 -#: ../../Zotlabs/Module/Admin/Themes.php:154 -#: ../../Zotlabs/Module/Admin.php:141 -msgid "Administration" -msgstr "Administration" +#: ../../Zotlabs/Module/Connedit.php:784 +msgid "This connection's primary address is" +msgstr "Die Hauptadresse der Verbindung ist" -#: ../../Zotlabs/Module/Admin/Accounts.php:166 -#: ../../Zotlabs/Module/Admin/Accounts.php:179 ../../include/widgets.php:1557 -msgid "Accounts" -msgstr "Konten" +#: ../../Zotlabs/Module/Connedit.php:785 +msgid "Available locations:" +msgstr "Verfügbare Klone:" -#: ../../Zotlabs/Module/Admin/Accounts.php:167 -#: ../../Zotlabs/Module/Admin/Channels.php:151 +#: ../../Zotlabs/Module/Connedit.php:789 +msgid "" +"The permissions indicated on this page will be applied to all new " +"connections." +msgstr "Die auf dieser Seite angegebenen Berechtigungen werden auf alle neuen Verbindungen angewendet." + +#: ../../Zotlabs/Module/Connedit.php:790 +msgid "Connection Tools" +msgstr "Verbindungswerkzeuge" + +#: ../../Zotlabs/Module/Connedit.php:792 +msgid "Slide to adjust your degree of friendship" +msgstr "Verschieben, um den Grad der Freundschaft zu einzustellen" + +#: ../../Zotlabs/Module/Connedit.php:793 ../../Zotlabs/Module/Rate.php:155 +#: ../../include/js_strings.php:20 +msgid "Rating" +msgstr "Bewertung" + +#: ../../Zotlabs/Module/Connedit.php:794 +msgid "Slide to adjust your rating" +msgstr "Verschieben, um Deine Bewertung einzustellen" + +#: ../../Zotlabs/Module/Connedit.php:795 ../../Zotlabs/Module/Connedit.php:800 +msgid "Optionally explain your rating" +msgstr "Optional kannst Du Deine Bewertung begründen" + +#: ../../Zotlabs/Module/Connedit.php:797 +msgid "Custom Filter" +msgstr "Benutzerdefinierter Filter" + +#: ../../Zotlabs/Module/Connedit.php:798 +msgid "Only import posts with this text" +msgstr "Nur Beiträge mit diesem Text importieren" + +#: ../../Zotlabs/Module/Connedit.php:798 ../../Zotlabs/Module/Connedit.php:799 +msgid "" +"words one per line or #tags or /patterns/ or lang=xx, leave blank to import " +"all posts" +msgstr "Einzelne Wörter pro Zeile, #Tags oder /Reguläre Ausdrücke/. lang=xx (z.B. lang=de) ermöglicht Filterung nach Sprache. Leer lassen, um alle Beiträge zu importieren." + +#: ../../Zotlabs/Module/Connedit.php:799 +msgid "Do not import posts with this text" +msgstr "Beiträge mit diesem Text nicht importieren" + +#: ../../Zotlabs/Module/Connedit.php:801 +msgid "This information is public!" +msgstr "Diese Information ist öffentlich!" + +#: ../../Zotlabs/Module/Connedit.php:806 +msgid "Connection Pending Approval" +msgstr "Verbindung wartet auf Bestätigung" + +#: ../../Zotlabs/Module/Connedit.php:809 +#: ../../Zotlabs/Module/Settings/Tokens.php:163 +msgid "inherited" +msgstr "geerbt" + +#: ../../Zotlabs/Module/Connedit.php:810 ../../Zotlabs/Module/Locs.php:121 +#: ../../Zotlabs/Module/Connect.php:98 #: ../../Zotlabs/Module/Admin/Features.php:66 #: ../../Zotlabs/Module/Admin/Logs.php:84 #: ../../Zotlabs/Module/Admin/Plugins.php:429 #: ../../Zotlabs/Module/Admin/Profs.php:157 #: ../../Zotlabs/Module/Admin/Security.php:104 -#: ../../Zotlabs/Module/Admin/Site.php:267 #: ../../Zotlabs/Module/Admin/Themes.php:156 -#: ../../Zotlabs/Module/Import.php:560 ../../Zotlabs/Module/Appman.php:126 -#: ../../Zotlabs/Module/Mail.php:370 ../../Zotlabs/Module/Filestorage.php:165 -#: ../../Zotlabs/Module/Connect.php:98 ../../Zotlabs/Module/Group.php:85 +#: ../../Zotlabs/Module/Admin/Account_edit.php:74 +#: ../../Zotlabs/Module/Admin/Accounts.php:166 +#: ../../Zotlabs/Module/Admin/Channels.php:147 +#: ../../Zotlabs/Module/Admin/Site.php:260 ../../Zotlabs/Module/Appman.php:126 +#: ../../Zotlabs/Module/Filestorage.php:165 ../../Zotlabs/Module/Mail.php:384 #: ../../Zotlabs/Module/Import_items.php:122 -#: ../../Zotlabs/Module/Invite.php:146 ../../Zotlabs/Module/Locs.php:121 -#: ../../Zotlabs/Module/Mitem.php:243 ../../Zotlabs/Module/Rate.php:166 -#: ../../Zotlabs/Module/Mood.php:139 ../../Zotlabs/Module/Profiles.php:687 -#: ../../Zotlabs/Module/Events.php:484 ../../Zotlabs/Module/Poke.php:186 -#: ../../Zotlabs/Module/Setup.php:317 ../../Zotlabs/Module/Setup.php:365 -#: ../../Zotlabs/Module/Pconfig.php:107 ../../Zotlabs/Module/Cal.php:338 -#: ../../Zotlabs/Module/Pdledit.php:74 ../../Zotlabs/Module/Connedit.php:779 -#: ../../Zotlabs/Module/Thing.php:320 ../../Zotlabs/Module/Thing.php:370 -#: ../../Zotlabs/Module/Sources.php:114 ../../Zotlabs/Module/Sources.php:149 +#: ../../Zotlabs/Module/Invite.php:149 ../../Zotlabs/Module/Group.php:85 +#: ../../Zotlabs/Module/Mitem.php:243 ../../Zotlabs/Module/Mood.php:139 #: ../../Zotlabs/Module/Photos.php:668 ../../Zotlabs/Module/Photos.php:1058 #: ../../Zotlabs/Module/Photos.php:1098 ../../Zotlabs/Module/Photos.php:1216 -#: ../../Zotlabs/Module/Chat.php:196 ../../Zotlabs/Module/Chat.php:241 -#: ../../Zotlabs/Module/Xchan.php:15 -#: ../../Zotlabs/Module/Settings/Account.php:126 -#: ../../Zotlabs/Module/Settings/Channel.php:452 -#: ../../Zotlabs/Module/Settings/Display.php:194 +#: ../../Zotlabs/Module/Setup.php:309 ../../Zotlabs/Module/Setup.php:357 +#: ../../Zotlabs/Module/Poke.php:186 ../../Zotlabs/Module/Profiles.php:681 +#: ../../Zotlabs/Module/Pconfig.php:107 ../../Zotlabs/Module/Rate.php:166 +#: ../../Zotlabs/Module/Pdledit.php:74 ../../Zotlabs/Module/Cal.php:342 +#: ../../Zotlabs/Module/Wiki.php:148 ../../Zotlabs/Module/Sources.php:114 +#: ../../Zotlabs/Module/Sources.php:149 #: ../../Zotlabs/Module/Settings/Features.php:47 #: ../../Zotlabs/Module/Settings/Oauth.php:87 #: ../../Zotlabs/Module/Settings/Tokens.php:167 -#: ../../Zotlabs/Lib/ThreadItem.php:712 ../../include/js_strings.php:22 -#: ../../include/widgets.php:796 ../../view/theme/redbasic/php/config.php:106 +#: ../../Zotlabs/Module/Settings/Account.php:118 +#: ../../Zotlabs/Module/Settings/Channel.php:455 +#: ../../Zotlabs/Module/Settings/Display.php:196 +#: ../../Zotlabs/Module/Thing.php:320 ../../Zotlabs/Module/Thing.php:370 +#: ../../Zotlabs/Module/Import.php:543 ../../Zotlabs/Module/Chat.php:196 +#: ../../Zotlabs/Module/Chat.php:241 ../../Zotlabs/Module/Xchan.php:15 +#: ../../Zotlabs/Module/Events.php:484 ../../Zotlabs/Lib/ThreadItem.php:729 +#: ../../extend/addon/addon/chords/Mod_Chords.php:60 +#: ../../extend/addon/addon/diaspora/diaspora.php:710 +#: ../../extend/addon/addon/dwpost/dwpost.php:89 +#: ../../extend/addon/addon/flattrwidget/flattrwidget.php:124 +#: ../../extend/addon/addon/friendica/friendica.php:128 +#: ../../extend/addon/addon/frphotos/frphotos.php:96 +#: ../../extend/addon/addon/gnusoc/gnusoc.php:129 +#: ../../extend/addon/addon/hubwall/hubwall.php:95 +#: ../../extend/addon/addon/ijpost/ijpost.php:89 +#: ../../extend/addon/addon/irc/irc.php:53 +#: ../../extend/addon/addon/jappixmini/jappixmini.php:371 +#: ../../extend/addon/addon/libertree/libertree.php:85 +#: ../../extend/addon/addon/ljpost/ljpost.php:86 +#: ../../extend/addon/addon/logrot/logrot.php:35 +#: ../../extend/addon/addon/mailhost/mailhost.php:40 +#: ../../extend/addon/addon/nofed/nofed.php:80 +#: ../../extend/addon/addon/nsabait/nsabait.php:161 +#: ../../extend/addon/addon/nsfw/nsfw.php:92 +#: ../../extend/addon/addon/openclipatar/openclipatar.php:52 +#: ../../extend/addon/addon/openstreetmap/openstreetmap.php:168 +#: ../../extend/addon/addon/pageheader/pageheader.php:48 +#: ../../extend/addon/addon/piwik/piwik.php:95 +#: ../../extend/addon/addon/planets/planets.php:157 +#: ../../extend/addon/addon/pumpio/pumpio.php:237 +#: ../../extend/addon/addon/rainbowtag/rainbowtag.php:85 +#: ../../extend/addon/addon/redfiles/redfiles.php:124 +#: ../../extend/addon/addon/redphotos/redphotos.php:136 +#: ../../extend/addon/addon/redred/redred.php:119 +#: ../../extend/addon/addon/rtof/rtof.php:101 +#: ../../extend/addon/addon/skeleton/skeleton.php:65 +#: ../../extend/addon/addon/smileybutton/smileybutton.php:281 +#: ../../extend/addon/addon/startpage/startpage.php:113 +#: ../../extend/addon/addon/statusnet/statusnet.php:322 +#: ../../extend/addon/addon/statusnet/statusnet.php:380 +#: ../../extend/addon/addon/statusnet/statusnet.php:432 +#: ../../extend/addon/addon/statusnet/statusnet.php:899 +#: ../../extend/addon/addon/superblock/superblock.php:114 +#: ../../extend/addon/addon/twitter/twitter.php:217 +#: ../../extend/addon/addon/twitter/twitter.php:259 +#: ../../extend/addon/addon/visage/visage.php:170 +#: ../../extend/addon/addon/wppost/wppost.php:113 +#: ../../extend/addon/addon/xmpp/xmpp.php:69 +#: ../../extend/addon/addon/cdav/cdav.php:246 +#: ../../extend/addon/addon/likebanner/likebanner.php:57 +#: ../../extend/addon/addon/mailtest/mailtest.php:100 +#: ../../include/js_strings.php:22 ../../include/widgets.php:796 +#: ../../view/theme/redbasic/php/config.php:106 msgid "Submit" msgstr "Absenden" -#: ../../Zotlabs/Module/Admin/Accounts.php:168 -#: ../../Zotlabs/Module/Admin/Channels.php:152 -msgid "select all" -msgstr "Alle auswählen" - -#: ../../Zotlabs/Module/Admin/Accounts.php:169 -msgid "Registrations waiting for confirm" -msgstr "Registrierungen warten auf Bestätigung" - -#: ../../Zotlabs/Module/Admin/Accounts.php:170 -msgid "Request date" -msgstr "Antragsdatum" - -#: ../../Zotlabs/Module/Admin/Accounts.php:170 -#: ../../Zotlabs/Module/Admin/Accounts.php:182 ../../include/network.php:2208 -msgid "Email" -msgstr "E-Mail" - -#: ../../Zotlabs/Module/Admin/Accounts.php:171 -msgid "No registrations." -msgstr "Keine Registrierungen." - -#: ../../Zotlabs/Module/Admin/Accounts.php:172 -#: ../../Zotlabs/Module/Connections.php:275 -msgid "Approve" -msgstr "Genehmigen" - -#: ../../Zotlabs/Module/Admin/Accounts.php:173 -msgid "Deny" -msgstr "Verweigern" - -#: ../../Zotlabs/Module/Admin/Accounts.php:175 -#: ../../Zotlabs/Module/Connedit.php:575 -msgid "Block" -msgstr "Blockieren" - -#: ../../Zotlabs/Module/Admin/Accounts.php:176 -#: ../../Zotlabs/Module/Connedit.php:575 -msgid "Unblock" -msgstr "Freigeben" - -#: ../../Zotlabs/Module/Admin/Accounts.php:181 -msgid "ID" -msgstr "ID" - -#: ../../Zotlabs/Module/Admin/Accounts.php:183 ../../include/group.php:267 -msgid "All Channels" -msgstr "Alle Kanäle" - -#: ../../Zotlabs/Module/Admin/Accounts.php:184 -msgid "Register date" -msgstr "Registrierungs-Datum" - -#: ../../Zotlabs/Module/Admin/Accounts.php:185 -msgid "Last login" -msgstr "Letzte Anmeldung" - -#: ../../Zotlabs/Module/Admin/Accounts.php:186 -msgid "Expires" -msgstr "Verfällt" - -#: ../../Zotlabs/Module/Admin/Accounts.php:187 -msgid "Service Class" -msgstr "Service-Klasse" - -#: ../../Zotlabs/Module/Admin/Accounts.php:189 +#: ../../Zotlabs/Module/Connedit.php:811 +#, php-format msgid "" -"Selected accounts will be deleted!\\n\\nEverything these accounts had posted" -" on this site will be permanently deleted!\\n\\nAre you sure?" -msgstr "Die ausgewählten Konten werden gelöscht!\\n\\nAlles, was diese Konten auf diesem Hub veröffentlicht haben, wird endgültig gelöscht werden!\\n\\nBist du dir sicher?" +"Please choose the profile you would like to display to %s when viewing your " +"profile securely." +msgstr "Bitte wähle ein Profil, das wir %s zeigen sollen, wenn Deine Profilseite über eine verifizierte Verbindung aufgerufen wird." -#: ../../Zotlabs/Module/Admin/Accounts.php:190 +#: ../../Zotlabs/Module/Connedit.php:813 +#: ../../Zotlabs/Module/Settings/Tokens.php:160 +msgid "Their Settings" +msgstr "Deren Einstellungen" + +#: ../../Zotlabs/Module/Connedit.php:814 +#: ../../Zotlabs/Module/Settings/Tokens.php:161 +msgid "My Settings" +msgstr "Meine Einstellungen" + +#: ../../Zotlabs/Module/Connedit.php:816 +#: ../../Zotlabs/Module/Settings/Tokens.php:165 +msgid "Individual Permissions" +msgstr "Individuelle Zugriffsrechte" + +#: ../../Zotlabs/Module/Connedit.php:817 +#: ../../Zotlabs/Module/Settings/Tokens.php:166 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 "Das Konto {0} wird gelöscht!\\n\\nAlles, was dieses Konto auf diesem Hub veröffentlicht hat, wird endgültig gelöscht werden!\\n\\nBist Du sicher?" +"Some permissions may be inherited from your channel's privacy settings, which have higher " +"priority than individual settings. You can not change those" +" settings here." +msgstr "Einige Berechtigungen werden möglicherweise von den globalen Sicherheits- und Privatsphäre-Einstellungen dieses Kanals vererbt. Diese haben eine höhere Priorität als die Einstellungen an der Verbindung und können hier nicht verändert werden." -#: ../../Zotlabs/Module/Admin/Channels.php:30 +#: ../../Zotlabs/Module/Connedit.php:818 +msgid "" +"Some permissions may be inherited from your channel's privacy settings, 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 "Einige Berechtigungen werden möglicherweise von den globalen Sicherheits- und Privatsphäre-Einstellungen dieses Kanals geerbt. Diese haben eine höhere Priorität als die Einstellungen an der Verbindung. Werden geerbte Einstellungen hier geändert, hat dies keine Auswirkungen." + +#: ../../Zotlabs/Module/Connedit.php:819 +msgid "Last update:" +msgstr "Letzte Aktualisierung:" + +#: ../../Zotlabs/Module/Dreport.php:45 +msgid "Invalid message" +msgstr "Ungültige Beitrags-ID (mid)" + +#: ../../Zotlabs/Module/Dreport.php:78 +msgid "no results" +msgstr "keine Ergebnisse" + +#: ../../Zotlabs/Module/Dreport.php:93 +msgid "channel sync processed" +msgstr "Kanal-Sync verarbeitet" + +#: ../../Zotlabs/Module/Dreport.php:97 +msgid "queued" +msgstr "zur Warteschlange hinzugefügt" + +#: ../../Zotlabs/Module/Dreport.php:101 +msgid "posted" +msgstr "zugestellt" + +#: ../../Zotlabs/Module/Dreport.php:105 +msgid "accepted for delivery" +msgstr "für Zustellung akzeptiert" + +#: ../../Zotlabs/Module/Dreport.php:109 +msgid "updated" +msgstr "aktualisiert" + +#: ../../Zotlabs/Module/Dreport.php:112 +msgid "update ignored" +msgstr "Aktualisierung ignoriert" + +#: ../../Zotlabs/Module/Dreport.php:115 +msgid "permission denied" +msgstr "Zugriff verweigert" + +#: ../../Zotlabs/Module/Dreport.php:119 +msgid "recipient not found" +msgstr "Empfänger nicht gefunden." + +#: ../../Zotlabs/Module/Dreport.php:122 +msgid "mail recalled" +msgstr "Mail widerrufen" + +#: ../../Zotlabs/Module/Dreport.php:125 +msgid "duplicate mail received" +msgstr "Doppelte Mail erhalten" + +#: ../../Zotlabs/Module/Dreport.php:128 +msgid "mail delivered" +msgstr "Mail zugestellt" + +#: ../../Zotlabs/Module/Dreport.php:148 #, php-format -msgid "%s channel censored/uncensored" -msgid_plural "%s channels censored/uncensored" -msgstr[0] "%s Kanal gesperrt/freigegeben" -msgstr[1] "%s Kanäle gesperrt/freigegeben" +msgid "Delivery report for %1$s" +msgstr "Zustellungsbericht für %1$s" -#: ../../Zotlabs/Module/Admin/Channels.php:39 -#, php-format -msgid "%s channel code allowed/disallowed" -msgid_plural "%s channels code allowed/disallowed" -msgstr[0] "Code für %s Kanal gesperrt/freigegeben" -msgstr[1] "Code für %s Kanäle gesperrt/freigegeben" +#: ../../Zotlabs/Module/Dreport.php:151 +msgid "Options" +msgstr "Optionen" -#: ../../Zotlabs/Module/Admin/Channels.php:45 -#, php-format -msgid "%s channel deleted" -msgid_plural "%s channels deleted" -msgstr[0] "%s Kanal gelöscht" -msgstr[1] "%s Kanäle gelöscht" +#: ../../Zotlabs/Module/Dreport.php:152 +msgid "Redeliver" +msgstr "Erneut zustellen" -#: ../../Zotlabs/Module/Admin/Channels.php:66 -msgid "Channel not found" -msgstr "Kanal nicht gefunden" +#: ../../Zotlabs/Module/Bookmarks.php:53 +msgid "Bookmark added" +msgstr "Lesezeichen hinzugefügt" -#: ../../Zotlabs/Module/Admin/Channels.php:76 -#, php-format -msgid "Channel '%s' deleted" -msgstr "Kanal '%s' gelöscht" +#: ../../Zotlabs/Module/Bookmarks.php:75 +msgid "My Bookmarks" +msgstr "Meine Lesezeichen" -#: ../../Zotlabs/Module/Admin/Channels.php:88 -#, php-format -msgid "Channel '%s' censored" -msgstr "Kanal '%s' gesperrt" +#: ../../Zotlabs/Module/Bookmarks.php:86 +msgid "My Connections Bookmarks" +msgstr "Lesezeichen meiner Kontakte" -#: ../../Zotlabs/Module/Admin/Channels.php:88 -#, php-format -msgid "Channel '%s' uncensored" -msgstr "Kanal '%s' freigegeben" +#: ../../Zotlabs/Module/Acl.php:313 +msgid "network" +msgstr "Netzwerk" -#: ../../Zotlabs/Module/Admin/Channels.php:99 -#, php-format -msgid "Channel '%s' code allowed" -msgstr "Code für Kanal '%s' freigegeben" +#: ../../Zotlabs/Module/Acl.php:323 +msgid "RSS" +msgstr "RSS" -#: ../../Zotlabs/Module/Admin/Channels.php:99 -#, php-format -msgid "Channel '%s' code disallowed" -msgstr "Code für Kanal '%s' gesperrt" +#: ../../Zotlabs/Module/Locs.php:25 ../../Zotlabs/Module/Locs.php:54 +msgid "Location not found." +msgstr "Klon nicht gefunden." -#: ../../Zotlabs/Module/Admin/Channels.php:150 ../../include/widgets.php:1558 -msgid "Channels" -msgstr "Kanäle" +#: ../../Zotlabs/Module/Locs.php:62 +msgid "Location lookup failed." +msgstr "Nachschlagen des Kanal-Ortes fehlgeschlagen" -#: ../../Zotlabs/Module/Admin/Channels.php:154 -msgid "Censor" -msgstr "Sperren" +#: ../../Zotlabs/Module/Locs.php:66 +msgid "" +"Please select another location to become primary before removing the primary" +" location." +msgstr "Bitte mache einen anderen Kanal-Ort zum primären Ort, bevor Du den primären Ort löschst." -#: ../../Zotlabs/Module/Admin/Channels.php:155 -msgid "Uncensor" -msgstr "Freigeben" +#: ../../Zotlabs/Module/Locs.php:95 +msgid "Syncing locations" +msgstr "Synchronisiere Klone" -#: ../../Zotlabs/Module/Admin/Channels.php:156 -msgid "Allow Code" -msgstr "Code erlauben" +#: ../../Zotlabs/Module/Locs.php:105 +msgid "No locations found." +msgstr "Keine Klon-Adressen gefunden." -#: ../../Zotlabs/Module/Admin/Channels.php:157 -msgid "Disallow Code" -msgstr "Code sperren" +#: ../../Zotlabs/Module/Locs.php:116 +msgid "Manage Channel Locations" +msgstr "Klon-Adressen verwalten" -#: ../../Zotlabs/Module/Admin/Channels.php:158 -#: ../../include/conversation.php:1650 -msgid "Channel" -msgstr "Kanal" +#: ../../Zotlabs/Module/Locs.php:117 ../../Zotlabs/Module/Pubsites.php:51 +#: ../../Zotlabs/Module/Profiles.php:471 ../../Zotlabs/Module/Profiles.php:692 +#: ../../Zotlabs/Module/Events.php:468 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:839 +#: ../../include/js_strings.php:25 +msgid "Location" +msgstr "Ort" -#: ../../Zotlabs/Module/Admin/Channels.php:162 -msgid "UID" -msgstr "UID" - -#: ../../Zotlabs/Module/Admin/Channels.php:164 -#: ../../Zotlabs/Module/Locs.php:118 ../../Zotlabs/Module/Profiles.php:470 +#: ../../Zotlabs/Module/Locs.php:118 +#: ../../Zotlabs/Module/Admin/Channels.php:160 +#: ../../Zotlabs/Module/Profiles.php:464 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1143 msgid "Address" msgstr "Adresse" -#: ../../Zotlabs/Module/Admin/Channels.php:166 +#: ../../Zotlabs/Module/Locs.php:119 +msgid "Primary" +msgstr "Primär" + +#: ../../Zotlabs/Module/Locs.php:120 ../../Zotlabs/Module/Menu.php:113 +msgid "Drop" +msgstr "Löschen" + +#: ../../Zotlabs/Module/Locs.php:122 +msgid "Sync Now" +msgstr "Jetzt synchronisieren" + +#: ../../Zotlabs/Module/Locs.php:123 +msgid "Please wait several minutes between consecutive operations." +msgstr "Bitte warte mehrere Minuten zwischen dem Ausführen zweier Operationen!" + +#: ../../Zotlabs/Module/Locs.php:124 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 "Alle ausgewählten Kanäle werden gelöscht!\\n\\nAlles was von diesen Kanälen auf diesem Server geschrieben wurde, wird dauerhaft gelöscht!\\n\\nBist Du sicher?" +"When possible, drop a location by logging into that website/hub and removing" +" your channel." +msgstr "Wenn möglich, lösche einen Klon, indem Du Dich auf dem jeweiligen Hub einloggst und den Kanal dort löschst." -#: ../../Zotlabs/Module/Admin/Channels.php:167 +#: ../../Zotlabs/Module/Locs.php:125 +msgid "Use this form to drop the location if the hub is no longer operating." +msgstr "Benutze dieses Formular zum Löschen eines Klons, wenn es den Hub nicht mehr gibt." + +#: ../../Zotlabs/Module/Connect.php:61 ../../Zotlabs/Module/Connect.php:109 +msgid "Continue" +msgstr "Fortfahren" + +#: ../../Zotlabs/Module/Connect.php:90 +msgid "Premium Channel Setup" +msgstr "Premium-Kanal-Einrichtung" + +#: ../../Zotlabs/Module/Connect.php:92 +msgid "Enable premium channel connection restrictions" +msgstr "Einschränkungen für einen Premium-Kanal aktivieren" + +#: ../../Zotlabs/Module/Connect.php:93 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 "Der Kanal {0} wird gelöscht!\\n\\nAlles was von diesem Kanal auf diesem Server geschrieben wurde, wird gelöscht!\\n\\nBist Du sicher?" +"Please enter your restrictions or conditions, such as paypal receipt, usage " +"guidelines, etc." +msgstr "Bitte gib Deine Nutzungsbedingungen ein, z.B. Paypal-Quittung, Richtlinien etc." -#: ../../Zotlabs/Module/Admin/Dbsync.php:19 -msgid "Update has been marked successful" -msgstr "Update wurde als erfolgreich markiert" +#: ../../Zotlabs/Module/Connect.php:95 ../../Zotlabs/Module/Connect.php:115 +msgid "" +"This channel may require additional steps or acknowledgement of the " +"following conditions prior to connecting:" +msgstr "Unter Umständen sind weitere Schritte oder die Bestätigung der folgenden Bedingungen vor dem Verbinden mit diesem Kanal nötig." -#: ../../Zotlabs/Module/Admin/Dbsync.php:29 +#: ../../Zotlabs/Module/Connect.php:96 +msgid "" +"Potential connections will then see the following text before proceeding:" +msgstr "Potentielle Kontakte werden den folgenden Text sehen, bevor fortgefahren wird:" + +#: ../../Zotlabs/Module/Connect.php:97 ../../Zotlabs/Module/Connect.php:118 +msgid "" +"By continuing, I certify that I have complied with any instructions provided" +" on this page." +msgstr "Indem ich fortfahre, bestätige ich die Erfüllung aller Anweisungen auf dieser Seite." + +#: ../../Zotlabs/Module/Connect.php:106 +msgid "(No specific instructions have been provided by the channel owner.)" +msgstr "(Der Kanal-Besitzer hat keine speziellen Anweisungen hinterlegt.)" + +#: ../../Zotlabs/Module/Connect.php:114 +msgid "Restricted or Premium Channel" +msgstr "Eingeschränkter oder Premium-Kanal" + +#: ../../Zotlabs/Module/Page.php:40 ../../Zotlabs/Module/Block.php:31 +msgid "Invalid item." +msgstr "Ungültiges Element." + +#: ../../Zotlabs/Module/Page.php:56 ../../Zotlabs/Module/Chanview.php:96 +#: ../../Zotlabs/Module/Block.php:43 ../../Zotlabs/Module/Cal.php:62 +#: ../../Zotlabs/Module/Wall_upload.php:31 +msgid "Channel not found." +msgstr "Kanal nicht gefunden." + +#: ../../Zotlabs/Module/Page.php:131 +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." + +#: ../../Zotlabs/Module/Filer.php:52 +msgid "Save to Folder:" +msgstr "Speichern in Ordner:" + +#: ../../Zotlabs/Module/Filer.php:52 +msgid "- select -" +msgstr "– auswählen –" + +#: ../../Zotlabs/Module/Filer.php:53 ../../Zotlabs/Module/Admin/Profs.php:74 +#: ../../Zotlabs/Module/Admin/Profs.php:94 ../../Zotlabs/Module/Rbmark.php:32 +#: ../../Zotlabs/Module/Rbmark.php:104 ../../include/text.php:987 +#: ../../include/text.php:999 ../../include/widgets.php:201 +msgid "Save" +msgstr "Speichern" + +#: ../../Zotlabs/Module/Manage.php:136 +#: ../../Zotlabs/Module/New_channel.php:121 #, php-format -msgid "Executing %s failed. Check system logs." -msgstr "Ausführen von %s fehlgeschlagen. Überprüfe die Systemprotokolle." +msgid "You have created %1$.0f of %2$.0f allowed channels." +msgstr "Du hast %1$.0f von maximal %2$.0f erlaubten Kanälen eingerichtet." -#: ../../Zotlabs/Module/Admin/Dbsync.php:32 +#: ../../Zotlabs/Module/Manage.php:143 +msgid "Create a new channel" +msgstr "Neuen Kanal anlegen" + +#: ../../Zotlabs/Module/Manage.php:143 ../../Zotlabs/Module/Profiles.php:772 +#: ../../Zotlabs/Module/Wiki.php:147 ../../Zotlabs/Module/Chat.php:255 +msgid "Create New" +msgstr "Neu anlegen" + +#: ../../Zotlabs/Module/Manage.php:164 ../../Zotlabs/Lib/Apps.php:214 +#: ../../include/nav.php:209 +msgid "Channel Manager" +msgstr "Kanal-Manager" + +#: ../../Zotlabs/Module/Manage.php:165 +msgid "Current Channel" +msgstr "Aktueller Kanal" + +#: ../../Zotlabs/Module/Manage.php:167 +msgid "Switch to one of your channels by selecting it." +msgstr "Wechsle zu einem Deiner Kanäle, indem Du auf ihn klickst." + +#: ../../Zotlabs/Module/Manage.php:168 +msgid "Default Channel" +msgstr "Standard Kanal" + +#: ../../Zotlabs/Module/Manage.php:169 +msgid "Make Default" +msgstr "Zum Standard machen" + +#: ../../Zotlabs/Module/Manage.php:172 #, php-format -msgid "Update %s was successfully applied." -msgstr "Update %s wurde erfolgreich ausgeführt." +msgid "%d new messages" +msgstr "%d neue Nachrichten" -#: ../../Zotlabs/Module/Admin/Dbsync.php:36 +#: ../../Zotlabs/Module/Manage.php:173 #, php-format -msgid "Update %s did not return a status. Unknown if it succeeded." -msgstr "Update %s lieferte keinen Rückgabewert. Erfolg unbekannt." +msgid "%d new introductions" +msgstr "%d neue Vorstellungen" -#: ../../Zotlabs/Module/Admin/Dbsync.php:39 +#: ../../Zotlabs/Module/Manage.php:175 +msgid "Delegated Channel" +msgstr "Delegierte Kanäle" + +#: ../../Zotlabs/Module/Connections.php:56 +#: ../../Zotlabs/Module/Connections.php:161 +#: ../../Zotlabs/Module/Connections.php:242 +msgid "Blocked" +msgstr "Blockiert" + +#: ../../Zotlabs/Module/Connections.php:61 +#: ../../Zotlabs/Module/Connections.php:168 +#: ../../Zotlabs/Module/Connections.php:241 +msgid "Ignored" +msgstr "Ignoriert" + +#: ../../Zotlabs/Module/Connections.php:66 +#: ../../Zotlabs/Module/Connections.php:182 +#: ../../Zotlabs/Module/Connections.php:240 +msgid "Hidden" +msgstr "Versteckt" + +#: ../../Zotlabs/Module/Connections.php:71 +#: ../../Zotlabs/Module/Connections.php:175 +#: ../../Zotlabs/Module/Connections.php:239 +msgid "Archived" +msgstr "Archiviert" + +#: ../../Zotlabs/Module/Connections.php:76 +#: ../../Zotlabs/Module/Connections.php:86 ../../Zotlabs/Module/Menu.php:116 +#: ../../include/conversation.php:1594 +msgid "New" +msgstr "Neu" + +#: ../../Zotlabs/Module/Connections.php:138 +msgid "New Connections" +msgstr "Neue Verbindungen" + +#: ../../Zotlabs/Module/Connections.php:141 +msgid "Show pending (new) connections" +msgstr "Ausstehende (neue) Verbindungsanfragen anzeigen" + +#: ../../Zotlabs/Module/Connections.php:145 +#: ../../Zotlabs/Module/Profperm.php:144 +msgid "All Connections" +msgstr "Alle Verbindungen" + +#: ../../Zotlabs/Module/Connections.php:148 +msgid "Show all connections" +msgstr "Alle Verbindungen anzeigen" + +#: ../../Zotlabs/Module/Connections.php:164 +msgid "Only show blocked connections" +msgstr "Nur blockierte Verbindungen anzeigen" + +#: ../../Zotlabs/Module/Connections.php:171 +msgid "Only show ignored connections" +msgstr "Nur ignorierte Verbindungen anzeigen" + +#: ../../Zotlabs/Module/Connections.php:178 +msgid "Only show archived connections" +msgstr "Nur archivierte Verbindungen anzeigen" + +#: ../../Zotlabs/Module/Connections.php:185 +msgid "Only show hidden connections" +msgstr "Nur versteckte Verbindungen anzeigen" + +#: ../../Zotlabs/Module/Connections.php:238 +msgid "Pending approval" +msgstr "Wartet auf Genehmigung" + +#: ../../Zotlabs/Module/Connections.php:254 #, php-format -msgid "Update function %s could not be found." -msgstr "Update-Funktion %s konnte nicht gefunden werden." +msgid "%1$s [%2$s]" +msgstr "%1$s [%2$s]" -#: ../../Zotlabs/Module/Admin/Dbsync.php:55 -msgid "No failed updates." -msgstr "Keine fehlgeschlagenen Aktualisierungen." +#: ../../Zotlabs/Module/Connections.php:255 +msgid "Edit connection" +msgstr "Verbindung bearbeiten" -#: ../../Zotlabs/Module/Admin/Dbsync.php:59 -msgid "Failed Updates" -msgstr "Fehlgeschlagene Aktualisierungen" +#: ../../Zotlabs/Module/Connections.php:256 +msgid "Delete connection" +msgstr "Verbindung löschen" -#: ../../Zotlabs/Module/Admin/Dbsync.php:61 -msgid "Mark success (if update was manually applied)" -msgstr "Als erfolgreich markieren (wenn das Update manuell ausgeführt wurde)" +#: ../../Zotlabs/Module/Connections.php:265 +msgid "Channel address" +msgstr "Kanaladresse" -#: ../../Zotlabs/Module/Admin/Dbsync.php:62 -msgid "Attempt to execute this update step automatically" -msgstr "Versuche, diesen Updateschritt automatisch auszuführen" +#: ../../Zotlabs/Module/Connections.php:267 +msgid "Network" +msgstr "Netzwerk" + +#: ../../Zotlabs/Module/Connections.php:270 +msgid "Status" +msgstr "Status" + +#: ../../Zotlabs/Module/Connections.php:272 +msgid "Connected" +msgstr "Verbunden" + +#: ../../Zotlabs/Module/Connections.php:274 +msgid "Approve connection" +msgstr "Verbindung genehmigen" + +#: ../../Zotlabs/Module/Connections.php:275 +#: ../../Zotlabs/Module/Admin/Accounts.php:171 +msgid "Approve" +msgstr "Genehmigen" + +#: ../../Zotlabs/Module/Connections.php:276 +msgid "Ignore connection" +msgstr "Verbindung ignorieren" + +#: ../../Zotlabs/Module/Connections.php:278 +msgid "Recent activity" +msgstr "Kürzliche Aktivitäten" + +#: ../../Zotlabs/Module/Connections.php:302 ../../Zotlabs/Lib/Apps.php:209 +#: ../../include/nav.php:189 ../../include/text.php:916 +msgid "Connections" +msgstr "Verbindungen" + +#: ../../Zotlabs/Module/Connections.php:306 ../../Zotlabs/Module/Search.php:44 +#: ../../Zotlabs/Lib/Apps.php:230 ../../include/nav.php:168 +#: ../../include/text.php:986 ../../include/text.php:998 +#: ../../include/widgets.php:315 ../../include/acl_selectors.php:203 +msgid "Search" +msgstr "Suche" + +#: ../../Zotlabs/Module/Connections.php:307 +msgid "Search your connections" +msgstr "Verbindungen durchsuchen" + +#: ../../Zotlabs/Module/Connections.php:308 +msgid "Connections search" +msgstr "Verbindung suchen" + +#: ../../Zotlabs/Module/Connections.php:309 +#: ../../Zotlabs/Module/Directory.php:391 +#: ../../Zotlabs/Module/Directory.php:396 ../../include/contact_widgets.php:23 +msgid "Find" +msgstr "Finde" + +#: ../../Zotlabs/Module/Cover_photo.php:58 +#: ../../Zotlabs/Module/Profile_photo.php:61 +msgid "Image uploaded but image cropping failed." +msgstr "Bild hochgeladen, aber das Zurechtschneiden schlug fehl." + +#: ../../Zotlabs/Module/Cover_photo.php:134 +#: ../../Zotlabs/Module/Cover_photo.php:181 +msgid "Cover Photos" +msgstr "Cover Foto" + +#: ../../Zotlabs/Module/Cover_photo.php:154 +#: ../../Zotlabs/Module/Profile_photo.php:135 +msgid "Image resize failed." +msgstr "Bild-Anpassung fehlgeschlagen." + +#: ../../Zotlabs/Module/Cover_photo.php:168 +#: ../../Zotlabs/Module/Profile_photo.php:196 ../../include/photos.php:149 +msgid "Unable to process image" +msgstr "Kann Bild nicht verarbeiten" + +#: ../../Zotlabs/Module/Cover_photo.php:192 +#: ../../Zotlabs/Module/Profile_photo.php:231 +msgid "Image upload failed." +msgstr "Hochladen des Bilds fehlgeschlagen." + +#: ../../Zotlabs/Module/Cover_photo.php:210 +#: ../../Zotlabs/Module/Profile_photo.php:250 +msgid "Unable to process image." +msgstr "Kann Bild nicht verarbeiten." + +#: ../../Zotlabs/Module/Cover_photo.php:233 ../../include/items.php:4253 +msgid "female" +msgstr "weiblich" + +#: ../../Zotlabs/Module/Cover_photo.php:234 ../../include/items.php:4254 +#, php-format +msgid "%1$s updated her %2$s" +msgstr "%1$s hat ihr %2$s aktualisiert" + +#: ../../Zotlabs/Module/Cover_photo.php:235 ../../include/items.php:4255 +msgid "male" +msgstr "männlich" + +#: ../../Zotlabs/Module/Cover_photo.php:236 ../../include/items.php:4256 +#, php-format +msgid "%1$s updated his %2$s" +msgstr "%1$s hat sein %2$s aktualisiert" + +#: ../../Zotlabs/Module/Cover_photo.php:238 ../../include/items.php:4258 +#, php-format +msgid "%1$s updated their %2$s" +msgstr "%1$s hat sein/ihr %2$s aktualisiert" + +#: ../../Zotlabs/Module/Cover_photo.php:240 ../../include/channel.php:1677 +msgid "cover photo" +msgstr "Cover Foto" + +#: ../../Zotlabs/Module/Cover_photo.php:303 +#: ../../Zotlabs/Module/Cover_photo.php:318 +#: ../../Zotlabs/Module/Profile_photo.php:311 +#: ../../Zotlabs/Module/Profile_photo.php:352 +msgid "Photo not available." +msgstr "Foto nicht verfügbar." + +#: ../../Zotlabs/Module/Cover_photo.php:354 +#: ../../Zotlabs/Module/Profile_photo.php:407 +msgid "Upload File:" +msgstr "Datei hochladen:" + +#: ../../Zotlabs/Module/Cover_photo.php:355 +#: ../../Zotlabs/Module/Profile_photo.php:408 +msgid "Select a profile:" +msgstr "Wähle ein Profil:" + +#: ../../Zotlabs/Module/Cover_photo.php:356 +msgid "Upload Cover Photo" +msgstr "Cover Foto hochladen" + +#: ../../Zotlabs/Module/Cover_photo.php:361 +#: ../../Zotlabs/Module/Profile_photo.php:416 +#: ../../Zotlabs/Module/Settings/Channel.php:399 +msgid "or" +msgstr "oder" + +#: ../../Zotlabs/Module/Cover_photo.php:361 +#: ../../Zotlabs/Module/Profile_photo.php:416 +msgid "skip this step" +msgstr "diesen Schritt überspringen" + +#: ../../Zotlabs/Module/Cover_photo.php:361 +#: ../../Zotlabs/Module/Profile_photo.php:416 +msgid "select a photo from your photo albums" +msgstr "ein Foto aus meinen Fotoalben" + +#: ../../Zotlabs/Module/Cover_photo.php:377 +#: ../../Zotlabs/Module/Profile_photo.php:435 +msgid "Crop Image" +msgstr "Bild zuschneiden" + +#: ../../Zotlabs/Module/Cover_photo.php:378 +#: ../../Zotlabs/Module/Profile_photo.php:436 +msgid "Please adjust the image cropping for optimum viewing." +msgstr "Bitte schneide das Bild für eine optimale Anzeige passend zu." + +#: ../../Zotlabs/Module/Cover_photo.php:380 +#: ../../Zotlabs/Module/Profile_photo.php:438 +msgid "Done Editing" +msgstr "Bearbeitung fertigstellen" #: ../../Zotlabs/Module/Admin/Features.php:55 #: ../../Zotlabs/Module/Admin/Features.php:56 @@ -980,8 +1727,20 @@ msgstr "Zusätzliche Funktionen verwalten" msgid "Log settings updated." msgstr "Protokoll-Einstellungen aktualisiert." -#: ../../Zotlabs/Module/Admin/Logs.php:83 ../../include/widgets.php:1583 -#: ../../include/widgets.php:1593 +#: ../../Zotlabs/Module/Admin/Logs.php:82 +#: ../../Zotlabs/Module/Admin/Plugins.php:336 +#: ../../Zotlabs/Module/Admin/Plugins.php:427 +#: ../../Zotlabs/Module/Admin/Security.php:86 +#: ../../Zotlabs/Module/Admin/Themes.php:120 +#: ../../Zotlabs/Module/Admin/Themes.php:154 +#: ../../Zotlabs/Module/Admin/Accounts.php:164 +#: ../../Zotlabs/Module/Admin/Channels.php:145 +#: ../../Zotlabs/Module/Admin/Site.php:258 ../../Zotlabs/Module/Admin.php:137 +msgid "Administration" +msgstr "Administration" + +#: ../../Zotlabs/Module/Admin/Logs.php:83 ../../include/widgets.php:1658 +#: ../../include/widgets.php:1668 msgid "Logs" msgstr "Protokolle" @@ -1009,9 +1768,9 @@ msgstr "Protokollstufe" #: ../../Zotlabs/Module/Admin/Plugins.php:254 #: ../../Zotlabs/Module/Admin/Themes.php:69 -#: ../../Zotlabs/Module/Display.php:40 ../../Zotlabs/Module/Filestorage.php:32 -#: ../../Zotlabs/Module/Thing.php:89 ../../Zotlabs/Module/Viewsrc.php:24 -#: ../../Zotlabs/Module/Admin.php:62 ../../include/items.php:3417 +#: ../../Zotlabs/Module/Filestorage.php:32 ../../Zotlabs/Module/Display.php:40 +#: ../../Zotlabs/Module/Admin.php:60 ../../Zotlabs/Module/Thing.php:89 +#: ../../Zotlabs/Module/Viewsrc.php:24 ../../include/items.php:3343 msgid "Item not found." msgstr "Element nicht gefunden." @@ -1036,7 +1795,7 @@ msgid "Enable" msgstr "Aktivieren" #: ../../Zotlabs/Module/Admin/Plugins.php:337 -#: ../../Zotlabs/Module/Admin/Plugins.php:428 ../../include/widgets.php:1561 +#: ../../Zotlabs/Module/Admin/Plugins.php:428 ../../include/widgets.php:1636 msgid "Plugins" msgstr "Plug-Ins" @@ -1047,7 +1806,7 @@ msgstr "Umschalten" #: ../../Zotlabs/Module/Admin/Plugins.php:339 #: ../../Zotlabs/Module/Admin/Themes.php:123 ../../Zotlabs/Lib/Apps.php:216 -#: ../../include/nav.php:213 ../../include/widgets.php:680 +#: ../../include/nav.php:211 ../../include/widgets.php:680 msgid "Settings" msgstr "Einstellungen" @@ -1116,11 +1875,15 @@ msgstr "Installieren" #: ../../Zotlabs/Module/Admin/Plugins.php:414 #: ../../Zotlabs/Module/Fbrowser.php:66 ../../Zotlabs/Module/Fbrowser.php:88 -#: ../../Zotlabs/Module/Wiki.php:171 ../../Zotlabs/Module/Wiki.php:211 -#: ../../Zotlabs/Module/Tagrm.php:15 ../../Zotlabs/Module/Tagrm.php:138 +#: ../../Zotlabs/Module/Wiki.php:242 ../../Zotlabs/Module/Wiki.php:277 #: ../../Zotlabs/Module/Settings/Oauth.php:88 #: ../../Zotlabs/Module/Settings/Oauth.php:114 -#: ../../include/conversation.php:1247 ../../include/conversation.php:1296 +#: ../../Zotlabs/Module/Tagrm.php:15 ../../Zotlabs/Module/Tagrm.php:138 +#: ../../extend/addon/addon/friendica/dfrn_request.php:879 +#: ../../extend/addon/addon/js_upload/js_upload.php:46 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:866 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1154 +#: ../../include/conversation.php:1264 ../../include/conversation.php:1313 msgid "Cancel" msgstr "Abbrechen" @@ -1139,6 +1902,7 @@ msgstr "Ein neues Plugin-Repository installieren" #: ../../Zotlabs/Module/Admin/Plugins.php:443 #: ../../Zotlabs/Module/Settings/Oauth.php:42 #: ../../Zotlabs/Module/Settings/Oauth.php:113 ../../Zotlabs/Lib/Apps.php:334 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1152 msgid "Update" msgstr "Aktualisieren" @@ -1147,7 +1911,8 @@ msgid "Switch branch" msgstr "Zweig/Branch wechseln" #: ../../Zotlabs/Module/Admin/Plugins.php:445 -#: ../../Zotlabs/Module/Tagrm.php:137 ../../Zotlabs/Module/Photos.php:989 +#: ../../Zotlabs/Module/Photos.php:989 ../../Zotlabs/Module/Tagrm.php:137 +#: ../../extend/addon/addon/superblock/superblock.php:110 msgid "Remove" msgstr "Entfernen" @@ -1190,14 +1955,6 @@ msgstr "Hilfetext" msgid "Additional info (optional)" msgstr "Zusätzliche Informationen (optional)" -#: ../../Zotlabs/Module/Admin/Profs.php:74 -#: ../../Zotlabs/Module/Admin/Profs.php:94 ../../Zotlabs/Module/Filer.php:53 -#: ../../Zotlabs/Module/Rbmark.php:32 ../../Zotlabs/Module/Rbmark.php:104 -#: ../../include/text.php:972 ../../include/text.php:984 -#: ../../include/widgets.php:201 -msgid "Save" -msgstr "Speichern" - #: ../../Zotlabs/Module/Admin/Profs.php:83 msgid "Field definition not found" msgstr "Feld-Definition nicht gefunden" @@ -1206,7 +1963,7 @@ msgstr "Feld-Definition nicht gefunden" msgid "Edit Profile Field" msgstr "Profilfeld bearbeiten" -#: ../../Zotlabs/Module/Admin/Profs.php:147 ../../include/widgets.php:1564 +#: ../../Zotlabs/Module/Admin/Profs.php:147 ../../include/widgets.php:1639 msgid "Profile Fields" msgstr "Profil Felder" @@ -1286,7 +2043,7 @@ msgid "" "embedded content from that site is explicitly blocked." msgstr "Alle anderen eingebetteten Inhalte werden gefiltert, es sei denn, eingebettete Inhalte von einer bestimmten Seite sind explizit blockiert." -#: ../../Zotlabs/Module/Admin/Security.php:87 ../../include/widgets.php:1559 +#: ../../Zotlabs/Module/Admin/Security.php:87 ../../include/widgets.php:1634 msgid "Security" msgstr "Sicherheit" @@ -1374,405 +2131,6 @@ msgstr "Eine Website/Domain pro Zeile. Standardmäßig wird eingebetteter Inhalt msgid "Block embedded HTML from these domains" msgstr "Eingebettete HTML Inhalte von diesen Seiten blockieren" -#: ../../Zotlabs/Module/Admin/Site.php:135 -msgid "Site settings updated." -msgstr "Site-Einstellungen aktualisiert." - -#: ../../Zotlabs/Module/Admin/Site.php:162 ../../include/text.php:2942 -msgid "Default" -msgstr "Standard" - -#: ../../Zotlabs/Module/Admin/Site.php:172 -#: ../../Zotlabs/Module/Settings/Display.php:141 -msgid "mobile" -msgstr "mobil" - -#: ../../Zotlabs/Module/Admin/Site.php:174 -msgid "experimental" -msgstr "experimentell" - -#: ../../Zotlabs/Module/Admin/Site.php:176 -msgid "unsupported" -msgstr "nicht unterstützt" - -#: ../../Zotlabs/Module/Admin/Site.php:221 ../../Zotlabs/Module/Menu.php:100 -#: ../../Zotlabs/Module/Menu.php:157 ../../Zotlabs/Module/Filestorage.php:160 -#: ../../Zotlabs/Module/Filestorage.php:168 ../../Zotlabs/Module/Mitem.php:162 -#: ../../Zotlabs/Module/Mitem.php:163 ../../Zotlabs/Module/Mitem.php:240 -#: ../../Zotlabs/Module/Mitem.php:241 ../../Zotlabs/Module/Profiles.php:647 -#: ../../Zotlabs/Module/Api.php:85 ../../Zotlabs/Module/Events.php:462 -#: ../../Zotlabs/Module/Events.php:463 ../../Zotlabs/Module/Events.php:472 -#: ../../Zotlabs/Module/Connedit.php:408 ../../Zotlabs/Module/Connedit.php:686 -#: ../../Zotlabs/Module/Removeme.php:63 ../../Zotlabs/Module/Photos.php:653 -#: ../../Zotlabs/Module/Settings/Channel.php:289 -#: ../../Zotlabs/Module/Settings/Display.php:101 ../../include/dir_fns.php:143 -#: ../../include/dir_fns.php:144 ../../include/dir_fns.php:145 -#: ../../view/theme/redbasic/php/config.php:111 -#: ../../view/theme/redbasic/php/config.php:136 ../../boot.php:1743 -msgid "No" -msgstr "Nein" - -#: ../../Zotlabs/Module/Admin/Site.php:222 -msgid "Yes - with approval" -msgstr "Ja - mit Zustimmung" - -#: ../../Zotlabs/Module/Admin/Site.php:223 ../../Zotlabs/Module/Menu.php:100 -#: ../../Zotlabs/Module/Menu.php:157 ../../Zotlabs/Module/Filestorage.php:160 -#: ../../Zotlabs/Module/Filestorage.php:168 ../../Zotlabs/Module/Mitem.php:162 -#: ../../Zotlabs/Module/Mitem.php:163 ../../Zotlabs/Module/Mitem.php:240 -#: ../../Zotlabs/Module/Mitem.php:241 ../../Zotlabs/Module/Profiles.php:647 -#: ../../Zotlabs/Module/Api.php:84 ../../Zotlabs/Module/Events.php:462 -#: ../../Zotlabs/Module/Events.php:463 ../../Zotlabs/Module/Events.php:472 -#: ../../Zotlabs/Module/Connedit.php:408 ../../Zotlabs/Module/Removeme.php:63 -#: ../../Zotlabs/Module/Photos.php:653 -#: ../../Zotlabs/Module/Settings/Channel.php:289 -#: ../../Zotlabs/Module/Settings/Display.php:101 ../../include/dir_fns.php:143 -#: ../../include/dir_fns.php:144 ../../include/dir_fns.php:145 -#: ../../view/theme/redbasic/php/config.php:111 -#: ../../view/theme/redbasic/php/config.php:136 ../../boot.php:1743 -msgid "Yes" -msgstr "Ja" - -#: ../../Zotlabs/Module/Admin/Site.php:228 -msgid "My site is not a public server" -msgstr "Mein Server ist kein öffentlicher Server" - -#: ../../Zotlabs/Module/Admin/Site.php:229 -msgid "My site has paid access only" -msgstr "Meine Seite hat nur bezahlten Zugriff" - -#: ../../Zotlabs/Module/Admin/Site.php:230 -msgid "My site has free access only" -msgstr "Meine Seite hat nur freien Zugriff" - -#: ../../Zotlabs/Module/Admin/Site.php:231 -msgid "My site offers free accounts with optional paid upgrades" -msgstr "Mein Server bietet kostenlose Konten mit der Möglichkeit zu bezahlten Upgrades" - -#: ../../Zotlabs/Module/Admin/Site.php:242 ../../Zotlabs/Module/Setup.php:336 -msgid "Basic/Minimal Social Networking" -msgstr "Einfaches/minimales soziales Netzwerken" - -#: ../../Zotlabs/Module/Admin/Site.php:243 ../../Zotlabs/Module/Setup.php:337 -msgid "Standard Configuration (default)" -msgstr "Standardkonfiguration (Standard)" - -#: ../../Zotlabs/Module/Admin/Site.php:244 ../../Zotlabs/Module/Setup.php:338 -msgid "Professional" -msgstr "Professionell" - -#: ../../Zotlabs/Module/Admin/Site.php:249 -#: ../../Zotlabs/Module/Settings/Account.php:105 -msgid "Beginner/Basic" -msgstr "Anfänger/Basis" - -#: ../../Zotlabs/Module/Admin/Site.php:250 -#: ../../Zotlabs/Module/Settings/Account.php:106 -msgid "Novice - not skilled but willing to learn" -msgstr "Anfänger - unerfahren, aber bereit zu lernen" - -#: ../../Zotlabs/Module/Admin/Site.php:251 -#: ../../Zotlabs/Module/Settings/Account.php:107 -msgid "Intermediate - somewhat comfortable" -msgstr "Fortgeschritten - relativ komfortabel" - -#: ../../Zotlabs/Module/Admin/Site.php:252 -#: ../../Zotlabs/Module/Settings/Account.php:108 -msgid "Advanced - very comfortable" -msgstr "Fortgeschritten - sehr komfortabel" - -#: ../../Zotlabs/Module/Admin/Site.php:253 -#: ../../Zotlabs/Module/Settings/Account.php:109 -msgid "Expert - I can write computer code" -msgstr "Experte - Ich kann Computercode schreiben" - -#: ../../Zotlabs/Module/Admin/Site.php:254 -#: ../../Zotlabs/Module/Settings/Account.php:110 -msgid "Wizard - I probably know more than you do" -msgstr "Zauberer - ich kann wahrscheinlich mehr als Du" - -#: ../../Zotlabs/Module/Admin/Site.php:266 ../../include/widgets.php:1556 -msgid "Site" -msgstr "Seite" - -#: ../../Zotlabs/Module/Admin/Site.php:269 -msgid "File upload" -msgstr "Dateiupload" - -#: ../../Zotlabs/Module/Admin/Site.php:270 -msgid "Policies" -msgstr "Richtlinien" - -#: ../../Zotlabs/Module/Admin/Site.php:271 -#: ../../include/contact_widgets.php:16 -msgid "Advanced" -msgstr "Fortgeschritten" - -#: ../../Zotlabs/Module/Admin/Site.php:275 -msgid "Site name" -msgstr "Seitenname" - -#: ../../Zotlabs/Module/Admin/Site.php:277 ../../Zotlabs/Module/Setup.php:359 -msgid "Server Configuration/Role" -msgstr "Serverkonfiguration/Rolle" - -#: ../../Zotlabs/Module/Admin/Site.php:279 -msgid "Site default technical skill level" -msgstr "Standard-Qualifikationsstufe der Website" - -#: ../../Zotlabs/Module/Admin/Site.php:279 -msgid "Used to provide a member experience matched to technical comfort level" -msgstr "Dies wird verwendet, um eine Benutzererfahrung passend zur technischen Qualifikationsstufe zu bieten." - -#: ../../Zotlabs/Module/Admin/Site.php:281 -msgid "Lock the technical skill level setting" -msgstr "Sperre die technische Qualifikationsstufe" - -#: ../../Zotlabs/Module/Admin/Site.php:281 -msgid "Members can set their own technical comfort level by default" -msgstr "Benutzer können standardmäßig ihre eigene technische Qualifikationsstufe einstellen" - -#: ../../Zotlabs/Module/Admin/Site.php:284 -msgid "Banner/Logo" -msgstr "Banner/Logo" - -#: ../../Zotlabs/Module/Admin/Site.php:285 -msgid "Administrator Information" -msgstr "Administrator-Informationen" - -#: ../../Zotlabs/Module/Admin/Site.php:285 -msgid "" -"Contact information for site administrators. Displayed on siteinfo page. " -"BBCode can be used here" -msgstr "Kontaktinformationen für Administratoren des Servers. Wird auf der siteinfo-Seite angezeigt. BBCode kann verwendet werden." - -#: ../../Zotlabs/Module/Admin/Site.php:286 -msgid "System language" -msgstr "System-Sprache" - -#: ../../Zotlabs/Module/Admin/Site.php:287 -msgid "System theme" -msgstr "System-Theme" - -#: ../../Zotlabs/Module/Admin/Site.php:287 -msgid "" -"Default system theme - may be over-ridden by user profiles - change theme settings" -msgstr "Standard-System-Theme – kann durch Nutzerprofile überschieben werden – Theme-Einstellungen ändern" - -#: ../../Zotlabs/Module/Admin/Site.php:288 -msgid "Mobile system theme" -msgstr "Mobile System-Theme:" - -#: ../../Zotlabs/Module/Admin/Site.php:288 -msgid "Theme for mobile devices" -msgstr "Theme für mobile Geräte" - -#: ../../Zotlabs/Module/Admin/Site.php:290 -msgid "Allow Feeds as Connections" -msgstr "Feeds als Verbindungen erlauben" - -#: ../../Zotlabs/Module/Admin/Site.php:290 -msgid "(Heavy system resource usage)" -msgstr "(führt zu hoher Systemlast)" - -#: ../../Zotlabs/Module/Admin/Site.php:291 -msgid "Maximum image size" -msgstr "Maximale Bildgröße" - -#: ../../Zotlabs/Module/Admin/Site.php:291 -msgid "" -"Maximum size in bytes of uploaded images. Default is 0, which means no " -"limits." -msgstr "Maximale Größe hochgeladener Bilder in Bytes. Standard ist 0 (keine Einschränkung)." - -#: ../../Zotlabs/Module/Admin/Site.php:292 -msgid "Does this site allow new member registration?" -msgstr "Erlaubt dieser Server die Registrierung neuer Nutzer?" - -#: ../../Zotlabs/Module/Admin/Site.php:293 -msgid "Invitation only" -msgstr "Nur mit Einladung" - -#: ../../Zotlabs/Module/Admin/Site.php:293 -msgid "" -"Only allow new member registrations with an invitation code. Above register " -"policy must be set to Yes." -msgstr "Erlaube die Neuregistrierung von Mitglieder nur mit einem Einladungscode. Die Registrierungs-Politik muss oben auf Ja gesetzt werden." - -#: ../../Zotlabs/Module/Admin/Site.php:294 -msgid "Which best describes the types of account offered by this hub?" -msgstr "Was ist die passendste Beschreibung der Konten auf diesem Hub?" - -#: ../../Zotlabs/Module/Admin/Site.php:295 -msgid "Register text" -msgstr "Registrierungstext" - -#: ../../Zotlabs/Module/Admin/Site.php:295 -msgid "Will be displayed prominently on the registration page." -msgstr "Wird gut sichtbar auf der Registrierungs-Seite angezeigt." - -#: ../../Zotlabs/Module/Admin/Site.php:296 -msgid "Site homepage to show visitors (default: login box)" -msgstr "Homepage des Hubs, die Besuchern angezeigt wird (Voreinstellung: Anmeldemaske)" - -#: ../../Zotlabs/Module/Admin/Site.php:296 -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 "Beispiele: 'public', um den Stream aller öffentlichen Beiträge anzuzeigen, 'page/sys/home', um eine System-Webseite namens 'home' anzuzeigen, 'include:home.html', um eine Datei einzufügen." - -#: ../../Zotlabs/Module/Admin/Site.php:297 -msgid "Preserve site homepage URL" -msgstr "Homepage-URL schützen" - -#: ../../Zotlabs/Module/Admin/Site.php:297 -msgid "" -"Present the site homepage in a frame at the original location instead of " -"redirecting" -msgstr "Zeigt die Homepage an der Original-URL in einem Frame an, statt auf die eigentliche Adresse der Seite umzuleiten." - -#: ../../Zotlabs/Module/Admin/Site.php:298 -msgid "Accounts abandoned after x days" -msgstr "Konten gelten nach X Tagen als unbenutzt" - -#: ../../Zotlabs/Module/Admin/Site.php:298 -msgid "" -"Will not waste system resources polling external sites for abandonded " -"accounts. Enter 0 for no time limit." -msgstr "Verschwende keine Systemressourcen auf das Pollen von externen Seiten, wenn das Konto nicht mehr benutzt wird. Trage hier 0 für kein zeitliches Limit." - -#: ../../Zotlabs/Module/Admin/Site.php:299 -msgid "Allowed friend domains" -msgstr "Erlaubte Domains für Kontakte" - -#: ../../Zotlabs/Module/Admin/Site.php:299 -msgid "" -"Comma separated list of domains which are allowed to establish friendships " -"with this site. Wildcards are accepted. Empty to allow any domains" -msgstr "Liste der Domains, die für Freundschaften erlaubt sind, durch Kommas getrennt. Platzhalter werden akzeptiert. Leer lassen, um alle Domains zu erlauben." - -#: ../../Zotlabs/Module/Admin/Site.php:300 -msgid "Verify Email Addresses" -msgstr "E-Mail-Adressen überprüfen" - -#: ../../Zotlabs/Module/Admin/Site.php:300 -msgid "" -"Check to verify email addresses used in account registration (recommended)." -msgstr "Aktivieren, um die Überprüfung von E-Mail-Adressen bei der Registrierung von Benutzerkonten zu aktivieren (empfohlen)." - -#: ../../Zotlabs/Module/Admin/Site.php:301 -msgid "Force publish" -msgstr "Veröffentlichung erzwingen" - -#: ../../Zotlabs/Module/Admin/Site.php:301 -msgid "" -"Check to force all profiles on this site to be listed in the site directory." -msgstr "Die Veröffentlichung aller Profile dieses Servers im Verzeichnis erzwingen." - -#: ../../Zotlabs/Module/Admin/Site.php:302 -msgid "Import Public Streams" -msgstr "Öffentliche Beiträge importieren" - -#: ../../Zotlabs/Module/Admin/Site.php:302 -msgid "" -"Import and allow access to public content pulled from other sites. Warning: " -"this content is unmoderated." -msgstr "Öffentliche Beiträge von anderen Servern importieren und zur Verfügung stellen. Warnung: Diese Inhalte sind nicht moderiert." - -#: ../../Zotlabs/Module/Admin/Site.php:303 -msgid "Login on Homepage" -msgstr "Log-in auf der Startseite" - -#: ../../Zotlabs/Module/Admin/Site.php:303 -msgid "" -"Present a login box to visitors on the home page if no other content has " -"been configured." -msgstr "Zeigt Besuchern der Homepage eine Anmeldemaske, falls keine anderen Inhalte konfiguriert wurden." - -#: ../../Zotlabs/Module/Admin/Site.php:304 -msgid "Enable context help" -msgstr "Kontext-Hilfe aktivieren" - -#: ../../Zotlabs/Module/Admin/Site.php:304 -msgid "" -"Display contextual help for the current page when the help button is " -"pressed." -msgstr "Zeigt Kontext-sensitive Hilfe für die aktuelle Seite an, wenn der Hilfe-Knopf geklickt wird." - -#: ../../Zotlabs/Module/Admin/Site.php:306 -msgid "Directory Server URL" -msgstr "Verzeichnisserver-URL" - -#: ../../Zotlabs/Module/Admin/Site.php:306 -msgid "Default directory server" -msgstr "Standard-Verzeichnisserver" - -#: ../../Zotlabs/Module/Admin/Site.php:308 -msgid "Proxy user" -msgstr "Proxy Benutzer" - -#: ../../Zotlabs/Module/Admin/Site.php:309 -msgid "Proxy URL" -msgstr "Proxy URL" - -#: ../../Zotlabs/Module/Admin/Site.php:310 -msgid "Network timeout" -msgstr "Netzwerk-Timeout" - -#: ../../Zotlabs/Module/Admin/Site.php:310 -msgid "Value is in seconds. Set to 0 for unlimited (not recommended)." -msgstr "Wert in Sekunden. 0 für unbegrenzt (nicht empfohlen)." - -#: ../../Zotlabs/Module/Admin/Site.php:311 -msgid "Delivery interval" -msgstr "Auslieferung Intervall" - -#: ../../Zotlabs/Module/Admin/Site.php:311 -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 "Verzögere im Hintergrund laufende Auslieferungsprozesse um die angegebene Anzahl Sekunden, um die Systemlast zu verringern. Empfehlungen: 4-5 für Shared Hosts, 2-3 für VPS, 0-1 für große dedizierte Server." - -#: ../../Zotlabs/Module/Admin/Site.php:312 -msgid "Deliveries per process" -msgstr "Zustellungen pro Prozess" - -#: ../../Zotlabs/Module/Admin/Site.php:312 -msgid "" -"Number of deliveries to attempt in a single operating system process. Adjust" -" if necessary to tune system performance. Recommend: 1-5." -msgstr "Anzahl der Zustellungen, die innerhalb eines einzelnen Betriebssystemprozesses versucht werden. Anpassen, falls nötig, um die System-Performance zu verbessern. Empfehlung: 1-5." - -#: ../../Zotlabs/Module/Admin/Site.php:313 -msgid "Poll interval" -msgstr "Abfrageintervall" - -#: ../../Zotlabs/Module/Admin/Site.php:313 -msgid "" -"Delay background polling processes by this many seconds to reduce system " -"load. If 0, use delivery interval." -msgstr "Verzögere Hintergrundprozesse um diese Anzahl Sekunden, um die Systemlast zu reduzieren. Bei 0 wird das Auslieferungsintervall verwendet." - -#: ../../Zotlabs/Module/Admin/Site.php:314 -msgid "Maximum Load Average" -msgstr "Maximales Load Average" - -#: ../../Zotlabs/Module/Admin/Site.php:314 -msgid "" -"Maximum system load before delivery and poll processes are deferred - " -"default 50." -msgstr "Maximale Systemlast, bevor Verteil- und Empfangsprozesse verschoben werden – Standard 50" - -#: ../../Zotlabs/Module/Admin/Site.php:315 -msgid "Expiration period in days for imported (grid/network) content" -msgstr "Setze den Zeitraum (in Tagen), ab wann importierte (aus dem Netzwerk) Inhalte ablaufen sollen" - -#: ../../Zotlabs/Module/Admin/Site.php:315 -msgid "0 for no expiration of imported content" -msgstr "0 = keine Löschung importierter Inhalte" - #: ../../Zotlabs/Module/Admin/Themes.php:18 msgid "Theme settings updated." msgstr "Theme-Einstellungen aktualisiert." @@ -1786,7 +2144,7 @@ msgid "Screenshot" msgstr "Bildschirmfoto" #: ../../Zotlabs/Module/Admin/Themes.php:121 -#: ../../Zotlabs/Module/Admin/Themes.php:155 ../../include/widgets.php:1562 +#: ../../Zotlabs/Module/Admin/Themes.php:155 ../../include/widgets.php:1637 msgid "Themes" msgstr "Themes" @@ -1798,575 +2156,707 @@ msgstr "[Experimentell]" msgid "[Unsupported]" msgstr "[Nicht unterstützt]" -#: ../../Zotlabs/Module/Import.php:33 +#: ../../Zotlabs/Module/Admin/Account_edit.php:29 #, php-format -msgid "Your service plan only allows %d channels." -msgstr "Dein Vertrag erlaubt nur %d Kanäle." +msgid "Password changed for account %d." +msgstr "Passwort für Konto %d geändert." -#: ../../Zotlabs/Module/Import.php:71 ../../Zotlabs/Module/Import_items.php:42 -msgid "Nothing to import." -msgstr "Nichts zu importieren." +#: ../../Zotlabs/Module/Admin/Account_edit.php:46 +msgid "Account settings updated." +msgstr "Kontoeinstellungen aktualisiert." -#: ../../Zotlabs/Module/Import.php:95 ../../Zotlabs/Module/Import_items.php:66 -msgid "Unable to download data from old server" -msgstr "Daten können vom alten Server nicht heruntergeladen werden" +#: ../../Zotlabs/Module/Admin/Account_edit.php:61 +msgid "Account not found." +msgstr "Konto nicht gefunden." -#: ../../Zotlabs/Module/Import.php:101 -#: ../../Zotlabs/Module/Import_items.php:72 -msgid "Imported file is empty." -msgstr "Die importierte Datei ist leer." +#: ../../Zotlabs/Module/Admin/Account_edit.php:68 +msgid "Account Edit" +msgstr "Kontobearbeitung" -#: ../../Zotlabs/Module/Import.php:123 -#: ../../Zotlabs/Module/Import_items.php:88 +#: ../../Zotlabs/Module/Admin/Account_edit.php:69 +msgid "New Password" +msgstr "Neues Passwort" + +#: ../../Zotlabs/Module/Admin/Account_edit.php:70 +msgid "New Password again" +msgstr "Neues Passwort wiederholen" + +#: ../../Zotlabs/Module/Admin/Account_edit.php:71 +msgid "Technical skill level" +msgstr "Technische Qualifikationsstufe" + +#: ../../Zotlabs/Module/Admin/Account_edit.php:72 +msgid "Account language (for emails)" +msgstr "Kontosprache (für E-Mails)" + +#: ../../Zotlabs/Module/Admin/Account_edit.php:73 +msgid "Service class" +msgstr "Dienstklasse" + +#: ../../Zotlabs/Module/Admin/Accounts.php:36 #, php-format -msgid "Warning: Database versions differ by %1$d updates." -msgstr "Achtung: Datenbankversionen unterscheiden sich um %1$d Aktualisierungen." +msgid "%s account blocked/unblocked" +msgid_plural "%s account blocked/unblocked" +msgstr[0] "%s Konto blockiert/freigegeben" +msgstr[1] "%s Konten blockiert/freigegeben" -#: ../../Zotlabs/Module/Import.php:153 ../../include/import.php:107 -msgid "Cloned channel not found. Import failed." -msgstr "Geklonter Kanal nicht gefunden. Import fehlgeschlagen." - -#: ../../Zotlabs/Module/Import.php:163 -msgid "No channel. Import failed." -msgstr "Kein Kanal. Import fehlgeschlagen." - -#: ../../Zotlabs/Module/Import.php:520 -#: ../../include/Import/import_diaspora.php:142 -msgid "Import completed." -msgstr "Import abgeschlossen." - -#: ../../Zotlabs/Module/Import.php:542 -msgid "You must be logged in to use this feature." -msgstr "Du musst angemeldet sein um diese Funktion zu nutzen." - -#: ../../Zotlabs/Module/Import.php:547 -msgid "Import Channel" -msgstr "Kanal importieren" - -#: ../../Zotlabs/Module/Import.php:548 -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 "Verwende dieses Formular, um einen existierenden Kanal von einem anderen Hub zu importieren. Du kannst den Kanal direkt vom bisherigen Hub über das Netzwerk oder aus einer exportierten Sicherheitskopie importieren." - -#: ../../Zotlabs/Module/Import.php:549 -#: ../../Zotlabs/Module/Import_items.php:121 -msgid "File to Upload" -msgstr "Hochzuladende Datei:" - -#: ../../Zotlabs/Module/Import.php:550 -msgid "Or provide the old server/hub details" -msgstr "Oder gib die Details Deines bisherigen $Projectname-Hubs ein" - -#: ../../Zotlabs/Module/Import.php:551 -msgid "Your old identity address (xyz@example.com)" -msgstr "Bisherige Kanal-Adresse (xyz@example.com)" - -#: ../../Zotlabs/Module/Import.php:552 -msgid "Your old login email address" -msgstr "Deine alte Login-E-Mail-Adresse" - -#: ../../Zotlabs/Module/Import.php:553 -msgid "Your old login password" -msgstr "Dein altes Passwort" - -#: ../../Zotlabs/Module/Import.php:554 -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 "Egal, welche Option Du wählst – bitte lege fest, ob dieser Server die neue primäre Adresse dieses Kanals sein soll, oder ob der bisherige $Projectname-Hub diese Rolle weiterhin wahrnimmt. Du kannst von beiden Servern aus posten, aber nur einer kann der primäre Ort Deiner Dateien, Fotos und Medien sein." - -#: ../../Zotlabs/Module/Import.php:555 -msgid "Make this hub my primary location" -msgstr "Dieser $Pojectname-Hub ist mein primärer Hub." - -#: ../../Zotlabs/Module/Import.php:556 -msgid "" -"Import existing posts if possible (experimental - limited by available " -"memory" -msgstr "Importiere bestehende Beiträge falls möglich (experimentell - begrenzt durch zur Verfügung stehenden Speicher" - -#: ../../Zotlabs/Module/Import.php:557 -msgid "" -"This process may take several minutes to complete. Please submit the form " -"only once and leave this page open until finished." -msgstr "Dieser Vorgang kann einige Minuten dauern. Bitte sende das Formular nur einmal ab und lasse diese Seite bis zur Fertigstellung offen." - -#: ../../Zotlabs/Module/Directory.php:63 ../../Zotlabs/Module/Ratings.php:83 -#: ../../Zotlabs/Module/Display.php:17 ../../Zotlabs/Module/Search.php:17 -#: ../../Zotlabs/Module/Photos.php:509 -#: ../../Zotlabs/Module/Viewconnections.php:23 -msgid "Public access denied." -msgstr "Öffentlichen Zugriff verweigert." - -#: ../../Zotlabs/Module/Directory.php:243 +#: ../../Zotlabs/Module/Admin/Accounts.php:43 #, php-format -msgid "%d rating" -msgid_plural "%d ratings" -msgstr[0] "%d Bewertung" -msgstr[1] "%d Bewertungen" +msgid "%s account deleted" +msgid_plural "%s accounts deleted" +msgstr[0] "%s Konto gelöscht" +msgstr[1] "%s Konten gelöscht" -#: ../../Zotlabs/Module/Directory.php:254 -msgid "Gender: " -msgstr "Geschlecht:" +#: ../../Zotlabs/Module/Admin/Accounts.php:79 +msgid "Account not found" +msgstr "Konto nicht gefunden" -#: ../../Zotlabs/Module/Directory.php:256 -msgid "Status: " -msgstr "Status:" +#: ../../Zotlabs/Module/Admin/Accounts.php:90 +#, php-format +msgid "Account '%s' deleted" +msgstr "Konto '%s' gelöscht" -#: ../../Zotlabs/Module/Directory.php:258 -msgid "Homepage: " -msgstr "Webseite:" +#: ../../Zotlabs/Module/Admin/Accounts.php:98 +#, php-format +msgid "Account '%s' blocked" +msgstr "Konto '%s' blockiert" -#: ../../Zotlabs/Module/Directory.php:306 ../../include/channel.php:1207 -msgid "Age:" -msgstr "Alter:" +#: ../../Zotlabs/Module/Admin/Accounts.php:106 +#, php-format +msgid "Account '%s' unblocked" +msgstr "Konto '%s' freigegeben" -#: ../../Zotlabs/Module/Directory.php:311 ../../include/event.php:52 -#: ../../include/event.php:84 ../../include/bb2diaspora.php:507 -#: ../../include/channel.php:1049 -msgid "Location:" -msgstr "Ort:" +#: ../../Zotlabs/Module/Admin/Accounts.php:165 +#: ../../Zotlabs/Module/Admin/Accounts.php:178 ../../include/widgets.php:1632 +msgid "Accounts" +msgstr "Konten" -#: ../../Zotlabs/Module/Directory.php:317 -msgid "Description:" -msgstr "Beschreibung:" +#: ../../Zotlabs/Module/Admin/Accounts.php:167 +#: ../../Zotlabs/Module/Admin/Channels.php:148 +msgid "select all" +msgstr "Alle auswählen" -#: ../../Zotlabs/Module/Directory.php:322 ../../include/channel.php:1223 -msgid "Hometown:" -msgstr "Heimatstadt:" +#: ../../Zotlabs/Module/Admin/Accounts.php:168 +msgid "Registrations waiting for confirm" +msgstr "Registrierungen warten auf Bestätigung" -#: ../../Zotlabs/Module/Directory.php:324 ../../include/channel.php:1231 -msgid "About:" -msgstr "Über:" +#: ../../Zotlabs/Module/Admin/Accounts.php:169 +msgid "Request date" +msgstr "Antragsdatum" -#: ../../Zotlabs/Module/Directory.php:325 ../../Zotlabs/Module/Match.php:68 -#: ../../Zotlabs/Module/Suggest.php:56 ../../include/channel.php:1034 -#: ../../include/connections.php:78 ../../include/conversation.php:957 -#: ../../include/widgets.php:147 ../../include/widgets.php:184 -msgid "Connect" -msgstr "Verbinden" +#: ../../Zotlabs/Module/Admin/Accounts.php:169 +#: ../../Zotlabs/Module/Admin/Accounts.php:181 +#: ../../extend/addon/addon/redred/redred.php:107 +#: ../../extend/addon/addon/rtof/rtof.php:93 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1140 +#: ../../extend/addon/addon/openid/MysqlProvider.php:56 +#: ../../extend/addon/addon/openid/MysqlProvider.php:57 +#: ../../include/network.php:2237 +msgid "Email" +msgstr "E-Mail" -#: ../../Zotlabs/Module/Directory.php:326 -msgid "Public Forum:" -msgstr "Öffentliches Forum:" +#: ../../Zotlabs/Module/Admin/Accounts.php:170 +msgid "No registrations." +msgstr "Keine Registrierungen." -#: ../../Zotlabs/Module/Directory.php:329 -msgid "Keywords: " -msgstr "Schlüsselwörter:" +#: ../../Zotlabs/Module/Admin/Accounts.php:172 +msgid "Deny" +msgstr "Verweigern" -#: ../../Zotlabs/Module/Directory.php:332 -msgid "Don't suggest" -msgstr "Nicht vorschlagen" +#: ../../Zotlabs/Module/Admin/Accounts.php:180 +msgid "ID" +msgstr "ID" -#: ../../Zotlabs/Module/Directory.php:334 -msgid "Common connections:" -msgstr "Gemeinsame Verbindungen:" +#: ../../Zotlabs/Module/Admin/Accounts.php:182 ../../include/group.php:267 +msgid "All Channels" +msgstr "Alle Kanäle" -#: ../../Zotlabs/Module/Directory.php:383 -msgid "Global Directory" -msgstr "Globales Verzeichnis" +#: ../../Zotlabs/Module/Admin/Accounts.php:183 +msgid "Register date" +msgstr "Registrierungs-Datum" -#: ../../Zotlabs/Module/Directory.php:383 -msgid "Local Directory" -msgstr "Lokales Verzeichnis" +#: ../../Zotlabs/Module/Admin/Accounts.php:184 +msgid "Last login" +msgstr "Letzte Anmeldung" -#: ../../Zotlabs/Module/Directory.php:388 -#: ../../Zotlabs/Module/Directory.php:393 -#: ../../Zotlabs/Module/Connections.php:309 -#: ../../include/contact_widgets.php:23 -msgid "Find" -msgstr "Finde" +#: ../../Zotlabs/Module/Admin/Accounts.php:185 +msgid "Expires" +msgstr "Verfällt" -#: ../../Zotlabs/Module/Directory.php:389 -msgid "Finding:" -msgstr "Ergebnisse:" +#: ../../Zotlabs/Module/Admin/Accounts.php:186 +msgid "Service Class" +msgstr "Service-Klasse" -#: ../../Zotlabs/Module/Directory.php:392 ../../Zotlabs/Module/Suggest.php:64 -#: ../../include/contact_widgets.php:24 -msgid "Channel Suggestions" -msgstr "Kanal-Vorschläge" +#: ../../Zotlabs/Module/Admin/Accounts.php:188 +msgid "" +"Selected accounts will be deleted!\\n\\nEverything these accounts had posted" +" on this site will be permanently deleted!\\n\\nAre you sure?" +msgstr "Die ausgewählten Konten werden gelöscht!\\n\\nAlles, was diese Konten auf diesem Hub veröffentlicht haben, wird endgültig gelöscht werden!\\n\\nBist du dir sicher?" -#: ../../Zotlabs/Module/Directory.php:394 -msgid "next page" -msgstr "nächste Seite" +#: ../../Zotlabs/Module/Admin/Accounts.php:189 +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 "Das Konto {0} wird gelöscht!\\n\\nAlles, was dieses Konto auf diesem Hub veröffentlicht hat, wird endgültig gelöscht werden!\\n\\nBist Du sicher?" -#: ../../Zotlabs/Module/Directory.php:394 -msgid "previous page" -msgstr "vorherige Seite" +#: ../../Zotlabs/Module/Admin/Channels.php:31 +#, php-format +msgid "%s channel censored/uncensored" +msgid_plural "%s channels censored/uncensored" +msgstr[0] "%s Kanal gesperrt/freigegeben" +msgstr[1] "%s Kanäle gesperrt/freigegeben" -#: ../../Zotlabs/Module/Directory.php:395 -msgid "Sort options" -msgstr "Sortieroptionen" +#: ../../Zotlabs/Module/Admin/Channels.php:40 +#, php-format +msgid "%s channel code allowed/disallowed" +msgid_plural "%s channels code allowed/disallowed" +msgstr[0] "Code für %s Kanal gesperrt/freigegeben" +msgstr[1] "Code für %s Kanäle gesperrt/freigegeben" -#: ../../Zotlabs/Module/Directory.php:396 -msgid "Alphabetic" -msgstr "alphabetisch" +#: ../../Zotlabs/Module/Admin/Channels.php:46 +#, php-format +msgid "%s channel deleted" +msgid_plural "%s channels deleted" +msgstr[0] "%s Kanal gelöscht" +msgstr[1] "%s Kanäle gelöscht" -#: ../../Zotlabs/Module/Directory.php:397 -msgid "Reverse Alphabetic" -msgstr "Entgegengesetzt alphabetisch" +#: ../../Zotlabs/Module/Admin/Channels.php:65 +msgid "Channel not found" +msgstr "Kanal nicht gefunden" -#: ../../Zotlabs/Module/Directory.php:398 -msgid "Newest to Oldest" -msgstr "Neueste zuerst" +#: ../../Zotlabs/Module/Admin/Channels.php:75 +#, php-format +msgid "Channel '%s' deleted" +msgstr "Kanal '%s' gelöscht" -#: ../../Zotlabs/Module/Directory.php:399 -msgid "Oldest to Newest" -msgstr "Älteste zuerst" +#: ../../Zotlabs/Module/Admin/Channels.php:87 +#, php-format +msgid "Channel '%s' censored" +msgstr "Kanal '%s' gesperrt" -#: ../../Zotlabs/Module/Directory.php:416 -msgid "No entries (some entries may be hidden)." -msgstr "Keine Einträge gefunden (einige könnten versteckt sein)." +#: ../../Zotlabs/Module/Admin/Channels.php:87 +#, php-format +msgid "Channel '%s' uncensored" +msgstr "Kanal '%s' freigegeben" -#: ../../Zotlabs/Module/Bookmarks.php:53 -msgid "Bookmark added" -msgstr "Lesezeichen hinzugefügt" +#: ../../Zotlabs/Module/Admin/Channels.php:98 +#, php-format +msgid "Channel '%s' code allowed" +msgstr "Code für Kanal '%s' freigegeben" -#: ../../Zotlabs/Module/Bookmarks.php:75 -msgid "My Bookmarks" -msgstr "Meine Lesezeichen" +#: ../../Zotlabs/Module/Admin/Channels.php:98 +#, php-format +msgid "Channel '%s' code disallowed" +msgstr "Code für Kanal '%s' gesperrt" -#: ../../Zotlabs/Module/Bookmarks.php:86 -msgid "My Connections Bookmarks" -msgstr "Lesezeichen meiner Kontakte" +#: ../../Zotlabs/Module/Admin/Channels.php:146 ../../include/widgets.php:1633 +msgid "Channels" +msgstr "Kanäle" -#: ../../Zotlabs/Module/Rpost.php:138 ../../Zotlabs/Module/Editpost.php:106 -msgid "Edit post" -msgstr "Bearbeite Beitrag" +#: ../../Zotlabs/Module/Admin/Channels.php:150 +msgid "Censor" +msgstr "Sperren" -#: ../../Zotlabs/Module/Ratings.php:70 -msgid "No ratings" -msgstr "Keine Bewertungen" +#: ../../Zotlabs/Module/Admin/Channels.php:151 +msgid "Uncensor" +msgstr "Freigeben" -#: ../../Zotlabs/Module/Ratings.php:97 ../../Zotlabs/Module/Pubsites.php:35 -#: ../../include/conversation.php:960 +#: ../../Zotlabs/Module/Admin/Channels.php:152 +msgid "Allow Code" +msgstr "Code erlauben" + +#: ../../Zotlabs/Module/Admin/Channels.php:153 +msgid "Disallow Code" +msgstr "Code sperren" + +#: ../../Zotlabs/Module/Admin/Channels.php:154 +#: ../../include/conversation.php:1671 +msgid "Channel" +msgstr "Kanal" + +#: ../../Zotlabs/Module/Admin/Channels.php:158 +msgid "UID" +msgstr "UID" + +#: ../../Zotlabs/Module/Admin/Channels.php:162 +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 "Alle ausgewählten Kanäle werden gelöscht!\\n\\nAlles was von diesen Kanälen auf diesem Server geschrieben wurde, wird dauerhaft gelöscht!\\n\\nBist Du sicher?" + +#: ../../Zotlabs/Module/Admin/Channels.php:163 +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 "Der Kanal {0} wird gelöscht!\\n\\nAlles was von diesem Kanal auf diesem Server geschrieben wurde, wird gelöscht!\\n\\nBist Du sicher?" + +#: ../../Zotlabs/Module/Admin/Dbsync.php:19 +msgid "Update has been marked successful" +msgstr "Update wurde als erfolgreich markiert" + +#: ../../Zotlabs/Module/Admin/Dbsync.php:29 +#, php-format +msgid "Executing %s failed. Check system logs." +msgstr "Ausführen von %s fehlgeschlagen. Überprüfe die Systemprotokolle." + +#: ../../Zotlabs/Module/Admin/Dbsync.php:32 +#, php-format +msgid "Update %s was successfully applied." +msgstr "Update %s wurde erfolgreich ausgeführt." + +#: ../../Zotlabs/Module/Admin/Dbsync.php:36 +#, php-format +msgid "Update %s did not return a status. Unknown if it succeeded." +msgstr "Update %s lieferte keinen Rückgabewert. Erfolg unbekannt." + +#: ../../Zotlabs/Module/Admin/Dbsync.php:39 +#, php-format +msgid "Update function %s could not be found." +msgstr "Update-Funktion %s konnte nicht gefunden werden." + +#: ../../Zotlabs/Module/Admin/Dbsync.php:55 +msgid "No failed updates." +msgstr "Keine fehlgeschlagenen Aktualisierungen." + +#: ../../Zotlabs/Module/Admin/Dbsync.php:59 +msgid "Failed Updates" +msgstr "Fehlgeschlagene Aktualisierungen" + +#: ../../Zotlabs/Module/Admin/Dbsync.php:61 +msgid "Mark success (if update was manually applied)" +msgstr "Als erfolgreich markieren (wenn das Update manuell ausgeführt wurde)" + +#: ../../Zotlabs/Module/Admin/Dbsync.php:62 +msgid "Attempt to execute this update step automatically" +msgstr "Versuche, diesen Updateschritt automatisch auszuführen" + +#: ../../Zotlabs/Module/Admin/Site.php:133 +msgid "Site settings updated." +msgstr "Site-Einstellungen aktualisiert." + +#: ../../Zotlabs/Module/Admin/Site.php:159 ../../include/text.php:2918 +msgid "Default" +msgstr "Standard" + +#: ../../Zotlabs/Module/Admin/Site.php:169 +#: ../../Zotlabs/Module/Settings/Display.php:143 +msgid "mobile" +msgstr "mobil" + +#: ../../Zotlabs/Module/Admin/Site.php:171 +msgid "experimental" +msgstr "experimentell" + +#: ../../Zotlabs/Module/Admin/Site.php:173 +msgid "unsupported" +msgstr "nicht unterstützt" + +#: ../../Zotlabs/Module/Admin/Site.php:219 +msgid "Yes - with approval" +msgstr "Ja - mit Zustimmung" + +#: ../../Zotlabs/Module/Admin/Site.php:225 +msgid "My site is not a public server" +msgstr "Mein Server ist kein öffentlicher Server" + +#: ../../Zotlabs/Module/Admin/Site.php:226 +msgid "My site has paid access only" +msgstr "Meine Seite hat nur bezahlten Zugriff" + +#: ../../Zotlabs/Module/Admin/Site.php:227 +msgid "My site has free access only" +msgstr "Meine Seite hat nur freien Zugriff" + +#: ../../Zotlabs/Module/Admin/Site.php:228 +msgid "My site offers free accounts with optional paid upgrades" +msgstr "Mein Server bietet kostenlose Konten mit der Möglichkeit zu bezahlten Upgrades" + +#: ../../Zotlabs/Module/Admin/Site.php:239 ../../Zotlabs/Module/Setup.php:328 +msgid "Basic/Minimal Social Networking" +msgstr "Einfaches/minimales soziales Netzwerken" + +#: ../../Zotlabs/Module/Admin/Site.php:240 ../../Zotlabs/Module/Setup.php:329 +msgid "Standard Configuration (default)" +msgstr "Standardkonfiguration (Standard)" + +#: ../../Zotlabs/Module/Admin/Site.php:241 ../../Zotlabs/Module/Setup.php:330 +msgid "Professional" +msgstr "Professionell" + +#: ../../Zotlabs/Module/Admin/Site.php:245 ../../Zotlabs/Lib/Techlevels.php:10 +msgid "Beginner/Basic" +msgstr "Anfänger/Basis" + +#: ../../Zotlabs/Module/Admin/Site.php:246 ../../Zotlabs/Lib/Techlevels.php:11 +msgid "Novice - not skilled but willing to learn" +msgstr "Anfänger - unerfahren, aber bereit zu lernen" + +#: ../../Zotlabs/Module/Admin/Site.php:247 ../../Zotlabs/Lib/Techlevels.php:12 +msgid "Intermediate - somewhat comfortable" +msgstr "Fortgeschritten - relativ komfortabel" + +#: ../../Zotlabs/Module/Admin/Site.php:248 ../../Zotlabs/Lib/Techlevels.php:13 +msgid "Advanced - very comfortable" +msgstr "Fortgeschritten - sehr komfortabel" + +#: ../../Zotlabs/Module/Admin/Site.php:249 ../../Zotlabs/Lib/Techlevels.php:14 +msgid "Expert - I can write computer code" +msgstr "Experte - Ich kann Computercode schreiben" + +#: ../../Zotlabs/Module/Admin/Site.php:250 ../../Zotlabs/Lib/Techlevels.php:15 +msgid "Wizard - I probably know more than you do" +msgstr "Zauberer - ich kann wahrscheinlich mehr als Du" + +#: ../../Zotlabs/Module/Admin/Site.php:259 ../../include/widgets.php:1631 +msgid "Site" +msgstr "Seite" + +#: ../../Zotlabs/Module/Admin/Site.php:262 +msgid "File upload" +msgstr "Dateiupload" + +#: ../../Zotlabs/Module/Admin/Site.php:263 +msgid "Policies" +msgstr "Richtlinien" + +#: ../../Zotlabs/Module/Admin/Site.php:264 +#: ../../include/contact_widgets.php:16 +msgid "Advanced" +msgstr "Fortgeschritten" + +#: ../../Zotlabs/Module/Admin/Site.php:268 +#: ../../extend/addon/addon/statusnet/statusnet.php:890 +msgid "Site name" +msgstr "Seitenname" + +#: ../../Zotlabs/Module/Admin/Site.php:270 ../../Zotlabs/Module/Setup.php:351 +msgid "Server Configuration/Role" +msgstr "Serverkonfiguration/Rolle" + +#: ../../Zotlabs/Module/Admin/Site.php:272 +msgid "Site default technical skill level" +msgstr "Standard-Qualifikationsstufe der Website" + +#: ../../Zotlabs/Module/Admin/Site.php:272 +msgid "Used to provide a member experience matched to technical comfort level" +msgstr "Dies wird verwendet, um eine Benutzererfahrung passend zur technischen Qualifikationsstufe zu bieten." + +#: ../../Zotlabs/Module/Admin/Site.php:274 +msgid "Lock the technical skill level setting" +msgstr "Sperre die technische Qualifikationsstufe" + +#: ../../Zotlabs/Module/Admin/Site.php:274 +msgid "Members can set their own technical comfort level by default" +msgstr "Benutzer können standardmäßig ihre eigene technische Qualifikationsstufe einstellen" + +#: ../../Zotlabs/Module/Admin/Site.php:276 +msgid "Banner/Logo" +msgstr "Banner/Logo" + +#: ../../Zotlabs/Module/Admin/Site.php:277 +msgid "Administrator Information" +msgstr "Administrator-Informationen" + +#: ../../Zotlabs/Module/Admin/Site.php:277 +msgid "" +"Contact information for site administrators. Displayed on siteinfo page. " +"BBCode can be used here" +msgstr "Kontaktinformationen für Administratoren des Servers. Wird auf der siteinfo-Seite angezeigt. BBCode kann verwendet werden." + +#: ../../Zotlabs/Module/Admin/Site.php:278 +#: ../../Zotlabs/Module/Siteinfo.php:23 +msgid "Site Information" +msgstr "Seiteninformationen" + +#: ../../Zotlabs/Module/Admin/Site.php:278 +msgid "" +"Publicly visible description of this site. Displayed on siteinfo page. " +"BBCode can be used here" +msgstr "Öffentlich sichtbare Beschreibung dieses Servers. Wird auf der siteinfo-Seite angezeigt. BBCode kann hier verwendet werden." + +#: ../../Zotlabs/Module/Admin/Site.php:279 +msgid "System language" +msgstr "System-Sprache" + +#: ../../Zotlabs/Module/Admin/Site.php:280 +msgid "System theme" +msgstr "System-Theme" + +#: ../../Zotlabs/Module/Admin/Site.php:280 +msgid "" +"Default system theme - may be over-ridden by user profiles - change theme settings" +msgstr "Standard-System-Theme – kann durch Nutzerprofile überschieben werden – Theme-Einstellungen ändern" + +#: ../../Zotlabs/Module/Admin/Site.php:281 +msgid "Mobile system theme" +msgstr "Mobile System-Theme:" + +#: ../../Zotlabs/Module/Admin/Site.php:281 +msgid "Theme for mobile devices" +msgstr "Theme für mobile Geräte" + +#: ../../Zotlabs/Module/Admin/Site.php:283 +msgid "Allow Feeds as Connections" +msgstr "Feeds als Verbindungen erlauben" + +#: ../../Zotlabs/Module/Admin/Site.php:283 +msgid "(Heavy system resource usage)" +msgstr "(führt zu hoher Systemlast)" + +#: ../../Zotlabs/Module/Admin/Site.php:284 +msgid "Maximum image size" +msgstr "Maximale Bildgröße" + +#: ../../Zotlabs/Module/Admin/Site.php:284 +msgid "" +"Maximum size in bytes of uploaded images. Default is 0, which means no " +"limits." +msgstr "Maximale Größe hochgeladener Bilder in Bytes. Standard ist 0 (keine Einschränkung)." + +#: ../../Zotlabs/Module/Admin/Site.php:285 +msgid "Does this site allow new member registration?" +msgstr "Erlaubt dieser Server die Registrierung neuer Nutzer?" + +#: ../../Zotlabs/Module/Admin/Site.php:286 +msgid "Invitation only" +msgstr "Nur mit Einladung" + +#: ../../Zotlabs/Module/Admin/Site.php:286 +msgid "" +"Only allow new member registrations with an invitation code. Above register " +"policy must be set to Yes." +msgstr "Erlaube die Neuregistrierung von Mitglieder nur mit einem Einladungscode. Die Registrierungs-Politik muss oben auf Ja gesetzt werden." + +#: ../../Zotlabs/Module/Admin/Site.php:287 +msgid "Which best describes the types of account offered by this hub?" +msgstr "Was ist die passendste Beschreibung der Konten auf diesem Hub?" + +#: ../../Zotlabs/Module/Admin/Site.php:288 +msgid "Register text" +msgstr "Registrierungstext" + +#: ../../Zotlabs/Module/Admin/Site.php:288 +msgid "Will be displayed prominently on the registration page." +msgstr "Wird gut sichtbar auf der Registrierungs-Seite angezeigt." + +#: ../../Zotlabs/Module/Admin/Site.php:289 +msgid "Site homepage to show visitors (default: login box)" +msgstr "Homepage des Hubs, die Besuchern angezeigt wird (Voreinstellung: Anmeldemaske)" + +#: ../../Zotlabs/Module/Admin/Site.php:289 +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 "Beispiele: 'public', um den Stream aller öffentlichen Beiträge anzuzeigen, 'page/sys/home', um eine System-Webseite namens 'home' anzuzeigen, 'include:home.html', um eine Datei einzufügen." + +#: ../../Zotlabs/Module/Admin/Site.php:290 +msgid "Preserve site homepage URL" +msgstr "Homepage-URL schützen" + +#: ../../Zotlabs/Module/Admin/Site.php:290 +msgid "" +"Present the site homepage in a frame at the original location instead of " +"redirecting" +msgstr "Zeigt die Homepage an der Original-URL in einem Frame an, statt auf die eigentliche Adresse der Seite umzuleiten." + +#: ../../Zotlabs/Module/Admin/Site.php:291 +msgid "Accounts abandoned after x days" +msgstr "Konten gelten nach X Tagen als unbenutzt" + +#: ../../Zotlabs/Module/Admin/Site.php:291 +msgid "" +"Will not waste system resources polling external sites for abandonded " +"accounts. Enter 0 for no time limit." +msgstr "Verschwende keine Systemressourcen auf das Pollen von externen Seiten, wenn das Konto nicht mehr benutzt wird. Trage hier 0 für kein zeitliches Limit." + +#: ../../Zotlabs/Module/Admin/Site.php:292 +msgid "Allowed friend domains" +msgstr "Erlaubte Domains für Kontakte" + +#: ../../Zotlabs/Module/Admin/Site.php:292 +msgid "" +"Comma separated list of domains which are allowed to establish friendships " +"with this site. Wildcards are accepted. Empty to allow any domains" +msgstr "Liste der Domains, die für Freundschaften erlaubt sind, durch Kommas getrennt. Platzhalter werden akzeptiert. Leer lassen, um alle Domains zu erlauben." + +#: ../../Zotlabs/Module/Admin/Site.php:293 +msgid "Verify Email Addresses" +msgstr "E-Mail-Adressen überprüfen" + +#: ../../Zotlabs/Module/Admin/Site.php:293 +msgid "" +"Check to verify email addresses used in account registration (recommended)." +msgstr "Aktivieren, um die Überprüfung von E-Mail-Adressen bei der Registrierung von Benutzerkonten zu aktivieren (empfohlen)." + +#: ../../Zotlabs/Module/Admin/Site.php:294 +msgid "Force publish" +msgstr "Veröffentlichung erzwingen" + +#: ../../Zotlabs/Module/Admin/Site.php:294 +msgid "" +"Check to force all profiles on this site to be listed in the site directory." +msgstr "Die Veröffentlichung aller Profile dieses Servers im Verzeichnis erzwingen." + +#: ../../Zotlabs/Module/Admin/Site.php:295 +msgid "Import Public Streams" +msgstr "Öffentliche Beiträge importieren" + +#: ../../Zotlabs/Module/Admin/Site.php:295 +msgid "" +"Import and allow access to public content pulled from other sites. Warning: " +"this content is unmoderated." +msgstr "Öffentliche Beiträge von anderen Servern importieren und zur Verfügung stellen. Warnung: Diese Inhalte sind nicht moderiert." + +#: ../../Zotlabs/Module/Admin/Site.php:296 +msgid "Login on Homepage" +msgstr "Log-in auf der Startseite" + +#: ../../Zotlabs/Module/Admin/Site.php:296 +msgid "" +"Present a login box to visitors on the home page if no other content has " +"been configured." +msgstr "Zeigt Besuchern der Homepage eine Anmeldemaske, falls keine anderen Inhalte konfiguriert wurden." + +#: ../../Zotlabs/Module/Admin/Site.php:297 +msgid "Enable context help" +msgstr "Kontext-Hilfe aktivieren" + +#: ../../Zotlabs/Module/Admin/Site.php:297 +msgid "" +"Display contextual help for the current page when the help button is " +"pressed." +msgstr "Zeigt Kontext-sensitive Hilfe für die aktuelle Seite an, wenn der Hilfe-Knopf geklickt wird." + +#: ../../Zotlabs/Module/Admin/Site.php:299 +msgid "Directory Server URL" +msgstr "Verzeichnisserver-URL" + +#: ../../Zotlabs/Module/Admin/Site.php:299 +msgid "Default directory server" +msgstr "Standard-Verzeichnisserver" + +#: ../../Zotlabs/Module/Admin/Site.php:301 +msgid "Proxy user" +msgstr "Proxy Benutzer" + +#: ../../Zotlabs/Module/Admin/Site.php:302 +msgid "Proxy URL" +msgstr "Proxy URL" + +#: ../../Zotlabs/Module/Admin/Site.php:303 +msgid "Network timeout" +msgstr "Netzwerk-Timeout" + +#: ../../Zotlabs/Module/Admin/Site.php:303 +msgid "Value is in seconds. Set to 0 for unlimited (not recommended)." +msgstr "Wert in Sekunden. 0 für unbegrenzt (nicht empfohlen)." + +#: ../../Zotlabs/Module/Admin/Site.php:304 +msgid "Delivery interval" +msgstr "Auslieferung Intervall" + +#: ../../Zotlabs/Module/Admin/Site.php:304 +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 "Verzögere im Hintergrund laufende Auslieferungsprozesse um die angegebene Anzahl Sekunden, um die Systemlast zu verringern. Empfehlungen: 4-5 für Shared Hosts, 2-3 für VPS, 0-1 für große dedizierte Server." + +#: ../../Zotlabs/Module/Admin/Site.php:305 +msgid "Deliveries per process" +msgstr "Zustellungen pro Prozess" + +#: ../../Zotlabs/Module/Admin/Site.php:305 +msgid "" +"Number of deliveries to attempt in a single operating system process. Adjust" +" if necessary to tune system performance. Recommend: 1-5." +msgstr "Anzahl der Zustellungen, die innerhalb eines einzelnen Betriebssystemprozesses versucht werden. Anpassen, falls nötig, um die System-Performance zu verbessern. Empfehlung: 1-5." + +#: ../../Zotlabs/Module/Admin/Site.php:306 +msgid "Poll interval" +msgstr "Abfrageintervall" + +#: ../../Zotlabs/Module/Admin/Site.php:306 +msgid "" +"Delay background polling processes by this many seconds to reduce system " +"load. If 0, use delivery interval." +msgstr "Verzögere Hintergrundprozesse um diese Anzahl Sekunden, um die Systemlast zu reduzieren. Bei 0 wird das Auslieferungsintervall verwendet." + +#: ../../Zotlabs/Module/Admin/Site.php:307 +msgid "Maximum Load Average" +msgstr "Maximales Load Average" + +#: ../../Zotlabs/Module/Admin/Site.php:307 +msgid "" +"Maximum system load before delivery and poll processes are deferred - " +"default 50." +msgstr "Maximale Systemlast, bevor Verteil- und Empfangsprozesse verschoben werden – Standard 50" + +#: ../../Zotlabs/Module/Admin/Site.php:308 +msgid "Expiration period in days for imported (grid/network) content" +msgstr "Setze den Zeitraum (in Tagen), ab wann importierte (aus dem Netzwerk) Inhalte ablaufen sollen" + +#: ../../Zotlabs/Module/Admin/Site.php:308 +msgid "0 for no expiration of imported content" +msgstr "0 = keine Löschung importierter Inhalte" + +#: ../../Zotlabs/Module/Pubsites.php:24 ../../include/widgets.php:1454 +msgid "Public Hubs" +msgstr "Öffentliche Hubs" + +#: ../../Zotlabs/Module/Pubsites.php:27 +msgid "" +"The listed hubs allow public registration for the $Projectname network. All " +"hubs in the network are interlinked so membership on any of them conveys " +"membership in the network as a whole. Some hubs may require subscription or " +"provide tiered service plans. The hub itself may provide " +"additional details." +msgstr "Die hier aufgeführten Hubs sind öffentlich und erlauben die Registrierung im $Projectname Netzwerk. Alle Hubs dieses Netzwerks sind miteinander verbunden, so dass die Mitgliedschaft auf einem Hub die Verbindung zu beliebigen Seiten und Kanälen auf anderen Hubs ermöglicht. Es könnte sein, dass einige dieser Hubs kostenpflichtig sind oder abgestufte, je nach Umfang kostenpflichtige Mitgliedschaften anbieten. Auf den Seiten der einzelnen Hubs könnten jeweils nähere Informationen dazu stehen." + +#: ../../Zotlabs/Module/Pubsites.php:33 +msgid "Hub URL" +msgstr "Hub-URL" + +#: ../../Zotlabs/Module/Pubsites.php:33 +msgid "Access Type" +msgstr "Zugriffstyp" + +#: ../../Zotlabs/Module/Pubsites.php:33 +msgid "Registration Policy" +msgstr "Registrierungsrichtlinien" + +#: ../../Zotlabs/Module/Pubsites.php:33 +msgid "Stats" +msgstr "Statistiken" + +#: ../../Zotlabs/Module/Pubsites.php:33 +msgid "Software" +msgstr "Software" + +#: ../../Zotlabs/Module/Pubsites.php:35 ../../Zotlabs/Module/Ratings.php:97 +#: ../../include/conversation.php:974 msgid "Ratings" msgstr "Bewertungen" -#: ../../Zotlabs/Module/Ratings.php:98 -msgid "Rating: " -msgstr "Bewertung: " +#: ../../Zotlabs/Module/Pubsites.php:48 +msgid "Rate" +msgstr "Bewerten" -#: ../../Zotlabs/Module/Ratings.php:99 -msgid "Website: " -msgstr "Webseite: " +#: ../../Zotlabs/Module/Pubsites.php:59 ../../Zotlabs/Module/Blocks.php:166 +#: ../../Zotlabs/Module/Layouts.php:197 ../../Zotlabs/Module/Webpages.php:246 +#: ../../Zotlabs/Module/Wiki.php:146 ../../Zotlabs/Module/Events.php:685 +#: ../../include/page_widgets.php:42 ../../include/widgets.php:967 +msgid "View" +msgstr "Ansicht" -#: ../../Zotlabs/Module/Ratings.php:101 -msgid "Description: " -msgstr "Beschreibung: " - -#: ../../Zotlabs/Module/Fbrowser.php:29 ../../Zotlabs/Lib/Apps.php:222 -#: ../../include/nav.php:95 ../../include/conversation.php:1671 -msgid "Photos" -msgstr "Fotos" - -#: ../../Zotlabs/Module/Page.php:40 ../../Zotlabs/Module/Block.php:31 -msgid "Invalid item." -msgstr "Ungültiges Element." - -#: ../../Zotlabs/Module/Page.php:56 ../../Zotlabs/Module/Block.php:43 -#: ../../Zotlabs/Module/Cal.php:62 ../../Zotlabs/Module/Wall_upload.php:33 -msgid "Channel not found." -msgstr "Kanal nicht gefunden." - -#: ../../Zotlabs/Module/Page.php:131 -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." - -#: ../../Zotlabs/Module/Filer.php:52 -msgid "Save to Folder:" -msgstr "Speichern in Ordner:" - -#: ../../Zotlabs/Module/Filer.php:52 -msgid "- select -" -msgstr "– auswählen –" - -#: ../../Zotlabs/Module/Connections.php:56 -#: ../../Zotlabs/Module/Connections.php:161 -#: ../../Zotlabs/Module/Connections.php:242 -msgid "Blocked" -msgstr "Blockiert" - -#: ../../Zotlabs/Module/Connections.php:61 -#: ../../Zotlabs/Module/Connections.php:168 -#: ../../Zotlabs/Module/Connections.php:241 -msgid "Ignored" -msgstr "Ignoriert" - -#: ../../Zotlabs/Module/Connections.php:66 -#: ../../Zotlabs/Module/Connections.php:182 -#: ../../Zotlabs/Module/Connections.php:240 -msgid "Hidden" -msgstr "Versteckt" - -#: ../../Zotlabs/Module/Connections.php:71 -#: ../../Zotlabs/Module/Connections.php:175 -#: ../../Zotlabs/Module/Connections.php:239 -msgid "Archived" -msgstr "Archiviert" - -#: ../../Zotlabs/Module/Connections.php:76 -#: ../../Zotlabs/Module/Connections.php:86 ../../Zotlabs/Module/Menu.php:116 -#: ../../include/conversation.php:1572 -msgid "New" -msgstr "Neu" - -#: ../../Zotlabs/Module/Connections.php:92 -#: ../../Zotlabs/Module/Connections.php:107 -#: ../../Zotlabs/Module/Connedit.php:629 ../../include/widgets.php:533 -msgid "All" -msgstr "Alle" - -#: ../../Zotlabs/Module/Connections.php:138 -msgid "New Connections" -msgstr "Neue Verbindungen" - -#: ../../Zotlabs/Module/Connections.php:141 -msgid "Show pending (new) connections" -msgstr "Ausstehende (neue) Verbindungsanfragen anzeigen" - -#: ../../Zotlabs/Module/Connections.php:145 -#: ../../Zotlabs/Module/Profperm.php:144 -msgid "All Connections" -msgstr "Alle Verbindungen" - -#: ../../Zotlabs/Module/Connections.php:148 -msgid "Show all connections" -msgstr "Alle Verbindungen anzeigen" - -#: ../../Zotlabs/Module/Connections.php:164 -msgid "Only show blocked connections" -msgstr "Nur blockierte Verbindungen anzeigen" - -#: ../../Zotlabs/Module/Connections.php:171 -msgid "Only show ignored connections" -msgstr "Nur ignorierte Verbindungen anzeigen" - -#: ../../Zotlabs/Module/Connections.php:178 -msgid "Only show archived connections" -msgstr "Nur archivierte Verbindungen anzeigen" - -#: ../../Zotlabs/Module/Connections.php:185 -msgid "Only show hidden connections" -msgstr "Nur versteckte Verbindungen anzeigen" - -#: ../../Zotlabs/Module/Connections.php:238 -msgid "Pending approval" -msgstr "Wartet auf Genehmigung" - -#: ../../Zotlabs/Module/Connections.php:254 -#, php-format -msgid "%1$s [%2$s]" -msgstr "%1$s [%2$s]" - -#: ../../Zotlabs/Module/Connections.php:255 -msgid "Edit connection" -msgstr "Verbindung bearbeiten" - -#: ../../Zotlabs/Module/Connections.php:256 -msgid "Delete connection" -msgstr "Verbindung löschen" - -#: ../../Zotlabs/Module/Connections.php:265 -msgid "Channel address" -msgstr "Kanaladresse" - -#: ../../Zotlabs/Module/Connections.php:267 -msgid "Network" -msgstr "Netzwerk" - -#: ../../Zotlabs/Module/Connections.php:270 -msgid "Status" -msgstr "Status" - -#: ../../Zotlabs/Module/Connections.php:272 -msgid "Connected" -msgstr "Verbunden" - -#: ../../Zotlabs/Module/Connections.php:274 -msgid "Approve connection" -msgstr "Verbindung genehmigen" - -#: ../../Zotlabs/Module/Connections.php:276 -msgid "Ignore connection" -msgstr "Verbindung ignorieren" - -#: ../../Zotlabs/Module/Connections.php:277 -#: ../../Zotlabs/Module/Notifications.php:55 -#: ../../Zotlabs/Module/Connedit.php:583 -msgid "Ignore" -msgstr "Ignorieren" - -#: ../../Zotlabs/Module/Connections.php:278 -msgid "Recent activity" -msgstr "Kürzliche Aktivitäten" - -#: ../../Zotlabs/Module/Connections.php:302 ../../Zotlabs/Lib/Apps.php:209 -#: ../../include/nav.php:191 ../../include/text.php:901 -msgid "Connections" -msgstr "Verbindungen" - -#: ../../Zotlabs/Module/Connections.php:306 ../../Zotlabs/Module/Search.php:44 -#: ../../Zotlabs/Lib/Apps.php:230 ../../include/nav.php:170 -#: ../../include/acl_selectors.php:174 ../../include/text.php:971 -#: ../../include/text.php:983 ../../include/widgets.php:315 -msgid "Search" -msgstr "Suche" - -#: ../../Zotlabs/Module/Connections.php:307 -msgid "Search your connections" -msgstr "Verbindungen durchsuchen" - -#: ../../Zotlabs/Module/Connections.php:308 -msgid "Connections search" -msgstr "Verbindung suchen" - -#: ../../Zotlabs/Module/Cover_photo.php:58 -#: ../../Zotlabs/Module/Profile_photo.php:61 -msgid "Image uploaded but image cropping failed." -msgstr "Bild hochgeladen, aber das Zurechtschneiden schlug fehl." - -#: ../../Zotlabs/Module/Cover_photo.php:134 -#: ../../Zotlabs/Module/Cover_photo.php:181 -msgid "Cover Photos" -msgstr "Cover Foto" - -#: ../../Zotlabs/Module/Cover_photo.php:154 -#: ../../Zotlabs/Module/Profile_photo.php:135 -msgid "Image resize failed." -msgstr "Bild-Anpassung fehlgeschlagen." - -#: ../../Zotlabs/Module/Cover_photo.php:168 -#: ../../Zotlabs/Module/Profile_photo.php:196 ../../include/photos.php:148 -msgid "Unable to process image" -msgstr "Kann Bild nicht verarbeiten" - -#: ../../Zotlabs/Module/Cover_photo.php:192 -#: ../../Zotlabs/Module/Profile_photo.php:223 -msgid "Image upload failed." -msgstr "Hochladen des Bilds fehlgeschlagen." - -#: ../../Zotlabs/Module/Cover_photo.php:210 -#: ../../Zotlabs/Module/Profile_photo.php:242 -msgid "Unable to process image." -msgstr "Kann Bild nicht verarbeiten." - -#: ../../Zotlabs/Module/Cover_photo.php:233 ../../include/items.php:4331 -msgid "female" -msgstr "weiblich" - -#: ../../Zotlabs/Module/Cover_photo.php:234 ../../include/items.php:4332 -#, php-format -msgid "%1$s updated her %2$s" -msgstr "%1$s hat ihr %2$s aktualisiert" - -#: ../../Zotlabs/Module/Cover_photo.php:235 ../../include/items.php:4333 -msgid "male" -msgstr "männlich" - -#: ../../Zotlabs/Module/Cover_photo.php:236 ../../include/items.php:4334 -#, php-format -msgid "%1$s updated his %2$s" -msgstr "%1$s hat sein %2$s aktualisiert" - -#: ../../Zotlabs/Module/Cover_photo.php:238 ../../include/items.php:4336 -#, php-format -msgid "%1$s updated their %2$s" -msgstr "%1$s hat sein/ihr %2$s aktualisiert" - -#: ../../Zotlabs/Module/Cover_photo.php:240 ../../include/channel.php:1731 -msgid "cover photo" -msgstr "Cover Foto" - -#: ../../Zotlabs/Module/Cover_photo.php:303 -#: ../../Zotlabs/Module/Cover_photo.php:318 -#: ../../Zotlabs/Module/Profile_photo.php:300 -#: ../../Zotlabs/Module/Profile_photo.php:341 -msgid "Photo not available." -msgstr "Foto nicht verfügbar." - -#: ../../Zotlabs/Module/Cover_photo.php:354 -#: ../../Zotlabs/Module/Profile_photo.php:387 -msgid "Upload File:" -msgstr "Datei hochladen:" - -#: ../../Zotlabs/Module/Cover_photo.php:355 -#: ../../Zotlabs/Module/Profile_photo.php:388 -msgid "Select a profile:" -msgstr "Wähle ein Profil:" - -#: ../../Zotlabs/Module/Cover_photo.php:356 -msgid "Upload Cover Photo" -msgstr "Cover Foto hochladen" - -#: ../../Zotlabs/Module/Cover_photo.php:361 -#: ../../Zotlabs/Module/Profile_photo.php:396 -#: ../../Zotlabs/Module/Settings/Channel.php:399 -msgid "or" -msgstr "oder" - -#: ../../Zotlabs/Module/Cover_photo.php:361 -#: ../../Zotlabs/Module/Profile_photo.php:396 -msgid "skip this step" -msgstr "diesen Schritt überspringen" - -#: ../../Zotlabs/Module/Cover_photo.php:361 -#: ../../Zotlabs/Module/Profile_photo.php:396 -msgid "select a photo from your photo albums" -msgstr "ein Foto aus meinen Fotoalben" - -#: ../../Zotlabs/Module/Cover_photo.php:377 -#: ../../Zotlabs/Module/Profile_photo.php:415 -msgid "Crop Image" -msgstr "Bild zuschneiden" - -#: ../../Zotlabs/Module/Cover_photo.php:378 -#: ../../Zotlabs/Module/Profile_photo.php:416 -msgid "Please adjust the image cropping for optimum viewing." -msgstr "Bitte schneide das Bild für eine optimale Anzeige passend zu." - -#: ../../Zotlabs/Module/Cover_photo.php:380 -#: ../../Zotlabs/Module/Profile_photo.php:418 -msgid "Done Editing" -msgstr "Bearbeitung fertigstellen" - -#: ../../Zotlabs/Module/Editblock.php:79 ../../Zotlabs/Module/Editblock.php:95 #: ../../Zotlabs/Module/Editlayout.php:79 #: ../../Zotlabs/Module/Editwebpage.php:80 +#: ../../Zotlabs/Module/Editblock.php:79 ../../Zotlabs/Module/Editblock.php:95 #: ../../Zotlabs/Module/Editpost.php:24 msgid "Item not found" msgstr "Element nicht gefunden" -#: ../../Zotlabs/Module/Editblock.php:108 ../../Zotlabs/Module/Blocks.php:97 -#: ../../Zotlabs/Module/Blocks.php:155 -msgid "Block Name" -msgstr "Block-Name" - -#: ../../Zotlabs/Module/Editblock.php:111 -#: ../../Zotlabs/Module/Editwebpage.php:146 ../../Zotlabs/Module/Mail.php:244 -#: ../../Zotlabs/Module/Mail.php:369 ../../Zotlabs/Module/Chat.php:207 -#: ../../include/conversation.php:1148 -msgid "Insert web link" -msgstr "Link einfügen" - -#: ../../Zotlabs/Module/Editblock.php:124 ../../include/conversation.php:1259 -msgid "Title (optional)" -msgstr "Titel (optional)" - -#: ../../Zotlabs/Module/Editblock.php:133 -msgid "Edit Block" -msgstr "Block bearbeiten" - #: ../../Zotlabs/Module/Editlayout.php:127 #: ../../Zotlabs/Module/Layouts.php:128 ../../Zotlabs/Module/Layouts.php:188 msgid "Layout Name" @@ -2385,10 +2875,67 @@ msgstr "Layout bearbeiten" msgid "Page link" msgstr "Seiten-Link" +#: ../../Zotlabs/Module/Editwebpage.php:146 ../../Zotlabs/Module/Mail.php:258 +#: ../../Zotlabs/Module/Mail.php:383 ../../Zotlabs/Module/Editblock.php:111 +#: ../../Zotlabs/Module/Chat.php:207 ../../include/conversation.php:1165 +msgid "Insert web link" +msgstr "Link einfügen" + #: ../../Zotlabs/Module/Editwebpage.php:169 msgid "Edit Webpage" msgstr "Webseite bearbeiten" +#: ../../Zotlabs/Module/Fbrowser.php:29 ../../Zotlabs/Lib/Apps.php:222 +#: ../../include/nav.php:95 ../../include/conversation.php:1692 +msgid "Photos" +msgstr "Fotos" + +#: ../../Zotlabs/Module/Channel.php:32 ../../Zotlabs/Module/Wiki.php:20 +#: ../../Zotlabs/Module/Chat.php:25 +#: ../../extend/addon/addon/chess/chess.php:400 +msgid "You must be logged in to see this page." +msgstr "Du musst angemeldet sein, um diese Seite betrachten zu können." + +#: ../../Zotlabs/Module/Channel.php:44 +msgid "Posts and comments" +msgstr "Beiträge und Kommentare" + +#: ../../Zotlabs/Module/Channel.php:45 +msgid "Only posts" +msgstr "Nur Beiträge" + +#: ../../Zotlabs/Module/Channel.php:104 +msgid "Insufficient permissions. Request redirected to profile page." +msgstr "Unzureichende Zugriffsrechte. Die Anfrage wurde zur Profil-Seite umgeleitet." + +#: ../../Zotlabs/Module/Network.php:96 +msgid "No such group" +msgstr "Gruppe nicht gefunden" + +#: ../../Zotlabs/Module/Network.php:136 +msgid "No such channel" +msgstr "Kanal nicht gefunden" + +#: ../../Zotlabs/Module/Network.php:141 +msgid "forum" +msgstr "Forum" + +#: ../../Zotlabs/Module/Network.php:153 +msgid "Search Results For:" +msgstr "Suchergebnisse für:" + +#: ../../Zotlabs/Module/Network.php:221 +msgid "Privacy group is empty" +msgstr "Gruppe ist leer" + +#: ../../Zotlabs/Module/Network.php:230 +msgid "Privacy group: " +msgstr "Gruppe:" + +#: ../../Zotlabs/Module/Network.php:256 +msgid "Invalid connection." +msgstr "Ungültige Verbindung." + #: ../../Zotlabs/Module/Menu.php:49 msgid "Unable to update menu." msgstr "Kann Menü nicht aktualisieren." @@ -2425,22 +2972,18 @@ msgstr "Im Menü können gespeicherte Lesezeichen abgelegt werden" msgid "Submit and proceed" msgstr "Absenden und fortfahren" -#: ../../Zotlabs/Module/Menu.php:107 ../../include/text.php:2309 +#: ../../Zotlabs/Module/Menu.php:107 ../../include/text.php:2271 msgid "Menus" msgstr "Menüs" -#: ../../Zotlabs/Module/Menu.php:113 ../../Zotlabs/Module/Locs.php:120 -msgid "Drop" -msgstr "Löschen" - -#: ../../Zotlabs/Module/Menu.php:114 ../../Zotlabs/Module/Webpages.php:251 -#: ../../Zotlabs/Module/Blocks.php:157 ../../Zotlabs/Module/Layouts.php:190 +#: ../../Zotlabs/Module/Menu.php:114 ../../Zotlabs/Module/Blocks.php:157 +#: ../../Zotlabs/Module/Layouts.php:190 ../../Zotlabs/Module/Webpages.php:251 #: ../../include/page_widgets.php:47 msgid "Created" msgstr "Erstellt" -#: ../../Zotlabs/Module/Menu.php:115 ../../Zotlabs/Module/Webpages.php:252 -#: ../../Zotlabs/Module/Blocks.php:158 ../../Zotlabs/Module/Layouts.php:191 +#: ../../Zotlabs/Module/Menu.php:115 ../../Zotlabs/Module/Blocks.php:158 +#: ../../Zotlabs/Module/Layouts.php:191 ../../Zotlabs/Module/Webpages.php:252 #: ../../include/page_widgets.php:48 msgid "Edited" msgstr "Geändert" @@ -2527,9 +3070,9 @@ msgid "Name of app" msgstr "Name der App" #: ../../Zotlabs/Module/Appman.php:115 ../../Zotlabs/Module/Appman.php:116 -#: ../../Zotlabs/Module/Profiles.php:709 ../../Zotlabs/Module/Profiles.php:713 -#: ../../Zotlabs/Module/Events.php:452 ../../Zotlabs/Module/Events.php:457 -#: ../../include/datetime.php:245 +#: ../../Zotlabs/Module/Profiles.php:703 ../../Zotlabs/Module/Profiles.php:707 +#: ../../Zotlabs/Module/Events.php:453 ../../Zotlabs/Module/Events.php:458 +#: ../../include/datetime.php:259 msgid "Required" msgstr "Benötigt" @@ -2537,8 +3080,10 @@ msgstr "Benötigt" msgid "Location (URL) of app" msgstr "Ort (URL) der App" -#: ../../Zotlabs/Module/Appman.php:117 ../../Zotlabs/Module/Events.php:465 -#: ../../Zotlabs/Module/Rbmark.php:101 +#: ../../Zotlabs/Module/Appman.php:117 ../../Zotlabs/Module/Rbmark.php:101 +#: ../../Zotlabs/Module/Events.php:466 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:838 +#: ../../extend/addon/addon/rendezvous/rendezvous.php:133 msgid "Description" msgstr "Beschreibung" @@ -2566,121 +3111,17 @@ msgstr "Preis der App" msgid "Location (URL) to purchase app" msgstr "Ort (URL), um die App zu kaufen" -#: ../../Zotlabs/Module/Connedit.php:602 -msgid "Unhide" -msgstr "Wieder sichtbar machen" +#: ../../Zotlabs/Module/Rpost.php:138 ../../Zotlabs/Module/Editpost.php:107 +msgid "Edit post" +msgstr "Bearbeite Beitrag" -#: ../../Zotlabs/Module/Connedit.php:602 -msgid "Hide" -msgstr "Verstecken" +#: ../../Zotlabs/Module/Help.php:23 +msgid "Documentation Search" +msgstr "Suche in der Dokumentation" -#: ../../Zotlabs/Module/Connedit.php:605 -msgid "Hide or Unhide this connection from your other connections" -msgstr "Diese Verbindung vor anderen Verbindungen verstecken/zeigen" - -#: ../../Zotlabs/Module/Mail.php:70 -msgid "Selected channel has private message restrictions. Send failed." -msgstr "Der ausgewählte Kanal hat Einschränkungen bzgl. privater Nachrichten. Senden fehlgeschlagen." - -#: ../../Zotlabs/Module/Mail.php:135 -msgid "Messages" -msgstr "Nachrichten" - -#: ../../Zotlabs/Module/Mail.php:170 -msgid "Message recalled." -msgstr "Nachricht widerrufen." - -#: ../../Zotlabs/Module/Mail.php:183 -msgid "Conversation removed." -msgstr "Unterhaltung gelöscht." - -#: ../../Zotlabs/Module/Mail.php:197 ../../Zotlabs/Module/Mail.php:306 -#: ../../Zotlabs/Module/Chat.php:205 ../../include/conversation.php:1183 -msgid "Please enter a link URL:" -msgstr "Gib eine URL ein:" - -#: ../../Zotlabs/Module/Mail.php:198 ../../Zotlabs/Module/Mail.php:307 -msgid "Expires YYYY-MM-DD HH:MM" -msgstr "Verfällt YYYY-MM-DD HH;MM" - -#: ../../Zotlabs/Module/Mail.php:226 -msgid "Requested channel is not in this network" -msgstr "Angeforderter Kanal ist nicht in diesem Netzwerk." - -#: ../../Zotlabs/Module/Mail.php:234 -msgid "Send Private Message" -msgstr "Private Nachricht senden" - -#: ../../Zotlabs/Module/Mail.php:235 ../../Zotlabs/Module/Mail.php:360 -msgid "To:" -msgstr "An:" - -#: ../../Zotlabs/Module/Mail.php:238 ../../Zotlabs/Module/Mail.php:362 -msgid "Subject:" -msgstr "Betreff:" - -#: ../../Zotlabs/Module/Mail.php:241 ../../Zotlabs/Module/Invite.php:135 -msgid "Your message:" -msgstr "Deine Nachricht:" - -#: ../../Zotlabs/Module/Mail.php:243 ../../Zotlabs/Module/Mail.php:368 -#: ../../include/conversation.php:1243 -msgid "Attach file" -msgstr "Datei anhängen" - -#: ../../Zotlabs/Module/Mail.php:245 -msgid "Send" -msgstr "Absenden" - -#: ../../Zotlabs/Module/Mail.php:248 ../../Zotlabs/Module/Mail.php:373 -#: ../../include/conversation.php:1288 -msgid "Set expiration date" -msgstr "Verfallsdatum" - -#: ../../Zotlabs/Module/Mail.php:250 ../../Zotlabs/Module/Mail.php:375 -#: ../../Zotlabs/Module/Chat.php:206 ../../Zotlabs/Lib/ThreadItem.php:724 -#: ../../include/conversation.php:1293 -msgid "Encrypt text" -msgstr "Text verschlüsseln" - -#: ../../Zotlabs/Module/Mail.php:332 -msgid "Delete message" -msgstr "Nachricht löschen" - -#: ../../Zotlabs/Module/Mail.php:333 -msgid "Delivery report" -msgstr "Zustellungsbericht" - -#: ../../Zotlabs/Module/Mail.php:334 -msgid "Recall message" -msgstr "Nachricht widerrufen" - -#: ../../Zotlabs/Module/Mail.php:336 -msgid "Message has been recalled." -msgstr "Die Nachricht wurde widerrufen." - -#: ../../Zotlabs/Module/Mail.php:353 -msgid "Delete Conversation" -msgstr "Unterhaltung löschen" - -#: ../../Zotlabs/Module/Mail.php:355 -msgid "" -"The permissions indicated on this page will be applied to all new " -"connections." -msgstr "Die auf dieser Seite angegebenen Berechtigungen werden auf alle neuen Verbindungen angewendet." - -#: ../../Zotlabs/Module/Mail.php:359 -msgid "Send Reply" -msgstr "Antwort senden" - -#: ../../Zotlabs/Module/Mail.php:364 -#, php-format -msgid "Your message for %s (%s):" -msgstr "Deine Nachricht für %s (%s):" - -#: ../../Zotlabs/Module/Attach.php:13 -msgid "Item not available." -msgstr "Element nicht verfügbar." +#: ../../Zotlabs/Module/Help.php:82 +msgid "$Projectname Documentation" +msgstr "$Projectname-Dokumentation" #: ../../Zotlabs/Module/Ffsapi.php:12 msgid "Share content from Firefox to $Projectname" @@ -2690,16 +3131,12 @@ msgstr "Inhalte von Firefox nach $Projectname teilen" msgid "Activate the Firefox $Projectname provider" msgstr "Aktiviert den $Projectname-Provider für firefox" -#: ../../Zotlabs/Module/Help.php:27 -msgid "Documentation Search" -msgstr "Suche in der Dokumentation" - -#: ../../Zotlabs/Module/Help.php:57 -msgid "$Projectname Documentation" -msgstr "$Projectname-Dokumentation" +#: ../../Zotlabs/Module/Apps.php:46 ../../include/nav.php:166 +#: ../../include/widgets.php:102 +msgid "Apps" +msgstr "Apps" #: ../../Zotlabs/Module/Home.php:74 ../../Zotlabs/Module/Home.php:82 -#: ../../Zotlabs/Module/Siteinfo.php:48 msgid "$Projectname" msgstr "$Projectname" @@ -2708,14 +3145,6 @@ msgstr "$Projectname" msgid "Welcome to %s" msgstr "Willkommen auf %s" -#: ../../Zotlabs/Module/Lockview.php:75 -msgid "Remote privacy information not available." -msgstr "Privatsphäre-Einstellungen anderer Nutzer sind nicht verfügbar." - -#: ../../Zotlabs/Module/Lockview.php:96 -msgid "Visible to:" -msgstr "Sichtbar für:" - #: ../../Zotlabs/Module/Filestorage.php:87 msgid "Permission Denied." msgstr "Zugriff verweigert." @@ -2728,10 +3157,10 @@ msgstr "Datei nicht gefunden." msgid "Edit file permissions" msgstr "Dateiberechtigungen bearbeiten" -#: ../../Zotlabs/Module/Filestorage.php:152 ../../Zotlabs/Module/Thing.php:313 -#: ../../Zotlabs/Module/Thing.php:363 ../../Zotlabs/Module/Photos.php:658 -#: ../../Zotlabs/Module/Photos.php:1047 ../../Zotlabs/Module/Chat.php:234 -#: ../../include/acl_selectors.php:179 +#: ../../Zotlabs/Module/Filestorage.php:152 +#: ../../Zotlabs/Module/Photos.php:658 ../../Zotlabs/Module/Photos.php:1047 +#: ../../Zotlabs/Module/Thing.php:313 ../../Zotlabs/Module/Thing.php:363 +#: ../../Zotlabs/Module/Chat.php:234 ../../include/acl_selectors.php:208 msgid "Permissions" msgstr "Berechtigungen" @@ -2767,52 +3196,416 @@ msgstr "URL zu dieser Datei anzeigen" msgid "Notify your contacts about this file" msgstr "Meine Kontakte über diese Datei benachrichtigen" -#: ../../Zotlabs/Module/Magic.php:71 -msgid "Hub not found." -msgstr "Server nicht gefunden." +#: ../../Zotlabs/Module/Directory.php:64 ../../Zotlabs/Module/Display.php:17 +#: ../../Zotlabs/Module/Ratings.php:83 ../../Zotlabs/Module/Photos.php:509 +#: ../../Zotlabs/Module/Search.php:17 +#: ../../Zotlabs/Module/Viewconnections.php:23 +#: ../../extend/addon/addon/friendica/dfrn_request.php:794 +msgid "Public access denied." +msgstr "Öffentlichen Zugriff verweigert." -#: ../../Zotlabs/Module/Connect.php:61 ../../Zotlabs/Module/Connect.php:109 -msgid "Continue" -msgstr "Fortfahren" +#: ../../Zotlabs/Module/Directory.php:245 +#, php-format +msgid "%d rating" +msgid_plural "%d ratings" +msgstr[0] "%d Bewertung" +msgstr[1] "%d Bewertungen" -#: ../../Zotlabs/Module/Connect.php:90 -msgid "Premium Channel Setup" -msgstr "Premium-Kanal-Einrichtung" +#: ../../Zotlabs/Module/Directory.php:256 +msgid "Gender: " +msgstr "Geschlecht:" -#: ../../Zotlabs/Module/Connect.php:92 -msgid "Enable premium channel connection restrictions" -msgstr "Einschränkungen für einen Premium-Kanal aktivieren" +#: ../../Zotlabs/Module/Directory.php:258 +msgid "Status: " +msgstr "Status:" -#: ../../Zotlabs/Module/Connect.php:93 +#: ../../Zotlabs/Module/Directory.php:260 +msgid "Homepage: " +msgstr "Webseite:" + +#: ../../Zotlabs/Module/Directory.php:309 ../../include/channel.php:1215 +msgid "Age:" +msgstr "Alter:" + +#: ../../Zotlabs/Module/Directory.php:314 ../../include/channel.php:1051 +#: ../../include/event.php:52 ../../include/event.php:84 +#: ../../include/bb2diaspora.php:520 +msgid "Location:" +msgstr "Ort:" + +#: ../../Zotlabs/Module/Directory.php:320 +msgid "Description:" +msgstr "Beschreibung:" + +#: ../../Zotlabs/Module/Directory.php:325 ../../include/channel.php:1231 +msgid "Hometown:" +msgstr "Heimatstadt:" + +#: ../../Zotlabs/Module/Directory.php:327 ../../include/channel.php:1239 +msgid "About:" +msgstr "Über:" + +#: ../../Zotlabs/Module/Directory.php:329 +msgid "Public Forum:" +msgstr "Öffentliches Forum:" + +#: ../../Zotlabs/Module/Directory.php:332 +msgid "Keywords: " +msgstr "Schlüsselwörter:" + +#: ../../Zotlabs/Module/Directory.php:335 +msgid "Don't suggest" +msgstr "Nicht vorschlagen" + +#: ../../Zotlabs/Module/Directory.php:337 +msgid "Common connections:" +msgstr "Gemeinsame Verbindungen:" + +#: ../../Zotlabs/Module/Directory.php:386 +msgid "Global Directory" +msgstr "Globales Verzeichnis" + +#: ../../Zotlabs/Module/Directory.php:386 +msgid "Local Directory" +msgstr "Lokales Verzeichnis" + +#: ../../Zotlabs/Module/Directory.php:392 +msgid "Finding:" +msgstr "Ergebnisse:" + +#: ../../Zotlabs/Module/Directory.php:395 ../../Zotlabs/Module/Suggest.php:64 +#: ../../include/contact_widgets.php:24 +msgid "Channel Suggestions" +msgstr "Kanal-Vorschläge" + +#: ../../Zotlabs/Module/Directory.php:397 +msgid "next page" +msgstr "nächste Seite" + +#: ../../Zotlabs/Module/Directory.php:397 +msgid "previous page" +msgstr "vorherige Seite" + +#: ../../Zotlabs/Module/Directory.php:398 +msgid "Sort options" +msgstr "Sortieroptionen" + +#: ../../Zotlabs/Module/Directory.php:399 +msgid "Alphabetic" +msgstr "alphabetisch" + +#: ../../Zotlabs/Module/Directory.php:400 +msgid "Reverse Alphabetic" +msgstr "Entgegengesetzt alphabetisch" + +#: ../../Zotlabs/Module/Directory.php:401 +msgid "Newest to Oldest" +msgstr "Neueste zuerst" + +#: ../../Zotlabs/Module/Directory.php:402 +msgid "Oldest to Newest" +msgstr "Älteste zuerst" + +#: ../../Zotlabs/Module/Directory.php:419 +msgid "No entries (some entries may be hidden)." +msgstr "Keine Einträge gefunden (einige könnten versteckt sein)." + +#: ../../Zotlabs/Module/Item.php:184 +msgid "Unable to locate original post." +msgstr "Originalbeitrag nicht gefunden." + +#: ../../Zotlabs/Module/Item.php:447 +msgid "Empty post discarded." +msgstr "Leeren Beitrag verworfen." + +#: ../../Zotlabs/Module/Item.php:489 +msgid "Executable content type not permitted to this channel." +msgstr "Ausführbarer Content-Typ ist für diesen Kanal nicht freigegeben." + +#: ../../Zotlabs/Module/Item.php:871 +msgid "Duplicate post suppressed." +msgstr "Doppelter Beitrag unterdrückt." + +#: ../../Zotlabs/Module/Item.php:1013 +msgid "System error. Post not saved." +msgstr "Systemfehler. Beitrag nicht gespeichert." + +#: ../../Zotlabs/Module/Item.php:1137 +msgid "Unable to obtain post information from database." +msgstr "Beitragsinformationen können nicht aus der Datenbank abgerufen werden." + +#: ../../Zotlabs/Module/Item.php:1144 +#, php-format +msgid "You have reached your limit of %1$.0f top level posts." +msgstr "Du hast die maximale Anzahl von %1$.0f Beiträgen erreicht." + +#: ../../Zotlabs/Module/Item.php:1151 +#, php-format +msgid "You have reached your limit of %1$.0f webpages." +msgstr "Du hast die maximale Anzahl von %1$.0f Webseiten erreicht." + +#: ../../Zotlabs/Module/Chanview.php:134 +msgid "toggle full screen mode" +msgstr "auf Vollbildmodus umschalten" + +#: ../../Zotlabs/Module/Follow.php:31 +msgid "Channel added." +msgstr "Kanal hinzugefügt." + +#: ../../Zotlabs/Module/Mail.php:38 +msgid "Unable to lookup recipient." +msgstr "Konnte den Empfänger nicht finden." + +#: ../../Zotlabs/Module/Mail.php:45 +msgid "Unable to communicate with requested channel." +msgstr "Die Kommunikation mit dem ausgewählten Kanal ist fehlgeschlagen." + +#: ../../Zotlabs/Module/Mail.php:52 +msgid "Cannot verify requested channel." +msgstr "Verifizierung des angeforderten Kanals fehlgeschlagen." + +#: ../../Zotlabs/Module/Mail.php:70 +msgid "Selected channel has private message restrictions. Send failed." +msgstr "Der ausgewählte Kanal hat Einschränkungen bzgl. privater Nachrichten. Senden fehlgeschlagen." + +#: ../../Zotlabs/Module/Mail.php:149 +msgid "Messages" +msgstr "Nachrichten" + +#: ../../Zotlabs/Module/Mail.php:184 +msgid "Message recalled." +msgstr "Nachricht widerrufen." + +#: ../../Zotlabs/Module/Mail.php:197 +msgid "Conversation removed." +msgstr "Unterhaltung gelöscht." + +#: ../../Zotlabs/Module/Mail.php:211 ../../Zotlabs/Module/Mail.php:320 +#: ../../Zotlabs/Module/Chat.php:205 ../../include/conversation.php:1200 +msgid "Please enter a link URL:" +msgstr "Gib eine URL ein:" + +#: ../../Zotlabs/Module/Mail.php:212 ../../Zotlabs/Module/Mail.php:321 +msgid "Expires YYYY-MM-DD HH:MM" +msgstr "Verfällt YYYY-MM-DD HH;MM" + +#: ../../Zotlabs/Module/Mail.php:240 +msgid "Requested channel is not in this network" +msgstr "Angeforderter Kanal ist nicht in diesem Netzwerk." + +#: ../../Zotlabs/Module/Mail.php:248 +msgid "Send Private Message" +msgstr "Private Nachricht senden" + +#: ../../Zotlabs/Module/Mail.php:249 ../../Zotlabs/Module/Mail.php:374 +msgid "To:" +msgstr "An:" + +#: ../../Zotlabs/Module/Mail.php:252 ../../Zotlabs/Module/Mail.php:376 +msgid "Subject:" +msgstr "Betreff:" + +#: ../../Zotlabs/Module/Mail.php:255 ../../Zotlabs/Module/Invite.php:138 +msgid "Your message:" +msgstr "Deine Nachricht:" + +#: ../../Zotlabs/Module/Mail.php:257 ../../Zotlabs/Module/Mail.php:382 +#: ../../include/conversation.php:1260 +msgid "Attach file" +msgstr "Datei anhängen" + +#: ../../Zotlabs/Module/Mail.php:259 +msgid "Send" +msgstr "Absenden" + +#: ../../Zotlabs/Module/Mail.php:262 ../../Zotlabs/Module/Mail.php:387 +#: ../../include/conversation.php:1305 +msgid "Set expiration date" +msgstr "Verfallsdatum" + +#: ../../Zotlabs/Module/Mail.php:264 ../../Zotlabs/Module/Mail.php:389 +#: ../../Zotlabs/Module/Chat.php:206 ../../Zotlabs/Lib/ThreadItem.php:741 +#: ../../include/conversation.php:1310 +msgid "Encrypt text" +msgstr "Text verschlüsseln" + +#: ../../Zotlabs/Module/Mail.php:346 +msgid "Delete message" +msgstr "Nachricht löschen" + +#: ../../Zotlabs/Module/Mail.php:347 +msgid "Delivery report" +msgstr "Zustellungsbericht" + +#: ../../Zotlabs/Module/Mail.php:348 +msgid "Recall message" +msgstr "Nachricht widerrufen" + +#: ../../Zotlabs/Module/Mail.php:350 +msgid "Message has been recalled." +msgstr "Die Nachricht wurde widerrufen." + +#: ../../Zotlabs/Module/Mail.php:367 +msgid "Delete Conversation" +msgstr "Unterhaltung löschen" + +#: ../../Zotlabs/Module/Mail.php:369 msgid "" -"Please enter your restrictions or conditions, such as paypal receipt, usage " -"guidelines, etc." -msgstr "Bitte gib Deine Nutzungsbedingungen ein, z.B. Paypal-Quittung, Richtlinien etc." +"No secure communications available. You may be able to " +"respond from the sender's profile page." +msgstr "Keine sichere Kommunikation verfügbar. Eventuell kannst Du auf der Profilseite des Absenders antworten." -#: ../../Zotlabs/Module/Connect.php:95 ../../Zotlabs/Module/Connect.php:115 +#: ../../Zotlabs/Module/Mail.php:373 +msgid "Send Reply" +msgstr "Antwort senden" + +#: ../../Zotlabs/Module/Mail.php:378 +#, php-format +msgid "Your message for %s (%s):" +msgstr "Deine Nachricht für %s (%s):" + +#: ../../Zotlabs/Module/Impel.php:41 ../../include/bbcode.php:203 +msgid "webpage" +msgstr "Webseite" + +#: ../../Zotlabs/Module/Impel.php:46 ../../include/bbcode.php:209 +msgid "block" +msgstr "Block" + +#: ../../Zotlabs/Module/Impel.php:51 ../../include/bbcode.php:206 +msgid "layout" +msgstr "Layout" + +#: ../../Zotlabs/Module/Impel.php:58 ../../include/bbcode.php:212 +msgid "menu" +msgstr "Menü" + +#: ../../Zotlabs/Module/Impel.php:191 +#, php-format +msgid "%s element installed" +msgstr "Element für %s installiert" + +#: ../../Zotlabs/Module/Impel.php:194 +#, php-format +msgid "%s element installation failed" +msgstr "Installation des Elements %s fehlgeschlagen" + +#: ../../Zotlabs/Module/Import_items.php:42 ../../Zotlabs/Module/Import.php:71 +msgid "Nothing to import." +msgstr "Nichts zu importieren." + +#: ../../Zotlabs/Module/Import_items.php:66 ../../Zotlabs/Module/Import.php:83 +#: ../../Zotlabs/Module/Import.php:98 +msgid "Unable to download data from old server" +msgstr "Daten können vom alten Server nicht heruntergeladen werden" + +#: ../../Zotlabs/Module/Import_items.php:72 +#: ../../Zotlabs/Module/Import.php:105 +msgid "Imported file is empty." +msgstr "Die importierte Datei ist leer." + +#: ../../Zotlabs/Module/Import_items.php:88 +#: ../../Zotlabs/Module/Import.php:127 +#, php-format +msgid "Warning: Database versions differ by %1$d updates." +msgstr "Achtung: Datenbankversionen unterscheiden sich um %1$d Aktualisierungen." + +#: ../../Zotlabs/Module/Import_items.php:104 +msgid "Import completed" +msgstr "Import abgeschlossen" + +#: ../../Zotlabs/Module/Import_items.php:119 +msgid "Import Items" +msgstr "Beiträge importieren" + +#: ../../Zotlabs/Module/Import_items.php:120 msgid "" -"This channel may require additional steps or acknowledgement of the " -"following conditions prior to connecting:" -msgstr "Unter Umständen sind weitere Schritte oder die Bestätigung der folgenden Bedingungen vor dem Verbinden mit diesem Kanal nötig." +"Use this form to import existing posts and content from an export file." +msgstr "Mit diesem Formular kannst Du existierende Beiträge und Inhalte aus einer Sicherungsdatei importieren." -#: ../../Zotlabs/Module/Connect.php:96 +#: ../../Zotlabs/Module/Import_items.php:121 +#: ../../Zotlabs/Module/Import.php:532 +msgid "File to Upload" +msgstr "Hochzuladende Datei:" + +#: ../../Zotlabs/Module/Invite.php:29 +msgid "Total invitation limit exceeded." +msgstr "Einladungslimit überschritten." + +#: ../../Zotlabs/Module/Invite.php:53 +#, php-format +msgid "%s : Not a valid email address." +msgstr "%s : Keine gültige Email Adresse." + +#: ../../Zotlabs/Module/Invite.php:67 +msgid "Please join us on $Projectname" +msgstr "Schließe Dich uns auf $Projectname an!" + +#: ../../Zotlabs/Module/Invite.php:77 +msgid "Invitation limit exceeded. Please contact your site administrator." +msgstr "Einladungslimit überschritten. Bitte kontaktiere den Administrator Deines $Projectname-Servers." + +#: ../../Zotlabs/Module/Invite.php:82 +#, php-format +msgid "%s : Message delivery failed." +msgstr "%s : Nachricht konnte nicht zugestellt werden." + +#: ../../Zotlabs/Module/Invite.php:86 +#, php-format +msgid "%d message sent." +msgid_plural "%d messages sent." +msgstr[0] "%d Nachricht gesendet." +msgstr[1] "%d Nachrichten gesendet." + +#: ../../Zotlabs/Module/Invite.php:105 +msgid "You have no more invitations available" +msgstr "Du hast keine weiteren verfügbare Einladungen" + +#: ../../Zotlabs/Module/Invite.php:136 +msgid "Send invitations" +msgstr "Einladungen senden" + +#: ../../Zotlabs/Module/Invite.php:137 +msgid "Enter email addresses, one per line:" +msgstr "Email-Adressen eintragen, eine pro Zeile:" + +#: ../../Zotlabs/Module/Invite.php:139 +msgid "Please join my community on $Projectname." +msgstr "Schließe Dich uns auf $Projectname an!" + +#: ../../Zotlabs/Module/Invite.php:141 +msgid "You will need to supply this invitation code:" +msgstr "Bitte verwende bei der Registrierung den folgenden Einladungscode:" + +#: ../../Zotlabs/Module/Invite.php:142 msgid "" -"Potential connections will then see the following text before proceeding:" -msgstr "Potentielle Kontakte werden den folgenden Text sehen, bevor fortgefahren wird:" +"1. Register at any $Projectname location (they are all inter-connected)" +msgstr "1. Registriere Dich auf einem beliebigen $Projectname-Hub (sie sind alle miteinander verbunden)" -#: ../../Zotlabs/Module/Connect.php:97 ../../Zotlabs/Module/Connect.php:118 -msgid "" -"By continuing, I certify that I have complied with any instructions provided" -" on this page." -msgstr "Indem ich fortfahre, bestätige ich die Erfüllung aller Anweisungen auf dieser Seite." +#: ../../Zotlabs/Module/Invite.php:144 +msgid "2. Enter my $Projectname network address into the site searchbar." +msgstr "2. Gib meine $Projectname-Adresse im Suchfeld ein." -#: ../../Zotlabs/Module/Connect.php:106 -msgid "(No specific instructions have been provided by the channel owner.)" -msgstr "(Der Kanal-Besitzer hat keine speziellen Anweisungen hinterlegt.)" +#: ../../Zotlabs/Module/Invite.php:145 +msgid "or visit" +msgstr "oder besuche" -#: ../../Zotlabs/Module/Connect.php:114 -msgid "Restricted or Premium Channel" -msgstr "Eingeschränkter oder Premium-Kanal" +#: ../../Zotlabs/Module/Invite.php:147 +msgid "3. Click [Connect]" +msgstr "3. Klicke auf [Verbinden]" + +#: ../../Zotlabs/Module/Editblock.php:108 ../../Zotlabs/Module/Blocks.php:97 +#: ../../Zotlabs/Module/Blocks.php:155 +msgid "Block Name" +msgstr "Block-Name" + +#: ../../Zotlabs/Module/Editblock.php:124 ../../include/conversation.php:1276 +msgid "Title (optional)" +msgstr "Titel (optional)" + +#: ../../Zotlabs/Module/Editblock.php:133 +msgid "Edit Block" +msgstr "Block bearbeiten" #: ../../Zotlabs/Module/Group.php:24 msgid "Privacy group created." @@ -2823,7 +3616,7 @@ msgid "Could not create privacy group." msgstr "Gruppe konnte nicht erstellt werden." #: ../../Zotlabs/Module/Group.php:42 ../../Zotlabs/Module/Group.php:141 -#: ../../include/items.php:3950 +#: ../../include/items.php:3876 msgid "Privacy group not found." msgstr "Gruppe nicht gefunden." @@ -2867,413 +3660,29 @@ msgstr "Alle verbundenen Kanäle" msgid "Click on a channel to add or remove." msgstr "Wähle einen Kanal zum hinzufügen oder entfernen aus." -#: ../../Zotlabs/Module/Webpages.php:52 -msgid "Import Webpage Elements" -msgstr "Webseitenelemente importieren" +#: ../../Zotlabs/Module/Profperm.php:34 ../../Zotlabs/Module/Profperm.php:63 +msgid "Invalid profile identifier." +msgstr "Ungültiger Profil-Identifikator" -#: ../../Zotlabs/Module/Webpages.php:53 -msgid "Import selected" -msgstr "Import ausgewählt" +#: ../../Zotlabs/Module/Profperm.php:115 +msgid "Profile Visibility Editor" +msgstr "Profil-Sichtbarkeits-Editor" -#: ../../Zotlabs/Module/Webpages.php:76 -msgid "Export Webpage Elements" -msgstr "Webseitenelemente exportieren" +#: ../../Zotlabs/Module/Profperm.php:117 ../../include/channel.php:1282 +msgid "Profile" +msgstr "Profil" -#: ../../Zotlabs/Module/Webpages.php:77 -msgid "Export selected" -msgstr "Exportieren ausgewählt" +#: ../../Zotlabs/Module/Profperm.php:119 +msgid "Click on a contact to add or remove." +msgstr "Klicke auf einen Kontakt, um ihn hinzuzufügen oder zu entfernen." -#: ../../Zotlabs/Module/Webpages.php:237 ../../Zotlabs/Lib/Apps.php:218 -#: ../../include/nav.php:109 ../../include/conversation.php:1724 -msgid "Webpages" -msgstr "Webseiten" +#: ../../Zotlabs/Module/Profperm.php:128 +msgid "Visible To" +msgstr "Sichtbar für" -#: ../../Zotlabs/Module/Webpages.php:241 ../../Zotlabs/Module/Blocks.php:161 -#: ../../Zotlabs/Module/Layouts.php:193 ../../Zotlabs/Module/Photos.php:1078 -#: ../../include/conversation.php:1231 -msgid "Share" -msgstr "Teilen" - -#: ../../Zotlabs/Module/Webpages.php:246 ../../Zotlabs/Module/Events.php:680 -#: ../../Zotlabs/Module/Blocks.php:166 ../../Zotlabs/Module/Layouts.php:197 -#: ../../Zotlabs/Module/Pubsites.php:59 ../../include/page_widgets.php:42 -msgid "View" -msgstr "Ansicht" - -#: ../../Zotlabs/Module/Webpages.php:247 ../../Zotlabs/Module/Events.php:473 -#: ../../Zotlabs/Module/Photos.php:1099 ../../Zotlabs/Lib/ThreadItem.php:721 -#: ../../include/page_widgets.php:43 ../../include/conversation.php:1200 -msgid "Preview" -msgstr "Vorschau" - -#: ../../Zotlabs/Module/Webpages.php:248 ../../include/page_widgets.php:44 -msgid "Actions" -msgstr "Aktionen" - -#: ../../Zotlabs/Module/Webpages.php:249 ../../include/page_widgets.php:45 -msgid "Page Link" -msgstr "Seiten-Link" - -#: ../../Zotlabs/Module/Webpages.php:250 -msgid "Page Title" -msgstr "Seitentitel" - -#: ../../Zotlabs/Module/Webpages.php:280 -msgid "Invalid file type." -msgstr "Ungültiger Dateityp." - -#: ../../Zotlabs/Module/Webpages.php:292 -msgid "Error opening zip file" -msgstr "Fehler beim Öffnen der ZIP-Datei" - -#: ../../Zotlabs/Module/Webpages.php:303 -msgid "Invalid folder path." -msgstr "Ungültiger Ordnerpfad." - -#: ../../Zotlabs/Module/Webpages.php:330 -msgid "No webpage elements detected." -msgstr "Keine Webseitenelemente erkannt." - -#: ../../Zotlabs/Module/Webpages.php:405 -msgid "Import complete." -msgstr "Import abgeschlossen." - -#: ../../Zotlabs/Module/Impel.php:41 ../../include/bbcode.php:192 -msgid "webpage" -msgstr "Webseite" - -#: ../../Zotlabs/Module/Impel.php:46 ../../include/bbcode.php:198 -msgid "block" -msgstr "Block" - -#: ../../Zotlabs/Module/Impel.php:51 ../../include/bbcode.php:195 -msgid "layout" -msgstr "Layout" - -#: ../../Zotlabs/Module/Impel.php:58 ../../include/bbcode.php:201 -msgid "menu" -msgstr "Menü" - -#: ../../Zotlabs/Module/Impel.php:191 -#, php-format -msgid "%s element installed" -msgstr "Element für %s installiert" - -#: ../../Zotlabs/Module/Impel.php:194 -#, php-format -msgid "%s element installation failed" -msgstr "Installation des Elements %s fehlgeschlagen" - -#: ../../Zotlabs/Module/Import_items.php:104 -msgid "Import completed" -msgstr "Import abgeschlossen" - -#: ../../Zotlabs/Module/Import_items.php:119 -msgid "Import Items" -msgstr "Beiträge importieren" - -#: ../../Zotlabs/Module/Import_items.php:120 -msgid "" -"Use this form to import existing posts and content from an export file." -msgstr "Mit diesem Formular kannst Du existierende Beiträge und Inhalte aus einer Sicherungsdatei importieren." - -#: ../../Zotlabs/Module/Invite.php:29 -msgid "Total invitation limit exceeded." -msgstr "Einladungslimit überschritten." - -#: ../../Zotlabs/Module/Invite.php:53 -#, php-format -msgid "%s : Not a valid email address." -msgstr "%s : Keine gültige Email Adresse." - -#: ../../Zotlabs/Module/Invite.php:63 -msgid "Please join us on $Projectname" -msgstr "Schließe Dich uns auf $Projectname an!" - -#: ../../Zotlabs/Module/Invite.php:74 -msgid "Invitation limit exceeded. Please contact your site administrator." -msgstr "Einladungslimit überschritten. Bitte kontaktiere den Administrator Deines $Projectname-Servers." - -#: ../../Zotlabs/Module/Invite.php:79 -#, php-format -msgid "%s : Message delivery failed." -msgstr "%s : Nachricht konnte nicht zugestellt werden." - -#: ../../Zotlabs/Module/Invite.php:83 -#, php-format -msgid "%d message sent." -msgid_plural "%d messages sent." -msgstr[0] "%d Nachricht gesendet." -msgstr[1] "%d Nachrichten gesendet." - -#: ../../Zotlabs/Module/Invite.php:102 -msgid "You have no more invitations available" -msgstr "Du hast keine weiteren verfügbare Einladungen" - -#: ../../Zotlabs/Module/Invite.php:133 -msgid "Send invitations" -msgstr "Einladungen senden" - -#: ../../Zotlabs/Module/Invite.php:134 -msgid "Enter email addresses, one per line:" -msgstr "Email-Adressen eintragen, eine pro Zeile:" - -#: ../../Zotlabs/Module/Invite.php:136 -msgid "Please join my community on $Projectname." -msgstr "Schließe Dich uns auf $Projectname an!" - -#: ../../Zotlabs/Module/Invite.php:138 -msgid "You will need to supply this invitation code:" -msgstr "Bitte verwende bei der Registrierung den folgenden Einladungscode:" - -#: ../../Zotlabs/Module/Invite.php:139 -msgid "" -"1. Register at any $Projectname location (they are all inter-connected)" -msgstr "1. Registriere Dich auf einem beliebigen $Projectname-Hub (sie sind alle miteinander verbunden)" - -#: ../../Zotlabs/Module/Invite.php:141 -msgid "2. Enter my $Projectname network address into the site searchbar." -msgstr "2. Gib meine $Projectname-Adresse im Suchfeld ein." - -#: ../../Zotlabs/Module/Invite.php:142 -msgid "or visit" -msgstr "oder besuche" - -#: ../../Zotlabs/Module/Invite.php:144 -msgid "3. Click [Connect]" -msgstr "3. Klicke auf [Verbinden]" - -#: ../../Zotlabs/Module/Locs.php:25 ../../Zotlabs/Module/Locs.php:54 -msgid "Location not found." -msgstr "Klon nicht gefunden." - -#: ../../Zotlabs/Module/Locs.php:62 -msgid "Location lookup failed." -msgstr "Nachschlagen des Kanal-Ortes fehlgeschlagen" - -#: ../../Zotlabs/Module/Locs.php:66 -msgid "" -"Please select another location to become primary before removing the primary" -" location." -msgstr "Bitte mache einen anderen Kanal-Ort zum primären Ort, bevor Du den primären Ort löschst." - -#: ../../Zotlabs/Module/Locs.php:95 -msgid "Syncing locations" -msgstr "Synchronisiere Klone" - -#: ../../Zotlabs/Module/Locs.php:105 -msgid "No locations found." -msgstr "Keine Klon-Adressen gefunden." - -#: ../../Zotlabs/Module/Locs.php:116 -msgid "Manage Channel Locations" -msgstr "Klon-Adressen verwalten" - -#: ../../Zotlabs/Module/Locs.php:117 ../../Zotlabs/Module/Profiles.php:477 -#: ../../Zotlabs/Module/Profiles.php:698 ../../Zotlabs/Module/Events.php:467 -#: ../../Zotlabs/Module/Pubsites.php:51 ../../include/js_strings.php:25 -msgid "Location" -msgstr "Ort" - -#: ../../Zotlabs/Module/Locs.php:119 -msgid "Primary" -msgstr "Primär" - -#: ../../Zotlabs/Module/Locs.php:122 -msgid "Sync Now" -msgstr "Jetzt synchronisieren" - -#: ../../Zotlabs/Module/Locs.php:123 -msgid "Please wait several minutes between consecutive operations." -msgstr "Bitte warte mehrere Minuten zwischen dem Ausführen zweier Operationen!" - -#: ../../Zotlabs/Module/Locs.php:124 -msgid "" -"When possible, drop a location by logging into that website/hub and removing" -" your channel." -msgstr "Wenn möglich, lösche einen Klon, indem Du Dich auf dem jeweiligen Hub einloggst und den Kanal dort löschst." - -#: ../../Zotlabs/Module/Locs.php:125 -msgid "Use this form to drop the location if the hub is no longer operating." -msgstr "Benutze dieses Formular zum Löschen eines Klons, wenn es den Hub nicht mehr gibt." - -#: ../../Zotlabs/Module/Network.php:95 -msgid "No such group" -msgstr "Gruppe nicht gefunden" - -#: ../../Zotlabs/Module/Network.php:135 -msgid "No such channel" -msgstr "Kanal nicht gefunden" - -#: ../../Zotlabs/Module/Network.php:140 -msgid "forum" -msgstr "Forum" - -#: ../../Zotlabs/Module/Network.php:152 -msgid "Search Results For:" -msgstr "Suchergebnisse für:" - -#: ../../Zotlabs/Module/Network.php:218 -msgid "Privacy group is empty" -msgstr "Gruppe ist leer" - -#: ../../Zotlabs/Module/Network.php:227 -msgid "Privacy group: " -msgstr "Gruppe:" - -#: ../../Zotlabs/Module/Network.php:253 -msgid "Invalid connection." -msgstr "Ungültige Verbindung." - -#: ../../Zotlabs/Module/Like.php:19 -msgid "Like/Dislike" -msgstr "Mögen/Nicht mögen" - -#: ../../Zotlabs/Module/Like.php:24 -msgid "This action is restricted to members." -msgstr "Diese Aktion kann nur von Mitgliedern ausgeführt werden." - -#: ../../Zotlabs/Module/Like.php:25 -msgid "" -"Please login with your $Projectname ID or register as a new $Projectname member to continue." -msgstr "Um fortzufahren melde Dich bitte mit Deiner $Projectname-ID an oder registriere Dich als neues $Projectname-Mitglied." - -#: ../../Zotlabs/Module/Like.php:105 ../../Zotlabs/Module/Like.php:131 -#: ../../Zotlabs/Module/Like.php:169 -msgid "Invalid request." -msgstr "Ungültige Anfrage." - -#: ../../Zotlabs/Module/Like.php:117 ../../include/conversation.php:126 -msgid "channel" -msgstr "Kanal" - -#: ../../Zotlabs/Module/Like.php:146 -msgid "thing" -msgstr "Sache" - -#: ../../Zotlabs/Module/Like.php:192 -msgid "Channel unavailable." -msgstr "Kanal nicht vorhanden." - -#: ../../Zotlabs/Module/Like.php:240 -msgid "Previous action reversed." -msgstr "Die vorherige Aktion wurde rückgängig gemacht." - -#: ../../Zotlabs/Module/Like.php:370 ../../Zotlabs/Module/Subthread.php:87 -#: ../../Zotlabs/Module/Tagger.php:47 ../../include/conversation.php:120 -#: ../../include/text.php:1991 -msgid "photo" -msgstr "Foto" - -#: ../../Zotlabs/Module/Like.php:370 ../../Zotlabs/Module/Subthread.php:87 -#: ../../include/conversation.php:148 ../../include/text.php:1997 -msgid "status" -msgstr "Status" - -#: ../../Zotlabs/Module/Like.php:372 ../../Zotlabs/Module/Events.php:253 -#: ../../Zotlabs/Module/Tagger.php:51 ../../include/event.php:958 -#: ../../include/conversation.php:123 ../../include/text.php:1994 -msgid "event" -msgstr "Termin" - -#: ../../Zotlabs/Module/Like.php:419 ../../include/conversation.php:164 -#, php-format -msgid "%1$s likes %2$s's %3$s" -msgstr "%1$s gefällt %2$ss %3$s" - -#: ../../Zotlabs/Module/Like.php:421 ../../include/conversation.php:167 -#, php-format -msgid "%1$s doesn't like %2$s's %3$s" -msgstr "%1$s gefällt %2$ss %3$s nicht" - -#: ../../Zotlabs/Module/Like.php:423 -#, php-format -msgid "%1$s agrees with %2$s's %3$s" -msgstr "%1$s stimmt %2$ss %3$s zu" - -#: ../../Zotlabs/Module/Like.php:425 -#, php-format -msgid "%1$s doesn't agree with %2$s's %3$s" -msgstr "%1$s lehnt %2$ss %3$s ab" - -#: ../../Zotlabs/Module/Like.php:427 -#, php-format -msgid "%1$s abstains from a decision on %2$s's %3$s" -msgstr "%1$s enthält sich zu %2$ss %3$s" - -#: ../../Zotlabs/Module/Like.php:429 -#, php-format -msgid "%1$s is attending %2$s's %3$s" -msgstr "%1$s nimmt an %2$ss %3$s teil" - -#: ../../Zotlabs/Module/Like.php:431 -#, php-format -msgid "%1$s is not attending %2$s's %3$s" -msgstr "%1$s nimmt an %2$ss %3$s nicht teil" - -#: ../../Zotlabs/Module/Like.php:433 -#, php-format -msgid "%1$s may attend %2$s's %3$s" -msgstr "%1$s nimmt vielleicht an %2$ss %3$s teil" - -#: ../../Zotlabs/Module/Like.php:538 -msgid "Action completed." -msgstr "Aktion durchgeführt." - -#: ../../Zotlabs/Module/Like.php:539 -msgid "Thank you." -msgstr "Vielen Dank." - -#: ../../Zotlabs/Module/Manage.php:136 -#: ../../Zotlabs/Module/New_channel.php:121 -#, php-format -msgid "You have created %1$.0f of %2$.0f allowed channels." -msgstr "Du hast %1$.0f von maximal %2$.0f erlaubten Kanälen eingerichtet." - -#: ../../Zotlabs/Module/Manage.php:143 -msgid "Create a new channel" -msgstr "Neuen Kanal anlegen" - -#: ../../Zotlabs/Module/Manage.php:143 ../../Zotlabs/Module/Profiles.php:778 -#: ../../Zotlabs/Module/Chat.php:255 -msgid "Create New" -msgstr "Neu anlegen" - -#: ../../Zotlabs/Module/Manage.php:164 ../../Zotlabs/Lib/Apps.php:214 -#: ../../include/nav.php:211 -msgid "Channel Manager" -msgstr "Kanal-Manager" - -#: ../../Zotlabs/Module/Manage.php:165 -msgid "Current Channel" -msgstr "Aktueller Kanal" - -#: ../../Zotlabs/Module/Manage.php:167 -msgid "Switch to one of your channels by selecting it." -msgstr "Wechsle zu einem Deiner Kanäle, indem Du auf ihn klickst." - -#: ../../Zotlabs/Module/Manage.php:168 -msgid "Default Channel" -msgstr "Standard Kanal" - -#: ../../Zotlabs/Module/Manage.php:169 -msgid "Make Default" -msgstr "Zum Standard machen" - -#: ../../Zotlabs/Module/Manage.php:172 -#, php-format -msgid "%d new messages" -msgstr "%d neue Nachrichten" - -#: ../../Zotlabs/Module/Manage.php:173 -#, php-format -msgid "%d new introductions" -msgstr "%d neue Vorstellungen" - -#: ../../Zotlabs/Module/Manage.php:175 -msgid "Delegated Channel" -msgstr "Delegierte Kanäle" +#: ../../Zotlabs/Module/Magic.php:71 +msgid "Hub not found." +msgstr "Server nicht gefunden." #: ../../Zotlabs/Module/Mitem.php:52 msgid "Unable to create element." @@ -3292,7 +3701,7 @@ msgid "Menu Item Permissions" msgstr "Zugriffsrechte des Menü-Elements" #: ../../Zotlabs/Module/Mitem.php:154 ../../Zotlabs/Module/Mitem.php:231 -#: ../../Zotlabs/Module/Settings/Channel.php:486 +#: ../../Zotlabs/Module/Settings/Channel.php:489 msgid "(click to open/close)" msgstr "(zum öffnen/schließen anklicken)" @@ -3392,100 +3801,25 @@ msgstr "Bearbeite Menü-Bestandteil" msgid "Link text" msgstr "Link Text" -#: ../../Zotlabs/Module/Rate.php:155 ../../Zotlabs/Module/Connedit.php:762 -#: ../../include/js_strings.php:20 -msgid "Rating" -msgstr "Bewertung" +#: ../../Zotlabs/Module/Ratings.php:70 +msgid "No ratings" +msgstr "Keine Bewertungen" -#: ../../Zotlabs/Module/Rate.php:156 -msgid "Website:" -msgstr "Webseite:" +#: ../../Zotlabs/Module/Ratings.php:98 +msgid "Rating: " +msgstr "Bewertung: " -#: ../../Zotlabs/Module/Rate.php:159 -#, php-format -msgid "Remote Channel [%s] (not yet known on this site)" -msgstr "Kanal [%s] (auf diesem Server noch unbekannt)" +#: ../../Zotlabs/Module/Ratings.php:99 +msgid "Website: " +msgstr "Webseite: " -#: ../../Zotlabs/Module/Rate.php:160 -msgid "Rating (this information is public)" -msgstr "Bewertung (öffentlich sichtbar)" +#: ../../Zotlabs/Module/Ratings.php:101 +msgid "Description: " +msgstr "Beschreibung: " -#: ../../Zotlabs/Module/Rate.php:161 -msgid "Optionally explain your rating (this information is public)" -msgstr "Optional kannst du deine Bewertung erklären (öffentlich sichtbar)" - -#: ../../Zotlabs/Module/Lostpass.php:19 -msgid "No valid account found." -msgstr "Kein gültiges Konto gefunden." - -#: ../../Zotlabs/Module/Lostpass.php:33 -msgid "Password reset request issued. Check your email." -msgstr "Zurücksetzen des Passworts eingeleitet. Schau in Deine E-Mails." - -#: ../../Zotlabs/Module/Lostpass.php:39 ../../Zotlabs/Module/Lostpass.php:107 -#, php-format -msgid "Site Member (%s)" -msgstr "Nutzer (%s)" - -#: ../../Zotlabs/Module/Lostpass.php:44 -#, php-format -msgid "Password reset requested at %s" -msgstr "Passwort-Rücksetzung auf %s angefordert" - -#: ../../Zotlabs/Module/Lostpass.php:67 -msgid "" -"Request could not be verified. (You may have previously submitted it.) " -"Password reset failed." -msgstr "Die Anfrage konnte nicht verifiziert werden. (Vielleicht hast Du schon einmal auf den Link in der E-Mail geklickt?) Passwort-Rücksetzung fehlgeschlagen." - -#: ../../Zotlabs/Module/Lostpass.php:90 ../../boot.php:1747 -msgid "Password Reset" -msgstr "Zurücksetzen des Kennworts" - -#: ../../Zotlabs/Module/Lostpass.php:91 -msgid "Your password has been reset as requested." -msgstr "Dein Passwort wurde wie angefordert neu erstellt." - -#: ../../Zotlabs/Module/Lostpass.php:92 -msgid "Your new password is" -msgstr "Dein neues Passwort lautet" - -#: ../../Zotlabs/Module/Lostpass.php:93 -msgid "Save or copy your new password - and then" -msgstr "Speichere oder kopiere Dein neues Passwort – und dann" - -#: ../../Zotlabs/Module/Lostpass.php:94 -msgid "click here to login" -msgstr "Klicke hier, um dich anzumelden" - -#: ../../Zotlabs/Module/Lostpass.php:95 -msgid "" -"Your password may be changed from the Settings page after " -"successful login." -msgstr "Dein Passwort kann unter Einstellungen nach einer erfolgreichen Anmeldung geändert werden." - -#: ../../Zotlabs/Module/Lostpass.php:112 -#, php-format -msgid "Your password has changed at %s" -msgstr "Auf %s wurde Dein Passwort geändert" - -#: ../../Zotlabs/Module/Lostpass.php:127 -msgid "Forgot your Password?" -msgstr "Kennwort vergessen?" - -#: ../../Zotlabs/Module/Lostpass.php:128 -msgid "" -"Enter your email address and submit to have your password reset. Then check " -"your email for further instructions." -msgstr "Gib Deine E-Mail-Adresse ein, um Dein Passwort zurücksetzen zu lassen. Du erhältst dann weitere Anweisungen per E-Mail." - -#: ../../Zotlabs/Module/Lostpass.php:129 -msgid "Email Address" -msgstr "E-Mail Adresse" - -#: ../../Zotlabs/Module/Lostpass.php:130 -msgid "Reset" -msgstr "Zurücksetzen" +#: ../../Zotlabs/Module/Attach.php:13 +msgid "Item not available." +msgstr "Element nicht verfügbar." #: ../../Zotlabs/Module/Mood.php:67 ../../include/conversation.php:260 #, php-format @@ -3501,186 +3835,169 @@ msgstr "Laune" msgid "Set your current mood and tell your friends" msgstr "Wähle Deine aktuelle Stimmung und teile sie mit Deinen Freunden" -#: ../../Zotlabs/Module/Manage.php:173 -#, php-format -msgid "%d new introductions" -msgstr "%d neue Vorstellungen" - -#: ../../Zotlabs/Module/Manage.php:175 -msgid "Delegated Channel" -msgstr "Delegierte Kanäle" - #: ../../Zotlabs/Module/Notify.php:57 -#: ../../Zotlabs/Module/Notifications.php:98 +#: ../../Zotlabs/Module/Notifications.php:35 msgid "No more system notifications." msgstr "Keine System-Benachrichtigungen mehr." #: ../../Zotlabs/Module/Notify.php:61 -#: ../../Zotlabs/Module/Notifications.php:102 +#: ../../Zotlabs/Module/Notifications.php:39 msgid "System Notifications" msgstr "System-Benachrichtigungen" -#: ../../Zotlabs/Module/Match.php:26 -msgid "Profile Match" -msgstr "Profil-Übereinstimmungen" - -#: ../../Zotlabs/Module/Match.php:35 -msgid "No keywords to match. Please add keywords to your default profile." -msgstr "Keine Schlüsselwörter für den Abgleich gefunden. Bitte füge Schlüsselwörter zu Deinem Standardprofil hinzu." - -#: ../../Zotlabs/Module/Match.php:67 -msgid "is interested in:" -msgstr "interessiert sich für:" - -#: ../../Zotlabs/Module/Match.php:74 -msgid "No matches" -msgstr "Keine Übereinstimmungen" - #: ../../Zotlabs/Module/Photos.php:82 msgid "Page owner information could not be retrieved." msgstr "Informationen über den Besitzer der Seite konnten nicht gefunden werden." -#: ../../Zotlabs/Module/Photos.php:97 ../../Zotlabs/Module/Photos.php:745 +#: ../../Zotlabs/Module/Photos.php:97 ../../Zotlabs/Module/Photos.php:734 #: ../../Zotlabs/Module/Profile_photo.php:115 -#: ../../Zotlabs/Module/Profile_photo.php:212 -#: ../../Zotlabs/Module/Profile_photo.php:311 -#: ../../include/photo/photo_driver.php:718 +#: ../../Zotlabs/Module/Profile_photo.php:219 +#: ../../extend/addon/addon/openclipatar/openclipatar.php:225 +#: ../../include/photo/photo_driver.php:728 msgid "Profile Photos" msgstr "Profilfotos" -#: ../../Zotlabs/Module/Photos.php:103 ../../Zotlabs/Module/Photos.php:147 +#: ../../Zotlabs/Module/Photos.php:103 ../../Zotlabs/Module/Photos.php:129 msgid "Album not found." msgstr "Album nicht gefunden." -#: ../../Zotlabs/Module/Photos.php:130 +#: ../../Zotlabs/Module/Photos.php:112 msgid "Delete Album" msgstr "Album löschen" -#: ../../Zotlabs/Module/Photos.php:151 +#: ../../Zotlabs/Module/Photos.php:133 msgid "" "Multiple storage folders exist with this album name, but within different " "directories. Please remove the desired folder or folders using the Files " "manager" msgstr "Mehrere Speicherordner mit diesem Albumnamen sind bereits vorhanden, aber in verschiedenen Verzeichnissen. Bitte entfernen Sie den oder die gewünschten Ordner mit dem Dateimanager" -#: ../../Zotlabs/Module/Profiles.php:454 -msgid "Gender" -msgstr "Geschlecht" +#: ../../Zotlabs/Module/Photos.php:190 ../../Zotlabs/Module/Photos.php:1059 +msgid "Delete Photo" +msgstr "Foto löschen" -#: ../../Zotlabs/Module/Profiles.php:458 -msgid "Sexual Preference" -msgstr "Sexuelle Orientierung" - -#: ../../Zotlabs/Module/Photos.php:531 +#: ../../Zotlabs/Module/Photos.php:520 msgid "No photos selected" msgstr "Keine Fotos ausgewählt" -#: ../../Zotlabs/Module/Photos.php:580 +#: ../../Zotlabs/Module/Photos.php:569 msgid "Access to this item is restricted." msgstr "Der Zugriff auf dieses Foto ist eingeschränkt." -#: ../../Zotlabs/Module/Photos.php:619 +#: ../../Zotlabs/Module/Photos.php:608 #, php-format msgid "%1$.2f MB of %2$.2f MB photo storage used." msgstr "%1$.2f MB von %2$.2f MB Foto-Speicher belegt." -#: ../../Zotlabs/Module/Photos.php:622 +#: ../../Zotlabs/Module/Photos.php:611 #, php-format msgid "%1$.2f MB photo storage used." msgstr "%1$.2f MB Foto-Speicher belegt." -#: ../../Zotlabs/Module/Photos.php:658 +#: ../../Zotlabs/Module/Photos.php:647 msgid "Upload Photos" msgstr "Fotos hochladen" -#: ../../Zotlabs/Module/Photos.php:662 +#: ../../Zotlabs/Module/Photos.php:651 msgid "Enter an album name" msgstr "Namen für ein neues Album eingeben" -#: ../../Zotlabs/Module/Profiles.php:689 ../../Zotlabs/Module/Profiles.php:771 -#: ../../include/channel.php:981 -msgid "Edit visibility" -msgstr "Sichtbarkeit bearbeiten" +#: ../../Zotlabs/Module/Photos.php:652 +msgid "or select an existing album (doubleclick)" +msgstr "oder ein bereits vorhandenes auswählen (Doppelklick)" -#: ../../Zotlabs/Module/Photos.php:664 +#: ../../Zotlabs/Module/Photos.php:653 msgid "Create a status post for this upload" msgstr "Einen Statusbeitrag für diesen Upload erzeugen" -#: ../../Zotlabs/Module/Photos.php:665 +#: ../../Zotlabs/Module/Photos.php:654 msgid "Caption (optional):" msgstr "Beschriftung (optional):" -#: ../../Zotlabs/Module/Profiles.php:692 ../../include/channel.php:952 -msgid "Change profile photo" -msgstr "Profilfoto ändern" +#: ../../Zotlabs/Module/Photos.php:655 +msgid "Description (optional):" +msgstr "Beschreibung (optional):" -#: ../../Zotlabs/Module/Photos.php:697 +#: ../../Zotlabs/Module/Photos.php:686 msgid "Album name could not be decoded" msgstr "Albumname konnte nicht dekodiert werden" -#: ../../Zotlabs/Module/Photos.php:745 +#: ../../Zotlabs/Module/Photos.php:734 msgid "Contact Photos" msgstr "Kontakt-Bilder" -#: ../../Zotlabs/Module/Photos.php:768 +#: ../../Zotlabs/Module/Photos.php:757 msgid "Show Newest First" msgstr "Neueste zuerst anzeigen" -#: ../../Zotlabs/Module/Photos.php:770 +#: ../../Zotlabs/Module/Photos.php:759 msgid "Show Oldest First" msgstr "Älteste zuerst anzeigen" -#: ../../Zotlabs/Module/Profiles.php:697 ../../include/conversation.php:1563 -#: ../../include/widgets.php:105 -msgid "Personal" -msgstr "Persönlich" +#: ../../Zotlabs/Module/Photos.php:783 ../../Zotlabs/Module/Photos.php:1337 +#: ../../Zotlabs/Module/Embedphotos.php:139 ../../include/widgets.php:1748 +msgid "View Photo" +msgstr "Foto ansehen" -#: ../../Zotlabs/Module/Photos.php:825 -#: ../../Zotlabs/Module/Embedphotos.php:157 ../../include/widgets.php:1624 +#: ../../Zotlabs/Module/Photos.php:814 +#: ../../Zotlabs/Module/Embedphotos.php:155 ../../include/widgets.php:1765 msgid "Edit Album" msgstr "Album bearbeiten" -#: ../../Zotlabs/Module/Photos.php:872 +#: ../../Zotlabs/Module/Photos.php:861 msgid "Permission denied. Access to this item may be restricted." msgstr "Berechtigung verweigert. Der Zugriff ist wahrscheinlich eingeschränkt worden." -#: ../../Zotlabs/Module/Photos.php:874 +#: ../../Zotlabs/Module/Photos.php:863 msgid "Photo not available" msgstr "Foto nicht verfügbar" -#: ../../Zotlabs/Module/Photos.php:932 +#: ../../Zotlabs/Module/Photos.php:921 msgid "Use as profile photo" msgstr "Als Profilfoto verwenden" -#: ../../Zotlabs/Module/Photos.php:933 +#: ../../Zotlabs/Module/Photos.php:922 msgid "Use as cover photo" msgstr "Als Titelbild verwenden" -#: ../../Zotlabs/Module/Photos.php:940 +#: ../../Zotlabs/Module/Photos.php:929 msgid "Private Photo" msgstr "Privates Foto" -#: ../../Zotlabs/Module/Photos.php:955 +#: ../../Zotlabs/Module/Photos.php:940 ../../Zotlabs/Module/Cal.php:336 +#: ../../Zotlabs/Module/Cal.php:343 ../../Zotlabs/Module/Events.php:680 +#: ../../Zotlabs/Module/Events.php:689 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:846 +msgid "Previous" +msgstr "Voriges" + +#: ../../Zotlabs/Module/Photos.php:944 msgid "View Full Size" msgstr "In voller Größe anzeigen" -#: ../../Zotlabs/Module/Photos.php:1000 ../../Zotlabs/Module/Admin.php:1437 -#: ../../Zotlabs/Module/Tagrm.php:137 -msgid "Remove" -msgstr "Entfernen" +#: ../../Zotlabs/Module/Photos.php:949 ../../Zotlabs/Module/Setup.php:264 +#: ../../Zotlabs/Module/Cal.php:337 ../../Zotlabs/Module/Cal.php:344 +#: ../../Zotlabs/Module/Events.php:681 ../../Zotlabs/Module/Events.php:690 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:847 +msgid "Next" +msgstr "Nächste" -#: ../../Zotlabs/Module/Photos.php:1034 +#: ../../Zotlabs/Module/Photos.php:1033 msgid "Edit photo" msgstr "Foto bearbeiten" -#: ../../Zotlabs/Module/Photos.php:1036 +#: ../../Zotlabs/Module/Photos.php:1035 msgid "Rotate CW (right)" msgstr "Drehen im UZS (rechts)" -#: ../../Zotlabs/Module/Photos.php:1037 +#: ../../Zotlabs/Module/Photos.php:1036 msgid "Rotate CCW (left)" msgstr "Drehen gegen UZS (links)" +#: ../../Zotlabs/Module/Photos.php:1039 +msgid "Move photo to album" +msgstr "Foto in Album verschieben" + #: ../../Zotlabs/Module/Photos.php:1040 msgid "Enter a new album name" msgstr "Gib einen Namen für ein neues Album ein" @@ -3705,89 +4022,99 @@ msgstr "Beispiele: @ben, @Karl_Prester, @lieschen@example.com" msgid "Flag as adult in album view" msgstr "In der Albumansicht als nicht jugendfrei markieren" -#: ../../Zotlabs/Module/Photos.php:1076 ../../Zotlabs/Lib/ThreadItem.php:262 +#: ../../Zotlabs/Module/Photos.php:1076 ../../Zotlabs/Lib/ThreadItem.php:268 msgid "I like this (toggle)" msgstr "Mir gefällt das (Umschalter)" -#: ../../Zotlabs/Module/Photos.php:1077 ../../Zotlabs/Lib/ThreadItem.php:263 +#: ../../Zotlabs/Module/Photos.php:1077 ../../Zotlabs/Lib/ThreadItem.php:269 msgid "I don't like this (toggle)" msgstr "Mir gefällt das nicht (Umschalter)" -#: ../../Zotlabs/Module/Photos.php:1079 ../../Zotlabs/Lib/ThreadItem.php:398 -#: ../../include/conversation.php:743 +#: ../../Zotlabs/Module/Photos.php:1078 ../../Zotlabs/Module/Blocks.php:161 +#: ../../Zotlabs/Module/Layouts.php:193 ../../Zotlabs/Module/Webpages.php:241 +#: ../../extend/addon/addon/cdav/include/widgets.php:123 +#: ../../include/conversation.php:1248 +msgid "Share" +msgstr "Teilen" + +#: ../../Zotlabs/Module/Photos.php:1079 ../../Zotlabs/Lib/ThreadItem.php:409 +#: ../../include/conversation.php:757 msgid "Please wait" msgstr "Bitte warten" -#: ../../Zotlabs/Module/Profiles.php:731 -msgid "Homepage URL" -msgstr "Homepage-URL" - -#: ../../Zotlabs/Module/Profiles.php:732 -msgid "Hometown" -msgstr "Heimatort" +#: ../../Zotlabs/Module/Photos.php:1095 ../../Zotlabs/Module/Photos.php:1213 +#: ../../Zotlabs/Lib/ThreadItem.php:726 +msgid "This is you" +msgstr "Das bist Du" #: ../../Zotlabs/Module/Photos.php:1097 ../../Zotlabs/Module/Photos.php:1215 -#: ../../Zotlabs/Lib/ThreadItem.php:710 ../../include/js_strings.php:6 +#: ../../Zotlabs/Lib/ThreadItem.php:728 ../../include/js_strings.php:6 msgid "Comment" msgstr "Kommentar" -#: ../../Zotlabs/Module/Photos.php:1113 ../../include/conversation.php:577 +#: ../../Zotlabs/Module/Photos.php:1099 ../../Zotlabs/Module/Webpages.php:247 +#: ../../Zotlabs/Module/Events.php:471 ../../Zotlabs/Lib/ThreadItem.php:738 +#: ../../include/page_widgets.php:43 ../../include/conversation.php:1217 +msgid "Preview" +msgstr "Vorschau" + +#: ../../Zotlabs/Module/Photos.php:1113 ../../include/conversation.php:593 msgctxt "title" msgid "Likes" msgstr "Gefällt mir" -#: ../../Zotlabs/Module/Photos.php:1113 ../../include/conversation.php:577 +#: ../../Zotlabs/Module/Photos.php:1113 ../../include/conversation.php:593 msgctxt "title" msgid "Dislikes" msgstr "Gefällt mir nicht" -#: ../../Zotlabs/Module/Photos.php:1114 ../../include/conversation.php:578 +#: ../../Zotlabs/Module/Photos.php:1114 ../../include/conversation.php:594 msgctxt "title" msgid "Agree" msgstr "Zustimmungen" -#: ../../Zotlabs/Module/Photos.php:1114 ../../include/conversation.php:578 +#: ../../Zotlabs/Module/Photos.php:1114 ../../include/conversation.php:594 msgctxt "title" msgid "Disagree" msgstr "Ablehnungen" -#: ../../Zotlabs/Module/Photos.php:1114 ../../include/conversation.php:578 +#: ../../Zotlabs/Module/Photos.php:1114 ../../include/conversation.php:594 msgctxt "title" msgid "Abstain" msgstr "Enthaltungen" -#: ../../Zotlabs/Module/Photos.php:1115 ../../include/conversation.php:579 +#: ../../Zotlabs/Module/Photos.php:1115 ../../include/conversation.php:595 msgctxt "title" msgid "Attending" msgstr "Zusagen" -#: ../../Zotlabs/Module/Photos.php:1115 ../../include/conversation.php:579 +#: ../../Zotlabs/Module/Photos.php:1115 ../../include/conversation.php:595 msgctxt "title" msgid "Not attending" msgstr "Absagen" -#: ../../Zotlabs/Module/Photos.php:1115 ../../include/conversation.php:579 +#: ../../Zotlabs/Module/Photos.php:1115 ../../include/conversation.php:595 msgctxt "title" msgid "Might attend" msgstr "Vielleicht" #: ../../Zotlabs/Module/Photos.php:1132 ../../Zotlabs/Module/Photos.php:1144 -#: ../../Zotlabs/Lib/ThreadItem.php:181 ../../Zotlabs/Lib/ThreadItem.php:193 -#: ../../include/conversation.php:1743 +#: ../../Zotlabs/Lib/ThreadItem.php:186 ../../Zotlabs/Lib/ThreadItem.php:198 +#: ../../include/conversation.php:1783 msgid "View all" msgstr "Alles anzeigen" -#: ../../Zotlabs/Module/Photos.php:1136 ../../Zotlabs/Lib/ThreadItem.php:185 -#: ../../include/channel.php:1182 ../../include/conversation.php:1767 -#: ../../include/taxonomy.php:403 +#: ../../Zotlabs/Module/Photos.php:1136 ../../Zotlabs/Lib/ThreadItem.php:190 +#: ../../include/channel.php:1190 ../../include/taxonomy.php:403 +#: ../../include/conversation.php:1807 msgctxt "noun" msgid "Like" msgid_plural "Likes" msgstr[0] "Gefällt mir" msgstr[1] "Gefällt mir" -#: ../../Zotlabs/Module/Photos.php:1141 ../../Zotlabs/Lib/ThreadItem.php:190 -#: ../../include/conversation.php:1770 +#: ../../Zotlabs/Module/Photos.php:1141 ../../Zotlabs/Lib/ThreadItem.php:195 +#: ../../include/conversation.php:1810 msgctxt "noun" msgid "Dislike" msgid_plural "Dislikes" @@ -3798,256 +4125,480 @@ msgstr[1] "Gefällt nicht" msgid "Photo Tools" msgstr "Fotowerkzeuge" -#: ../../Zotlabs/Module/Profiles.php:767 ../../include/channel.php:977 -msgid "Profile Image" -msgstr "Profilfoto:" +#: ../../Zotlabs/Module/Photos.php:1250 +msgid "In This Photo:" +msgstr "Auf diesem Foto:" -#: ../../Zotlabs/Module/Profiles.php:777 ../../include/nav.php:91 -#: ../../include/channel.php:959 -msgid "Edit Profiles" -msgstr "Profile bearbeiten" +#: ../../Zotlabs/Module/Photos.php:1255 +msgid "Map" +msgstr "Karte" -#: ../../Zotlabs/Module/Notify.php:57 -#: ../../Zotlabs/Module/Notifications.php:98 -msgid "No more system notifications." -msgstr "Keine System-Benachrichtigungen mehr." +#: ../../Zotlabs/Module/Photos.php:1263 ../../Zotlabs/Lib/ThreadItem.php:398 +msgctxt "noun" +msgid "Likes" +msgstr "Gefällt mir" -#: ../../Zotlabs/Module/Notify.php:61 -#: ../../Zotlabs/Module/Notifications.php:102 -msgid "System Notifications" -msgstr "System-Benachrichtigungen" +#: ../../Zotlabs/Module/Photos.php:1264 ../../Zotlabs/Lib/ThreadItem.php:399 +msgctxt "noun" +msgid "Dislikes" +msgstr "Gefällt nicht" -#: ../../Zotlabs/Module/Match.php:26 -msgid "Profile Match" -msgstr "Profil-Übereinstimmungen" +#: ../../Zotlabs/Module/Photos.php:1269 ../../Zotlabs/Lib/ThreadItem.php:404 +#: ../../include/acl_selectors.php:210 +msgid "Close" +msgstr "Schließen" -#: ../../Zotlabs/Module/Match.php:35 -msgid "No keywords to match. Please add keywords to your default profile." -msgstr "Keine Schlüsselwörter für den Abgleich gefunden. Bitte füge Schlüsselwörter zu Deinem Standardprofil hinzu." +#: ../../Zotlabs/Module/Photos.php:1343 +msgid "View Album" +msgstr "Album ansehen" -#: ../../Zotlabs/Module/Match.php:67 -msgid "is interested in:" -msgstr "interessiert sich für:" +#: ../../Zotlabs/Module/Photos.php:1354 ../../Zotlabs/Module/Photos.php:1367 +#: ../../Zotlabs/Module/Photos.php:1368 +msgid "Recent Photos" +msgstr "Neueste Fotos" -#: ../../Zotlabs/Module/Match.php:74 -msgid "No matches" -msgstr "Keine Übereinstimmungen" +#: ../../Zotlabs/Module/Setup.php:176 +msgid "$Projectname Server - Setup" +msgstr "$Projectname Server-Einrichtung" -#: ../../Zotlabs/Module/Api.php:60 ../../Zotlabs/Module/Api.php:81 -msgid "Authorize application connection" -msgstr "Zugriff für die Anwendung autorisieren" +#: ../../Zotlabs/Module/Setup.php:180 +msgid "Could not connect to database." +msgstr "Kann nicht mit der Datenbank verbinden." -#: ../../Zotlabs/Module/Api.php:61 -msgid "Return to your app and insert this Security Code:" -msgstr "Gehen Sie zu Ihrer App zurück und tragen Sie diesen Sicherheitscode ein:" - -#: ../../Zotlabs/Module/Api.php:71 -msgid "Please login to continue." -msgstr "Zum Weitermachen, bitte einloggen." - -#: ../../Zotlabs/Module/Api.php:83 +#: ../../Zotlabs/Module/Setup.php:184 msgid "" -"Do you want to authorize this application to access your posts and contacts," -" and/or create new posts for you?" -msgstr "Möchtest Du dieser Anwendung erlauben, Deine Nachrichten und Kontakte abzurufen und/oder neue Nachrichten für Dich zu erstellen?" +"Could not connect to specified site URL. Possible SSL certificate or DNS " +"issue." +msgstr "Konnte die angegebene Webseiten-URL nicht erreichen. Möglicherweise ein Problem mit dem SSL-Zertifikat oder dem DNS." -#: ../../Zotlabs/Module/Events.php:25 -msgid "Calendar entries imported." -msgstr "Kalendereinträge wurden importiert." +#: ../../Zotlabs/Module/Setup.php:191 +msgid "Could not create table." +msgstr "Konnte Tabelle nicht erstellen." -#: ../../Zotlabs/Module/Events.php:27 -msgid "No calendar entries found." -msgstr "Keine Kalendereinträge gefunden." +#: ../../Zotlabs/Module/Setup.php:196 +msgid "Your site database has been installed." +msgstr "Die Datenbank Deines Hubs wurde installiert." -#: ../../Zotlabs/Module/Events.php:104 -msgid "Event can not end before it has started." -msgstr "Termin-Ende liegt vor dem Beginn." - -#: ../../Zotlabs/Module/Events.php:106 ../../Zotlabs/Module/Events.php:115 -#: ../../Zotlabs/Module/Events.php:135 -msgid "Unable to generate preview." -msgstr "Vorschau konnte nicht erzeugt werden." - -#: ../../Zotlabs/Module/Events.php:113 -msgid "Event title and start time are required." -msgstr "Titel und Startzeit des Termins sind erforderlich." - -#: ../../Zotlabs/Module/Events.php:133 ../../Zotlabs/Module/Events.php:258 -msgid "Event not found." -msgstr "Termin nicht gefunden." - -#: ../../Zotlabs/Module/Events.php:452 -msgid "Edit event title" -msgstr "Termintitel bearbeiten" - -#: ../../Zotlabs/Module/Events.php:452 -msgid "Event title" -msgstr "Termintitel" - -#: ../../Zotlabs/Module/Events.php:454 -msgid "Categories (comma-separated list)" -msgstr "Kategorien (Kommagetrennte Liste)" - -#: ../../Zotlabs/Module/Events.php:455 -msgid "Edit Category" -msgstr "Kategorie bearbeiten" - -#: ../../Zotlabs/Module/Events.php:455 -msgid "Category" -msgstr "Kategorie" - -#: ../../Zotlabs/Module/Events.php:458 -msgid "Edit start date and time" -msgstr "Startdatum und -zeit bearbeiten" - -#: ../../Zotlabs/Module/Events.php:458 -msgid "Start date and time" -msgstr "Startdatum und -zeit" - -#: ../../Zotlabs/Module/Events.php:459 ../../Zotlabs/Module/Events.php:462 -msgid "Finish date and time are not known or not relevant" -msgstr "Enddatum und -zeit sind unbekannt oder irrelevant" - -#: ../../Zotlabs/Module/Events.php:461 -msgid "Edit finish date and time" -msgstr "Enddatum und -zeit bearbeiten" - -#: ../../Zotlabs/Module/Events.php:461 -msgid "Finish date and time" -msgstr "Enddatum und -zeit" - -#: ../../Zotlabs/Module/Events.php:463 ../../Zotlabs/Module/Events.php:464 -msgid "Adjust for viewer timezone" -msgstr "An die Zeitzone des Betrachters anpassen" - -#: ../../Zotlabs/Module/Events.php:463 +#: ../../Zotlabs/Module/Setup.php:200 msgid "" -"Important for events that happen in a particular place. Not practical for " -"global holidays." -msgstr "Wichtig für Veranstaltungen die an bestimmten Orten stattfinden. Nicht sinnvoll für globale Feiertage / Ferien." +"You may need to import the file \"install/schema_xxx.sql\" manually using a " +"database client." +msgstr "Möglicherweise musst Du die Datei install/schema_xxx.sql manuell mit Hilfe eines Datenkbank-Clients importieren." -#: ../../Zotlabs/Module/Events.php:465 -msgid "Edit Description" -msgstr "Beschreibung bearbeiten" +#: ../../Zotlabs/Module/Setup.php:201 ../../Zotlabs/Module/Setup.php:263 +#: ../../Zotlabs/Module/Setup.php:745 +msgid "Please see the file \"install/INSTALL.txt\"." +msgstr "Lies die Datei \"install/INSTALL.txt\"." -#: ../../Zotlabs/Module/Events.php:467 -msgid "Edit Location" -msgstr "Ort bearbeiten" +#: ../../Zotlabs/Module/Setup.php:260 +msgid "System check" +msgstr "Systemprüfung" -#: ../../Zotlabs/Module/Events.php:470 ../../Zotlabs/Module/Events.php:472 -msgid "Share this event" -msgstr "Den Termin teilen" +#: ../../Zotlabs/Module/Setup.php:265 +msgid "Check again" +msgstr "Nochmal prüfen" -#: ../../Zotlabs/Module/Events.php:474 ../../include/conversation.php:1263 -msgid "Permission settings" -msgstr "Berechtigungs-Einstellungen" +#: ../../Zotlabs/Module/Setup.php:287 +msgid "Database connection" +msgstr "Datenbankverbindung" -#: ../../Zotlabs/Module/Events.php:485 -msgid "Advanced Options" -msgstr "Weitere Optionen" +#: ../../Zotlabs/Module/Setup.php:288 +msgid "" +"In order to install $Projectname we need to know how to connect to your " +"database." +msgstr "Um $Projectname zu installieren, müssen wir wissen, wie wir eine Verbindung zu Deiner Datenbank aufbauen können." -#: ../../Zotlabs/Module/Events.php:597 ../../Zotlabs/Module/Cal.php:259 -msgid "l, F j" -msgstr "l, j. F" +#: ../../Zotlabs/Module/Setup.php:289 +msgid "" +"Please contact your hosting provider or site administrator if you have " +"questions about these settings." +msgstr "Bitte kontaktiere Deinen Hosting-Provider oder Administrator, falls Du Fragen zu diesen Einstellungen hast." -#: ../../Zotlabs/Module/Events.php:619 -msgid "Edit event" -msgstr "Termin bearbeiten" +#: ../../Zotlabs/Module/Setup.php:290 +msgid "" +"The database you specify below should already exist. If it does not, please " +"create it before continuing." +msgstr "Die Datenbank, die Du weiter unten angibst, sollte bereits existieren. Sollte das noch nicht der Fall sein, erzeuge sie bitte bevor Du fortfährst." -#: ../../Zotlabs/Module/Events.php:621 -msgid "Delete event" -msgstr "Termin löschen" +#: ../../Zotlabs/Module/Setup.php:294 +msgid "Database Server Name" +msgstr "Datenbankservername" -#: ../../Zotlabs/Module/Events.php:646 ../../Zotlabs/Module/Cal.php:308 -#: ../../include/text.php:1762 -msgid "Link to Source" -msgstr "Link zur Quelle" +#: ../../Zotlabs/Module/Setup.php:294 +msgid "Default is 127.0.0.1" +msgstr "Standard ist 127.0.0.1" -#: ../../Zotlabs/Module/Events.php:655 -msgid "calendar" -msgstr "Kalender" +#: ../../Zotlabs/Module/Setup.php:295 +msgid "Database Port" +msgstr "Datenbankport" -#: ../../Zotlabs/Module/Events.php:674 ../../Zotlabs/Module/Cal.php:331 -msgid "Edit Event" -msgstr "Termin bearbeiten" +#: ../../Zotlabs/Module/Setup.php:295 +msgid "Communication port number - use 0 for default" +msgstr "Port-Nummer für die Kommunikation – verwende 0 für die Standardeinstellung" -#: ../../Zotlabs/Module/Events.php:674 ../../Zotlabs/Module/Cal.php:331 -msgid "Create Event" -msgstr "Termin anlegen" +#: ../../Zotlabs/Module/Setup.php:296 +msgid "Database Login Name" +msgstr "Datenbank-Benutzername" -#: ../../Zotlabs/Module/Events.php:675 ../../Zotlabs/Module/Events.php:684 -#: ../../Zotlabs/Module/Cal.php:332 ../../Zotlabs/Module/Cal.php:339 -#: ../../Zotlabs/Module/Photos.php:940 -msgid "Previous" -msgstr "Voriges" +#: ../../Zotlabs/Module/Setup.php:297 +msgid "Database Login Password" +msgstr "Datenbank-Passwort" -#: ../../Zotlabs/Module/Events.php:676 ../../Zotlabs/Module/Events.php:685 -#: ../../Zotlabs/Module/Setup.php:272 ../../Zotlabs/Module/Cal.php:333 -#: ../../Zotlabs/Module/Cal.php:340 ../../Zotlabs/Module/Photos.php:949 -msgid "Next" -msgstr "Nächste" +#: ../../Zotlabs/Module/Setup.php:298 +msgid "Database Name" +msgstr "Datenbankname" -#: ../../Zotlabs/Module/Events.php:677 ../../Zotlabs/Module/Cal.php:334 -msgid "Export" -msgstr "Exportieren" +#: ../../Zotlabs/Module/Setup.php:299 +msgid "Database Type" +msgstr "Datenbanktyp" -#: ../../Zotlabs/Module/Events.php:681 -msgid "Month" -msgstr "Monat" +#: ../../Zotlabs/Module/Setup.php:301 ../../Zotlabs/Module/Setup.php:347 +msgid "Site administrator email address" +msgstr "E-Mail Adresse des Seiten-Administrators" -#: ../../Zotlabs/Module/Events.php:682 -msgid "Week" -msgstr "Woche" +#: ../../Zotlabs/Module/Setup.php:301 ../../Zotlabs/Module/Setup.php:347 +msgid "" +"Your account email address must match this in order to use the web admin " +"panel." +msgstr "Die E-Mail-Adresse Deines Accounts muss dieser Adresse entsprechen, damit Du Zugriff zur Administrations-Seite erhältst." -#: ../../Zotlabs/Module/Events.php:683 -msgid "Day" -msgstr "Tag" +#: ../../Zotlabs/Module/Setup.php:302 ../../Zotlabs/Module/Setup.php:349 +msgid "Website URL" +msgstr "Webseiten-URL" -#: ../../Zotlabs/Module/Events.php:686 ../../Zotlabs/Module/Cal.php:341 -msgid "Today" -msgstr "Heute" +#: ../../Zotlabs/Module/Setup.php:302 ../../Zotlabs/Module/Setup.php:349 +msgid "Please use SSL (https) URL if available." +msgstr "Nutze wenn möglich eine SSL-URL (https)." -#: ../../Zotlabs/Module/Events.php:717 -msgid "Event removed" -msgstr "Termin gelöscht" +#: ../../Zotlabs/Module/Setup.php:303 ../../Zotlabs/Module/Setup.php:353 +msgid "Please select a default timezone for your website" +msgstr "Standard-Zeitzone für Deinen Server" -#: ../../Zotlabs/Module/Events.php:720 -msgid "Failed to remove event" -msgstr "Termin konnte nicht gelöscht werden" +#: ../../Zotlabs/Module/Setup.php:336 +msgid "Site settings" +msgstr "Seiteneinstellungen" -#: ../../Zotlabs/Module/Item.php:180 -msgid "Unable to locate original post." -msgstr "Originalbeitrag nicht gefunden." +#: ../../Zotlabs/Module/Setup.php:392 +msgid "PHP version 5.5 or greater is required." +msgstr "PHP-Version 5.5 oder höher ist erforderlich." -#: ../../Zotlabs/Module/Item.php:433 -msgid "Empty post discarded." -msgstr "Leeren Beitrag verworfen." +#: ../../Zotlabs/Module/Setup.php:393 +msgid "PHP version" +msgstr "PHP-Version" -#: ../../Zotlabs/Module/Item.php:473 -msgid "Executable content type not permitted to this channel." -msgstr "Ausführbarer Content-Typ ist für diesen Kanal nicht freigegeben." +#: ../../Zotlabs/Module/Setup.php:409 +msgid "Could not find a command line version of PHP in the web server PATH." +msgstr "Konnte die Kommandozeilen-Version von PHP nicht im PATH des Web-Servers finden." -#: ../../Zotlabs/Module/Item.php:858 -msgid "Duplicate post suppressed." -msgstr "Doppelter Beitrag unterdrückt." +#: ../../Zotlabs/Module/Setup.php:410 +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 "Ohne Kommandozeilen-Version von PHP auf dem Server wirst Du nicht in der Lage sein, Hintergrundprozesse via cron auszuführen." -#: ../../Zotlabs/Module/Item.php:991 -msgid "System error. Post not saved." -msgstr "Systemfehler. Beitrag nicht gespeichert." +#: ../../Zotlabs/Module/Setup.php:414 +msgid "PHP executable path" +msgstr "PHP-Pfad zu ausführbarer Datei" -#: ../../Zotlabs/Module/Item.php:1112 -msgid "Unable to obtain post information from database." -msgstr "Beitragsinformationen können nicht aus der Datenbank abgerufen werden." +#: ../../Zotlabs/Module/Setup.php:414 +msgid "" +"Enter full path to php executable. You can leave this blank to continue the " +"installation." +msgstr "Gib den vollen Pfad zum PHP-Interpreter an. Du kannst dieses Feld frei lassen und mit der Installation fortfahren." -#: ../../Zotlabs/Module/Item.php:1119 +#: ../../Zotlabs/Module/Setup.php:419 +msgid "Command line PHP" +msgstr "PHP-Befehlszeile" + +#: ../../Zotlabs/Module/Setup.php:429 +msgid "" +"Unable to check command line PHP, as shell_exec() is disabled. This is " +"required." +msgstr "Prüfung auf Kommandozeilen-PHP fehlgeschlagen, da shell_exec() deaktiviert ist. Dies wird aber benötigt." + +#: ../../Zotlabs/Module/Setup.php:432 +msgid "" +"The command line version of PHP on your system does not have " +"\"register_argc_argv\" enabled." +msgstr "Bei der Kommandozeilen-Version von PHP auf Deinem System ist \"register_argc_argv\" nicht aktiviert." + +#: ../../Zotlabs/Module/Setup.php:433 +msgid "This is required for message delivery to work." +msgstr "Das wird benötigt, damit die Auslieferung von Nachrichten funktioniert." + +#: ../../Zotlabs/Module/Setup.php:436 +msgid "PHP register_argc_argv" +msgstr "PHP register_argc_argv" + +#: ../../Zotlabs/Module/Setup.php:454 #, php-format -msgid "You have reached your limit of %1$.0f top level posts." -msgstr "Du hast die maximale Anzahl von %1$.0f Beiträgen erreicht." +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 "Die Maximalgröße für Uploads insgesamt liegt bei %s. Die Maximalgröße für eine Datei liegt bei %s. Es können maximal %d Dateien gleichzeitig hochgeladen werden." -#: ../../Zotlabs/Module/Item.php:1126 +#: ../../Zotlabs/Module/Setup.php:459 +msgid "You can adjust these settings in the server php.ini file." +msgstr "Du kannst diese Einstellungen in der php.ini - Datei des Servers anpassen." + +#: ../../Zotlabs/Module/Setup.php:461 +msgid "PHP upload limits" +msgstr "PHP-Hochladebeschränkungen" + +#: ../../Zotlabs/Module/Setup.php:484 +msgid "" +"Error: the \"openssl_pkey_new\" function on this system is not able to " +"generate encryption keys" +msgstr "Fehler: Die „openssl_pkey_new“-Funktion auf diesem System ist nicht in der Lage, Schlüssel für die Verschlüsselung zu erzeugen." + +#: ../../Zotlabs/Module/Setup.php:485 +msgid "" +"If running under Windows, please see " +"\"http://www.php.net/manual/en/openssl.installation.php\"." +msgstr "Wenn Du Windows verwendest, findest Du unter http://www.php.net/manual/en/openssl.installation.php eine Installationsanleitung." + +#: ../../Zotlabs/Module/Setup.php:488 +msgid "Generate encryption keys" +msgstr "Verschlüsselungsschlüssel erzeugen" + +#: ../../Zotlabs/Module/Setup.php:500 +msgid "libCurl PHP module" +msgstr "libCurl-PHP-Modul" + +#: ../../Zotlabs/Module/Setup.php:501 +msgid "GD graphics PHP module" +msgstr "GD-Grafik-PHP-Modul" + +#: ../../Zotlabs/Module/Setup.php:502 +msgid "OpenSSL PHP module" +msgstr "OpenSSL-PHP-Modul" + +#: ../../Zotlabs/Module/Setup.php:503 +msgid "PDO database PHP module" +msgstr "PDO-Datenbank-PHP-Modul" + +#: ../../Zotlabs/Module/Setup.php:504 +msgid "mb_string PHP module" +msgstr "mb_string-PHP-Modul" + +#: ../../Zotlabs/Module/Setup.php:505 +msgid "xml PHP module" +msgstr "xml-PHP-Modul" + +#: ../../Zotlabs/Module/Setup.php:509 ../../Zotlabs/Module/Setup.php:511 +msgid "Apache mod_rewrite module" +msgstr "Apache-mod_rewrite-Modul" + +#: ../../Zotlabs/Module/Setup.php:509 +msgid "" +"Error: Apache webserver mod-rewrite module is required but not installed." +msgstr "Fehler: Das Apache-Modul mod-rewrite wird benötigt, ist aber nicht installiert." + +#: ../../Zotlabs/Module/Setup.php:515 ../../Zotlabs/Module/Setup.php:518 +msgid "exec" +msgstr "exec" + +#: ../../Zotlabs/Module/Setup.php:515 +msgid "" +"Error: exec is required but is either not installed or has been disabled in " +"php.ini" +msgstr "Fehler: exec ist erforderlich, aber entweder nicht installiert oder wurde in der php.ini deaktiviert" + +#: ../../Zotlabs/Module/Setup.php:521 ../../Zotlabs/Module/Setup.php:524 +msgid "shell_exec" +msgstr "shell_exec" + +#: ../../Zotlabs/Module/Setup.php:521 +msgid "" +"Error: shell_exec is required but is either not installed or has been " +"disabled in php.ini" +msgstr "Fehler: shell_exec ist erforderlich, aber entweder nicht installiert oder wurde in der php.ini deaktiviert" + +#: ../../Zotlabs/Module/Setup.php:529 +msgid "Error: libCURL PHP module required but not installed." +msgstr "Fehler: Das PHP-Modul libCURL wird benötigt, ist aber nicht installiert." + +#: ../../Zotlabs/Module/Setup.php:533 +msgid "" +"Error: GD graphics PHP module with JPEG support required but not installed." +msgstr "Fehler: Das PHP-Modul GD-Grafik mit JPEG-Unterstützung wird benötigt, ist aber nicht installiert." + +#: ../../Zotlabs/Module/Setup.php:537 +msgid "Error: openssl PHP module required but not installed." +msgstr "Fehler: Das PHP-Modul openssl wird benötigt, ist aber nicht installiert." + +#: ../../Zotlabs/Module/Setup.php:541 +msgid "Error: PDO database PHP module required but not installed." +msgstr "Fehler: PDO-Datenbank-PHP-Modul ist erforderlich, aber nicht installiert." + +#: ../../Zotlabs/Module/Setup.php:545 +msgid "Error: mb_string PHP module required but not installed." +msgstr "Fehler: Das PHP-Modul mb_string wird benötigt, ist aber nicht installiert." + +#: ../../Zotlabs/Module/Setup.php:549 +msgid "Error: xml PHP module required for DAV but not installed." +msgstr "Fehler: Das xml-PHP-Modul wird für DAV benötigt, ist aber nicht installiert." + +#: ../../Zotlabs/Module/Setup.php:567 +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 "Der Installations-Assistent muss in der Lage sein, die Datei \".htconfig.php\" im Stammverzeichnis des Web-Servers anzulegen, ist er aber nicht." + +#: ../../Zotlabs/Module/Setup.php:568 +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 "Meist liegt das daran, dass der Nutzer, unter dem der Web-Server läuft, keine Schreibrechte in dem Verzeichnis hat – selbst wenn Du selbst das darfst." + +#: ../../Zotlabs/Module/Setup.php:569 +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 "Am Schluss dieses Vorgangs wird ein Text generiert, den Du unter dem Dateinamen .htconfig.php im Stammverzeichnis Deiner Hubzilla-Installation speichern musst." + +#: ../../Zotlabs/Module/Setup.php:570 +msgid "" +"You can alternatively skip this procedure and perform a manual installation." +" Please see the file \"install/INSTALL.txt\" for instructions." +msgstr "Alternativ kannst Du diesen Schritt überspringen und die Installation manuell vornehmen. Lies dazu die Datei install/INSTALL.txt." + +#: ../../Zotlabs/Module/Setup.php:573 +msgid ".htconfig.php is writable" +msgstr ".htconfig.php ist beschreibbar" + +#: ../../Zotlabs/Module/Setup.php:587 +msgid "" +"This software uses the Smarty3 template engine to render its web views. " +"Smarty3 compiles templates to PHP to speed up rendering." +msgstr "Diese Software verwendet die Smarty3 Template Engine, um Vorlagen für die Webdarstellung zu verarbeiten. Smarty3 übersetzt diese Vorlagen nach PHP, um die Darstellung zu beschleunigen." + +#: ../../Zotlabs/Module/Setup.php:588 #, php-format -msgid "You have reached your limit of %1$.0f webpages." -msgstr "Du hast die maximale Anzahl von %1$.0f Webseiten erreicht." +msgid "" +"In order to store these compiled templates, the web server needs to have " +"write access to the directory %s under the top level web folder." +msgstr "Um diese kompilierten Vorlagen speichern zu können, braucht der Web-Server Schreibzugriff auf das Verzeichnis %s unterhalb des Hubzilla-Stammverzeichnisses." + +#: ../../Zotlabs/Module/Setup.php:589 ../../Zotlabs/Module/Setup.php:610 +msgid "" +"Please ensure that the user that your web server runs as (e.g. www-data) has" +" write access to this folder." +msgstr "Bitte stelle sicher, dass der Nutzer, unter dem der Web-Server läuft (z.B. www-data), Schreibzugriff auf dieses Verzeichnis hat." + +#: ../../Zotlabs/Module/Setup.php:590 +#, 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 "Hinweis: Aus Sicherheitsgründen sollte der Web-Server nur auf %s Schreibrechte haben, nicht auf die Template-Dateien (.tpl), die das Verzeichnis enthält." + +#: ../../Zotlabs/Module/Setup.php:593 +#, php-format +msgid "%s is writable" +msgstr "%s ist beschreibbar" + +#: ../../Zotlabs/Module/Setup.php:609 +msgid "" +"This software uses the store directory to save uploaded files. The web " +"server needs to have write access to the store directory under the top level" +" web folder" +msgstr "Diese Software benutzt das Verzeichnis store, um hochgeladene Dateien zu speichern. Der Webserver benötigt Schreibrechte für dieses Verzeichnis direkt unterhalb des Web-Stammverzeichnisses." + +#: ../../Zotlabs/Module/Setup.php:613 +msgid "store is writable" +msgstr "store ist schreibbar" + +#: ../../Zotlabs/Module/Setup.php:646 +msgid "" +"SSL certificate cannot be validated. Fix certificate or disable https access" +" to this site." +msgstr "Das SSL-Zertifikat konnte nicht validiert werden. Korrigiere das Zertifikat oder deaktiviere den HTTPS-Zugriff auf diesen Server." + +#: ../../Zotlabs/Module/Setup.php:647 +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 "Wenn Du via HTTPS auf Deinen Server zugreifen möchtest, also Verbindungen über den Port 443 möglich sein sollen, ist ein SSL-Zertifikat einer Zertifizierungsstelle (CA) notwendig, das von den Browsern ohne Sicherheitsabfrage akzeptiert wird. Die Verwendung eines selbst signierten Zertifikates ist nicht möglich." + +#: ../../Zotlabs/Module/Setup.php:648 +msgid "" +"This restriction is incorporated because public posts from you may for " +"example contain references to images on your own hub." +msgstr "Diese Einschränkung wurde eingebaut, weil Deine öffentlichen Beiträge zum Beispiel Verweise auf Bilder auf Deinem eigenen Hub enthalten können." + +#: ../../Zotlabs/Module/Setup.php:649 +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 "Wenn Dein Zertifikat nicht von jedem Browser akzeptiert wird, erhalten die Mitglieder anderer $Projectname-Hubs (die mit korrekten Zertifikaten ausgestattet sind) Sicherheits-Warnmeldungen, obwohl sie gar nicht direkt auf Deinem Server unterwegs sind (zum Beispiel, wenn ein Bild aus einem Deiner Beiträge angezeigt wird)." + +#: ../../Zotlabs/Module/Setup.php:650 +msgid "" +"This can cause usability issues elsewhere (not just on your own site) so we " +"must insist on this requirement." +msgstr "Dies kann Probleme für andere Nutzer (nicht nur auf Deinem eigenen Server) verursachen, so dass wir auf dieser Forderung bestehen müssen." + +#: ../../Zotlabs/Module/Setup.php:651 +msgid "" +"Providers are available that issue free certificates which are browser-" +"valid." +msgstr "Es gibt einige Zertifizierungsstellen (CAs), bei denen solche Zertifikate kostenlos zu haben sind." + +#: ../../Zotlabs/Module/Setup.php:653 +msgid "" +"If you are confident that the certificate is valid and signed by a trusted " +"authority, check to see if you have failed to install an intermediate cert. " +"These are not normally required by browsers, but are required for server-to-" +"server communications." +msgstr "Wenn Du sicher bist, dass das Zertifikat gültig und von einer vertrauenswürdigen Zertifizierungsstelle signiert ist, prüfe auf ggf. noch zu installierende Zwischenzertifikate (intermediate). Diese werden nicht unbedingt von Browsern benötigt, aber sehr wohl für die Kommunikation zwischen Servern." + +#: ../../Zotlabs/Module/Setup.php:655 +msgid "SSL certificate validation" +msgstr "SSL Zertifikatverifizierung" + +#: ../../Zotlabs/Module/Setup.php:661 +msgid "" +"Url rewrite in .htaccess is not working. Check your server " +"configuration.Test: " +msgstr "Das Umschreiben von URLs (rewrite) per .htaccess funktioniert nicht. Bitte prüfe die Server-Konfiguration. Test:" + +#: ../../Zotlabs/Module/Setup.php:664 +msgid "Url rewrite is working" +msgstr "Url rewrite funktioniert" + +#: ../../Zotlabs/Module/Setup.php:678 +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 "Die Datenbank-Konfigurationsdatei „.htconfig.php“ konnte nicht geschrieben werden. Bitte verwende den unten angegebenen Text, um die Konfigurationsdatei im Stammverzeichnis des Webservers anzulegen." + +#: ../../Zotlabs/Module/Setup.php:702 +#: ../../extend/addon/addon/cdav/cdav.php:41 +#: ../../extend/addon/addon/rendezvous/rendezvous.php:352 +msgid "Errors encountered creating database tables." +msgstr "Fehler beim Anlegen der Datenbank-Tabellen aufgetreten." + +#: ../../Zotlabs/Module/Setup.php:743 +msgid "

        What next

        " +msgstr "

        Was als Nächstes

        " + +#: ../../Zotlabs/Module/Setup.php:744 +msgid "" +"IMPORTANT: You will need to [manually] setup a scheduled task for the " +"poller." +msgstr "WICHTIG: Du musst [manuell] einen Cronjob für den Poller einrichten." + +#: ../../Zotlabs/Module/Editpost.php:35 +msgid "Item is not editable" +msgstr "Element kann nicht bearbeitet werden." + +#: ../../Zotlabs/Module/Regdir.php:49 ../../Zotlabs/Module/Dirsearch.php:25 +msgid "This site is not a directory server" +msgstr "Diese Webseite ist kein Verzeichnisserver" #: ../../Zotlabs/Module/New_channel.php:140 msgid "Create Channel" @@ -4065,40 +4616,12 @@ msgid "" "or import an existing channel from another location." msgstr "oder importiere einen bestehenden Kanal von einem anderen Server." -#: ../../Zotlabs/Module/Ping.php:265 -msgid "sent you a private message" -msgstr "hat Dir eine private Nachricht geschickt" - -#: ../../Zotlabs/Module/Ping.php:313 -msgid "added your channel" -msgstr "hat deinen Kanal hinzugefügt" - -#: ../../Zotlabs/Module/Ping.php:323 -msgid "g A l F d" -msgstr "l, d. F, G:i \\U\\h\\r" - -#: ../../Zotlabs/Module/Ping.php:346 -msgid "[today]" -msgstr "[Heute]" - -#: ../../Zotlabs/Module/Ping.php:355 -msgid "posted an event" -msgstr "hat einen Termin veröffentlicht" - -#: ../../Zotlabs/Module/Notifications.php:30 -msgid "Invalid request identifier." -msgstr "Ungültiger Anfrage-Identifikator." - -#: ../../Zotlabs/Module/Notifications.php:39 -msgid "Discard" -msgstr "Verwerfen" - -#: ../../Zotlabs/Module/Notifications.php:103 ../../include/nav.php:196 +#: ../../Zotlabs/Module/Notifications.php:40 ../../include/nav.php:194 msgid "Mark all system notifications seen" msgstr "Markiere alle System-Benachrichtigungen als gesehen" #: ../../Zotlabs/Module/Poke.php:168 ../../Zotlabs/Lib/Apps.php:228 -#: ../../include/conversation.php:961 +#: ../../include/conversation.php:975 msgid "Poke" msgstr "Anstupsen" @@ -4126,423 +4649,285 @@ msgstr "Wähle, was Du mit dem/r Empfänger/in tun willst" msgid "Make this post private" msgstr "Diesen Beitrag privat machen" -#: ../../Zotlabs/Module/Setup.php:184 -msgid "$Projectname Server - Setup" -msgstr "$Projectname Server-Einrichtung" - -#: ../../Zotlabs/Module/Setup.php:188 -msgid "Could not connect to database." -msgstr "Kann nicht mit der Datenbank verbinden." - -#: ../../Zotlabs/Module/Setup.php:192 -msgid "" -"Could not connect to specified site URL. Possible SSL certificate or DNS " -"issue." -msgstr "Konnte die angegebene Webseiten-URL nicht erreichen. Möglicherweise ein Problem mit dem SSL-Zertifikat oder dem DNS." - -#: ../../Zotlabs/Module/Setup.php:199 -msgid "Could not create table." -msgstr "Konnte Tabelle nicht erstellen." - -#: ../../Zotlabs/Module/Setup.php:204 -msgid "Your site database has been installed." -msgstr "Die Datenbank Deines Hubs wurde installiert." - -#: ../../Zotlabs/Module/Setup.php:208 -msgid "" -"You may need to import the file \"install/schema_xxx.sql\" manually using a " -"database client." -msgstr "Möglicherweise musst Du die Datei install/schema_xxx.sql manuell mit Hilfe eines Datenkbank-Clients importieren." - -#: ../../Zotlabs/Module/Setup.php:209 ../../Zotlabs/Module/Setup.php:271 -#: ../../Zotlabs/Module/Setup.php:734 -msgid "Please see the file \"install/INSTALL.txt\"." -msgstr "Lies die Datei \"install/INSTALL.txt\"." - -#: ../../Zotlabs/Module/Setup.php:268 -msgid "System check" -msgstr "Systemprüfung" - -#: ../../Zotlabs/Module/Setup.php:273 -msgid "Check again" -msgstr "Nochmal prüfen" - -#: ../../Zotlabs/Module/Setup.php:295 -msgid "Database connection" -msgstr "Datenbankverbindung" - -#: ../../Zotlabs/Module/Setup.php:296 -msgid "" -"In order to install $Projectname we need to know how to connect to your " -"database." -msgstr "Um $Projectname zu installieren, müssen wir wissen, wie wir eine Verbindung zu Deiner Datenbank aufbauen können." - -#: ../../Zotlabs/Module/Setup.php:297 -msgid "" -"Please contact your hosting provider or site administrator if you have " -"questions about these settings." -msgstr "Bitte kontaktiere Deinen Hosting-Provider oder Administrator, falls Du Fragen zu diesen Einstellungen hast." - -#: ../../Zotlabs/Module/Setup.php:298 -msgid "" -"The database you specify below should already exist. If it does not, please " -"create it before continuing." -msgstr "Die Datenbank, die Du weiter unten angibst, sollte bereits existieren. Sollte das noch nicht der Fall sein, erzeuge sie bitte bevor Du fortfährst." - -#: ../../Zotlabs/Module/Setup.php:302 -msgid "Database Server Name" -msgstr "Datenbankservername" - -#: ../../Zotlabs/Module/Setup.php:302 -msgid "Default is 127.0.0.1" -msgstr "Standard ist 127.0.0.1" - -#: ../../Zotlabs/Module/Setup.php:303 -msgid "Database Port" -msgstr "Datenbankport" - -#: ../../Zotlabs/Module/Setup.php:303 -msgid "Communication port number - use 0 for default" -msgstr "Port-Nummer für die Kommunikation – verwende 0 für die Standardeinstellung" - -#: ../../Zotlabs/Module/Setup.php:304 -msgid "Database Login Name" -msgstr "Datenbank-Benutzername" - -#: ../../Zotlabs/Module/Setup.php:305 -msgid "Database Login Password" -msgstr "Datenbank-Passwort" - -#: ../../Zotlabs/Module/Setup.php:306 -msgid "Database Name" -msgstr "Datenbankname" - -#: ../../Zotlabs/Module/Setup.php:307 -msgid "Database Type" -msgstr "Datenbanktyp" - -#: ../../Zotlabs/Module/Setup.php:309 ../../Zotlabs/Module/Setup.php:355 -msgid "Site administrator email address" -msgstr "E-Mail Adresse des Seiten-Administrators" - -#: ../../Zotlabs/Module/Setup.php:309 ../../Zotlabs/Module/Setup.php:355 -msgid "" -"Your account email address must match this in order to use the web admin " -"panel." -msgstr "Die E-Mail-Adresse Deines Accounts muss dieser Adresse entsprechen, damit Du Zugriff zur Administrations-Seite erhältst." - -#: ../../Zotlabs/Module/Setup.php:310 ../../Zotlabs/Module/Setup.php:357 -msgid "Website URL" -msgstr "Webseiten-URL" - -#: ../../Zotlabs/Module/Setup.php:310 ../../Zotlabs/Module/Setup.php:357 -msgid "Please use SSL (https) URL if available." -msgstr "Nutze wenn möglich eine SSL-URL (https)." - -#: ../../Zotlabs/Module/Setup.php:311 ../../Zotlabs/Module/Setup.php:361 -msgid "Please select a default timezone for your website" -msgstr "Standard-Zeitzone für Deinen Server" - -#: ../../Zotlabs/Module/Setup.php:344 -msgid "Site settings" -msgstr "Seiteneinstellungen" - -#: ../../Zotlabs/Module/Setup.php:400 -msgid "PHP version 5.5 or greater is required." -msgstr "PHP-Version 5.5 oder höher ist erforderlich." - -#: ../../Zotlabs/Module/Setup.php:401 -msgid "PHP version" -msgstr "PHP-Version" - -#: ../../Zotlabs/Module/Setup.php:416 -msgid "Could not find a command line version of PHP in the web server PATH." -msgstr "Konnte die Kommandozeilen-Version von PHP nicht im PATH des Web-Servers finden." - -#: ../../Zotlabs/Module/Setup.php:417 -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 "Ohne Kommandozeilen-Version von PHP auf dem Server wirst Du nicht in der Lage sein, Hintergrundprozesse via cron auszuführen." - -#: ../../Zotlabs/Module/Setup.php:421 -msgid "PHP executable path" -msgstr "PHP-Pfad zu ausführbarer Datei" - -#: ../../Zotlabs/Module/Setup.php:421 -msgid "" -"Enter full path to php executable. You can leave this blank to continue the " -"installation." -msgstr "Gib den vollen Pfad zum PHP-Interpreter an. Du kannst dieses Feld frei lassen und mit der Installation fortfahren." - -#: ../../Zotlabs/Module/Setup.php:426 -msgid "Command line PHP" -msgstr "PHP-Befehlszeile" - -#: ../../Zotlabs/Module/Setup.php:435 -msgid "" -"The command line version of PHP on your system does not have " -"\"register_argc_argv\" enabled." -msgstr "Bei der Kommandozeilen-Version von PHP auf Deinem System ist \"register_argc_argv\" nicht aktiviert." - -#: ../../Zotlabs/Module/Setup.php:436 -msgid "This is required for message delivery to work." -msgstr "Das wird benötigt, damit die Auslieferung von Nachrichten funktioniert." - -#: ../../Zotlabs/Module/Setup.php:439 -msgid "PHP register_argc_argv" -msgstr "PHP register_argc_argv" - -#: ../../Zotlabs/Module/Setup.php:457 -#, 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 "Die Maximalgröße für Uploads insgesamt liegt bei %s. Die Maximalgröße für eine Datei liegt bei %s. Es können maximal %d Dateien gleichzeitig hochgeladen werden." - -#: ../../Zotlabs/Module/Setup.php:462 -msgid "You can adjust these settings in the servers php.ini." -msgstr "Du kannst diese Einstellungen in der php.ini des Servers ändern." - -#: ../../Zotlabs/Module/Setup.php:464 -msgid "PHP upload limits" -msgstr "PHP-Hochladebeschränkungen" - -#: ../../Zotlabs/Module/Setup.php:487 -msgid "" -"Error: the \"openssl_pkey_new\" function on this system is not able to " -"generate encryption keys" -msgstr "Fehler: Die „openssl_pkey_new“-Funktion auf diesem System ist nicht in der Lage, Schlüssel für die Verschlüsselung zu erzeugen." - -#: ../../Zotlabs/Module/Setup.php:488 -msgid "" -"If running under Windows, please see " -"\"http://www.php.net/manual/en/openssl.installation.php\"." -msgstr "Wenn Du Windows verwendest, findest Du unter http://www.php.net/manual/en/openssl.installation.php eine Installationsanleitung." - -#: ../../Zotlabs/Module/Setup.php:491 -msgid "Generate encryption keys" -msgstr "Verschlüsselungsschlüssel erzeugen" - -#: ../../Zotlabs/Module/Setup.php:503 -msgid "libCurl PHP module" -msgstr "libCurl-PHP-Modul" - -#: ../../Zotlabs/Module/Setup.php:504 -msgid "GD graphics PHP module" -msgstr "GD-Grafik-PHP-Modul" - -#: ../../Zotlabs/Module/Setup.php:505 -msgid "OpenSSL PHP module" -msgstr "OpenSSL-PHP-Modul" - -#: ../../Zotlabs/Module/Setup.php:506 -msgid "mysqli or postgres PHP module" -msgstr "mysqli oder postgres PHP-Modul" - -#: ../../Zotlabs/Module/Setup.php:507 -msgid "mb_string PHP module" -msgstr "mb_string-PHP-Modul" - -#: ../../Zotlabs/Module/Setup.php:508 -msgid "xml PHP module" -msgstr "xml-PHP-Modul" - -#: ../../Zotlabs/Module/Setup.php:512 ../../Zotlabs/Module/Setup.php:514 -msgid "Apache mod_rewrite module" -msgstr "Apache-mod_rewrite-Modul" - -#: ../../Zotlabs/Module/Setup.php:512 -msgid "" -"Error: Apache webserver mod-rewrite module is required but not installed." -msgstr "Fehler: Das Apache-Modul mod-rewrite wird benötigt, ist aber nicht installiert." - -#: ../../Zotlabs/Module/Setup.php:518 ../../Zotlabs/Module/Setup.php:521 -msgid "proc_open" -msgstr "proc_open" - -#: ../../Zotlabs/Module/Setup.php:518 -msgid "" -"Error: proc_open is required but is either not installed or has been " -"disabled in php.ini" -msgstr "Fehler: proc_open wird benötigt, ist aber entweder nicht installiert oder wurde in der php.ini deaktiviert" - -#: ../../Zotlabs/Module/Setup.php:526 -msgid "Error: libCURL PHP module required but not installed." -msgstr "Fehler: Das PHP-Modul libCURL wird benötigt, ist aber nicht installiert." - -#: ../../Zotlabs/Module/Setup.php:530 -msgid "" -"Error: GD graphics PHP module with JPEG support required but not installed." -msgstr "Fehler: Das PHP-Modul GD-Grafik mit JPEG-Unterstützung wird benötigt, ist aber nicht installiert." - -#: ../../Zotlabs/Module/Setup.php:534 -msgid "Error: openssl PHP module required but not installed." -msgstr "Fehler: Das PHP-Modul openssl wird benötigt, ist aber nicht installiert." - -#: ../../Zotlabs/Module/Setup.php:538 -msgid "" -"Error: mysqli or postgres PHP module required but neither are installed." -msgstr "Fehler: Das mysqli oder postgres PHP-Modul ist erforderlich, aber keines von beiden ist installiert." - -#: ../../Zotlabs/Module/Setup.php:542 -msgid "Error: mb_string PHP module required but not installed." -msgstr "Fehler: Das PHP-Modul mb_string wird benötigt, ist aber nicht installiert." - -#: ../../Zotlabs/Module/Setup.php:546 -msgid "Error: xml PHP module required for DAV but not installed." -msgstr "Fehler: Das xml-PHP-Modul wird für DAV benötigt, ist aber nicht installiert." - -#: ../../Zotlabs/Module/Setup.php:564 -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 "Der Installations-Assistent muss in der Lage sein, die Datei \".htconfig.php\" im Stammverzeichnis des Web-Servers anzulegen, ist er aber nicht." - -#: ../../Zotlabs/Module/Setup.php:565 -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 "Meist liegt das daran, dass der Nutzer, unter dem der Web-Server läuft, keine Schreibrechte in dem Verzeichnis hat – selbst wenn Du selbst das darfst." - -#: ../../Zotlabs/Module/Setup.php:566 -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 "Am Schluss dieses Vorgangs wird ein Text generiert, den Du unter dem Dateinamen .htconfig.php im Stammverzeichnis Deiner Hubzilla-Installation speichern musst." - -#: ../../Zotlabs/Module/Setup.php:567 -msgid "" -"You can alternatively skip this procedure and perform a manual installation." -" Please see the file \"install/INSTALL.txt\" for instructions." -msgstr "Alternativ kannst Du diesen Schritt überspringen und die Installation manuell vornehmen. Lies dazu die Datei install/INSTALL.txt." - -#: ../../Zotlabs/Module/Setup.php:570 -msgid ".htconfig.php is writable" -msgstr ".htconfig.php ist beschreibbar" - -#: ../../Zotlabs/Module/Setup.php:584 -msgid "" -"Red uses the Smarty3 template engine to render its web views. Smarty3 " -"compiles templates to PHP to speed up rendering." -msgstr "$Projectname verwendet Smarty3 um Vorlagen für die Webdarstellung zu übersetzen. Smarty3 übersetzt diese Vorlagen nach PHP, um die Darstellung zu beschleunigen." - -#: ../../Zotlabs/Module/Setup.php:585 -#, php-format -msgid "" -"In order to store these compiled templates, the web server needs to have " -"write access to the directory %s under the top level web folder." -msgstr "Um diese kompilierten Vorlagen speichern zu können, braucht der Web-Server Schreibzugriff auf das Verzeichnis %s unterhalb des Hubzilla-Stammverzeichnisses." - -#: ../../Zotlabs/Module/Setup.php:586 ../../Zotlabs/Module/Setup.php:607 -msgid "" -"Please ensure that the user that your web server runs as (e.g. www-data) has" -" write access to this folder." -msgstr "Bitte stelle sicher, dass der Nutzer, unter dem der Web-Server läuft (z.B. www-data), Schreibzugriff auf dieses Verzeichnis hat." - -#: ../../Zotlabs/Module/Setup.php:587 -#, 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 "Hinweis: Aus Sicherheitsgründen sollte der Web-Server nur auf %s Schreibrechte haben, nicht auf die Template-Dateien (.tpl), die das Verzeichnis enthält." - -#: ../../Zotlabs/Module/Setup.php:590 -#, php-format -msgid "%s is writable" -msgstr "%s ist beschreibbar" - -#: ../../Zotlabs/Module/Setup.php:606 -msgid "" -"This software 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 "Diese Software benutzt das Verzeichnis store, um hochgeladene Dateien zu speichern. Der Web-Server benötigt Schreibrechte für dieses Verzeichnis direkt unterhalb des Hubzilla-Stammverzeichnisses" - -#: ../../Zotlabs/Module/Setup.php:610 -msgid "store is writable" -msgstr "store ist schreibbar" - -#: ../../Zotlabs/Module/Setup.php:643 -msgid "" -"SSL certificate cannot be validated. Fix certificate or disable https access" -" to this site." -msgstr "Das SSL-Zertifikat konnte nicht validiert werden. Korrigiere das Zertifikat oder deaktiviere den HTTPS-Zugriff auf diesen Server." - -#: ../../Zotlabs/Module/Setup.php:644 -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 "Wenn Du via HTTPS auf Deinen Server zugreifen möchtest, also Verbindungen über den Port 443 möglich sein sollen, ist ein SSL-Zertifikat einer Zertifizierungsstelle (CA) notwendig, das von den Browsern ohne Sicherheitsabfrage akzeptiert wird. Die Verwendung eines selbst signierten Zertifikates ist nicht möglich." - -#: ../../Zotlabs/Module/Setup.php:645 -msgid "" -"This restriction is incorporated because public posts from you may for " -"example contain references to images on your own hub." -msgstr "Diese Einschränkung wurde eingebaut, weil Deine öffentlichen Beiträge zum Beispiel Verweise auf Bilder auf Deinem eigenen Hub enthalten können." - -#: ../../Zotlabs/Module/Setup.php:646 -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 "Wenn Dein Zertifikat nicht von jedem Browser akzeptiert wird, erhalten die Mitglieder anderer $Projectname-Hubs (die mit korrekten Zertifikaten ausgestattet sind) Sicherheits-Warnmeldungen, obwohl sie gar nicht direkt auf Deinem Server unterwegs sind (zum Beispiel, wenn ein Bild aus einem Deiner Beiträge angezeigt wird)." - -#: ../../Zotlabs/Module/Setup.php:647 -msgid "" -"This can cause usability issues elsewhere (not just on your own site) so we " -"must insist on this requirement." -msgstr "Dies kann Probleme für andere Nutzer (nicht nur auf Deinem eigenen Server) verursachen, so dass wir auf dieser Forderung bestehen müssen." - -#: ../../Zotlabs/Module/Setup.php:648 -msgid "" -"Providers are available that issue free certificates which are browser-" -"valid." -msgstr "Es gibt einige Zertifizierungsstellen (CAs), bei denen solche Zertifikate kostenlos zu haben sind." - -#: ../../Zotlabs/Module/Setup.php:650 -msgid "" -"If you are confident that the certificate is valid and signed by a trusted " -"authority, check to see if you have failed to install an intermediate cert. " -"These are not normally required by browsers, but are required for server-to-" -"server communications." -msgstr "Wenn Du sicher bist, dass das Zertifikat gültig und von einer vertrauenswürdigen Zertifizierungsstelle signiert ist, prüfe auf ggf. noch zu installierende Zwischenzertifikate (intermediate). Diese werden nicht unbedingt von Browsern benötigt, aber sehr wohl für die Kommunikation zwischen Servern." - -#: ../../Zotlabs/Module/Setup.php:653 -msgid "SSL certificate validation" -msgstr "SSL Zertifikatverifizierung" - -#: ../../Zotlabs/Module/Setup.php:659 -msgid "" -"Url rewrite in .htaccess is not working. Check your server " -"configuration.Test: " -msgstr "Das Umschreiben von URLs (rewrite) per .htaccess funktioniert nicht. Bitte prüfe die Server-Konfiguration. Test:" - -#: ../../Zotlabs/Module/Setup.php:662 -msgid "Url rewrite is working" -msgstr "Url rewrite funktioniert" - -#: ../../Zotlabs/Module/Setup.php:671 -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 "Die Datenbank-Konfigurationsdatei „.htconfig.php“ konnte nicht geschrieben werden. Bitte verwende den unten angegebenen Text, um die Konfigurationsdatei im Stammverzeichnis des Webservers anzulegen." - -#: ../../Zotlabs/Module/Setup.php:695 -msgid "Errors encountered creating database tables." -msgstr "Fehler beim Anlegen der Datenbank-Tabellen aufgetreten." - -#: ../../Zotlabs/Module/Setup.php:732 -msgid "

        What next

        " -msgstr "

        Was als Nächstes

        " - -#: ../../Zotlabs/Module/Setup.php:733 -msgid "" -"IMPORTANT: You will need to [manually] setup a scheduled task for the " -"poller." -msgstr "WICHTIG: Du musst [manuell] einen Cronjob für den Poller einrichten." +#: ../../Zotlabs/Module/Profiles.php:24 ../../Zotlabs/Module/Profiles.php:183 +#: ../../Zotlabs/Module/Profiles.php:240 ../../Zotlabs/Module/Profiles.php:619 +#: ../../extend/addon/addon/friendica/dfrn_confirm.php:62 +msgid "Profile not found." +msgstr "Profil nicht gefunden." + +#: ../../Zotlabs/Module/Profiles.php:44 +msgid "Profile deleted." +msgstr "Profil gelöscht." + +#: ../../Zotlabs/Module/Profiles.php:68 ../../Zotlabs/Module/Profiles.php:104 +msgid "Profile-" +msgstr "Profil-" + +#: ../../Zotlabs/Module/Profiles.php:89 ../../Zotlabs/Module/Profiles.php:126 +msgid "New profile created." +msgstr "Neues Profil erstellt." + +#: ../../Zotlabs/Module/Profiles.php:110 +msgid "Profile unavailable to clone." +msgstr "Profil kann nicht geklont werden." + +#: ../../Zotlabs/Module/Profiles.php:145 +msgid "Profile unavailable to export." +msgstr "Dieses Profil kann nicht exportiert werden." + +#: ../../Zotlabs/Module/Profiles.php:250 +msgid "Profile Name is required." +msgstr "Profil-Name erforderlich." + +#: ../../Zotlabs/Module/Profiles.php:421 +msgid "Marital Status" +msgstr "Familienstand" + +#: ../../Zotlabs/Module/Profiles.php:425 +msgid "Romantic Partner" +msgstr "Romantische Partner" + +#: ../../Zotlabs/Module/Profiles.php:429 ../../Zotlabs/Module/Profiles.php:730 +msgid "Likes" +msgstr "Gefällt" + +#: ../../Zotlabs/Module/Profiles.php:433 ../../Zotlabs/Module/Profiles.php:731 +msgid "Dislikes" +msgstr "Gefällt nicht" + +#: ../../Zotlabs/Module/Profiles.php:437 ../../Zotlabs/Module/Profiles.php:738 +msgid "Work/Employment" +msgstr "Arbeit/Anstellung" + +#: ../../Zotlabs/Module/Profiles.php:440 +msgid "Religion" +msgstr "Religion" + +#: ../../Zotlabs/Module/Profiles.php:444 +msgid "Political Views" +msgstr "Politische Ansichten" + +#: ../../Zotlabs/Module/Profiles.php:448 +#: ../../extend/addon/addon/openid/MysqlProvider.php:74 +msgid "Gender" +msgstr "Geschlecht" + +#: ../../Zotlabs/Module/Profiles.php:452 +msgid "Sexual Preference" +msgstr "Sexuelle Orientierung" + +#: ../../Zotlabs/Module/Profiles.php:456 +msgid "Homepage" +msgstr "Webseite" + +#: ../../Zotlabs/Module/Profiles.php:460 +msgid "Interests" +msgstr "Hobbys/Interessen" + +#: ../../Zotlabs/Module/Profiles.php:554 +msgid "Profile updated." +msgstr "Profil aktualisiert." + +#: ../../Zotlabs/Module/Profiles.php:638 +msgid "Hide your connections list from viewers of this profile" +msgstr "Deine Verbindungen vor Betrachtern dieses Profils verbergen" + +#: ../../Zotlabs/Module/Profiles.php:680 +msgid "Edit Profile Details" +msgstr "Bearbeite Profil-Details" + +#: ../../Zotlabs/Module/Profiles.php:682 +msgid "View this profile" +msgstr "Dieses Profil ansehen" + +#: ../../Zotlabs/Module/Profiles.php:683 ../../Zotlabs/Module/Profiles.php:765 +#: ../../include/channel.php:983 +msgid "Edit visibility" +msgstr "Sichtbarkeit bearbeiten" + +#: ../../Zotlabs/Module/Profiles.php:684 +msgid "Profile Tools" +msgstr "Profilwerkzeuge" + +#: ../../Zotlabs/Module/Profiles.php:685 +msgid "Change cover photo" +msgstr "Titelbild ändern" + +#: ../../Zotlabs/Module/Profiles.php:686 ../../include/channel.php:954 +msgid "Change profile photo" +msgstr "Profilfoto ändern" + +#: ../../Zotlabs/Module/Profiles.php:687 +msgid "Create a new profile using these settings" +msgstr "Neues Profil anlegen und diese Einstellungen übernehmen" + +#: ../../Zotlabs/Module/Profiles.php:688 +msgid "Clone this profile" +msgstr "Dieses Profil klonen" + +#: ../../Zotlabs/Module/Profiles.php:689 +msgid "Delete this profile" +msgstr "Dieses Profil löschen" + +#: ../../Zotlabs/Module/Profiles.php:690 +msgid "Add profile things" +msgstr "Sachen zum Profil hinzufügen" + +#: ../../Zotlabs/Module/Profiles.php:691 ../../include/widgets.php:105 +#: ../../include/conversation.php:1585 +msgid "Personal" +msgstr "Persönlich" + +#: ../../Zotlabs/Module/Profiles.php:693 +msgid "Relation" +msgstr "Beziehung" + +#: ../../Zotlabs/Module/Profiles.php:694 ../../include/datetime.php:55 +msgid "Miscellaneous" +msgstr "Verschiedenes" + +#: ../../Zotlabs/Module/Profiles.php:696 +msgid "Import profile from file" +msgstr "Profil aus einer Datei importieren" + +#: ../../Zotlabs/Module/Profiles.php:697 +msgid "Export profile to file" +msgstr "Profil in eine Datei exportieren" + +#: ../../Zotlabs/Module/Profiles.php:698 +msgid "Your gender" +msgstr "Dein Geschlecht" + +#: ../../Zotlabs/Module/Profiles.php:699 +msgid "Marital status" +msgstr "Familienstand" + +#: ../../Zotlabs/Module/Profiles.php:700 +msgid "Sexual preference" +msgstr "Sexuelle Orientierung" + +#: ../../Zotlabs/Module/Profiles.php:703 +msgid "Profile name" +msgstr "Profilname" + +#: ../../Zotlabs/Module/Profiles.php:705 +msgid "This is your default profile." +msgstr "Das ist Dein Standardprofil." + +#: ../../Zotlabs/Module/Profiles.php:707 +msgid "Your full name" +msgstr "Dein voller Name" + +#: ../../Zotlabs/Module/Profiles.php:708 +msgid "Title/Description" +msgstr "Titel/Beschreibung" + +#: ../../Zotlabs/Module/Profiles.php:711 +msgid "Street address" +msgstr "Straße und Hausnummer" + +#: ../../Zotlabs/Module/Profiles.php:712 +msgid "Locality/City" +msgstr "Wohnort" + +#: ../../Zotlabs/Module/Profiles.php:713 +msgid "Region/State" +msgstr "Region/Bundesstaat" + +#: ../../Zotlabs/Module/Profiles.php:714 +msgid "Postal/Zip code" +msgstr "Postleitzahl" + +#: ../../Zotlabs/Module/Profiles.php:715 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1161 +msgid "Country" +msgstr "Land" + +#: ../../Zotlabs/Module/Profiles.php:720 +msgid "Who (if applicable)" +msgstr "Wer (falls anwendbar)" + +#: ../../Zotlabs/Module/Profiles.php:720 +msgid "Examples: cathy123, Cathy Williams, cathy@example.com" +msgstr "Beispiele: cathy123, Cathy Williams, cathy@example.com" + +#: ../../Zotlabs/Module/Profiles.php:721 +msgid "Since (date)" +msgstr "Seit (Datum)" + +#: ../../Zotlabs/Module/Profiles.php:724 +msgid "Tell us about yourself" +msgstr "Erzähle uns ein wenig von Dir" + +#: ../../Zotlabs/Module/Profiles.php:725 +#: ../../extend/addon/addon/openid/MysqlProvider.php:68 +msgid "Homepage URL" +msgstr "Homepage-URL" + +#: ../../Zotlabs/Module/Profiles.php:726 +msgid "Hometown" +msgstr "Heimatort" + +#: ../../Zotlabs/Module/Profiles.php:727 +msgid "Political views" +msgstr "Politische Ansichten" + +#: ../../Zotlabs/Module/Profiles.php:728 +msgid "Religious views" +msgstr "Religiöse Ansichten" + +#: ../../Zotlabs/Module/Profiles.php:729 +msgid "Keywords used in directory listings" +msgstr "Schlüsselwörter, die in Verzeichnis-Auflistungen verwendet werden" + +#: ../../Zotlabs/Module/Profiles.php:729 +msgid "Example: fishing photography software" +msgstr "Beispiel: Angeln Fotografie Software" + +#: ../../Zotlabs/Module/Profiles.php:732 +msgid "Musical interests" +msgstr "Musikalische Interessen" + +#: ../../Zotlabs/Module/Profiles.php:733 +msgid "Books, literature" +msgstr "Bücher, Literatur" + +#: ../../Zotlabs/Module/Profiles.php:734 +msgid "Television" +msgstr "Fernsehen" + +#: ../../Zotlabs/Module/Profiles.php:735 +msgid "Film/Dance/Culture/Entertainment" +msgstr "Film/Tanz/Kultur/Unterhaltung" + +#: ../../Zotlabs/Module/Profiles.php:736 +msgid "Hobbies/Interests" +msgstr "Hobbys/Interessen" + +#: ../../Zotlabs/Module/Profiles.php:737 +msgid "Love/Romance" +msgstr "Liebe/Romantik" + +#: ../../Zotlabs/Module/Profiles.php:739 +msgid "School/Education" +msgstr "Schule/Ausbildung" + +#: ../../Zotlabs/Module/Profiles.php:740 +msgid "Contact information and social networks" +msgstr "Kontaktinformation und soziale Netzwerke" + +#: ../../Zotlabs/Module/Profiles.php:741 +msgid "My other channels" +msgstr "Meine anderen Kanäle" + +#: ../../Zotlabs/Module/Profiles.php:761 ../../include/channel.php:979 +msgid "Profile Image" +msgstr "Profilfoto:" + +#: ../../Zotlabs/Module/Profiles.php:771 ../../include/channel.php:961 +#: ../../include/nav.php:91 +msgid "Edit Profiles" +msgstr "Profile bearbeiten" #: ../../Zotlabs/Module/Oexchange.php:27 msgid "Unable to find your hub." @@ -4552,26 +4937,6 @@ msgstr "Konnte Deinen Server nicht finden." msgid "Post successful." msgstr "Veröffentlichung erfolgreich." -#: ../../Zotlabs/Module/Profperm.php:34 ../../Zotlabs/Module/Profperm.php:63 -msgid "Invalid profile identifier." -msgstr "Ungültiger Profil-Identifikator" - -#: ../../Zotlabs/Module/Profperm.php:115 -msgid "Profile Visibility Editor" -msgstr "Profil-Sichtbarkeits-Editor" - -#: ../../Zotlabs/Module/Profperm.php:117 ../../include/channel.php:1274 -msgid "Profile" -msgstr "Profil" - -#: ../../Zotlabs/Module/Profperm.php:119 -msgid "Click on a contact to add or remove." -msgstr "Klicke auf einen Kontakt, um ihn hinzuzufügen oder zu entfernen." - -#: ../../Zotlabs/Module/Profperm.php:128 -msgid "Visible To" -msgstr "Sichtbar für" - #: ../../Zotlabs/Module/Pconfig.php:26 ../../Zotlabs/Module/Pconfig.php:59 msgid "This setting requires special processing and editing has been blocked." msgstr "Diese Einstellung erfordert eine besondere Verarbeitung und ist blockiert." @@ -4587,71 +4952,7 @@ msgid "" " to correctly use this feature." msgstr "Warnung: Einige Einstellungen können Deinen Kanal funktionsunfähig machen. Bitte verlasse diese Seite, es sei denn Du bist vertraut damit, wie dieses Feature korrekt verwendet wird." -#: ../../Zotlabs/Module/Apps.php:46 ../../include/nav.php:168 -#: ../../include/widgets.php:102 -msgid "Apps" -msgstr "Apps" - -#: ../../Zotlabs/Module/Siteinfo.php:19 -#, php-format -msgid "Version %s" -msgstr "Version %s" - -#: ../../Zotlabs/Module/Siteinfo.php:34 -msgid "Installed plugins/addons/apps:" -msgstr "Installierte Plugins/Addons/Apps" - -#: ../../Zotlabs/Module/Siteinfo.php:36 -msgid "No installed plugins/addons/apps" -msgstr "Keine installierten Plugins/Addons/Apps" - -#: ../../Zotlabs/Module/Siteinfo.php:49 -msgid "" -"This is a hub of $Projectname - a global cooperative network of " -"decentralized privacy enhanced websites." -msgstr "Dieser Hub ist Teil von $Projectname – ein globales, kooperatives Netzwerk aus dezentralen Websites, die Rücksicht auf Deine Privatsphäre nehmen." - -#: ../../Zotlabs/Module/Siteinfo.php:51 -msgid "Tag: " -msgstr "Schlagwort: " - -#: ../../Zotlabs/Module/Siteinfo.php:53 -msgid "Last background fetch: " -msgstr "Letzter Hintergrundabruf:" - -#: ../../Zotlabs/Module/Siteinfo.php:55 -msgid "Current load average: " -msgstr "Aktuelles Load Average:" - -#: ../../Zotlabs/Module/Siteinfo.php:58 -msgid "Running at web location" -msgstr "Erreichbar unter der Web-Adresse" - -#: ../../Zotlabs/Module/Siteinfo.php:59 -msgid "" -"Please visit hubzilla.org to learn more " -"about $Projectname." -msgstr "Bitte besuchen Sie hubzilla.org, um mehr über $Projectname zu erfahren." - -#: ../../Zotlabs/Module/Siteinfo.php:60 -msgid "Bug reports and issues: please visit" -msgstr "Probleme oder Fehler gefunden? Bitte besuche" - -#: ../../Zotlabs/Module/Siteinfo.php:62 -msgid "$projectname issues" -msgstr "$projectname-Bugtracker" - -#: ../../Zotlabs/Module/Siteinfo.php:63 -msgid "" -"Suggestions, praise, etc. - please email \"redmatrix\" at librelist - dot " -"com" -msgstr "Vorschläge, Lob, usw.: E-Mail an 'redmatrix' at librelist - dot - com" - -#: ../../Zotlabs/Module/Siteinfo.php:65 -msgid "Site Administrators" -msgstr "Administratoren" - -#: ../../Zotlabs/Module/Blocks.php:154 ../../include/text.php:2308 +#: ../../Zotlabs/Module/Blocks.php:154 ../../include/text.php:2270 msgid "Blocks" msgstr "Blöcke" @@ -4659,13 +4960,13 @@ msgstr "Blöcke" msgid "Block Title" msgstr "Titel des Blocks" -#: ../../Zotlabs/Module/Layouts.php:183 ../../include/text.php:2310 +#: ../../Zotlabs/Module/Layouts.php:183 ../../include/text.php:2272 msgid "Layouts" msgstr "Layouts" #: ../../Zotlabs/Module/Layouts.php:185 ../../Zotlabs/Lib/Apps.php:225 -#: ../../include/nav.php:164 ../../include/help.php:44 -#: ../../include/help.php:49 +#: ../../include/nav.php:162 ../../include/help.php:53 +#: ../../include/help.php:59 msgid "Help" msgstr "Hilfe" @@ -4681,31 +4982,158 @@ msgstr "Layout-Beschreibung" msgid "Download PDL file" msgstr "PDL-Datei herunterladen" -#: ../../Zotlabs/Module/Profile_photo.php:115 -#: ../../Zotlabs/Module/Profile_photo.php:212 -#: ../../Zotlabs/Module/Profile_photo.php:311 -#: ../../Zotlabs/Module/Photos.php:97 ../../Zotlabs/Module/Photos.php:734 -#: ../../include/photo/photo_driver.php:718 -msgid "Profile Photos" -msgstr "Profilfotos" +#: ../../Zotlabs/Module/Rate.php:156 +msgid "Website:" +msgstr "Webseite:" + +#: ../../Zotlabs/Module/Rate.php:159 +#, php-format +msgid "Remote Channel [%s] (not yet known on this site)" +msgstr "Kanal [%s] (auf diesem Server noch unbekannt)" + +#: ../../Zotlabs/Module/Rate.php:160 +msgid "Rating (this information is public)" +msgstr "Bewertung (öffentlich sichtbar)" + +#: ../../Zotlabs/Module/Rate.php:161 +msgid "Optionally explain your rating (this information is public)" +msgstr "Optional kannst du deine Bewertung erklären (öffentlich sichtbar)" + +#: ../../Zotlabs/Module/Like.php:19 +msgid "Like/Dislike" +msgstr "Mögen/Nicht mögen" + +#: ../../Zotlabs/Module/Like.php:24 +msgid "This action is restricted to members." +msgstr "Diese Aktion kann nur von Mitgliedern ausgeführt werden." + +#: ../../Zotlabs/Module/Like.php:25 +msgid "" +"Please login with your $Projectname ID or register as a new $Projectname member to continue." +msgstr "Um fortzufahren melde Dich bitte mit Deiner $Projectname-ID an oder registriere Dich als neues $Projectname-Mitglied." + +#: ../../Zotlabs/Module/Like.php:105 ../../Zotlabs/Module/Like.php:131 +#: ../../Zotlabs/Module/Like.php:169 +msgid "Invalid request." +msgstr "Ungültige Anfrage." + +#: ../../Zotlabs/Module/Like.php:117 ../../include/conversation.php:126 +msgid "channel" +msgstr "Kanal" + +#: ../../Zotlabs/Module/Like.php:146 +msgid "thing" +msgstr "Sache" + +#: ../../Zotlabs/Module/Like.php:192 +msgid "Channel unavailable." +msgstr "Kanal nicht vorhanden." + +#: ../../Zotlabs/Module/Like.php:240 +msgid "Previous action reversed." +msgstr "Die vorherige Aktion wurde rückgängig gemacht." + +#: ../../Zotlabs/Module/Like.php:370 ../../Zotlabs/Module/Subthread.php:87 +#: ../../Zotlabs/Module/Tagger.php:47 +#: ../../extend/addon/addon/diaspora/inbound.php:1792 +#: ../../extend/addon/addon/redphotos/redphotohelper.php:74 +#: ../../include/text.php:1940 ../../include/conversation.php:120 +msgid "photo" +msgstr "Foto" + +#: ../../Zotlabs/Module/Like.php:370 ../../Zotlabs/Module/Subthread.php:87 +#: ../../extend/addon/addon/diaspora/inbound.php:1792 +#: ../../include/text.php:1946 ../../include/conversation.php:148 +msgid "status" +msgstr "Status" + +#: ../../Zotlabs/Module/Like.php:372 ../../Zotlabs/Module/Tagger.php:51 +#: ../../Zotlabs/Module/Events.php:256 ../../include/text.php:1943 +#: ../../include/event.php:961 ../../include/conversation.php:123 +msgid "event" +msgstr "Termin" + +#: ../../Zotlabs/Module/Like.php:419 +#: ../../extend/addon/addon/diaspora/inbound.php:1821 +#: ../../include/conversation.php:164 +#, php-format +msgid "%1$s likes %2$s's %3$s" +msgstr "%1$s gefällt %2$ss %3$s" + +#: ../../Zotlabs/Module/Like.php:421 ../../include/conversation.php:167 +#, php-format +msgid "%1$s doesn't like %2$s's %3$s" +msgstr "%1$s gefällt %2$ss %3$s nicht" + +#: ../../Zotlabs/Module/Like.php:423 +#, php-format +msgid "%1$s agrees with %2$s's %3$s" +msgstr "%1$s stimmt %2$ss %3$s zu" + +#: ../../Zotlabs/Module/Like.php:425 +#, php-format +msgid "%1$s doesn't agree with %2$s's %3$s" +msgstr "%1$s lehnt %2$ss %3$s ab" + +#: ../../Zotlabs/Module/Like.php:427 +#, php-format +msgid "%1$s abstains from a decision on %2$s's %3$s" +msgstr "%1$s enthält sich zu %2$ss %3$s" + +#: ../../Zotlabs/Module/Like.php:429 +#, php-format +msgid "%1$s is attending %2$s's %3$s" +msgstr "%1$s nimmt an %2$ss %3$s teil" + +#: ../../Zotlabs/Module/Like.php:431 +#, php-format +msgid "%1$s is not attending %2$s's %3$s" +msgstr "%1$s nimmt an %2$ss %3$s nicht teil" + +#: ../../Zotlabs/Module/Like.php:433 +#, php-format +msgid "%1$s may attend %2$s's %3$s" +msgstr "%1$s nimmt vielleicht an %2$ss %3$s teil" + +#: ../../Zotlabs/Module/Like.php:538 +msgid "Action completed." +msgstr "Aktion durchgeführt." + +#: ../../Zotlabs/Module/Like.php:539 +msgid "Thank you." +msgstr "Vielen Dank." #: ../../Zotlabs/Module/Profile_photo.php:186 +#: ../../extend/addon/addon/openclipatar/openclipatar.php:293 msgid "" "Shift-reload the page or clear browser cache if the new photo does not " "display immediately." msgstr "Leere den Browser Cache oder nutze Umschalten-Neu Laden, falls das neue Foto nicht sofort angezeigt wird." -#: ../../Zotlabs/Module/Profile_photo.php:389 +#: ../../Zotlabs/Module/Profile_photo.php:409 +msgid "Use Photo for Profile" +msgstr "Foto für Profil verwenden" + +#: ../../Zotlabs/Module/Profile_photo.php:409 msgid "Upload Profile Photo" msgstr "Lade neues Profilfoto hoch" -#: ../../Zotlabs/Module/Cal.php:69 -msgid "Permissions denied." -msgstr "Berechtigung verweigert." +#: ../../Zotlabs/Module/Profile_photo.php:410 +#: ../../extend/addon/addon/openclipatar/openclipatar.php:181 +#: ../../extend/addon/addon/openclipatar/openclipatar.php:193 +msgid "Use" +msgstr "Verwenden" -#: ../../Zotlabs/Module/Cal.php:337 ../../include/text.php:2332 -msgid "Import" -msgstr "Import" +#: ../../Zotlabs/Module/Search.php:223 +#, php-format +msgid "Items tagged with: %s" +msgstr "Beiträge mit Schlagwort: %s" + +#: ../../Zotlabs/Module/Search.php:225 +#, php-format +msgid "Search results for: %s" +msgstr "Suchergebnisse für: %s" #: ../../Zotlabs/Module/Common.php:14 msgid "No channel." @@ -4719,364 +5147,154 @@ msgstr "Gemeinsame Verbindungen" msgid "No connections in common." msgstr "Keine gemeinsamen Verbindungen." -#: ../../Zotlabs/Module/Acl.php:313 -msgid "network" -msgstr "Netzwerk" +#: ../../Zotlabs/Module/Api.php:72 ../../Zotlabs/Module/Api.php:93 +msgid "Authorize application connection" +msgstr "Zugriff für die Anwendung autorisieren" -#: ../../Zotlabs/Module/Acl.php:323 -msgid "RSS" -msgstr "RSS" +#: ../../Zotlabs/Module/Api.php:73 +msgid "Return to your app and insert this Security Code:" +msgstr "Gehen Sie zu Ihrer App zurück und tragen Sie diesen Sicherheitscode ein:" -#: ../../Zotlabs/Module/Pubsites.php:24 ../../include/widgets.php:1392 -msgid "Public Hubs" -msgstr "Öffentliche Hubs" +#: ../../Zotlabs/Module/Api.php:83 +msgid "Please login to continue." +msgstr "Zum Weitermachen, bitte einloggen." -#: ../../Zotlabs/Module/Pubsites.php:27 +#: ../../Zotlabs/Module/Api.php:95 msgid "" -"The listed hubs allow public registration for the $Projectname network. All " -"hubs in the network are interlinked so membership on any of them conveys " -"membership in the network as a whole. Some hubs may require subscription or " -"provide tiered service plans. The hub itself may provide " -"additional details." -msgstr "Die hier aufgeführten Hubs sind öffentlich und erlauben die Registrierung im $Projectname Netzwerk. Alle Hubs dieses Netzwerks sind miteinander verbunden, so dass die Mitgliedschaft auf einem Hub die Verbindung zu beliebigen Seiten und Kanälen auf anderen Hubs ermöglicht. Es könnte sein, dass einige dieser Hubs kostenpflichtig sind oder abgestufte, je nach Umfang kostenpflichtige Mitgliedschaften anbieten. Auf den Seiten der einzelnen Hubs könnten jeweils nähere Informationen dazu stehen." +"Do you want to authorize this application to access your posts and contacts," +" and/or create new posts for you?" +msgstr "Möchtest Du dieser Anwendung erlauben, Deine Nachrichten und Kontakte abzurufen und/oder neue Nachrichten für Dich zu erstellen?" -#: ../../Zotlabs/Module/Pubsites.php:33 -msgid "Hub URL" -msgstr "Hub-URL" +#: ../../Zotlabs/Module/Ping.php:254 +msgid "sent you a private message" +msgstr "hat Dir eine private Nachricht geschickt" -#: ../../Zotlabs/Module/Pubsites.php:33 -msgid "Access Type" -msgstr "Zugriffstyp" +#: ../../Zotlabs/Module/Ping.php:302 +msgid "added your channel" +msgstr "hat deinen Kanal hinzugefügt" -#: ../../Zotlabs/Module/Pubsites.php:33 -msgid "Registration Policy" -msgstr "Registrierungsrichtlinien" +#: ../../Zotlabs/Module/Ping.php:312 +msgid "g A l F d" +msgstr "l, d. F, G:i \\U\\h\\r" -#: ../../Zotlabs/Module/Pubsites.php:33 -msgid "Stats" -msgstr "Statistiken" +#: ../../Zotlabs/Module/Ping.php:330 +msgid "[today]" +msgstr "[Heute]" -#: ../../Zotlabs/Module/Pubsites.php:33 -msgid "Software" -msgstr "Software" +#: ../../Zotlabs/Module/Ping.php:339 +msgid "posted an event" +msgstr "hat einen Termin veröffentlicht" -#: ../../Zotlabs/Module/Pubsites.php:48 -msgid "Rate" -msgstr "Bewerten" +#: ../../Zotlabs/Module/Siteinfo.php:20 +msgid "About this site" +msgstr "Über diese Seite" -#: ../../Zotlabs/Module/Pdledit.php:21 -msgid "Layout updated." -msgstr "Layout aktualisiert." +#: ../../Zotlabs/Module/Siteinfo.php:21 +msgid "Site Name" +msgstr "Seitenname" -#: ../../Zotlabs/Module/Pdledit.php:34 ../../Zotlabs/Module/Chat.php:218 -msgid "Feature disabled." -msgstr "Funktion deaktiviert." +#: ../../Zotlabs/Module/Siteinfo.php:25 ../../include/network.php:1962 +msgid "Administrator" +msgstr "Administrator" -#: ../../Zotlabs/Module/Pdledit.php:42 ../../Zotlabs/Module/Pdledit.php:69 -msgid "Edit System Page Description" -msgstr "Systemseitenbeschreibung bearbeiten" +#: ../../Zotlabs/Module/Siteinfo.php:28 +msgid "Software and Project information" +msgstr "Software und Projektinformationen" -#: ../../Zotlabs/Module/Pdledit.php:64 -msgid "Layout not found." -msgstr "Layout nicht gefunden." +#: ../../Zotlabs/Module/Siteinfo.php:29 +msgid "This site is powered by $Projectname" +msgstr "Diese Website wird bereitgestellt durch $Projectname" -#: ../../Zotlabs/Module/Pdledit.php:70 -msgid "Module Name:" -msgstr "Modulname:" +#: ../../Zotlabs/Module/Siteinfo.php:30 +msgid "" +"Federated and decentralised networking and identity services provided by Zot" +msgstr "Verbundene, dezentrale Netzwerk- und Identitätsdienste, ermöglicht mittels Zot" -#: ../../Zotlabs/Module/Pdledit.php:71 -msgid "Layout Help" -msgstr "Layout-Hilfe" - -#: ../../Zotlabs/Module/Connedit.php:80 -msgid "Could not access contact record." -msgstr "Konnte nicht auf den Kontakteintrag zugreifen." - -#: ../../Zotlabs/Module/Connedit.php:104 -msgid "Could not locate selected profile." -msgstr "Gewähltes Profil nicht gefunden." - -#: ../../Zotlabs/Module/Connedit.php:256 -msgid "Connection updated." -msgstr "Verbindung aktualisiert." - -#: ../../Zotlabs/Module/Connedit.php:258 -msgid "Failed to update connection record." -msgstr "Konnte den Verbindungseintrag nicht aktualisieren." - -#: ../../Zotlabs/Module/Connedit.php:308 -msgid "is now connected to" -msgstr "ist jetzt verbunden mit" - -#: ../../Zotlabs/Module/Connedit.php:440 -msgid "Could not access address book record." -msgstr "Konnte nicht auf den Adressbuch-Eintrag zugreifen." - -#: ../../Zotlabs/Module/Connedit.php:460 -msgid "Refresh failed - channel is currently unavailable." -msgstr "Aktualisierung fehlgeschlagen – der Kanal ist im Moment nicht erreichbar." - -#: ../../Zotlabs/Module/Connedit.php:475 ../../Zotlabs/Module/Connedit.php:484 -#: ../../Zotlabs/Module/Connedit.php:493 ../../Zotlabs/Module/Connedit.php:502 -#: ../../Zotlabs/Module/Connedit.php:515 -msgid "Unable to set address book parameters." -msgstr "Konnte die Adressbuch-Parameter nicht setzen." - -#: ../../Zotlabs/Module/Connedit.php:538 -msgid "Connection has been removed." -msgstr "Verbindung wurde gelöscht." - -#: ../../Zotlabs/Module/Connedit.php:554 ../../Zotlabs/Lib/Apps.php:221 -#: ../../include/nav.php:89 ../../include/conversation.php:955 -msgid "View Profile" -msgstr "Profil ansehen" - -#: ../../Zotlabs/Module/Connedit.php:557 +#: ../../Zotlabs/Module/Siteinfo.php:32 #, php-format -msgid "View %s's profile" -msgstr "%ss Profil ansehen" +msgid "Version %s" +msgstr "Version %s" -#: ../../Zotlabs/Module/Connedit.php:561 -msgid "Refresh Permissions" -msgstr "Zugriffsrechte neu laden" +#: ../../Zotlabs/Module/Siteinfo.php:33 +msgid "Project homepage" +msgstr "Projekt-Website" -#: ../../Zotlabs/Module/Connedit.php:564 -msgid "Fetch updated permissions" -msgstr "Aktualisierte Zugriffsrechte abfragen" +#: ../../Zotlabs/Module/Siteinfo.php:34 +msgid "Developer homepage" +msgstr "Entwickler-Website" -#: ../../Zotlabs/Module/Connedit.php:568 -msgid "Recent Activity" -msgstr "Kürzliche Aktivitäten" +#: ../../Zotlabs/Module/Lostpass.php:19 +msgid "No valid account found." +msgstr "Kein gültiges Konto gefunden." -#: ../../Zotlabs/Module/Connedit.php:571 -msgid "View recent posts and comments" -msgstr "Betrachte die neuesten Beiträge und Kommentare" +#: ../../Zotlabs/Module/Lostpass.php:33 +msgid "Password reset request issued. Check your email." +msgstr "Zurücksetzen des Passworts eingeleitet. Schau in Deine E-Mails." -#: ../../Zotlabs/Module/Connedit.php:578 -msgid "Block (or Unblock) all communications with this connection" -msgstr "Jegliche Kommunikation mit dieser Verbindung blockieren/zulassen" - -#: ../../Zotlabs/Module/Connedit.php:579 -msgid "This connection is blocked!" -msgstr "Die Verbindung ist geblockt!" - -#: ../../Zotlabs/Module/Connedit.php:583 -msgid "Unignore" -msgstr "Nicht ignorieren" - -#: ../../Zotlabs/Module/Connedit.php:586 -msgid "Ignore (or Unignore) all inbound communications from this connection" -msgstr "Jegliche eingehende Kommunikation von dieser Verbindung ignorieren/zulassen" - -#: ../../Zotlabs/Module/Connedit.php:587 -msgid "This connection is ignored!" -msgstr "Die Verbindung wird ignoriert!" - -#: ../../Zotlabs/Module/Connedit.php:591 -msgid "Unarchive" -msgstr "Aus Archiv zurückholen" - -#: ../../Zotlabs/Module/Connedit.php:591 -msgid "Archive" -msgstr "Archivieren" - -#: ../../Zotlabs/Module/Connedit.php:594 -msgid "" -"Archive (or Unarchive) this connection - mark channel dead but keep content" -msgstr "Verbindung archivieren/aus dem Archiv zurückholen (Archiv = Kanal als erloschen markieren, aber die Beiträge behalten)" - -#: ../../Zotlabs/Module/Connedit.php:595 -msgid "This connection is archived!" -msgstr "Die Verbindung ist archiviert!" - -#: ../../Zotlabs/Module/Connedit.php:599 -msgid "Unhide" -msgstr "Wieder sichtbar machen" - -#: ../../Zotlabs/Module/Connedit.php:599 -msgid "Hide" -msgstr "Verstecken" - -#: ../../Zotlabs/Module/Connedit.php:602 -msgid "Hide or Unhide this connection from your other connections" -msgstr "Diese Verbindung vor anderen Verbindungen verstecken/zeigen" - -#: ../../Zotlabs/Module/Connedit.php:603 -msgid "This connection is hidden!" -msgstr "Die Verbindung ist versteckt!" - -#: ../../Zotlabs/Module/Connedit.php:610 -msgid "Delete this connection" -msgstr "Verbindung löschen" - -#: ../../Zotlabs/Module/Connedit.php:625 ../../include/widgets.php:529 -msgid "Me" -msgstr "Ich" - -#: ../../Zotlabs/Module/Connedit.php:626 ../../include/widgets.php:530 -msgid "Family" -msgstr "Familie" - -#: ../../Zotlabs/Module/Connedit.php:627 -#: ../../Zotlabs/Module/Settings/Channel.php:61 -#: ../../Zotlabs/Module/Settings/Channel.php:65 -#: ../../Zotlabs/Module/Settings/Channel.php:66 -#: ../../Zotlabs/Module/Settings/Channel.php:69 -#: ../../Zotlabs/Module/Settings/Channel.php:80 -#: ../../include/selectors.php:123 ../../include/channel.php:402 -#: ../../include/channel.php:403 ../../include/channel.php:410 -#: ../../include/widgets.php:531 -msgid "Friends" -msgstr "Freunde" - -#: ../../Zotlabs/Module/Connedit.php:628 ../../include/widgets.php:532 -msgid "Acquaintances" -msgstr "Bekannte" - -#: ../../Zotlabs/Module/Connedit.php:686 -msgid "Approve this connection" -msgstr "Verbindung genehmigen" - -#: ../../Zotlabs/Module/Connedit.php:686 -msgid "Accept connection to allow communication" -msgstr "Akzeptiere die Verbindung, um Kommunikation zu ermöglichen" - -#: ../../Zotlabs/Module/Connedit.php:691 -msgid "Set Affinity" -msgstr "Beziehung festlegen" - -#: ../../Zotlabs/Module/Connedit.php:694 -msgid "Set Profile" -msgstr "Profil festlegen" - -#: ../../Zotlabs/Module/Connedit.php:697 -msgid "Set Affinity & Profile" -msgstr "Beziehung und Profile festlegen" - -#: ../../Zotlabs/Module/Connedit.php:746 -msgid "none" -msgstr "Keine" - -#: ../../Zotlabs/Module/Connedit.php:750 ../../include/widgets.php:656 -msgid "Connection Default Permissions" -msgstr "Standardzugriffsrechte für neue Verbindungen:" - -#: ../../Zotlabs/Module/Connedit.php:750 ../../include/items.php:3983 +#: ../../Zotlabs/Module/Lostpass.php:39 ../../Zotlabs/Module/Lostpass.php:108 #, php-format -msgid "Connection: %s" -msgstr "Verbindung: %s" +msgid "Site Member (%s)" +msgstr "Nutzer (%s)" -#: ../../Zotlabs/Module/Connedit.php:751 -msgid "Apply these permissions automatically" -msgstr "Diese Berechtigungen automatisch anwenden" - -#: ../../Zotlabs/Module/Connedit.php:751 -msgid "Connection requests will be approved without your interaction" -msgstr "Verbindungsanfragen werden sofort bestätigt, ohne dass Deine aktive Zustimmung erforderlich ist." - -#: ../../Zotlabs/Module/Connedit.php:753 -msgid "This connection's primary address is" -msgstr "Die Hauptadresse der Verbindung ist" - -#: ../../Zotlabs/Module/Connedit.php:754 -msgid "Available locations:" -msgstr "Verfügbare Klone:" - -#: ../../Zotlabs/Module/Connedit.php:758 -msgid "" -"The permissions indicated on this page will be applied to all new " -"connections." -msgstr "Die auf dieser Seite angegebenen Berechtigungen werden auf alle neuen Verbindungen angewendet." - -#: ../../Zotlabs/Module/Connedit.php:759 -msgid "Connection Tools" -msgstr "Verbindungswerkzeuge" - -#: ../../Zotlabs/Module/Connedit.php:761 -msgid "Slide to adjust your degree of friendship" -msgstr "Verschieben, um den Grad der Freundschaft zu einzustellen" - -#: ../../Zotlabs/Module/Connedit.php:763 -msgid "Slide to adjust your rating" -msgstr "Verschieben, um Deine Bewertung einzustellen" - -#: ../../Zotlabs/Module/Connedit.php:764 ../../Zotlabs/Module/Connedit.php:769 -msgid "Optionally explain your rating" -msgstr "Optional kannst Du Deine Bewertung begründen" - -#: ../../Zotlabs/Module/Connedit.php:766 -msgid "Custom Filter" -msgstr "Benutzerdefinierter Filter" - -#: ../../Zotlabs/Module/Connedit.php:767 -msgid "Only import posts with this text" -msgstr "Nur Beiträge mit diesem Text importieren" - -#: ../../Zotlabs/Module/Connedit.php:767 ../../Zotlabs/Module/Connedit.php:768 -msgid "" -"words one per line or #tags or /patterns/ or lang=xx, leave blank to import " -"all posts" -msgstr "Einzelne Wörter pro Zeile, #Tags oder /Reguläre Ausdrücke/. lang=xx (z.B. lang=de) ermöglicht Filterung nach Sprache. Leer lassen, um alle Beiträge zu importieren." - -#: ../../Zotlabs/Module/Connedit.php:768 -msgid "Do not import posts with this text" -msgstr "Beiträge mit diesem Text nicht importieren" - -#: ../../Zotlabs/Module/Connedit.php:770 -msgid "This information is public!" -msgstr "Diese Information ist öffentlich!" - -#: ../../Zotlabs/Module/Connedit.php:775 -msgid "Connection Pending Approval" -msgstr "Verbindung wartet auf Bestätigung" - -#: ../../Zotlabs/Module/Connedit.php:778 -#: ../../Zotlabs/Module/Settings/Tokens.php:163 -msgid "inherited" -msgstr "geerbt" - -#: ../../Zotlabs/Module/Connedit.php:780 +#: ../../Zotlabs/Module/Lostpass.php:44 ../../Zotlabs/Module/Lostpass.php:49 #, php-format +msgid "Password reset requested at %s" +msgstr "Passwort-Rücksetzung auf %s angefordert" + +#: ../../Zotlabs/Module/Lostpass.php:68 msgid "" -"Please choose the profile you would like to display to %s when viewing your " -"profile securely." -msgstr "Bitte wähle ein Profil, das wir %s zeigen sollen, wenn Deine Profilseite über eine verifizierte Verbindung aufgerufen wird." +"Request could not be verified. (You may have previously submitted it.) " +"Password reset failed." +msgstr "Die Anfrage konnte nicht verifiziert werden. (Vielleicht hast Du schon einmal auf den Link in der E-Mail geklickt?) Passwort-Rücksetzung fehlgeschlagen." -#: ../../Zotlabs/Module/Connedit.php:782 -#: ../../Zotlabs/Module/Settings/Tokens.php:160 -msgid "Their Settings" -msgstr "Deren Einstellungen" +#: ../../Zotlabs/Module/Lostpass.php:91 ../../boot.php:1727 +msgid "Password Reset" +msgstr "Zurücksetzen des Kennworts" -#: ../../Zotlabs/Module/Connedit.php:783 -#: ../../Zotlabs/Module/Settings/Tokens.php:161 -msgid "My Settings" -msgstr "Meine Einstellungen" +#: ../../Zotlabs/Module/Lostpass.php:92 +msgid "Your password has been reset as requested." +msgstr "Dein Passwort wurde wie angefordert neu erstellt." -#: ../../Zotlabs/Module/Connedit.php:785 -#: ../../Zotlabs/Module/Settings/Tokens.php:165 -msgid "Individual Permissions" -msgstr "Individuelle Zugriffsrechte" +#: ../../Zotlabs/Module/Lostpass.php:93 +msgid "Your new password is" +msgstr "Dein neues Passwort lautet" -#: ../../Zotlabs/Module/Connedit.php:786 -#: ../../Zotlabs/Module/Settings/Tokens.php:166 +#: ../../Zotlabs/Module/Lostpass.php:94 +msgid "Save or copy your new password - and then" +msgstr "Speichere oder kopiere Dein neues Passwort – und dann" + +#: ../../Zotlabs/Module/Lostpass.php:95 +msgid "click here to login" +msgstr "Klicke hier, um dich anzumelden" + +#: ../../Zotlabs/Module/Lostpass.php:96 msgid "" -"Some permissions may be inherited from your channel's privacy settings, which have higher " -"priority than individual settings. You can not change those" -" settings here." -msgstr "Einige Berechtigungen werden möglicherweise von den globalen Sicherheits- und Privatsphäre-Einstellungen dieses Kanals vererbt. Diese haben eine höhere Priorität als die Einstellungen an der Verbindung und können hier nicht verändert werden." +"Your password may be changed from the Settings page after " +"successful login." +msgstr "Dein Passwort kann unter Einstellungen nach einer erfolgreichen Anmeldung geändert werden." -#: ../../Zotlabs/Module/Connedit.php:787 +#: ../../Zotlabs/Module/Lostpass.php:117 +#, php-format +msgid "Your password has changed at %s" +msgstr "Auf %s wurde Dein Passwort geändert" + +#: ../../Zotlabs/Module/Lostpass.php:130 +msgid "Forgot your Password?" +msgstr "Kennwort vergessen?" + +#: ../../Zotlabs/Module/Lostpass.php:131 msgid "" -"Some permissions may be inherited from your channel's privacy settings, 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 "Einige Berechtigungen werden möglicherweise von den globalen Sicherheits- und Privatsphäre-Einstellungen dieses Kanals geerbt. Diese haben eine höhere Priorität als die Einstellungen an der Verbindung. Werden geerbte Einstellungen hier geändert, hat dies keine Auswirkungen." +"Enter your email address and submit to have your password reset. Then check " +"your email for further instructions." +msgstr "Gib Deine E-Mail-Adresse ein, um Dein Passwort zurücksetzen zu lassen. Du erhältst dann weitere Anweisungen per E-Mail." -#: ../../Zotlabs/Module/Connedit.php:788 -msgid "Last update:" -msgstr "Letzte Aktualisierung:" +#: ../../Zotlabs/Module/Lostpass.php:132 +msgid "Email Address" +msgstr "E-Mail Adresse" + +#: ../../Zotlabs/Module/Lostpass.php:133 +msgid "Reset" +msgstr "Zurücksetzen" #: ../../Zotlabs/Module/Rbmark.php:94 msgid "Select a bookmark folder" @@ -5094,9 +5312,9 @@ msgstr "URL des Lesezeichens" msgid "Or enter new bookmark folder name" msgstr "Oder gib einen neuen Namen für den Lesezeichenordner ein" -#: ../../Zotlabs/Module/Regdir.php:49 ../../Zotlabs/Module/Dirsearch.php:25 -msgid "This site is not a directory server" -msgstr "Diese Webseite ist kein Verzeichnisserver" +#: ../../Zotlabs/Module/Dirsearch.php:33 +msgid "This directory server requires an access token" +msgstr "Dieser Verzeichnisserver benötigt einen Zugriffstoken" #: ../../Zotlabs/Module/Rmagic.php:35 msgid "Authentication failed." @@ -5114,9 +5332,9 @@ msgstr "Deine Kanal-Adresse (z. B. channel@example.com)" msgid "Authenticate" msgstr "Authentifizieren" -#: ../../Zotlabs/Module/Admin.php:1215 -msgid "Uncensor" -msgstr "Freigeben" +#: ../../Zotlabs/Module/Regmod.php:15 +msgid "Please login." +msgstr "Bitte melde dich an." #: ../../Zotlabs/Module/Removeaccount.php:35 msgid "" @@ -5135,9 +5353,9 @@ msgstr "WARNUNG: " #: ../../Zotlabs/Module/Removeaccount.php:58 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 "Alle ausgewählten Kanäle werden gelöscht!\\n\\nAlles was von diesen Kanälen auf diesem Server geschrieben wurde, wird dauerhaft gelöscht!\\n\\nBist Du sicher?" +"This account and all its channels will be completely removed from the " +"network. " +msgstr "Dieses Konto mit all seinen Kanälen wird vollständig aus dem Netzwerk gelöscht." #: ../../Zotlabs/Module/Removeaccount.php:58 #: ../../Zotlabs/Module/Removeme.php:61 @@ -5162,38 +5380,33 @@ msgid "" msgstr "Standardmäßig werden nur die Kanalklone auf diesem $Projectname-Hub aus dem Netzwerk entfernt" #: ../../Zotlabs/Module/Removeaccount.php:61 -#: ../../Zotlabs/Module/Settings/Account.php:128 +#: ../../Zotlabs/Module/Settings/Account.php:120 msgid "Remove Account" msgstr "Konto entfernen" -#: ../../Zotlabs/Module/Removeme.php:35 -msgid "" -"Channel removals are not allowed within 48 hours of changing the account " -"password." -msgstr "Innerhalb von 48 Stunden nach einer Änderung des Passworts können keine Kanäle gelöscht werden." +#: ../../Zotlabs/Module/Pdledit.php:21 +msgid "Layout updated." +msgstr "Layout aktualisiert." -#: ../../Zotlabs/Module/Removeme.php:60 -msgid "Remove This Channel" -msgstr "Diesen Kanal löschen" +#: ../../Zotlabs/Module/Pdledit.php:34 ../../Zotlabs/Module/Chat.php:218 +msgid "Feature disabled." +msgstr "Funktion deaktiviert." -#: ../../Zotlabs/Module/Removeme.php:61 -msgid "This channel will be completely removed from the network. " -msgstr "Dieser Kanal wird vollständig aus dem Netzwerk gelöscht." +#: ../../Zotlabs/Module/Pdledit.php:42 ../../Zotlabs/Module/Pdledit.php:69 +msgid "Edit System Page Description" +msgstr "Systemseitenbeschreibung bearbeiten" -#: ../../Zotlabs/Module/Removeme.php:63 -msgid "Remove this channel and all its clones from the network" -msgstr "Lösche diesen Kanal und all seine Klone aus dem Netzwerk" +#: ../../Zotlabs/Module/Pdledit.php:64 +msgid "Layout not found." +msgstr "Layout nicht gefunden." -#: ../../Zotlabs/Module/Removeme.php:63 -msgid "" -"By default only the instance of the channel located on this hub will be " -"removed from the network" -msgstr "Standardmäßig wird der Kanal nur auf diesem Server gelöscht, seine Klone verbleiben im Netzwerk" +#: ../../Zotlabs/Module/Pdledit.php:70 +msgid "Module Name:" +msgstr "Modulname:" -#: ../../Zotlabs/Module/Removeme.php:64 -#: ../../Zotlabs/Module/Settings/Channel.php:544 -msgid "Remove Channel" -msgstr "Kanal löschen" +#: ../../Zotlabs/Module/Pdledit.php:71 +msgid "Layout Help" +msgstr "Layout-Hilfe" #: ../../Zotlabs/Module/Uexport.php:55 ../../Zotlabs/Module/Uexport.php:56 msgid "Export Channel" @@ -5253,99 +5466,201 @@ msgid "" " please import or restore these in date order (oldest first)." msgstr "Diese Inhalts-Sicherungen können wiederhergestellt werden, indem Du %2$s auf jeglichem Hub besuchst, der diesen Kanal enthält. Das funktioniert am besten, wenn Du dabei die zeitliche Reihenfolge einhältst, also die Sicherungen für den ältesten Zeitraum zuerst importierst." -#: ../../Zotlabs/Module/Editpost.php:35 -msgid "Item is not editable" -msgstr "Element kann nicht bearbeitet werden." +#: ../../Zotlabs/Module/Cal.php:69 +msgid "Permissions denied." +msgstr "Berechtigung verweigert." -#: ../../Zotlabs/Module/Admin.php:1396 -msgid "Custom repo name" -msgstr "Benutzerdefinierter Repository-Name" +#: ../../Zotlabs/Module/Cal.php:263 ../../Zotlabs/Module/Events.php:596 +msgid "l, F j" +msgstr "l, j. F" -#: ../../Zotlabs/Module/Admin.php:1396 -msgid "(optional)" -msgstr "(optional)" +#: ../../Zotlabs/Module/Cal.php:312 ../../Zotlabs/Module/Events.php:651 +#: ../../include/text.php:1748 +msgid "Link to Source" +msgstr "Link zur Quelle" -#: ../../Zotlabs/Module/Channel.php:28 ../../Zotlabs/Module/Wiki.php:20 -#: ../../Zotlabs/Module/Chat.php:25 -msgid "You must be logged in to see this page." -msgstr "Du musst angemeldet sein, um diese Seite betrachten zu können." +#: ../../Zotlabs/Module/Cal.php:335 ../../Zotlabs/Module/Events.php:679 +msgid "Edit Event" +msgstr "Termin bearbeiten" -#: ../../Zotlabs/Module/Channel.php:40 -msgid "Posts and comments" -msgstr "Beiträge und Kommentare" +#: ../../Zotlabs/Module/Cal.php:335 ../../Zotlabs/Module/Events.php:679 +msgid "Create Event" +msgstr "Termin anlegen" -#: ../../Zotlabs/Module/Channel.php:41 -msgid "Only posts" -msgstr "Nur Beiträge" +#: ../../Zotlabs/Module/Cal.php:338 ../../Zotlabs/Module/Events.php:682 +msgid "Export" +msgstr "Exportieren" -#: ../../Zotlabs/Module/Channel.php:101 -msgid "Insufficient permissions. Request redirected to profile page." -msgstr "Unzureichende Zugriffsrechte. Die Anfrage wurde zur Profil-Seite umgeleitet." +#: ../../Zotlabs/Module/Cal.php:341 ../../include/text.php:2294 +msgid "Import" +msgstr "Import" + +#: ../../Zotlabs/Module/Cal.php:345 ../../Zotlabs/Module/Events.php:691 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:848 +msgid "Today" +msgstr "Heute" + +#: ../../Zotlabs/Module/Admin.php:94 +msgid "# Accounts" +msgstr "Anzahl der Konten" + +#: ../../Zotlabs/Module/Admin.php:95 +msgid "# blocked accounts" +msgstr "Anzahl der blockierten Konten" + +#: ../../Zotlabs/Module/Admin.php:96 +msgid "# expired accounts" +msgstr "Anzahl der abgelaufenen Konten" + +#: ../../Zotlabs/Module/Admin.php:97 +msgid "# expiring accounts" +msgstr "Anzahl der ablaufenden Konten" + +#: ../../Zotlabs/Module/Admin.php:108 +msgid "# Channels" +msgstr "Anzahl der Kanäle" + +#: ../../Zotlabs/Module/Admin.php:109 +msgid "# primary" +msgstr "Anzahl der primären Kanäle" + +#: ../../Zotlabs/Module/Admin.php:110 +msgid "# clones" +msgstr "Anzahl der Klone" + +#: ../../Zotlabs/Module/Admin.php:116 +msgid "Message queues" +msgstr "Nachrichten-Warteschlangen" + +#: ../../Zotlabs/Module/Admin.php:133 +msgid "Your software should be updated" +msgstr "Die installierte Software sollte aktualisiert werden" + +#: ../../Zotlabs/Module/Admin.php:138 +msgid "Summary" +msgstr "Zusammenfassung" + +#: ../../Zotlabs/Module/Admin.php:141 +msgid "Registered accounts" +msgstr "Registrierte Konten" + +#: ../../Zotlabs/Module/Admin.php:142 +msgid "Pending registrations" +msgstr "Ausstehende Registrierungen" + +#: ../../Zotlabs/Module/Admin.php:143 +msgid "Registered channels" +msgstr "Registrierte Kanäle" + +#: ../../Zotlabs/Module/Admin.php:144 +msgid "Active plugins" +msgstr "Aktive Plug-Ins" + +#: ../../Zotlabs/Module/Admin.php:145 +msgid "Version" +msgstr "Version" + +#: ../../Zotlabs/Module/Admin.php:146 +msgid "Repository version (master)" +msgstr "Repository-Version (master)" + +#: ../../Zotlabs/Module/Admin.php:147 +msgid "Repository version (dev)" +msgstr "Repository-Version (dev)" + +#: ../../Zotlabs/Module/Lockview.php:75 +msgid "Remote privacy information not available." +msgstr "Privatsphäre-Einstellungen anderer Nutzer sind nicht verfügbar." + +#: ../../Zotlabs/Module/Lockview.php:96 +msgid "Visible to:" +msgstr "Sichtbar für:" #: ../../Zotlabs/Module/Service_limits.php:23 msgid "No service class restrictions found." msgstr "Keine Dienstklassenbeschränkungen gefunden." -#: ../../Zotlabs/Module/Thing.php:114 -msgid "Thing updated" -msgstr "Sache aktualisiert" +#: ../../Zotlabs/Module/Webpages.php:52 +msgid "Import Webpage Elements" +msgstr "Webseitenelemente importieren" -#: ../../Zotlabs/Module/Thing.php:166 -msgid "Object store: failed" -msgstr "Speichern des Objekts fehlgeschlagen" +#: ../../Zotlabs/Module/Webpages.php:53 +msgid "Import selected" +msgstr "Import ausgewählt" -#: ../../Zotlabs/Module/Thing.php:170 -msgid "Thing added" -msgstr "Sache hinzugefügt" +#: ../../Zotlabs/Module/Webpages.php:76 +msgid "Export Webpage Elements" +msgstr "Webseitenelemente exportieren" -#: ../../Zotlabs/Module/Thing.php:196 -#, php-format -msgid "OBJ: %1$s %2$s %3$s" -msgstr "OBJ: %1$s %2$s %3$s" +#: ../../Zotlabs/Module/Webpages.php:77 +msgid "Export selected" +msgstr "Exportieren ausgewählt" -#: ../../Zotlabs/Module/Thing.php:259 -msgid "Show Thing" -msgstr "Sache anzeigen" +#: ../../Zotlabs/Module/Webpages.php:237 ../../Zotlabs/Lib/Apps.php:218 +#: ../../include/nav.php:109 ../../include/conversation.php:1745 +msgid "Webpages" +msgstr "Webseiten" -#: ../../Zotlabs/Module/Thing.php:266 -msgid "item not found." -msgstr "Eintrag nicht gefunden" +#: ../../Zotlabs/Module/Webpages.php:248 ../../include/page_widgets.php:44 +msgid "Actions" +msgstr "Aktionen" -#: ../../Zotlabs/Module/Thing.php:299 -msgid "Edit Thing" -msgstr "Sache bearbeiten" +#: ../../Zotlabs/Module/Webpages.php:249 ../../include/page_widgets.php:45 +msgid "Page Link" +msgstr "Seiten-Link" -#: ../../Zotlabs/Module/Thing.php:301 ../../Zotlabs/Module/Thing.php:355 -msgid "Select a profile" -msgstr "Wähle ein Profil" +#: ../../Zotlabs/Module/Webpages.php:250 +msgid "Page Title" +msgstr "Seitentitel" -#: ../../Zotlabs/Module/Thing.php:305 ../../Zotlabs/Module/Thing.php:358 -msgid "Post an activity" -msgstr "Aktivitätsnachricht senden" +#: ../../Zotlabs/Module/Webpages.php:280 +msgid "Invalid file type." +msgstr "Ungültiger Dateityp." -#: ../../Zotlabs/Module/Thing.php:305 ../../Zotlabs/Module/Thing.php:358 -msgid "Only sends to viewers of the applicable profile" -msgstr "Nur an Betrachter des ausgewählten Profils senden" +#: ../../Zotlabs/Module/Webpages.php:292 +msgid "Error opening zip file" +msgstr "Fehler beim Öffnen der ZIP-Datei" -#: ../../Zotlabs/Module/Thing.php:307 ../../Zotlabs/Module/Thing.php:360 -msgid "Name of thing e.g. something" -msgstr "Name der Sache, z. B. irgendwas" +#: ../../Zotlabs/Module/Webpages.php:303 +msgid "Invalid folder path." +msgstr "Ungültiger Ordnerpfad." -#: ../../Zotlabs/Module/Thing.php:309 ../../Zotlabs/Module/Thing.php:361 -msgid "URL of thing (optional)" -msgstr "URL der Sache (optional)" +#: ../../Zotlabs/Module/Webpages.php:330 +msgid "No webpage elements detected." +msgstr "Keine Webseitenelemente erkannt." -#: ../../Zotlabs/Module/Thing.php:311 ../../Zotlabs/Module/Thing.php:362 -msgid "URL for photo of thing (optional)" -msgstr "URL eines Fotos der Sache (optional)" +#: ../../Zotlabs/Module/Webpages.php:405 +msgid "Import complete." +msgstr "Import abgeschlossen." -#: ../../Zotlabs/Module/Thing.php:353 -msgid "Add Thing to your Profile" -msgstr "Die Sache Deinem Profil hinzufügen" +#: ../../Zotlabs/Module/Removeme.php:35 +msgid "" +"Channel removals are not allowed within 48 hours of changing the account " +"password." +msgstr "Innerhalb von 48 Stunden nach einer Änderung des Passworts können keine Kanäle gelöscht werden." -#: ../../Zotlabs/Module/Dirsearch.php:33 -msgid "This directory server requires an access token" -msgstr "Dieser Verzeichnisserver benötigt einen Zugriffstoken" +#: ../../Zotlabs/Module/Removeme.php:60 +msgid "Remove This Channel" +msgstr "Diesen Kanal löschen" + +#: ../../Zotlabs/Module/Removeme.php:61 +msgid "This channel will be completely removed from the network. " +msgstr "Dieser Kanal wird vollständig aus dem Netzwerk gelöscht." + +#: ../../Zotlabs/Module/Removeme.php:63 +msgid "Remove this channel and all its clones from the network" +msgstr "Lösche diesen Kanal und all seine Klone aus dem Netzwerk" + +#: ../../Zotlabs/Module/Removeme.php:63 +msgid "" +"By default only the instance of the channel located on this hub will be " +"removed from the network" +msgstr "Standardmäßig wird der Kanal nur auf diesem Server gelöscht, seine Klone verbleiben im Netzwerk" + +#: ../../Zotlabs/Module/Removeme.php:64 +#: ../../Zotlabs/Module/Settings/Channel.php:547 +msgid "Remove Channel" +msgstr "Kanal löschen" #: ../../Zotlabs/Module/Sharedwithme.php:98 msgid "Files: shared with me" @@ -5367,79 +5682,128 @@ msgstr "Diese Datei löschen" msgid "Not found" msgstr "Nicht gefunden" -#: ../../Zotlabs/Module/Wiki.php:97 ../../Zotlabs/Lib/Apps.php:219 -#: ../../include/nav.php:111 ../../include/conversation.php:1734 -#: ../../include/conversation.php:1737 ../../include/features.php:57 -msgid "Wiki" -msgstr "Wiki" - -#: ../../Zotlabs/Module/Wiki.php:98 -msgid "Sandbox" -msgstr "Sandbox" +#: ../../Zotlabs/Module/Wiki.php:55 +msgid "Invalid channel" +msgstr "Ungültiger Kanal" #: ../../Zotlabs/Module/Wiki.php:100 -msgid "" -"\"# Wiki Sandbox\\n\\nContent you **edit** and **preview** here *will not be" -" saved*.\"" -msgstr "\"# Wiki Sandkasten\\n\\nInhalte, die Du hier **veränderst** und **als Vorschau anzeigst**, *werden nicht gespeichert*.\"" +msgid "Error retrieving wiki" +msgstr "Fehler beim Abrufen des Wiki" -#: ../../Zotlabs/Module/Wiki.php:169 +#: ../../Zotlabs/Module/Wiki.php:107 +msgid "Error creating zip file export folder" +msgstr "Fehler bei der Erzeugung des Zip-Datei Export-Verzeichnisses " + +#: ../../Zotlabs/Module/Wiki.php:125 +msgid "Error downloading wiki: " +msgstr "Fehler beim Herunterladen des Wiki:" + +#: ../../Zotlabs/Module/Wiki.php:139 ../../include/nav.php:111 +#: ../../include/conversation.php:1755 +msgid "Wikis" +msgstr "Wikis" + +#: ../../Zotlabs/Module/Wiki.php:145 ../../include/widgets.php:966 +msgid "Download" +msgstr "Herunterladen" + +#: ../../Zotlabs/Module/Wiki.php:149 ../../include/widgets.php:970 +msgid "Wiki name" +msgstr "Name des Wiki" + +#: ../../Zotlabs/Module/Wiki.php:150 +msgid "Content type" +msgstr "Inhaltstyp" + +#: ../../Zotlabs/Module/Wiki.php:159 +msgid "Create a status post for this wiki" +msgstr "Erzeuge einen Statusbeitrag für dieses Wiki" + +#: ../../Zotlabs/Module/Wiki.php:178 +msgid "Wiki not found" +msgstr "Wiki nicht gefunden" + +#: ../../Zotlabs/Module/Wiki.php:203 +msgid "Rename page" +msgstr "Seite umbenennen" + +#: ../../Zotlabs/Module/Wiki.php:207 +msgid "Error retrieving page content" +msgstr "Fehler beim Abrufen des Seiteninhalts" + +#: ../../Zotlabs/Module/Wiki.php:240 msgid "Revision Comparison" msgstr "Revisionsvergleich" -#: ../../Zotlabs/Module/Wiki.php:170 +#: ../../Zotlabs/Module/Wiki.php:241 msgid "Revert" msgstr "Rückgängig machen" -#: ../../Zotlabs/Module/Wiki.php:201 -msgid "Enter the name of your new wiki:" -msgstr "Gib einen Namen für Dein neues Wiki ein:" +#: ../../Zotlabs/Module/Wiki.php:250 +msgid "Choose an available wiki from the list on the left." +msgstr "Wähle ein vorhandenes Wiki aus der Liste auf der linken Seite aus." -#: ../../Zotlabs/Module/Wiki.php:202 -msgid "Enter the name of the new page:" -msgstr "Geben Sie den Namen der neuen Seite ein:" +#: ../../Zotlabs/Module/Wiki.php:252 +msgid "Source" +msgstr "Quelle" -#: ../../Zotlabs/Module/Wiki.php:203 -msgid "Enter the new name:" -msgstr "Geben Sie den neuen Namen ein:" +#: ../../Zotlabs/Module/Wiki.php:269 +msgid "New page name" +msgstr "Neuer Seitenname" -#: ../../Zotlabs/Module/Wiki.php:209 ../../include/conversation.php:1152 +#: ../../Zotlabs/Module/Wiki.php:275 ../../include/conversation.php:1169 msgid "Embed image from photo albums" msgstr "Bild aus Fotoalben einbetten" -#: ../../Zotlabs/Module/Wiki.php:210 ../../include/conversation.php:1246 +#: ../../Zotlabs/Module/Wiki.php:276 ../../include/conversation.php:1263 msgid "Embed an image from your albums" msgstr "Betten Sie ein Bild aus Ihren Alben ein" -#: ../../Zotlabs/Module/Wiki.php:212 ../../include/conversation.php:1248 -#: ../../include/conversation.php:1295 +#: ../../Zotlabs/Module/Wiki.php:278 ../../include/conversation.php:1265 +#: ../../include/conversation.php:1312 msgid "OK" msgstr "Ok" -#: ../../Zotlabs/Module/Wiki.php:213 ../../include/conversation.php:1188 +#: ../../Zotlabs/Module/Wiki.php:279 ../../include/conversation.php:1205 msgid "Choose images to embed" msgstr "Wählen Sie Bilder zum Einbetten aus" -#: ../../Zotlabs/Module/Wiki.php:214 ../../include/conversation.php:1189 +#: ../../Zotlabs/Module/Wiki.php:280 ../../include/conversation.php:1206 msgid "Choose an album" msgstr "Wählen Sie ein Album aus" -#: ../../Zotlabs/Module/Wiki.php:215 ../../include/conversation.php:1190 +#: ../../Zotlabs/Module/Wiki.php:281 ../../include/conversation.php:1207 msgid "Choose a different album..." msgstr "Wählen Sie ein anderes Album aus..." -#: ../../Zotlabs/Module/Wiki.php:216 ../../include/conversation.php:1191 +#: ../../Zotlabs/Module/Wiki.php:282 ../../include/conversation.php:1208 msgid "Error getting album list" msgstr "Fehler beim Holen der Albenliste" -#: ../../Zotlabs/Module/Wiki.php:217 ../../include/conversation.php:1192 +#: ../../Zotlabs/Module/Wiki.php:283 ../../include/conversation.php:1209 msgid "Error getting photo link" msgstr "Fehler beim Holen des Fotolinks" -#: ../../Zotlabs/Module/Wiki.php:218 ../../include/conversation.php:1193 +#: ../../Zotlabs/Module/Wiki.php:284 ../../include/conversation.php:1210 msgid "Error getting album" msgstr "Fehler beim Holen des Albums" +#: ../../Zotlabs/Module/Wiki.php:348 +msgid "Error creating wiki. Invalid name." +msgstr "Fehler beim Erstellen des Wiki. Ungültiger Name." + +#: ../../Zotlabs/Module/Wiki.php:359 +msgid "Wiki created, but error creating Home page." +msgstr "Das Wiki wurde erzeugt, aber es gab einen Fehler bei der Erstellung der Startseite" + +#: ../../Zotlabs/Module/Wiki.php:364 +msgid "Error creating wiki" +msgstr "Fehler beim Erstellen des Wiki" + +#: ../../Zotlabs/Module/Wiki.php:410 +msgid "New page created" +msgstr "Neue Seite erstellt" + #: ../../Zotlabs/Module/Sources.php:37 msgid "Failed to create source. No channel selected." msgstr "Konnte die Quelle nicht anlegen. Kein Kanal ausgewählt." @@ -5456,8 +5820,8 @@ msgstr "Quelle aktualisiert." msgid "*" msgstr "*" -#: ../../Zotlabs/Module/Sources.php:96 ../../include/widgets.php:672 -#: ../../include/features.php:70 +#: ../../Zotlabs/Module/Sources.php:96 ../../include/features.php:195 +#: ../../include/widgets.php:672 msgid "Channel Sources" msgstr "Kanal-Quellen" @@ -5538,12 +5902,12 @@ msgstr "Keine Vorschläge vorhanden. Wenn das ein neuer Server ist, versuche es msgid "Ignore/Hide" msgstr "Ignorieren/Verstecken" -#: ../../Zotlabs/Module/Tagger.php:55 ../../include/bbcode.php:263 +#: ../../Zotlabs/Module/Tagger.php:55 ../../include/bbcode.php:274 msgid "post" msgstr "Beitrag" -#: ../../Zotlabs/Module/Tagger.php:57 ../../include/conversation.php:150 -#: ../../include/text.php:1999 +#: ../../Zotlabs/Module/Tagger.php:57 ../../include/text.php:1948 +#: ../../include/conversation.php:150 msgid "comment" msgstr "Kommentar" @@ -5552,988 +5916,6 @@ msgstr "Kommentar" msgid "%1$s tagged %2$s's %3$s with %4$s" msgstr "%1$s hat %2$ss %3$s mit %4$s verschlagwortet" -#: ../../Zotlabs/Module/Tagrm.php:48 ../../Zotlabs/Module/Tagrm.php:98 -msgid "Tag removed" -msgstr "Schlagwort entfernt" - -#: ../../Zotlabs/Module/Tagrm.php:123 -msgid "Remove Item Tag" -msgstr "Schlagwort entfernen" - -#: ../../Zotlabs/Module/Tagrm.php:125 -msgid "Select a tag to remove: " -msgstr "Schlagwort zum Entfernen auswählen:" - -#: ../../Zotlabs/Module/Photos.php:82 -msgid "Page owner information could not be retrieved." -msgstr "Informationen über den Besitzer der Seite konnten nicht gefunden werden." - -#: ../../Zotlabs/Module/Photos.php:103 ../../Zotlabs/Module/Photos.php:129 -msgid "Album not found." -msgstr "Album nicht gefunden." - -#: ../../Zotlabs/Module/Photos.php:112 -msgid "Delete Album" -msgstr "Album löschen" - -#: ../../Zotlabs/Module/Photos.php:133 -msgid "" -"Multiple storage folders exist with this album name, but within different " -"directories. Please remove the desired folder or folders using the Files " -"manager" -msgstr "Mehrere Speicherordner mit diesem Albumnamen sind bereits vorhanden, aber in verschiedenen Verzeichnissen. Bitte entfernen Sie den oder die gewünschten Ordner mit dem Dateimanager" - -#: ../../Zotlabs/Module/Photos.php:190 ../../Zotlabs/Module/Photos.php:1059 -msgid "Delete Photo" -msgstr "Foto löschen" - -#: ../../Zotlabs/Module/Photos.php:520 -msgid "No photos selected" -msgstr "Keine Fotos ausgewählt" - -#: ../../Zotlabs/Module/Photos.php:569 -msgid "Access to this item is restricted." -msgstr "Der Zugriff auf dieses Foto ist eingeschränkt." - -#: ../../Zotlabs/Module/Photos.php:608 -#, php-format -msgid "%1$.2f MB of %2$.2f MB photo storage used." -msgstr "%1$.2f MB von %2$.2f MB Foto-Speicher belegt." - -#: ../../Zotlabs/Module/Photos.php:611 -#, php-format -msgid "%1$.2f MB photo storage used." -msgstr "%1$.2f MB Foto-Speicher belegt." - -#: ../../Zotlabs/Module/Photos.php:647 -msgid "Upload Photos" -msgstr "Fotos hochladen" - -#: ../../Zotlabs/Module/Photos.php:651 -msgid "Enter an album name" -msgstr "Namen für ein neues Album eingeben" - -#: ../../Zotlabs/Module/Photos.php:652 -msgid "or select an existing album (doubleclick)" -msgstr "oder ein bereits vorhandenes auswählen (Doppelklick)" - -#: ../../Zotlabs/Module/Photos.php:653 -msgid "Create a status post for this upload" -msgstr "Einen Statusbeitrag für diesen Upload erzeugen" - -#: ../../Zotlabs/Module/Photos.php:654 -msgid "Caption (optional):" -msgstr "Beschriftung (optional):" - -#: ../../Zotlabs/Module/Photos.php:655 -msgid "Description (optional):" -msgstr "Beschreibung (optional):" - -#: ../../Zotlabs/Module/Photos.php:686 -msgid "Album name could not be decoded" -msgstr "Albumname konnte nicht dekodiert werden" - -#: ../../Zotlabs/Module/Photos.php:734 -msgid "Contact Photos" -msgstr "Kontakt-Bilder" - -#: ../../Zotlabs/Module/Photos.php:757 -msgid "Show Newest First" -msgstr "Neueste zuerst anzeigen" - -#: ../../Zotlabs/Module/Photos.php:759 -msgid "Show Oldest First" -msgstr "Älteste zuerst anzeigen" - -#: ../../Zotlabs/Module/Photos.php:783 ../../Zotlabs/Module/Photos.php:1337 -#: ../../Zotlabs/Module/Embedphotos.php:141 ../../include/widgets.php:1673 -msgid "View Photo" -msgstr "Foto ansehen" - -#: ../../Zotlabs/Module/Photos.php:814 -#: ../../Zotlabs/Module/Embedphotos.php:157 ../../include/widgets.php:1690 -msgid "Edit Album" -msgstr "Album bearbeiten" - -#: ../../Zotlabs/Module/Photos.php:861 -msgid "Permission denied. Access to this item may be restricted." -msgstr "Berechtigung verweigert. Der Zugriff ist wahrscheinlich eingeschränkt worden." - -#: ../../Zotlabs/Module/Photos.php:863 -msgid "Photo not available" -msgstr "Foto nicht verfügbar" - -#: ../../Zotlabs/Module/Photos.php:921 -msgid "Use as profile photo" -msgstr "Als Profilfoto verwenden" - -#: ../../Zotlabs/Module/Photos.php:922 -msgid "Use as cover photo" -msgstr "Als Titelbild verwenden" - -#: ../../Zotlabs/Module/Photos.php:929 -msgid "Private Photo" -msgstr "Privates Foto" - -#: ../../Zotlabs/Module/Photos.php:944 -msgid "View Full Size" -msgstr "In voller Größe anzeigen" - -#: ../../Zotlabs/Module/Photos.php:1033 -msgid "Edit photo" -msgstr "Foto bearbeiten" - -#: ../../Zotlabs/Module/Photos.php:1035 -msgid "Rotate CW (right)" -msgstr "Drehen im UZS (rechts)" - -#: ../../Zotlabs/Module/Photos.php:1036 -msgid "Rotate CCW (left)" -msgstr "Drehen gegen UZS (links)" - -#: ../../Zotlabs/Module/Photos.php:1039 -msgid "Move photo to album" -msgstr "Foto in Album verschieben" - -#: ../../Zotlabs/Module/Photos.php:1040 -msgid "Enter a new album name" -msgstr "Gib einen Namen für ein neues Album ein" - -#: ../../Zotlabs/Module/Photos.php:1041 -msgid "or select an existing one (doubleclick)" -msgstr "oder wähle ein bereits vorhandenes aus (Doppelklick)" - -#: ../../Zotlabs/Module/Photos.php:1044 -msgid "Caption" -msgstr "Bildunterschrift" - -#: ../../Zotlabs/Module/Photos.php:1046 -msgid "Add a Tag" -msgstr "Schlagwort hinzufügen" - -#: ../../Zotlabs/Module/Photos.php:1054 -msgid "Example: @bob, @Barbara_Jensen, @jim@example.com" -msgstr "Beispiele: @ben, @Karl_Prester, @lieschen@example.com" - -#: ../../Zotlabs/Module/Photos.php:1057 -msgid "Flag as adult in album view" -msgstr "In der Albumansicht als nicht jugendfrei markieren" - -#: ../../Zotlabs/Module/Photos.php:1076 ../../Zotlabs/Lib/ThreadItem.php:263 -msgid "I like this (toggle)" -msgstr "Mir gefällt das (Umschalter)" - -#: ../../Zotlabs/Module/Photos.php:1077 ../../Zotlabs/Lib/ThreadItem.php:264 -msgid "I don't like this (toggle)" -msgstr "Mir gefällt das nicht (Umschalter)" - -#: ../../Zotlabs/Module/Photos.php:1079 ../../Zotlabs/Lib/ThreadItem.php:399 -#: ../../include/conversation.php:743 -msgid "Please wait" -msgstr "Bitte warten" - -#: ../../Zotlabs/Module/Photos.php:1095 ../../Zotlabs/Module/Photos.php:1213 -#: ../../Zotlabs/Lib/ThreadItem.php:709 -msgid "This is you" -msgstr "Das bist Du" - -#: ../../Zotlabs/Module/Photos.php:1097 ../../Zotlabs/Module/Photos.php:1215 -#: ../../Zotlabs/Lib/ThreadItem.php:711 ../../include/js_strings.php:6 -msgid "Comment" -msgstr "Kommentar" - -#: ../../Zotlabs/Module/Photos.php:1113 ../../include/conversation.php:577 -msgctxt "title" -msgid "Likes" -msgstr "Gefällt mir" - -#: ../../Zotlabs/Module/Photos.php:1113 ../../include/conversation.php:577 -msgctxt "title" -msgid "Dislikes" -msgstr "Gefällt mir nicht" - -#: ../../Zotlabs/Module/Photos.php:1114 ../../include/conversation.php:578 -msgctxt "title" -msgid "Agree" -msgstr "Zustimmungen" - -#: ../../Zotlabs/Module/Photos.php:1114 ../../include/conversation.php:578 -msgctxt "title" -msgid "Disagree" -msgstr "Ablehnungen" - -#: ../../Zotlabs/Module/Photos.php:1114 ../../include/conversation.php:578 -msgctxt "title" -msgid "Abstain" -msgstr "Enthaltungen" - -#: ../../Zotlabs/Module/Photos.php:1115 ../../include/conversation.php:579 -msgctxt "title" -msgid "Attending" -msgstr "Zusagen" - -#: ../../Zotlabs/Module/Photos.php:1115 ../../include/conversation.php:579 -msgctxt "title" -msgid "Not attending" -msgstr "Absagen" - -#: ../../Zotlabs/Module/Photos.php:1115 ../../include/conversation.php:579 -msgctxt "title" -msgid "Might attend" -msgstr "Vielleicht" - -#: ../../Zotlabs/Module/Photos.php:1132 ../../Zotlabs/Module/Photos.php:1144 -#: ../../Zotlabs/Lib/ThreadItem.php:181 ../../Zotlabs/Lib/ThreadItem.php:193 -#: ../../include/conversation.php:1762 -msgid "View all" -msgstr "Alles anzeigen" - -#: ../../Zotlabs/Module/Photos.php:1136 ../../Zotlabs/Lib/ThreadItem.php:185 -#: ../../include/channel.php:1182 ../../include/conversation.php:1786 -#: ../../include/taxonomy.php:403 -msgctxt "noun" -msgid "Like" -msgid_plural "Likes" -msgstr[0] "Gefällt mir" -msgstr[1] "Gefällt mir" - -#: ../../Zotlabs/Module/Photos.php:1141 ../../Zotlabs/Lib/ThreadItem.php:190 -#: ../../include/conversation.php:1789 -msgctxt "noun" -msgid "Dislike" -msgid_plural "Dislikes" -msgstr[0] "Gefällt nicht" -msgstr[1] "Gefällt nicht" - -#: ../../Zotlabs/Module/Photos.php:1241 -msgid "Photo Tools" -msgstr "Fotowerkzeuge" - -#: ../../Zotlabs/Module/Photos.php:1250 -msgid "In This Photo:" -msgstr "Auf diesem Foto:" - -#: ../../Zotlabs/Module/Photos.php:1255 -msgid "Map" -msgstr "Karte" - -#: ../../Zotlabs/Module/Photos.php:1263 ../../Zotlabs/Lib/ThreadItem.php:388 -msgctxt "noun" -msgid "Likes" -msgstr "Gefällt mir" - -#: ../../Zotlabs/Module/Photos.php:1264 ../../Zotlabs/Lib/ThreadItem.php:389 -msgctxt "noun" -msgid "Dislikes" -msgstr "Gefällt nicht" - -#: ../../Zotlabs/Module/Photos.php:1269 ../../Zotlabs/Lib/ThreadItem.php:394 -#: ../../include/acl_selectors.php:181 -msgid "Close" -msgstr "Schließen" - -#: ../../Zotlabs/Module/Photos.php:1343 -msgid "View Album" -msgstr "Album ansehen" - -#: ../../Zotlabs/Module/Photos.php:1354 ../../Zotlabs/Module/Photos.php:1367 -#: ../../Zotlabs/Module/Photos.php:1368 -msgid "Recent Photos" -msgstr "Neueste Fotos" - -#: ../../Zotlabs/Module/Follow.php:34 -msgid "Channel added." -msgstr "Kanal hinzugefügt." - -#: ../../Zotlabs/Module/Viewconnections.php:65 -msgid "No connections." -msgstr "Keine Verbindungen." - -#: ../../Zotlabs/Module/Viewconnections.php:78 -#, php-format -msgid "Visit %s's profile [%s]" -msgstr "%ss Profil [%s] besuchen" - -#: ../../Zotlabs/Module/Viewconnections.php:107 -msgid "View Connections" -msgstr "Verbindungen anzeigen" - -#: ../../Zotlabs/Module/Viewsrc.php:44 -msgid "Source of Item" -msgstr "Quelle des Elements" - -#: ../../Zotlabs/Module/Chat.php:181 -msgid "Room not found" -msgstr "Chatraum nicht gefunden" - -#: ../../Zotlabs/Module/Chat.php:197 -msgid "Leave Room" -msgstr "Raum verlassen" - -#: ../../Zotlabs/Module/Chat.php:198 -msgid "Delete Room" -msgstr "Raum löschen" - -#: ../../Zotlabs/Module/Chat.php:199 -msgid "I am away right now" -msgstr "Ich bin gerade nicht da" - -#: ../../Zotlabs/Module/Chat.php:200 -msgid "I am online" -msgstr "Ich bin online" - -#: ../../Zotlabs/Module/Chat.php:202 -msgid "Bookmark this room" -msgstr "Lesezeichen für diesen Raum setzen" - -#: ../../Zotlabs/Module/Chat.php:231 -msgid "New Chatroom" -msgstr "Neuer Chatraum" - -#: ../../Zotlabs/Module/Chat.php:232 -msgid "Chatroom name" -msgstr "Chatraumname" - -#: ../../Zotlabs/Module/Chat.php:233 -msgid "Expiration of chats (minutes)" -msgstr "Verfall von Chats (Minuten)" - -#: ../../Zotlabs/Module/Chat.php:249 -#, php-format -msgid "%1$s's Chatrooms" -msgstr "%1$ss Chaträume" - -#: ../../Zotlabs/Module/Chat.php:254 -msgid "No chatrooms available" -msgstr "Keine Chaträume verfügbar" - -#: ../../Zotlabs/Module/Chat.php:258 -msgid "Expiration" -msgstr "Verfall" - -#: ../../Zotlabs/Module/Chat.php:259 -msgid "min" -msgstr "min" - -#: ../../Zotlabs/Module/Xchan.php:10 -msgid "Xchan Lookup" -msgstr "Xchan-Suche" - -#: ../../Zotlabs/Module/Xchan.php:13 -msgid "Lookup xchan beginning with (or webbie): " -msgstr "Nach xchans oder Webbies (Kanal-Adressen) suchen, die wie folgt beginnen:" - -#: ../../Zotlabs/Module/Admin.php:97 -msgid "# Accounts" -msgstr "Anzahl der Konten" - -#: ../../Zotlabs/Module/Admin.php:98 -msgid "# blocked accounts" -msgstr "Anzahl der blockierten Konten" - -#: ../../Zotlabs/Module/Admin.php:99 -msgid "# expired accounts" -msgstr "Anzahl der abgelaufenen Konten" - -#: ../../Zotlabs/Module/Admin.php:100 -msgid "# expiring accounts" -msgstr "Anzahl der ablaufenden Konten" - -#: ../../Zotlabs/Module/Admin.php:111 -msgid "# Channels" -msgstr "Anzahl der Kanäle" - -#: ../../Zotlabs/Module/Admin.php:112 -msgid "# primary" -msgstr "Anzahl der primären Kanäle" - -#: ../../Zotlabs/Module/Admin.php:113 -msgid "# clones" -msgstr "Anzahl der Klone" - -#: ../../Zotlabs/Module/Admin.php:119 -msgid "Message queues" -msgstr "Nachrichten-Warteschlangen" - -#: ../../Zotlabs/Module/Admin.php:136 -msgid "Your software should be updated" -msgstr "Die installierte Software sollte aktualisiert werden" - -#: ../../Zotlabs/Module/Admin.php:142 -msgid "Summary" -msgstr "Zusammenfassung" - -#: ../../Zotlabs/Module/Admin.php:145 -msgid "Registered accounts" -msgstr "Registrierte Konten" - -#: ../../Zotlabs/Module/Admin.php:146 -msgid "Pending registrations" -msgstr "Ausstehende Registrierungen" - -#: ../../Zotlabs/Module/Admin.php:147 -msgid "Registered channels" -msgstr "Registrierte Kanäle" - -#: ../../Zotlabs/Module/Admin.php:148 -msgid "Active plugins" -msgstr "Aktive Plug-Ins" - -#: ../../Zotlabs/Module/Admin.php:149 -msgid "Version" -msgstr "Version" - -#: ../../Zotlabs/Module/Admin.php:150 -msgid "Repository version (master)" -msgstr "Repository-Version (master)" - -#: ../../Zotlabs/Module/Admin.php:151 -msgid "Repository version (dev)" -msgstr "Repository-Version (dev)" - -#: ../../Zotlabs/Module/Settings/Account.php:20 -msgid "Not valid email." -msgstr "Keine gültige E-Mail Adresse." - -#: ../../Zotlabs/Module/Settings/Account.php:23 -msgid "Protected email address. Cannot change to that email." -msgstr "Geschützte E-Mail Adresse. Diese kann nicht verändert werden." - -#: ../../Zotlabs/Module/Settings/Account.php:32 -msgid "System failure storing new email. Please try again." -msgstr "Systemfehler während des Speicherns der neuen Mail. Bitte versuche es noch einmal." - -#: ../../Zotlabs/Module/Settings/Account.php:40 -msgid "Technical skill level updated" -msgstr "Technische Qualifikationsstufe aktualisiert" - -#: ../../Zotlabs/Module/Settings/Account.php:56 -msgid "Password verification failed." -msgstr "Passwortüberprüfung fehlgeschlagen." - -#: ../../Zotlabs/Module/Settings/Account.php:63 -msgid "Passwords do not match. Password unchanged." -msgstr "Kennwörter stimmen nicht überein. Kennwort nicht verändert." - -#: ../../Zotlabs/Module/Settings/Account.php:67 -msgid "Empty passwords are not allowed. Password unchanged." -msgstr "Leere Kennwörter sind nicht erlaubt. Kennwort nicht verändert." - -#: ../../Zotlabs/Module/Settings/Account.php:81 -msgid "Password changed." -msgstr "Kennwort geändert." - -#: ../../Zotlabs/Module/Settings/Account.php:83 -msgid "Password update failed. Please try again." -msgstr "Kennwortänderung fehlgeschlagen. Bitte versuche es noch einmal." - -#: ../../Zotlabs/Module/Settings/Account.php:120 -msgid "Account Settings" -msgstr "Konto-Einstellungen" - -#: ../../Zotlabs/Module/Settings/Account.php:121 -msgid "Current Password" -msgstr "Aktuelles Passwort" - -#: ../../Zotlabs/Module/Settings/Account.php:122 -msgid "Enter New Password" -msgstr "Gib ein neues Passwort ein" - -#: ../../Zotlabs/Module/Settings/Account.php:123 -msgid "Confirm New Password" -msgstr "Bestätige das neue Passwort" - -#: ../../Zotlabs/Module/Settings/Account.php:123 -msgid "Leave password fields blank unless changing" -msgstr "Lasse die Passwort-Felder leer, außer Du möchtest das Passwort ändern" - -#: ../../Zotlabs/Module/Settings/Account.php:124 -msgid "Your technical skill level" -msgstr "Deine technische Qualifikationsstufe" - -#: ../../Zotlabs/Module/Settings/Account.php:124 -msgid "Used to provide a member experience matched to your comfort level" -msgstr "Dies wird verwendet, um Dir eine Benutzererfahrung passend zu Deiner technischen Qualifikationsstufe zu bieten." - -#: ../../Zotlabs/Module/Settings/Account.php:127 -#: ../../Zotlabs/Module/Settings/Channel.php:459 -msgid "Email Address:" -msgstr "Email Adresse:" - -#: ../../Zotlabs/Module/Settings/Account.php:129 -msgid "Remove this account including all its channels" -msgstr "Dieses Konto inklusive all seiner Kanäle löschen" - -#: ../../Zotlabs/Module/Settings/Channel.php:246 -msgid "Settings updated." -msgstr "Einstellungen aktualisiert." - -#: ../../Zotlabs/Module/Settings/Channel.php:307 -msgid "Nobody except yourself" -msgstr "Niemand außer Dir selbst" - -#: ../../Zotlabs/Module/Settings/Channel.php:308 -msgid "Only those you specifically allow" -msgstr "Nur die, denen Du es explizit erlaubst" - -#: ../../Zotlabs/Module/Settings/Channel.php:309 -msgid "Approved connections" -msgstr "Angenommene Verbindungen" - -#: ../../Zotlabs/Module/Settings/Channel.php:310 -msgid "Any connections" -msgstr "Beliebige Verbindungen" - -#: ../../Zotlabs/Module/Settings/Channel.php:311 -msgid "Anybody on this website" -msgstr "Jeder auf dieser Website" - -#: ../../Zotlabs/Module/Settings/Channel.php:312 -msgid "Anybody in this network" -msgstr "Alle $Projectname-Mitglieder" - -#: ../../Zotlabs/Module/Settings/Channel.php:313 -msgid "Anybody authenticated" -msgstr "Jeder authentifizierte" - -#: ../../Zotlabs/Module/Settings/Channel.php:314 -msgid "Anybody on the internet" -msgstr "Jeder im Internet" - -#: ../../Zotlabs/Module/Settings/Channel.php:390 -msgid "Publish your default profile in the network directory" -msgstr "Standard-Profil im Netzwerk-Verzeichnis veröffentlichen" - -#: ../../Zotlabs/Module/Settings/Channel.php:395 -msgid "Allow us to suggest you as a potential friend to new members?" -msgstr "Dürfen wir Dich neuen Mitgliedern als potentiellen Kontakt vorschlagen?" - -#: ../../Zotlabs/Module/Settings/Channel.php:404 -msgid "Your channel address is" -msgstr "Deine Kanal-Adresse lautet" - -#: ../../Zotlabs/Module/Settings/Channel.php:450 -msgid "Channel Settings" -msgstr "Kanal-Einstellungen" - -#: ../../Zotlabs/Module/Settings/Channel.php:457 -msgid "Basic Settings" -msgstr "Grundeinstellungen" - -#: ../../Zotlabs/Module/Settings/Channel.php:458 -#: ../../include/channel.php:1164 -msgid "Full Name:" -msgstr "Voller Name:" - -#: ../../Zotlabs/Module/Settings/Channel.php:460 -msgid "Your Timezone:" -msgstr "Ihre Zeitzone:" - -#: ../../Zotlabs/Module/Settings/Channel.php:461 -msgid "Default Post Location:" -msgstr "Standardstandort:" - -#: ../../Zotlabs/Module/Settings/Channel.php:461 -msgid "Geographical location to display on your posts" -msgstr "Geografischer Ort, der bei Deinen Beiträgen angezeigt werden soll" - -#: ../../Zotlabs/Module/Settings/Channel.php:462 -msgid "Use Browser Location:" -msgstr "Standort des Browsers verwenden:" - -#: ../../Zotlabs/Module/Settings/Channel.php:464 -msgid "Adult Content" -msgstr "Nicht jugendfreie Inhalte" - -#: ../../Zotlabs/Module/Settings/Channel.php:464 -msgid "" -"This channel frequently or regularly publishes adult content. (Please tag " -"any adult material and/or nudity with #NSFW)" -msgstr "Dieser Kanal veröffentlicht regelmäßig Inhalte, die für Minderjährige ungeeignet sind. (Bitte markiere solche Inhalte mit dem Schlagwort #NSFW)" - -#: ../../Zotlabs/Module/Settings/Channel.php:466 -msgid "Security and Privacy Settings" -msgstr "Sicherheits- und Datenschutz-Einstellungen" - -#: ../../Zotlabs/Module/Settings/Channel.php:469 -msgid "Your permissions are already configured. Click to view/adjust" -msgstr "Deine Zugriffsrechte sind schon konfiguriert. Klicke hier, um sie zu betrachten oder zu ändern" - -#: ../../Zotlabs/Module/Settings/Channel.php:471 -msgid "Hide my online presence" -msgstr "Meine Online-Präsenz verbergen" - -#: ../../Zotlabs/Module/Settings/Channel.php:471 -msgid "Prevents displaying in your profile that you are online" -msgstr "Verhindert die Anzeige Deines Online-Status in deinem Profil" - -#: ../../Zotlabs/Module/Settings/Channel.php:473 -msgid "Simple Privacy Settings:" -msgstr "Einfache Privatsphäre-Einstellungen" - -#: ../../Zotlabs/Module/Settings/Channel.php:474 -msgid "" -"Very Public - extremely permissive (should be used with caution)" -msgstr "Komplett offen – extrem ungeschützt (mit großer Vorsicht verwenden!)" - -#: ../../Zotlabs/Module/Settings/Channel.php:475 -msgid "" -"Typical - default public, privacy when desired (similar to social " -"network permissions but with improved privacy)" -msgstr "Typisch – Standard öffentlich, Privatsphäre, wo sie erwünscht ist (ähnlich den Einstellungen in sozialen Netzwerken, aber mit besser geschützter Privatsphäre)" - -#: ../../Zotlabs/Module/Settings/Channel.php:476 -msgid "Private - default private, never open or public" -msgstr "Privat – Standard privat, nie offen oder öffentlich" - -#: ../../Zotlabs/Module/Settings/Channel.php:477 -msgid "Blocked - default blocked to/from everybody" -msgstr "Blockiert – Alle standardmäßig blockiert" - -#: ../../Zotlabs/Module/Settings/Channel.php:479 -msgid "Allow others to tag your posts" -msgstr "Erlaube anderen, Deine Beiträge zu verschlagworten" - -#: ../../Zotlabs/Module/Settings/Channel.php:479 -msgid "" -"Often used by the community to retro-actively flag inappropriate content" -msgstr "Wird oft von der Community genutzt um rückwirkend anstößigen Inhalt zu markieren" - -#: ../../Zotlabs/Module/Settings/Channel.php:481 -msgid "Channel Permission Limits" -msgstr "Kanal-Berechtigungslimits" - -#: ../../Zotlabs/Module/Settings/Channel.php:483 -msgid "Expire other channel content after this many days" -msgstr "Den Inhalt anderer Kanäle nach dieser Anzahl Tage verfallen lassen" - -#: ../../Zotlabs/Module/Settings/Channel.php:483 -msgid "0 or blank to use the website limit." -msgstr "0 oder leer lassen, um den voreingestellten Wert der Webseite zu verwenden." - -#: ../../Zotlabs/Module/Settings/Channel.php:483 -#, php-format -msgid "This website expires after %d days." -msgstr "Diese Webseite läuft nach %d Tagen ab." - -#: ../../Zotlabs/Module/Settings/Channel.php:483 -msgid "This website does not expire imported content." -msgstr "Diese Webseite lässt importierte Inhalte nicht verfallen." - -#: ../../Zotlabs/Module/Settings/Channel.php:483 -msgid "The website limit takes precedence if lower than your limit." -msgstr "Das Verfallslimit der Webseite hat Vorrang, wenn es niedriger als Deines hier ist." - -#: ../../Zotlabs/Module/Settings/Channel.php:484 -msgid "Maximum Friend Requests/Day:" -msgstr "Maximale Kontaktanfragen pro Tag:" - -#: ../../Zotlabs/Module/Settings/Channel.php:484 -msgid "May reduce spam activity" -msgstr "Kann die Spam-Aktivität verringern" - -#: ../../Zotlabs/Module/Settings/Channel.php:485 -msgid "Default Access Control List (ACL)" -msgstr "Standard-Zugriffsberechtigungsliste (ACL)" - -#: ../../Zotlabs/Module/Settings/Channel.php:487 -msgid "Use my default audience setting for the type of object published" -msgstr "Verwende Deine eingestellte Standard-Zielgruppe des jeweiligen Inhaltstyps" - -#: ../../Zotlabs/Module/Settings/Channel.php:494 -msgid "Channel permissions category:" -msgstr "Zugriffsrechte-Kategorie des Kanals:" - -#: ../../Zotlabs/Module/Settings/Channel.php:500 -msgid "Maximum private messages per day from unknown people:" -msgstr "Maximale Anzahl privater Nachrichten pro Tag von unbekannten Leuten:" - -#: ../../Zotlabs/Module/Settings/Channel.php:500 -msgid "Useful to reduce spamming" -msgstr "Nützlich, um Spam zu verringern" - -#: ../../Zotlabs/Module/Settings/Channel.php:503 -msgid "Notification Settings" -msgstr "Benachrichtigungs-Einstellungen" - -#: ../../Zotlabs/Module/Settings/Channel.php:504 -msgid "By default post a status message when:" -msgstr "Sende standardmäßig Status-Nachrichten, wenn:" - -#: ../../Zotlabs/Module/Settings/Channel.php:505 -msgid "accepting a friend request" -msgstr "Du eine Verbindungsanfrage annimmst" - -#: ../../Zotlabs/Module/Settings/Channel.php:506 -msgid "joining a forum/community" -msgstr "Du einem Forum beitrittst" - -#: ../../Zotlabs/Module/Settings/Channel.php:507 -msgid "making an interesting profile change" -msgstr "Du eine interessante Änderung an Deinem Profil vornimmst" - -#: ../../Zotlabs/Module/Settings/Channel.php:508 -msgid "Send a notification email when:" -msgstr "Eine E-Mail-Benachrichtigung senden, wenn:" - -#: ../../Zotlabs/Module/Settings/Channel.php:509 -msgid "You receive a connection request" -msgstr "Du eine Verbindungsanfrage erhältst" - -#: ../../Zotlabs/Module/Settings/Channel.php:510 -msgid "Your connections are confirmed" -msgstr "Eine Verbindung bestätigt wurde" - -#: ../../Zotlabs/Module/Settings/Channel.php:511 -msgid "Someone writes on your profile wall" -msgstr "Jemand auf Deine Pinnwand schreibt" - -#: ../../Zotlabs/Module/Settings/Channel.php:512 -msgid "Someone writes a followup comment" -msgstr "Jemand einen Beitrag kommentiert" - -#: ../../Zotlabs/Module/Settings/Channel.php:513 -msgid "You receive a private message" -msgstr "Du eine private Nachricht erhältst" - -#: ../../Zotlabs/Module/Settings/Channel.php:514 -msgid "You receive a friend suggestion" -msgstr "Du einen Kontaktvorschlag erhältst" - -#: ../../Zotlabs/Module/Settings/Channel.php:515 -msgid "You are tagged in a post" -msgstr "Du in einem Beitrag erwähnt wurdest" - -#: ../../Zotlabs/Module/Settings/Channel.php:516 -msgid "You are poked/prodded/etc. in a post" -msgstr "Du in einem Beitrag angestupst/geknufft/o.ä. wurdest" - -#: ../../Zotlabs/Module/Settings/Channel.php:519 -msgid "Show visual notifications including:" -msgstr "Visuelle Benachrichtigungen anzeigen für:" - -#: ../../Zotlabs/Module/Settings/Channel.php:521 -msgid "Unseen grid activity" -msgstr "Ungesehene Netzwerk-Aktivität" - -#: ../../Zotlabs/Module/Settings/Channel.php:522 -msgid "Unseen channel activity" -msgstr "Ungesehene Kanal-Aktivität" - -#: ../../Zotlabs/Module/Settings/Channel.php:523 -msgid "Unseen private messages" -msgstr "Ungelesene persönliche Nachrichten" - -#: ../../Zotlabs/Module/Settings/Channel.php:523 -#: ../../Zotlabs/Module/Settings/Channel.php:528 -#: ../../Zotlabs/Module/Settings/Channel.php:529 -#: ../../Zotlabs/Module/Settings/Channel.php:530 -msgid "Recommended" -msgstr "Empfohlen" - -#: ../../Zotlabs/Module/Settings/Channel.php:524 -msgid "Upcoming events" -msgstr "Baldige Termine" - -#: ../../Zotlabs/Module/Settings/Channel.php:525 -msgid "Events today" -msgstr "Heutige Termine" - -#: ../../Zotlabs/Module/Settings/Channel.php:526 -msgid "Upcoming birthdays" -msgstr "Baldige Geburtstage" - -#: ../../Zotlabs/Module/Settings/Channel.php:526 -msgid "Not available in all themes" -msgstr "Nicht in allen Themes verfügbar" - -#: ../../Zotlabs/Module/Settings/Channel.php:527 -msgid "System (personal) notifications" -msgstr "System – (persönliche) Benachrichtigungen" - -#: ../../Zotlabs/Module/Settings/Channel.php:528 -msgid "System info messages" -msgstr "System – Info-Nachrichten" - -#: ../../Zotlabs/Module/Settings/Channel.php:529 -msgid "System critical alerts" -msgstr "System – kritische Warnungen" - -#: ../../Zotlabs/Module/Settings/Channel.php:530 -msgid "New connections" -msgstr "Neue Verbindungen" - -#: ../../Zotlabs/Module/Settings/Channel.php:531 -msgid "System Registrations" -msgstr "System – Registrierungen" - -#: ../../Zotlabs/Module/Settings/Channel.php:532 -msgid "" -"Also show new wall posts, private messages and connections under Notices" -msgstr "Neue Pinnwand-Nachrichten, private Nachrichten und Verbindungen unter Benachrichtigungen anzeigen" - -#: ../../Zotlabs/Module/Settings/Channel.php:534 -msgid "Notify me of events this many days in advance" -msgstr "Benachrichtige mich zu Terminen so viele Tage im Voraus" - -#: ../../Zotlabs/Module/Settings/Channel.php:534 -msgid "Must be greater than 0" -msgstr "Muss größer als 0 sein" - -#: ../../Zotlabs/Module/Settings/Channel.php:536 -msgid "Advanced Account/Page Type Settings" -msgstr "Erweiterte Account- und Seitenart-Einstellungen" - -#: ../../Zotlabs/Module/Settings/Channel.php:537 -msgid "Change the behaviour of this account for special situations" -msgstr "Ändere das Verhalten dieses Accounts unter speziellen Umständen" - -#: ../../Zotlabs/Module/Settings/Channel.php:539 -msgid "Miscellaneous Settings" -msgstr "Sonstige Einstellungen" - -#: ../../Zotlabs/Module/Settings/Channel.php:540 -msgid "Default photo upload folder" -msgstr "Voreingestellter Ordner für hochgeladene Fotos" - -#: ../../Zotlabs/Module/Settings/Channel.php:540 -#: ../../Zotlabs/Module/Settings/Channel.php:541 -msgid "%Y - current year, %m - current month" -msgstr "%Y - aktuelles Jahr, %m - aktueller Monat" - -#: ../../Zotlabs/Module/Settings/Channel.php:541 -msgid "Default file upload folder" -msgstr "Voreingestellter Ordner für hochgeladene Dateien" - -#: ../../Zotlabs/Module/Settings/Channel.php:543 -msgid "Personal menu to display in your channel pages" -msgstr "Eigenes Menü zur Anzeige auf den Seiten deines Kanals" - -#: ../../Zotlabs/Module/Settings/Channel.php:545 -msgid "Remove this channel." -msgstr "Diesen Kanal löschen" - -#: ../../Zotlabs/Module/Settings/Channel.php:546 -msgid "Firefox Share $Projectname provider" -msgstr "$Projectname-Provider für Firefox Share" - -#: ../../Zotlabs/Module/Settings/Channel.php:547 -msgid "Start calendar week on monday" -msgstr "Montag als erster Tag der Kalenderwoche" - -#: ../../Zotlabs/Module/Settings/Display.php:135 -msgid "No special theme for mobile devices" -msgstr "Keine spezielle Theme für mobile Geräte" - -#: ../../Zotlabs/Module/Settings/Display.php:138 -#, php-format -msgid "%s - (Experimental)" -msgstr "%s – (experimentell)" - -#: ../../Zotlabs/Module/Settings/Display.php:189 -msgid "Display Settings" -msgstr "Anzeige-Einstellungen" - -#: ../../Zotlabs/Module/Settings/Display.php:190 -msgid "Theme Settings" -msgstr "Theme-Einstellungen" - -#: ../../Zotlabs/Module/Settings/Display.php:191 -msgid "Custom Theme Settings" -msgstr "Benutzerdefinierte Theme-Einstellungen" - -#: ../../Zotlabs/Module/Settings/Display.php:192 -msgid "Content Settings" -msgstr "Inhaltseinstellungen" - -#: ../../Zotlabs/Module/Settings/Display.php:198 -msgid "Display Theme:" -msgstr "Anzeige-Theme:" - -#: ../../Zotlabs/Module/Settings/Display.php:199 -msgid "Select scheme" -msgstr "Schema wählen" - -#: ../../Zotlabs/Module/Settings/Display.php:201 -msgid "Mobile Theme:" -msgstr "Mobile Theme:" - -#: ../../Zotlabs/Module/Settings/Display.php:202 -msgid "Preload images before rendering the page" -msgstr "Bilder im voraus laden, bevor die Seite angezeigt wird" - -#: ../../Zotlabs/Module/Settings/Display.php:202 -msgid "" -"The subjective page load time will be longer but the page will be ready when" -" displayed" -msgstr "Die empfundene Ladezeit wird sich erhöhen, aber dafür ist das Layout stabil, sobald eine Seite angezeigt wird" - -#: ../../Zotlabs/Module/Settings/Display.php:203 -msgid "Enable user zoom on mobile devices" -msgstr "Zoom auf Mobilgeräten aktivieren" - -#: ../../Zotlabs/Module/Settings/Display.php:204 -msgid "Update browser every xx seconds" -msgstr "Browser alle xx Sekunden aktualisieren" - -#: ../../Zotlabs/Module/Settings/Display.php:204 -msgid "Minimum of 10 seconds, no maximum" -msgstr "Minimum 10 Sekunden, kein Maximum" - -#: ../../Zotlabs/Module/Settings/Display.php:205 -msgid "Maximum number of conversations to load at any time:" -msgstr "Maximale Anzahl von Unterhaltungen, die auf einmal geladen werden sollen:" - -#: ../../Zotlabs/Module/Settings/Display.php:205 -msgid "Maximum of 100 items" -msgstr "Maximum: 100 Beiträge" - -#: ../../Zotlabs/Module/Settings/Display.php:206 -msgid "Show emoticons (smilies) as images" -msgstr "Emoticons (Smilies) als Bilder anzeigen" - -#: ../../Zotlabs/Module/Settings/Display.php:207 -msgid "Link post titles to source" -msgstr "Beitragstitel zum Originalbeitrag verlinken" - -#: ../../Zotlabs/Module/Settings/Display.php:208 -msgid "System Page Layout Editor - (advanced)" -msgstr "System-Seitenlayout-Editor (für Experten)" - -#: ../../Zotlabs/Module/Settings/Display.php:211 -msgid "Use blog/list mode on channel page" -msgstr "Blog-/Listenmodus auf der Kanalseite verwenden" - -#: ../../Zotlabs/Module/Settings/Display.php:211 -#: ../../Zotlabs/Module/Settings/Display.php:212 -msgid "(comments displayed separately)" -msgstr "(Kommentare werden separat angezeigt)" - -#: ../../Zotlabs/Module/Settings/Display.php:212 -msgid "Use blog/list mode on grid page" -msgstr "Blog-/Listenmodus auf der Netzwerkseite verwenden" - -#: ../../Zotlabs/Module/Settings/Display.php:213 -msgid "Channel page max height of content (in pixels)" -msgstr "Maximale Höhe von Beitragsblöcken auf der Kanalseite (in Pixeln)" - -#: ../../Zotlabs/Module/Settings/Display.php:213 -#: ../../Zotlabs/Module/Settings/Display.php:214 -msgid "click to expand content exceeding this height" -msgstr "Blöcke, deren Inhalt diese Höhe überschreitet, können per Klick vergrößert werden." - -#: ../../Zotlabs/Module/Settings/Display.php:214 -msgid "Grid page max height of content (in pixels)" -msgstr "Maximale Höhe (in Pixel) des Inhalts der Netzwerkseite" - -#: ../../Zotlabs/Module/Settings/Featured.php:24 -msgid "No feature settings configured" -msgstr "Keine Funktions-Einstellungen konfiguriert" - -#: ../../Zotlabs/Module/Settings/Featured.php:31 -msgid "Feature/Addon Settings" -msgstr "Funktions-/Addon-Einstellungen" - #: ../../Zotlabs/Module/Settings/Features.php:45 msgid "Additional Features" msgstr "Zusätzliche Funktionen" @@ -6558,6 +5940,8 @@ msgstr "Name der Anwendung" #: ../../Zotlabs/Module/Settings/Oauth.php:90 #: ../../Zotlabs/Module/Settings/Oauth.php:116 +#: ../../extend/addon/addon/statusnet/statusnet.php:893 +#: ../../extend/addon/addon/twitter/twitter.php:775 msgid "Consumer Key" msgstr "Consumer Key" @@ -6568,6 +5952,8 @@ msgstr "Automatisch erzeugt – ändern, falls erwünscht. Maximale Länge 20" #: ../../Zotlabs/Module/Settings/Oauth.php:91 #: ../../Zotlabs/Module/Settings/Oauth.php:117 +#: ../../extend/addon/addon/statusnet/statusnet.php:892 +#: ../../extend/addon/addon/twitter/twitter.php:776 msgid "Consumer Secret" msgstr "Consumer Secret" @@ -6650,6 +6036,917 @@ msgstr "Anmeldepasswort" msgid "Expires (yyyy-mm-dd)" msgstr "Läuft ab (jjjj-mm-tt)" +#: ../../Zotlabs/Module/Settings/Account.php:20 +msgid "Not valid email." +msgstr "Keine gültige E-Mail Adresse." + +#: ../../Zotlabs/Module/Settings/Account.php:23 +msgid "Protected email address. Cannot change to that email." +msgstr "Geschützte E-Mail Adresse. Diese kann nicht verändert werden." + +#: ../../Zotlabs/Module/Settings/Account.php:32 +msgid "System failure storing new email. Please try again." +msgstr "Systemfehler während des Speicherns der neuen Mail. Bitte versuche es noch einmal." + +#: ../../Zotlabs/Module/Settings/Account.php:40 +msgid "Technical skill level updated" +msgstr "Technische Qualifikationsstufe aktualisiert" + +#: ../../Zotlabs/Module/Settings/Account.php:56 +msgid "Password verification failed." +msgstr "Passwortüberprüfung fehlgeschlagen." + +#: ../../Zotlabs/Module/Settings/Account.php:63 +msgid "Passwords do not match. Password unchanged." +msgstr "Kennwörter stimmen nicht überein. Kennwort nicht verändert." + +#: ../../Zotlabs/Module/Settings/Account.php:67 +msgid "Empty passwords are not allowed. Password unchanged." +msgstr "Leere Kennwörter sind nicht erlaubt. Kennwort nicht verändert." + +#: ../../Zotlabs/Module/Settings/Account.php:81 +msgid "Password changed." +msgstr "Kennwort geändert." + +#: ../../Zotlabs/Module/Settings/Account.php:83 +msgid "Password update failed. Please try again." +msgstr "Kennwortänderung fehlgeschlagen. Bitte versuche es noch einmal." + +#: ../../Zotlabs/Module/Settings/Account.php:112 +msgid "Account Settings" +msgstr "Konto-Einstellungen" + +#: ../../Zotlabs/Module/Settings/Account.php:113 +msgid "Current Password" +msgstr "Aktuelles Passwort" + +#: ../../Zotlabs/Module/Settings/Account.php:114 +msgid "Enter New Password" +msgstr "Gib ein neues Passwort ein" + +#: ../../Zotlabs/Module/Settings/Account.php:115 +msgid "Confirm New Password" +msgstr "Bestätige das neue Passwort" + +#: ../../Zotlabs/Module/Settings/Account.php:115 +msgid "Leave password fields blank unless changing" +msgstr "Lasse die Passwort-Felder leer, außer Du möchtest das Passwort ändern" + +#: ../../Zotlabs/Module/Settings/Account.php:116 +msgid "Your technical skill level" +msgstr "Deine technische Qualifikationsstufe" + +#: ../../Zotlabs/Module/Settings/Account.php:116 +msgid "Used to provide a member experience matched to your comfort level" +msgstr "Dies wird verwendet, um Dir eine Benutzererfahrung passend zu Deiner technischen Qualifikationsstufe zu bieten." + +#: ../../Zotlabs/Module/Settings/Account.php:119 +#: ../../Zotlabs/Module/Settings/Channel.php:462 +msgid "Email Address:" +msgstr "Email Adresse:" + +#: ../../Zotlabs/Module/Settings/Account.php:121 +msgid "Remove this account including all its channels" +msgstr "Dieses Konto inklusive all seiner Kanäle löschen" + +#: ../../Zotlabs/Module/Settings/Channel.php:246 +#: ../../extend/addon/addon/logrot/logrot.php:54 +#: ../../extend/addon/addon/msgfooter/msgfooter.php:54 +#: ../../extend/addon/addon/openstreetmap/openstreetmap.php:184 +#: ../../extend/addon/addon/piwik/piwik.php:116 +#: ../../extend/addon/addon/twitter/twitter.php:766 +#: ../../extend/addon/addon/xmpp/xmpp.php:102 +#: ../../extend/addon/addon/rendezvous/rendezvous.php:82 +msgid "Settings updated." +msgstr "Einstellungen aktualisiert." + +#: ../../Zotlabs/Module/Settings/Channel.php:307 +msgid "Nobody except yourself" +msgstr "Niemand außer Dir selbst" + +#: ../../Zotlabs/Module/Settings/Channel.php:308 +msgid "Only those you specifically allow" +msgstr "Nur die, denen Du es explizit erlaubst" + +#: ../../Zotlabs/Module/Settings/Channel.php:309 +msgid "Approved connections" +msgstr "Angenommene Verbindungen" + +#: ../../Zotlabs/Module/Settings/Channel.php:310 +msgid "Any connections" +msgstr "Beliebige Verbindungen" + +#: ../../Zotlabs/Module/Settings/Channel.php:311 +msgid "Anybody on this website" +msgstr "Jeder auf dieser Website" + +#: ../../Zotlabs/Module/Settings/Channel.php:312 +msgid "Anybody in this network" +msgstr "Alle $Projectname-Mitglieder" + +#: ../../Zotlabs/Module/Settings/Channel.php:313 +msgid "Anybody authenticated" +msgstr "Jeder authentifizierte" + +#: ../../Zotlabs/Module/Settings/Channel.php:314 +msgid "Anybody on the internet" +msgstr "Jeder im Internet" + +#: ../../Zotlabs/Module/Settings/Channel.php:390 +msgid "Publish your default profile in the network directory" +msgstr "Standard-Profil im Netzwerk-Verzeichnis veröffentlichen" + +#: ../../Zotlabs/Module/Settings/Channel.php:395 +msgid "Allow us to suggest you as a potential friend to new members?" +msgstr "Dürfen wir Dich neuen Mitgliedern als potentiellen Kontakt vorschlagen?" + +#: ../../Zotlabs/Module/Settings/Channel.php:404 +msgid "Your channel address is" +msgstr "Deine Kanal-Adresse lautet" + +#: ../../Zotlabs/Module/Settings/Channel.php:407 +msgid "Your files/photos are accessible via WebDAV at" +msgstr "Deine Dateien/Fotos sind via WebDAV verfügbar auf" + +#: ../../Zotlabs/Module/Settings/Channel.php:453 +msgid "Channel Settings" +msgstr "Kanal-Einstellungen" + +#: ../../Zotlabs/Module/Settings/Channel.php:460 +msgid "Basic Settings" +msgstr "Grundeinstellungen" + +#: ../../Zotlabs/Module/Settings/Channel.php:461 +#: ../../include/channel.php:1172 +msgid "Full Name:" +msgstr "Voller Name:" + +#: ../../Zotlabs/Module/Settings/Channel.php:463 +msgid "Your Timezone:" +msgstr "Ihre Zeitzone:" + +#: ../../Zotlabs/Module/Settings/Channel.php:464 +msgid "Default Post Location:" +msgstr "Standardstandort:" + +#: ../../Zotlabs/Module/Settings/Channel.php:464 +msgid "Geographical location to display on your posts" +msgstr "Geografischer Ort, der bei Deinen Beiträgen angezeigt werden soll" + +#: ../../Zotlabs/Module/Settings/Channel.php:465 +msgid "Use Browser Location:" +msgstr "Standort des Browsers verwenden:" + +#: ../../Zotlabs/Module/Settings/Channel.php:467 +msgid "Adult Content" +msgstr "Nicht jugendfreie Inhalte" + +#: ../../Zotlabs/Module/Settings/Channel.php:467 +msgid "" +"This channel frequently or regularly publishes adult content. (Please tag " +"any adult material and/or nudity with #NSFW)" +msgstr "Dieser Kanal veröffentlicht regelmäßig Inhalte, die für Minderjährige ungeeignet sind. (Bitte markiere solche Inhalte mit dem Schlagwort #NSFW)" + +#: ../../Zotlabs/Module/Settings/Channel.php:469 +msgid "Security and Privacy Settings" +msgstr "Sicherheits- und Datenschutz-Einstellungen" + +#: ../../Zotlabs/Module/Settings/Channel.php:472 +msgid "Your permissions are already configured. Click to view/adjust" +msgstr "Deine Zugriffsrechte sind schon konfiguriert. Klicke hier, um sie zu betrachten oder zu ändern" + +#: ../../Zotlabs/Module/Settings/Channel.php:474 +msgid "Hide my online presence" +msgstr "Meine Online-Präsenz verbergen" + +#: ../../Zotlabs/Module/Settings/Channel.php:474 +msgid "Prevents displaying in your profile that you are online" +msgstr "Verhindert die Anzeige Deines Online-Status in deinem Profil" + +#: ../../Zotlabs/Module/Settings/Channel.php:476 +msgid "Simple Privacy Settings:" +msgstr "Einfache Privatsphäre-Einstellungen" + +#: ../../Zotlabs/Module/Settings/Channel.php:477 +msgid "" +"Very Public - extremely permissive (should be used with caution)" +msgstr "Komplett offen – extrem ungeschützt (mit großer Vorsicht verwenden!)" + +#: ../../Zotlabs/Module/Settings/Channel.php:478 +msgid "" +"Typical - default public, privacy when desired (similar to social " +"network permissions but with improved privacy)" +msgstr "Typisch – Standard öffentlich, Privatsphäre, wo sie erwünscht ist (ähnlich den Einstellungen in sozialen Netzwerken, aber mit besser geschützter Privatsphäre)" + +#: ../../Zotlabs/Module/Settings/Channel.php:479 +msgid "Private - default private, never open or public" +msgstr "Privat – Standard privat, nie offen oder öffentlich" + +#: ../../Zotlabs/Module/Settings/Channel.php:480 +msgid "Blocked - default blocked to/from everybody" +msgstr "Blockiert – Alle standardmäßig blockiert" + +#: ../../Zotlabs/Module/Settings/Channel.php:482 +msgid "Allow others to tag your posts" +msgstr "Erlaube anderen, Deine Beiträge zu verschlagworten" + +#: ../../Zotlabs/Module/Settings/Channel.php:482 +msgid "" +"Often used by the community to retro-actively flag inappropriate content" +msgstr "Wird oft von der Community genutzt um rückwirkend anstößigen Inhalt zu markieren" + +#: ../../Zotlabs/Module/Settings/Channel.php:484 +msgid "Channel Permission Limits" +msgstr "Kanal-Berechtigungslimits" + +#: ../../Zotlabs/Module/Settings/Channel.php:486 +msgid "Expire other channel content after this many days" +msgstr "Den Inhalt anderer Kanäle nach dieser Anzahl Tage verfallen lassen" + +#: ../../Zotlabs/Module/Settings/Channel.php:486 +msgid "0 or blank to use the website limit." +msgstr "0 oder leer lassen, um den voreingestellten Wert der Webseite zu verwenden." + +#: ../../Zotlabs/Module/Settings/Channel.php:486 +#, php-format +msgid "This website expires after %d days." +msgstr "Diese Webseite läuft nach %d Tagen ab." + +#: ../../Zotlabs/Module/Settings/Channel.php:486 +msgid "This website does not expire imported content." +msgstr "Diese Webseite lässt importierte Inhalte nicht verfallen." + +#: ../../Zotlabs/Module/Settings/Channel.php:486 +msgid "The website limit takes precedence if lower than your limit." +msgstr "Das Verfallslimit der Webseite hat Vorrang, wenn es niedriger als Deines hier ist." + +#: ../../Zotlabs/Module/Settings/Channel.php:487 +msgid "Maximum Friend Requests/Day:" +msgstr "Maximale Kontaktanfragen pro Tag:" + +#: ../../Zotlabs/Module/Settings/Channel.php:487 +msgid "May reduce spam activity" +msgstr "Kann die Spam-Aktivität verringern" + +#: ../../Zotlabs/Module/Settings/Channel.php:488 +msgid "Default Access Control List (ACL)" +msgstr "Standard-Zugriffsberechtigungsliste (ACL)" + +#: ../../Zotlabs/Module/Settings/Channel.php:490 +msgid "Use my default audience setting for the type of object published" +msgstr "Verwende Deine eingestellte Standard-Zielgruppe des jeweiligen Inhaltstyps" + +#: ../../Zotlabs/Module/Settings/Channel.php:497 +msgid "Channel permissions category:" +msgstr "Zugriffsrechte-Kategorie des Kanals:" + +#: ../../Zotlabs/Module/Settings/Channel.php:503 +msgid "Maximum private messages per day from unknown people:" +msgstr "Maximale Anzahl privater Nachrichten pro Tag von unbekannten Leuten:" + +#: ../../Zotlabs/Module/Settings/Channel.php:503 +msgid "Useful to reduce spamming" +msgstr "Nützlich, um Spam zu verringern" + +#: ../../Zotlabs/Module/Settings/Channel.php:506 +msgid "Notification Settings" +msgstr "Benachrichtigungs-Einstellungen" + +#: ../../Zotlabs/Module/Settings/Channel.php:507 +msgid "By default post a status message when:" +msgstr "Sende standardmäßig Status-Nachrichten, wenn:" + +#: ../../Zotlabs/Module/Settings/Channel.php:508 +msgid "accepting a friend request" +msgstr "Du eine Verbindungsanfrage annimmst" + +#: ../../Zotlabs/Module/Settings/Channel.php:509 +msgid "joining a forum/community" +msgstr "Du einem Forum beitrittst" + +#: ../../Zotlabs/Module/Settings/Channel.php:510 +msgid "making an interesting profile change" +msgstr "Du eine interessante Änderung an Deinem Profil vornimmst" + +#: ../../Zotlabs/Module/Settings/Channel.php:511 +msgid "Send a notification email when:" +msgstr "Eine E-Mail-Benachrichtigung senden, wenn:" + +#: ../../Zotlabs/Module/Settings/Channel.php:512 +msgid "You receive a connection request" +msgstr "Du eine Verbindungsanfrage erhältst" + +#: ../../Zotlabs/Module/Settings/Channel.php:513 +msgid "Your connections are confirmed" +msgstr "Eine Verbindung bestätigt wurde" + +#: ../../Zotlabs/Module/Settings/Channel.php:514 +msgid "Someone writes on your profile wall" +msgstr "Jemand auf Deine Pinnwand schreibt" + +#: ../../Zotlabs/Module/Settings/Channel.php:515 +msgid "Someone writes a followup comment" +msgstr "Jemand einen Beitrag kommentiert" + +#: ../../Zotlabs/Module/Settings/Channel.php:516 +msgid "You receive a private message" +msgstr "Du eine private Nachricht erhältst" + +#: ../../Zotlabs/Module/Settings/Channel.php:517 +msgid "You receive a friend suggestion" +msgstr "Du einen Kontaktvorschlag erhältst" + +#: ../../Zotlabs/Module/Settings/Channel.php:518 +msgid "You are tagged in a post" +msgstr "Du in einem Beitrag erwähnt wurdest" + +#: ../../Zotlabs/Module/Settings/Channel.php:519 +msgid "You are poked/prodded/etc. in a post" +msgstr "Du in einem Beitrag angestupst/geknufft/o.ä. wurdest" + +#: ../../Zotlabs/Module/Settings/Channel.php:522 +msgid "Show visual notifications including:" +msgstr "Visuelle Benachrichtigungen anzeigen für:" + +#: ../../Zotlabs/Module/Settings/Channel.php:524 +msgid "Unseen grid activity" +msgstr "Ungesehene Netzwerk-Aktivität" + +#: ../../Zotlabs/Module/Settings/Channel.php:525 +msgid "Unseen channel activity" +msgstr "Ungesehene Kanal-Aktivität" + +#: ../../Zotlabs/Module/Settings/Channel.php:526 +msgid "Unseen private messages" +msgstr "Ungelesene persönliche Nachrichten" + +#: ../../Zotlabs/Module/Settings/Channel.php:526 +#: ../../Zotlabs/Module/Settings/Channel.php:531 +#: ../../Zotlabs/Module/Settings/Channel.php:532 +#: ../../Zotlabs/Module/Settings/Channel.php:533 +#: ../../extend/addon/addon/jappixmini/jappixmini.php:343 +msgid "Recommended" +msgstr "Empfohlen" + +#: ../../Zotlabs/Module/Settings/Channel.php:527 +msgid "Upcoming events" +msgstr "Baldige Termine" + +#: ../../Zotlabs/Module/Settings/Channel.php:528 +msgid "Events today" +msgstr "Heutige Termine" + +#: ../../Zotlabs/Module/Settings/Channel.php:529 +msgid "Upcoming birthdays" +msgstr "Baldige Geburtstage" + +#: ../../Zotlabs/Module/Settings/Channel.php:529 +msgid "Not available in all themes" +msgstr "Nicht in allen Themes verfügbar" + +#: ../../Zotlabs/Module/Settings/Channel.php:530 +msgid "System (personal) notifications" +msgstr "System – (persönliche) Benachrichtigungen" + +#: ../../Zotlabs/Module/Settings/Channel.php:531 +msgid "System info messages" +msgstr "System – Info-Nachrichten" + +#: ../../Zotlabs/Module/Settings/Channel.php:532 +msgid "System critical alerts" +msgstr "System – kritische Warnungen" + +#: ../../Zotlabs/Module/Settings/Channel.php:533 +msgid "New connections" +msgstr "Neue Verbindungen" + +#: ../../Zotlabs/Module/Settings/Channel.php:534 +msgid "System Registrations" +msgstr "System – Registrierungen" + +#: ../../Zotlabs/Module/Settings/Channel.php:535 +msgid "" +"Also show new wall posts, private messages and connections under Notices" +msgstr "Neue Pinnwand-Nachrichten, private Nachrichten und Verbindungen unter Benachrichtigungen anzeigen" + +#: ../../Zotlabs/Module/Settings/Channel.php:537 +msgid "Notify me of events this many days in advance" +msgstr "Benachrichtige mich zu Terminen so viele Tage im Voraus" + +#: ../../Zotlabs/Module/Settings/Channel.php:537 +msgid "Must be greater than 0" +msgstr "Muss größer als 0 sein" + +#: ../../Zotlabs/Module/Settings/Channel.php:539 +msgid "Advanced Account/Page Type Settings" +msgstr "Erweiterte Account- und Seitenart-Einstellungen" + +#: ../../Zotlabs/Module/Settings/Channel.php:540 +msgid "Change the behaviour of this account for special situations" +msgstr "Ändere das Verhalten dieses Accounts unter speziellen Umständen" + +#: ../../Zotlabs/Module/Settings/Channel.php:542 +msgid "Miscellaneous Settings" +msgstr "Sonstige Einstellungen" + +#: ../../Zotlabs/Module/Settings/Channel.php:543 +msgid "Default photo upload folder" +msgstr "Voreingestellter Ordner für hochgeladene Fotos" + +#: ../../Zotlabs/Module/Settings/Channel.php:543 +#: ../../Zotlabs/Module/Settings/Channel.php:544 +msgid "%Y - current year, %m - current month" +msgstr "%Y - aktuelles Jahr, %m - aktueller Monat" + +#: ../../Zotlabs/Module/Settings/Channel.php:544 +msgid "Default file upload folder" +msgstr "Voreingestellter Ordner für hochgeladene Dateien" + +#: ../../Zotlabs/Module/Settings/Channel.php:546 +msgid "Personal menu to display in your channel pages" +msgstr "Eigenes Menü zur Anzeige auf den Seiten deines Kanals" + +#: ../../Zotlabs/Module/Settings/Channel.php:548 +msgid "Remove this channel." +msgstr "Diesen Kanal löschen" + +#: ../../Zotlabs/Module/Settings/Channel.php:549 +msgid "Firefox Share $Projectname provider" +msgstr "$Projectname-Provider für Firefox Share" + +#: ../../Zotlabs/Module/Settings/Channel.php:550 +msgid "Start calendar week on monday" +msgstr "Montag als erster Tag der Kalenderwoche" + +#: ../../Zotlabs/Module/Settings/Display.php:137 +msgid "No special theme for mobile devices" +msgstr "Keine spezielle Theme für mobile Geräte" + +#: ../../Zotlabs/Module/Settings/Display.php:140 +#, php-format +msgid "%s - (Experimental)" +msgstr "%s – (experimentell)" + +#: ../../Zotlabs/Module/Settings/Display.php:191 +msgid "Display Settings" +msgstr "Anzeige-Einstellungen" + +#: ../../Zotlabs/Module/Settings/Display.php:192 +msgid "Theme Settings" +msgstr "Theme-Einstellungen" + +#: ../../Zotlabs/Module/Settings/Display.php:193 +msgid "Custom Theme Settings" +msgstr "Benutzerdefinierte Theme-Einstellungen" + +#: ../../Zotlabs/Module/Settings/Display.php:194 +msgid "Content Settings" +msgstr "Inhaltseinstellungen" + +#: ../../Zotlabs/Module/Settings/Display.php:200 +msgid "Display Theme:" +msgstr "Anzeige-Theme:" + +#: ../../Zotlabs/Module/Settings/Display.php:201 +msgid "Select scheme" +msgstr "Schema wählen" + +#: ../../Zotlabs/Module/Settings/Display.php:203 +msgid "Mobile Theme:" +msgstr "Mobile Theme:" + +#: ../../Zotlabs/Module/Settings/Display.php:204 +msgid "Preload images before rendering the page" +msgstr "Bilder im voraus laden, bevor die Seite angezeigt wird" + +#: ../../Zotlabs/Module/Settings/Display.php:204 +msgid "" +"The subjective page load time will be longer but the page will be ready when" +" displayed" +msgstr "Die empfundene Ladezeit wird sich erhöhen, aber dafür ist das Layout stabil, sobald eine Seite angezeigt wird" + +#: ../../Zotlabs/Module/Settings/Display.php:205 +msgid "Enable user zoom on mobile devices" +msgstr "Zoom auf Mobilgeräten aktivieren" + +#: ../../Zotlabs/Module/Settings/Display.php:206 +msgid "Update browser every xx seconds" +msgstr "Browser alle xx Sekunden aktualisieren" + +#: ../../Zotlabs/Module/Settings/Display.php:206 +msgid "Minimum of 10 seconds, no maximum" +msgstr "Minimum 10 Sekunden, kein Maximum" + +#: ../../Zotlabs/Module/Settings/Display.php:207 +msgid "Maximum number of conversations to load at any time:" +msgstr "Maximale Anzahl von Unterhaltungen, die auf einmal geladen werden sollen:" + +#: ../../Zotlabs/Module/Settings/Display.php:207 +msgid "Maximum of 100 items" +msgstr "Maximum: 100 Beiträge" + +#: ../../Zotlabs/Module/Settings/Display.php:208 +msgid "Show emoticons (smilies) as images" +msgstr "Emoticons (Smilies) als Bilder anzeigen" + +#: ../../Zotlabs/Module/Settings/Display.php:209 +msgid "Manual conversation updates" +msgstr "Manuelle Konversationsaktualisierung" + +#: ../../Zotlabs/Module/Settings/Display.php:209 +msgid "Default is automatic, which may increase screen jumping" +msgstr "Voreinstellung ist Automatisch, was aber das Springen der Seitenanzeige erhöhen kann." + +#: ../../Zotlabs/Module/Settings/Display.php:210 +msgid "Link post titles to source" +msgstr "Beitragstitel zum Originalbeitrag verlinken" + +#: ../../Zotlabs/Module/Settings/Display.php:211 +msgid "System Page Layout Editor - (advanced)" +msgstr "System-Seitenlayout-Editor (für Experten)" + +#: ../../Zotlabs/Module/Settings/Display.php:214 +msgid "Use blog/list mode on channel page" +msgstr "Blog-/Listenmodus auf der Kanalseite verwenden" + +#: ../../Zotlabs/Module/Settings/Display.php:214 +#: ../../Zotlabs/Module/Settings/Display.php:215 +msgid "(comments displayed separately)" +msgstr "(Kommentare werden separat angezeigt)" + +#: ../../Zotlabs/Module/Settings/Display.php:215 +msgid "Use blog/list mode on grid page" +msgstr "Blog-/Listenmodus auf der Netzwerkseite verwenden" + +#: ../../Zotlabs/Module/Settings/Display.php:216 +msgid "Channel page max height of content (in pixels)" +msgstr "Maximale Höhe von Beitragsblöcken auf der Kanalseite (in Pixeln)" + +#: ../../Zotlabs/Module/Settings/Display.php:216 +#: ../../Zotlabs/Module/Settings/Display.php:217 +msgid "click to expand content exceeding this height" +msgstr "Blöcke, deren Inhalt diese Höhe überschreitet, können per Klick vergrößert werden." + +#: ../../Zotlabs/Module/Settings/Display.php:217 +msgid "Grid page max height of content (in pixels)" +msgstr "Maximale Höhe (in Pixel) des Inhalts der Netzwerkseite" + +#: ../../Zotlabs/Module/Settings/Featured.php:24 +msgid "No feature settings configured" +msgstr "Keine Funktions-Einstellungen konfiguriert" + +#: ../../Zotlabs/Module/Settings/Featured.php:31 +msgid "Feature/Addon Settings" +msgstr "Funktions-/Addon-Einstellungen" + +#: ../../Zotlabs/Module/Tagrm.php:48 ../../Zotlabs/Module/Tagrm.php:98 +msgid "Tag removed" +msgstr "Schlagwort entfernt" + +#: ../../Zotlabs/Module/Tagrm.php:123 +msgid "Remove Item Tag" +msgstr "Schlagwort entfernen" + +#: ../../Zotlabs/Module/Tagrm.php:125 +msgid "Select a tag to remove: " +msgstr "Schlagwort zum Entfernen auswählen:" + +#: ../../Zotlabs/Module/Thing.php:114 +msgid "Thing updated" +msgstr "Sache aktualisiert" + +#: ../../Zotlabs/Module/Thing.php:166 +msgid "Object store: failed" +msgstr "Speichern des Objekts fehlgeschlagen" + +#: ../../Zotlabs/Module/Thing.php:170 +msgid "Thing added" +msgstr "Sache hinzugefügt" + +#: ../../Zotlabs/Module/Thing.php:196 +#, php-format +msgid "OBJ: %1$s %2$s %3$s" +msgstr "OBJ: %1$s %2$s %3$s" + +#: ../../Zotlabs/Module/Thing.php:259 +msgid "Show Thing" +msgstr "Sache anzeigen" + +#: ../../Zotlabs/Module/Thing.php:266 +msgid "item not found." +msgstr "Eintrag nicht gefunden" + +#: ../../Zotlabs/Module/Thing.php:299 +msgid "Edit Thing" +msgstr "Sache bearbeiten" + +#: ../../Zotlabs/Module/Thing.php:301 ../../Zotlabs/Module/Thing.php:355 +msgid "Select a profile" +msgstr "Wähle ein Profil" + +#: ../../Zotlabs/Module/Thing.php:305 ../../Zotlabs/Module/Thing.php:358 +msgid "Post an activity" +msgstr "Aktivitätsnachricht senden" + +#: ../../Zotlabs/Module/Thing.php:305 ../../Zotlabs/Module/Thing.php:358 +msgid "Only sends to viewers of the applicable profile" +msgstr "Nur an Betrachter des ausgewählten Profils senden" + +#: ../../Zotlabs/Module/Thing.php:307 ../../Zotlabs/Module/Thing.php:360 +msgid "Name of thing e.g. something" +msgstr "Name der Sache, z. B. irgendwas" + +#: ../../Zotlabs/Module/Thing.php:309 ../../Zotlabs/Module/Thing.php:361 +msgid "URL of thing (optional)" +msgstr "URL der Sache (optional)" + +#: ../../Zotlabs/Module/Thing.php:311 ../../Zotlabs/Module/Thing.php:362 +msgid "URL for photo of thing (optional)" +msgstr "URL eines Fotos der Sache (optional)" + +#: ../../Zotlabs/Module/Thing.php:353 +msgid "Add Thing to your Profile" +msgstr "Die Sache Deinem Profil hinzufügen" + +#: ../../Zotlabs/Module/Import.php:33 +#, php-format +msgid "Your service plan only allows %d channels." +msgstr "Dein Vertrag erlaubt nur %d Kanäle." + +#: ../../Zotlabs/Module/Import.php:157 ../../include/import.php:100 +msgid "Cloned channel not found. Import failed." +msgstr "Geklonter Kanal nicht gefunden. Import fehlgeschlagen." + +#: ../../Zotlabs/Module/Import.php:167 +msgid "No channel. Import failed." +msgstr "Kein Kanal. Import fehlgeschlagen." + +#: ../../Zotlabs/Module/Import.php:503 +#: ../../include/Import/import_diaspora.php:142 +msgid "Import completed." +msgstr "Import abgeschlossen." + +#: ../../Zotlabs/Module/Import.php:525 +msgid "You must be logged in to use this feature." +msgstr "Du musst angemeldet sein um diese Funktion zu nutzen." + +#: ../../Zotlabs/Module/Import.php:530 +msgid "Import Channel" +msgstr "Kanal importieren" + +#: ../../Zotlabs/Module/Import.php:531 +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 "Verwende dieses Formular, um einen existierenden Kanal von einem anderen Hub zu importieren. Du kannst den Kanal direkt vom bisherigen Hub über das Netzwerk oder aus einer exportierten Sicherheitskopie importieren." + +#: ../../Zotlabs/Module/Import.php:533 +msgid "Or provide the old server/hub details" +msgstr "Oder gib die Details Deines bisherigen $Projectname-Hubs ein" + +#: ../../Zotlabs/Module/Import.php:534 +msgid "Your old identity address (xyz@example.com)" +msgstr "Bisherige Kanal-Adresse (xyz@example.com)" + +#: ../../Zotlabs/Module/Import.php:535 +msgid "Your old login email address" +msgstr "Deine alte Login-E-Mail-Adresse" + +#: ../../Zotlabs/Module/Import.php:536 +msgid "Your old login password" +msgstr "Dein altes Passwort" + +#: ../../Zotlabs/Module/Import.php:537 +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 "Egal, welche Option Du wählst – bitte lege fest, ob dieser Server die neue primäre Adresse dieses Kanals sein soll, oder ob der bisherige $Projectname-Hub diese Rolle weiterhin wahrnimmt. Du kannst von beiden Servern aus posten, aber nur einer kann der primäre Ort Deiner Dateien, Fotos und Medien sein." + +#: ../../Zotlabs/Module/Import.php:538 +msgid "Make this hub my primary location" +msgstr "Dieser $Pojectname-Hub ist mein primärer Hub." + +#: ../../Zotlabs/Module/Import.php:539 +msgid "" +"Import existing posts if possible (experimental - limited by available " +"memory" +msgstr "Importiere bestehende Beiträge falls möglich (experimentell - begrenzt durch zur Verfügung stehenden Speicher" + +#: ../../Zotlabs/Module/Import.php:540 +msgid "" +"This process may take several minutes to complete. Please submit the form " +"only once and leave this page open until finished." +msgstr "Dieser Vorgang kann einige Minuten dauern. Bitte sende das Formular nur einmal ab und lasse diese Seite bis zur Fertigstellung offen." + +#: ../../Zotlabs/Module/Viewconnections.php:65 +msgid "No connections." +msgstr "Keine Verbindungen." + +#: ../../Zotlabs/Module/Viewconnections.php:78 +#, php-format +msgid "Visit %s's profile [%s]" +msgstr "%ss Profil [%s] besuchen" + +#: ../../Zotlabs/Module/Viewconnections.php:107 +msgid "View Connections" +msgstr "Verbindungen anzeigen" + +#: ../../Zotlabs/Module/Viewsrc.php:44 +msgid "Source of Item" +msgstr "Quelle des Elements" + +#: ../../Zotlabs/Module/Chat.php:181 +msgid "Room not found" +msgstr "Chatraum nicht gefunden" + +#: ../../Zotlabs/Module/Chat.php:197 +msgid "Leave Room" +msgstr "Raum verlassen" + +#: ../../Zotlabs/Module/Chat.php:198 +msgid "Delete Room" +msgstr "Raum löschen" + +#: ../../Zotlabs/Module/Chat.php:199 +msgid "I am away right now" +msgstr "Ich bin gerade nicht da" + +#: ../../Zotlabs/Module/Chat.php:200 +msgid "I am online" +msgstr "Ich bin online" + +#: ../../Zotlabs/Module/Chat.php:202 +msgid "Bookmark this room" +msgstr "Lesezeichen für diesen Raum setzen" + +#: ../../Zotlabs/Module/Chat.php:231 +msgid "New Chatroom" +msgstr "Neuer Chatraum" + +#: ../../Zotlabs/Module/Chat.php:232 +msgid "Chatroom name" +msgstr "Chatraumname" + +#: ../../Zotlabs/Module/Chat.php:233 +msgid "Expiration of chats (minutes)" +msgstr "Verfall von Chats (Minuten)" + +#: ../../Zotlabs/Module/Chat.php:249 +#, php-format +msgid "%1$s's Chatrooms" +msgstr "%1$ss Chaträume" + +#: ../../Zotlabs/Module/Chat.php:254 +msgid "No chatrooms available" +msgstr "Keine Chaträume verfügbar" + +#: ../../Zotlabs/Module/Chat.php:258 +msgid "Expiration" +msgstr "Verfall" + +#: ../../Zotlabs/Module/Chat.php:259 +msgid "min" +msgstr "min" + +#: ../../Zotlabs/Module/Xchan.php:10 +msgid "Xchan Lookup" +msgstr "Xchan-Suche" + +#: ../../Zotlabs/Module/Xchan.php:13 +msgid "Lookup xchan beginning with (or webbie): " +msgstr "Nach xchans oder Webbies (Kanal-Adressen) suchen, die wie folgt beginnen:" + +#: ../../Zotlabs/Module/Events.php:25 +msgid "Calendar entries imported." +msgstr "Kalendereinträge wurden importiert." + +#: ../../Zotlabs/Module/Events.php:27 +msgid "No calendar entries found." +msgstr "Keine Kalendereinträge gefunden." + +#: ../../Zotlabs/Module/Events.php:106 +msgid "Event can not end before it has started." +msgstr "Termin-Ende liegt vor dem Beginn." + +#: ../../Zotlabs/Module/Events.php:108 ../../Zotlabs/Module/Events.php:117 +#: ../../Zotlabs/Module/Events.php:139 +msgid "Unable to generate preview." +msgstr "Vorschau konnte nicht erzeugt werden." + +#: ../../Zotlabs/Module/Events.php:115 +msgid "Event title and start time are required." +msgstr "Titel und Startzeit des Termins sind erforderlich." + +#: ../../Zotlabs/Module/Events.php:137 ../../Zotlabs/Module/Events.php:261 +msgid "Event not found." +msgstr "Termin nicht gefunden." + +#: ../../Zotlabs/Module/Events.php:453 +msgid "Edit event title" +msgstr "Termintitel bearbeiten" + +#: ../../Zotlabs/Module/Events.php:453 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:835 +msgid "Event title" +msgstr "Termintitel" + +#: ../../Zotlabs/Module/Events.php:455 +msgid "Categories (comma-separated list)" +msgstr "Kategorien (Kommagetrennte Liste)" + +#: ../../Zotlabs/Module/Events.php:456 +msgid "Edit Category" +msgstr "Kategorie bearbeiten" + +#: ../../Zotlabs/Module/Events.php:456 +msgid "Category" +msgstr "Kategorie" + +#: ../../Zotlabs/Module/Events.php:459 +msgid "Edit start date and time" +msgstr "Startdatum und -zeit bearbeiten" + +#: ../../Zotlabs/Module/Events.php:459 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:836 +msgid "Start date and time" +msgstr "Startdatum und -zeit" + +#: ../../Zotlabs/Module/Events.php:460 ../../Zotlabs/Module/Events.php:463 +msgid "Finish date and time are not known or not relevant" +msgstr "Enddatum und -zeit sind unbekannt oder irrelevant" + +#: ../../Zotlabs/Module/Events.php:462 +msgid "Edit finish date and time" +msgstr "Enddatum und -zeit bearbeiten" + +#: ../../Zotlabs/Module/Events.php:462 +msgid "Finish date and time" +msgstr "Enddatum und -zeit" + +#: ../../Zotlabs/Module/Events.php:464 ../../Zotlabs/Module/Events.php:465 +msgid "Adjust for viewer timezone" +msgstr "An die Zeitzone des Betrachters anpassen" + +#: ../../Zotlabs/Module/Events.php:464 +msgid "" +"Important for events that happen in a particular place. Not practical for " +"global holidays." +msgstr "Wichtig für Veranstaltungen die an bestimmten Orten stattfinden. Nicht sinnvoll für globale Feiertage / Ferien." + +#: ../../Zotlabs/Module/Events.php:466 +msgid "Edit Description" +msgstr "Beschreibung bearbeiten" + +#: ../../Zotlabs/Module/Events.php:468 +msgid "Edit Location" +msgstr "Ort bearbeiten" + +#: ../../Zotlabs/Module/Events.php:472 ../../include/conversation.php:1280 +msgid "Permission settings" +msgstr "Berechtigungs-Einstellungen" + +#: ../../Zotlabs/Module/Events.php:485 +msgid "Advanced Options" +msgstr "Weitere Optionen" + +#: ../../Zotlabs/Module/Events.php:624 +msgid "Edit event" +msgstr "Termin bearbeiten" + +#: ../../Zotlabs/Module/Events.php:626 +msgid "Delete event" +msgstr "Termin löschen" + +#: ../../Zotlabs/Module/Events.php:660 +msgid "calendar" +msgstr "Kalender" + +#: ../../Zotlabs/Module/Events.php:686 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:849 +msgid "Month" +msgstr "Monat" + +#: ../../Zotlabs/Module/Events.php:687 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:850 +msgid "Week" +msgstr "Woche" + +#: ../../Zotlabs/Module/Events.php:688 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:851 +msgid "Day" +msgstr "Tag" + +#: ../../Zotlabs/Module/Events.php:722 +msgid "Event removed" +msgstr "Termin gelöscht" + +#: ../../Zotlabs/Module/Events.php:725 +msgid "Failed to remove event" +msgstr "Termin konnte nicht gelöscht werden" + #: ../../Zotlabs/Lib/Chatroom.php:27 msgid "Missing room name" msgstr "Der Chatraum hat keinen Namen" @@ -6670,281 +6967,14 @@ msgstr "Chatraum konnte nicht gefunden werden." msgid "Room is full" msgstr "Der Chatraum ist voll" -#: ../../Zotlabs/Lib/Enotify.php:60 ../../include/network.php:1887 -msgid "$Projectname Notification" -msgstr "$Projectname-Benachrichtigung" - -#: ../../Zotlabs/Lib/Enotify.php:61 ../../include/network.php:1888 -msgid "$projectname" -msgstr "$projectname" - -#: ../../Zotlabs/Lib/Enotify.php:63 ../../include/network.php:1890 -msgid "Thank You," -msgstr "Danke." - -#: ../../Zotlabs/Lib/Enotify.php:65 ../../include/network.php:1892 -#, php-format -msgid "%s Administrator" -msgstr "der Administrator von %s" - -#: ../../Zotlabs/Lib/Enotify.php:100 -#, php-format -msgid "%s " -msgstr "%s " - -#: ../../Zotlabs/Lib/Enotify.php:104 -#, php-format -msgid "[Hubzilla:Notify] New mail received at %s" -msgstr "[Hubzilla:Benachrichtigung] Neue Mail empfangen auf %s" - -#: ../../Zotlabs/Lib/Enotify.php:106 -#, php-format -msgid "%1$s, %2$s sent you a new private message at %3$s." -msgstr "%1$s, %2$s hat Dir eine private Nachricht auf %3$s gesendet." - -#: ../../Zotlabs/Lib/Enotify.php:107 -#, php-format -msgid "%1$s sent you %2$s." -msgstr "%1$s hat Dir %2$s geschickt." - -#: ../../Zotlabs/Lib/Enotify.php:107 -msgid "a private message" -msgstr "eine private Nachricht" - -#: ../../Zotlabs/Lib/Enotify.php:108 -#, php-format -msgid "Please visit %s to view and/or reply to your private messages." -msgstr "Bitte besuche %s, um die private Nachricht anzusehen und/oder darauf zu antworten." - -#: ../../Zotlabs/Lib/Enotify.php:164 -#, php-format -msgid "%1$s, %2$s commented on [zrl=%3$s]a %4$s[/zrl]" -msgstr "%1$s, %2$s hat [zrl=%3$s]einen %4$s[/zrl] kommentiert" - -#: ../../Zotlabs/Lib/Enotify.php:172 -#, php-format -msgid "%1$s, %2$s commented on [zrl=%3$s]%4$s's %5$s[/zrl]" -msgstr "%1$s, %2$s hat [zrl=%3$s]%4$ss %5$s[/zrl] kommentiert" - -#: ../../Zotlabs/Lib/Enotify.php:181 -#, php-format -msgid "%1$s, %2$s commented on [zrl=%3$s]your %4$s[/zrl]" -msgstr "%1$s, %2$s hat [zrl=%3$s]Deinen %4$s[/zrl] kommentiert" - -#: ../../Zotlabs/Lib/Enotify.php:192 -#, php-format -msgid "[Hubzilla:Notify] Comment to conversation #%1$d by %2$s" -msgstr "[Hubzilla:Benachrichtigung] Kommentar in Unterhaltung #%1$d von %2$s" - -#: ../../Zotlabs/Lib/Enotify.php:193 -#, php-format -msgid "%1$s, %2$s commented on an item/conversation you have been following." -msgstr "%1$s, %2$s hat eine Unterhaltung kommentiert, der Du folgst." - -#: ../../Zotlabs/Lib/Enotify.php:196 ../../Zotlabs/Lib/Enotify.php:211 -#: ../../Zotlabs/Lib/Enotify.php:237 ../../Zotlabs/Lib/Enotify.php:255 -#: ../../Zotlabs/Lib/Enotify.php:269 -#, php-format -msgid "Please visit %s to view and/or reply to the conversation." -msgstr "Bitte besuche %s, um die Unterhaltung anzusehen und/oder zu kommentieren." - -#: ../../Zotlabs/Lib/Enotify.php:202 -#, php-format -msgid "[Hubzilla:Notify] %s posted to your profile wall" -msgstr "[Hubzilla:Benachrichtigung] %s schrieb auf Deine Pinnwand" - -#: ../../Zotlabs/Lib/Enotify.php:204 -#, php-format -msgid "%1$s, %2$s posted to your profile wall at %3$s" -msgstr "%1$s, %2$s hat auf Deine Pinnwand auf %3$s geschrieben" - -#: ../../Zotlabs/Lib/Enotify.php:206 -#, php-format -msgid "%1$s, %2$s posted to [zrl=%3$s]your wall[/zrl]" -msgstr "%1$s, %2$s hat auf [zrl=%3$s]Deine Pinnwand[/zrl] geschrieben" - -#: ../../Zotlabs/Lib/Enotify.php:230 -#, php-format -msgid "[Hubzilla:Notify] %s tagged you" -msgstr "[Hubzilla:Benachrichtigung] %s hat Dich erwähnt" - -#: ../../Zotlabs/Lib/Enotify.php:231 -#, php-format -msgid "%1$s, %2$s tagged you at %3$s" -msgstr "%1$s, %2$s hat Dich auf %3$s erwähnt" - -#: ../../Zotlabs/Lib/Enotify.php:232 -#, php-format -msgid "%1$s, %2$s [zrl=%3$s]tagged you[/zrl]." -msgstr "%1$s, %2$s [zrl=%3$s]hat Dich erwähnt[/zrl]." - -#: ../../Zotlabs/Lib/Enotify.php:244 -#, php-format -msgid "[Hubzilla:Notify] %1$s poked you" -msgstr "[Hubzilla:Benachrichtigung] %1$s hat Dich angestupst" - -#: ../../Zotlabs/Lib/Enotify.php:245 -#, php-format -msgid "%1$s, %2$s poked you at %3$s" -msgstr "%1$s, %2$s hat Dich auf %3$s angestupst" - -#: ../../Zotlabs/Lib/Enotify.php:246 -#, php-format -msgid "%1$s, %2$s [zrl=%2$s]poked you[/zrl]." -msgstr "%1$s, %2$s [zrl=%2$s]hat Dich angestupst[/zrl]." - -#: ../../Zotlabs/Lib/Enotify.php:262 -#, php-format -msgid "[Hubzilla:Notify] %s tagged your post" -msgstr "[Hubzilla:Benachrichtigung] %s hat Deinen Beitrag verschlagwortet" - -#: ../../Zotlabs/Lib/Enotify.php:263 -#, php-format -msgid "%1$s, %2$s tagged your post at %3$s" -msgstr "%1$s, %2$s hat Deinen Beitrag auf %3$s verschlagwortet" - -#: ../../Zotlabs/Lib/Enotify.php:264 -#, php-format -msgid "%1$s, %2$s tagged [zrl=%3$s]your post[/zrl]" -msgstr "%1$s, %2$s hat [zrl=%3$s]Deinen Beitrag[/zrl] verschlagwortet" - -#: ../../Zotlabs/Lib/Enotify.php:276 -msgid "[Hubzilla:Notify] Introduction received" -msgstr "[Hubzilla:Benachrichtigung] Vorstellung erhalten" - -#: ../../Zotlabs/Lib/Enotify.php:277 -#, php-format -msgid "%1$s, you've received an new connection request from '%2$s' at %3$s" -msgstr "%1$s, Du hast eine neue Verbindungsanfrage von '%2$s' auf %3$s erhalten" - -#: ../../Zotlabs/Lib/Enotify.php:278 -#, php-format -msgid "" -"%1$s, you've received [zrl=%2$s]a new connection request[/zrl] from %3$s." -msgstr "%1$s, Du hast [zrl=%2$s]eine neue Verbindungsanfrage[/zrl] von %3$s erhalten." - -#: ../../Zotlabs/Lib/Enotify.php:282 ../../Zotlabs/Lib/Enotify.php:301 -#, php-format -msgid "You may visit their profile at %s" -msgstr "Du kannst Dir das Profil unter %s ansehen" - -#: ../../Zotlabs/Lib/Enotify.php:284 -#, php-format -msgid "Please visit %s to approve or reject the connection request." -msgstr "Bitte besuche %s , um die Verbindungsanfrage anzunehmen oder abzulehnen." - -#: ../../Zotlabs/Lib/Enotify.php:291 -msgid "[Hubzilla:Notify] Friend suggestion received" -msgstr "[Hubzilla:Benachrichtigung] Freundschaftsvorschlag erhalten" - -#: ../../Zotlabs/Lib/Enotify.php:292 -#, php-format -msgid "%1$s, you've received a friend suggestion from '%2$s' at %3$s" -msgstr "%1$s, Du hast einen Kontaktvorschlag von „%2$s“ auf %3$s erhalten" - -#: ../../Zotlabs/Lib/Enotify.php:293 -#, php-format -msgid "" -"%1$s, you've received [zrl=%2$s]a friend suggestion[/zrl] for %3$s from " -"%4$s." -msgstr "%1$s, Du hast [zrl=%2$s]einen Kontaktvorschlag[/zrl] für %3$s von %4$s erhalten." - -#: ../../Zotlabs/Lib/Enotify.php:299 -msgid "Name:" -msgstr "Name:" - -#: ../../Zotlabs/Lib/Enotify.php:300 -msgid "Photo:" -msgstr "Foto:" - -#: ../../Zotlabs/Lib/Enotify.php:303 -#, php-format -msgid "Please visit %s to approve or reject the suggestion." -msgstr "Bitte besuche %s um den Vorschlag zu akzeptieren oder abzulehnen." - -#: ../../Zotlabs/Lib/Enotify.php:518 -msgid "[Hubzilla:Notify]" -msgstr "[Hubzilla:Benachrichtigung]" - -#: ../../Zotlabs/Lib/Enotify.php:667 -msgid "created a new post" -msgstr "Neuer Beitrag wurde erzeugt" - -#: ../../Zotlabs/Lib/Enotify.php:668 -#, php-format -msgid "commented on %s's post" -msgstr "hat %s's Beitrag kommentiert" - -#: ../../Zotlabs/Lib/PermissionDescription.php:31 -#: ../../include/acl_selectors.php:124 -msgid "Visible to your default audience" -msgstr "Standard-Sichtbarkeit gemäß Kanaleinstellungen" - -#: ../../Zotlabs/Lib/PermissionDescription.php:106 -#: ../../include/acl_selectors.php:165 -msgid "Only me" -msgstr "Nur ich" - -#: ../../Zotlabs/Lib/PermissionDescription.php:107 -msgid "Public" -msgstr "Öffentlich" - -#: ../../Zotlabs/Lib/PermissionDescription.php:108 -msgid "Anybody in the $Projectname network" -msgstr "Jeder innerhalb des $Projectname Netzwerks" - -#: ../../Zotlabs/Lib/PermissionDescription.php:109 -#, php-format -msgid "Any account on %s" -msgstr "Jedes Nutzerkonto auf %s" - -#: ../../Zotlabs/Lib/PermissionDescription.php:110 -msgid "Any of my connections" -msgstr "Alle meine Verbindungen" - -#: ../../Zotlabs/Lib/PermissionDescription.php:111 -msgid "Only connections I specifically allow" -msgstr "Nur Verbindungen, denen ich es explizit erlaube" - -#: ../../Zotlabs/Lib/PermissionDescription.php:112 -msgid "Anybody authenticated (could include visitors from other networks)" -msgstr "Jeder, der angemeldet ist (kann Besucher anderer Netzwerke beinhalten)" - -#: ../../Zotlabs/Lib/PermissionDescription.php:113 -msgid "Any connections including those who haven't yet been approved" -msgstr "Alle Verbindungen einschließlich der noch nicht bestätigten" - -#: ../../Zotlabs/Lib/PermissionDescription.php:152 -msgid "" -"This is your default setting for the audience of your normal stream, and " -"posts." -msgstr "Dies ist Deine Voreinstellung für die Sichtbarkeit Deiner normalen Beiträge (Stream)." - -#: ../../Zotlabs/Lib/PermissionDescription.php:153 -msgid "" -"This is your default setting for who can view your default channel profile" -msgstr "Dies ist Deine Voreinstellung für die Sichtbarkeit Deines Standard-Kanalprofils." - -#: ../../Zotlabs/Lib/PermissionDescription.php:154 -msgid "This is your default setting for who can view your connections" -msgstr "Dies ist Deine Voreinstellung für die Sichtbarkeit Deiner Verbindungen." - -#: ../../Zotlabs/Lib/PermissionDescription.php:155 -msgid "" -"This is your default setting for who can view your file storage and photos" -msgstr "Dies ist Deine Voreinstellung für die Sichtbarkeit Deiner Dateien und Fotos." - -#: ../../Zotlabs/Lib/PermissionDescription.php:156 -msgid "This is your default setting for the audience of your webpages" -msgstr "Dies ist Deine Voreinstellung für die Sichtbarkeit Deiner Webseiten." - #: ../../Zotlabs/Lib/Apps.php:205 msgid "Site Admin" msgstr "Hub-Administration" #: ../../Zotlabs/Lib/Apps.php:206 -msgid "Bug Report" -msgstr "Fehler-Rückmeldung" +#: ../../extend/addon/addon/buglink/buglink.php:16 +msgid "Report Bug" +msgstr "Fehler melden" #: ../../Zotlabs/Lib/Apps.php:207 msgid "View Bookmarks" @@ -6962,33 +6992,38 @@ msgstr "Teilen-Knopf für Firefox" msgid "Remote Diagnostics" msgstr "Ferndiagnose" -#: ../../Zotlabs/Lib/Apps.php:212 ../../include/features.php:88 +#: ../../Zotlabs/Lib/Apps.php:212 ../../include/features.php:319 msgid "Suggest Channels" msgstr "Kanäle vorschlagen" #: ../../Zotlabs/Lib/Apps.php:213 ../../include/nav.php:115 -#: ../../boot.php:1739 +#: ../../boot.php:1719 msgid "Login" msgstr "Anmelden" -#: ../../Zotlabs/Lib/Apps.php:215 ../../include/nav.php:184 +#: ../../Zotlabs/Lib/Apps.php:215 ../../include/nav.php:182 msgid "Grid" msgstr "Grid" -#: ../../Zotlabs/Lib/Apps.php:220 ../../include/nav.php:187 +#: ../../Zotlabs/Lib/Apps.php:219 ../../include/features.php:99 +#: ../../include/conversation.php:1758 +msgid "Wiki" +msgstr "Wiki" + +#: ../../Zotlabs/Lib/Apps.php:220 ../../include/nav.php:185 msgid "Channel Home" msgstr "Mein Kanal" -#: ../../Zotlabs/Lib/Apps.php:223 ../../include/nav.php:206 -#: ../../include/conversation.php:1688 ../../include/conversation.php:1691 +#: ../../Zotlabs/Lib/Apps.php:223 ../../include/nav.php:204 +#: ../../include/conversation.php:1709 ../../include/conversation.php:1712 msgid "Events" msgstr "Termine" -#: ../../Zotlabs/Lib/Apps.php:224 ../../include/nav.php:172 +#: ../../Zotlabs/Lib/Apps.php:224 ../../include/nav.php:170 msgid "Directory" msgstr "Verzeichnis" -#: ../../Zotlabs/Lib/Apps.php:226 ../../include/nav.php:198 +#: ../../Zotlabs/Lib/Apps.php:226 ../../include/nav.php:196 msgid "Mail" msgstr "Mail" @@ -7012,11 +7047,12 @@ msgstr "Zufälliger Kanal" msgid "Invite" msgstr "Einladen" -#: ../../Zotlabs/Lib/Apps.php:235 ../../include/widgets.php:1560 +#: ../../Zotlabs/Lib/Apps.php:235 ../../include/widgets.php:1635 msgid "Features" msgstr "Funktionen" #: ../../Zotlabs/Lib/Apps.php:236 +#: ../../extend/addon/addon/openid/MysqlProvider.php:69 msgid "Language" msgstr "Sprache" @@ -7025,6 +7061,9 @@ msgid "Post" msgstr "Beitrag schreiben" #: ../../Zotlabs/Lib/Apps.php:238 +#: ../../extend/addon/addon/openid/MysqlProvider.php:58 +#: ../../extend/addon/addon/openid/MysqlProvider.php:59 +#: ../../extend/addon/addon/openid/MysqlProvider.php:60 msgid "Profile Photo" msgstr "Profilfoto" @@ -7032,11 +7071,74 @@ msgstr "Profilfoto" msgid "Purchase" msgstr "Kaufen" -#: ../../Zotlabs/Lib/ThreadItem.php:95 ../../include/conversation.php:667 +#: ../../Zotlabs/Lib/PermissionDescription.php:34 +#: ../../include/acl_selectors.php:128 +msgid "Visible to your default audience" +msgstr "Standard-Sichtbarkeit gemäß Kanaleinstellungen" + +#: ../../Zotlabs/Lib/PermissionDescription.php:107 +#: ../../include/acl_selectors.php:191 +msgid "Only me" +msgstr "Nur ich" + +#: ../../Zotlabs/Lib/PermissionDescription.php:108 +msgid "Public" +msgstr "Öffentlich" + +#: ../../Zotlabs/Lib/PermissionDescription.php:109 +msgid "Anybody in the $Projectname network" +msgstr "Jeder innerhalb des $Projectname Netzwerks" + +#: ../../Zotlabs/Lib/PermissionDescription.php:110 +#, php-format +msgid "Any account on %s" +msgstr "Jedes Nutzerkonto auf %s" + +#: ../../Zotlabs/Lib/PermissionDescription.php:111 +msgid "Any of my connections" +msgstr "Alle meine Verbindungen" + +#: ../../Zotlabs/Lib/PermissionDescription.php:112 +msgid "Only connections I specifically allow" +msgstr "Nur Verbindungen, denen ich es explizit erlaube" + +#: ../../Zotlabs/Lib/PermissionDescription.php:113 +msgid "Anybody authenticated (could include visitors from other networks)" +msgstr "Jeder, der angemeldet ist (kann Besucher anderer Netzwerke beinhalten)" + +#: ../../Zotlabs/Lib/PermissionDescription.php:114 +msgid "Any connections including those who haven't yet been approved" +msgstr "Alle Verbindungen einschließlich der noch nicht bestätigten" + +#: ../../Zotlabs/Lib/PermissionDescription.php:150 +msgid "" +"This is your default setting for the audience of your normal stream, and " +"posts." +msgstr "Dies ist Deine Voreinstellung für die Sichtbarkeit Deiner normalen Beiträge (Stream)." + +#: ../../Zotlabs/Lib/PermissionDescription.php:151 +msgid "" +"This is your default setting for who can view your default channel profile" +msgstr "Dies ist Deine Voreinstellung für die Sichtbarkeit Deines Standard-Kanalprofils." + +#: ../../Zotlabs/Lib/PermissionDescription.php:152 +msgid "This is your default setting for who can view your connections" +msgstr "Dies ist Deine Voreinstellung für die Sichtbarkeit Deiner Verbindungen." + +#: ../../Zotlabs/Lib/PermissionDescription.php:153 +msgid "" +"This is your default setting for who can view your file storage and photos" +msgstr "Dies ist Deine Voreinstellung für die Sichtbarkeit Deiner Dateien und Fotos." + +#: ../../Zotlabs/Lib/PermissionDescription.php:154 +msgid "This is your default setting for the audience of your webpages" +msgstr "Dies ist Deine Voreinstellung für die Sichtbarkeit Deiner Webseiten." + +#: ../../Zotlabs/Lib/ThreadItem.php:95 ../../include/conversation.php:683 msgid "Private Message" msgstr "Private Nachricht" -#: ../../Zotlabs/Lib/ThreadItem.php:132 ../../include/conversation.php:659 +#: ../../Zotlabs/Lib/ThreadItem.php:132 ../../include/conversation.php:675 msgid "Select" msgstr "Auswählen" @@ -7068,146 +7170,3232 @@ msgstr "Ich lehne ab" msgid "I abstain" msgstr "Ich enthalte mich" -#: ../../Zotlabs/Lib/ThreadItem.php:218 +#: ../../Zotlabs/Lib/ThreadItem.php:223 msgid "Add Star" msgstr "Stern hinzufügen" -#: ../../Zotlabs/Lib/ThreadItem.php:219 +#: ../../Zotlabs/Lib/ThreadItem.php:224 msgid "Remove Star" msgstr "Stern entfernen" -#: ../../Zotlabs/Lib/ThreadItem.php:220 +#: ../../Zotlabs/Lib/ThreadItem.php:225 msgid "Toggle Star Status" msgstr "Markierungsstatus (Stern) umschalten" -#: ../../Zotlabs/Lib/ThreadItem.php:224 +#: ../../Zotlabs/Lib/ThreadItem.php:229 msgid "starred" msgstr "markiert" -#: ../../Zotlabs/Lib/ThreadItem.php:234 ../../include/conversation.php:674 +#: ../../Zotlabs/Lib/ThreadItem.php:239 ../../include/conversation.php:690 msgid "Message signature validated" msgstr "Signatur überprüft" -#: ../../Zotlabs/Lib/ThreadItem.php:235 ../../include/conversation.php:675 +#: ../../Zotlabs/Lib/ThreadItem.php:240 ../../include/conversation.php:691 msgid "Message signature incorrect" msgstr "Signatur nicht korrekt" -#: ../../Zotlabs/Lib/ThreadItem.php:243 +#: ../../Zotlabs/Lib/ThreadItem.php:248 msgid "Add Tag" msgstr "Tag hinzufügen" -#: ../../Zotlabs/Lib/ThreadItem.php:263 ../../include/taxonomy.php:316 +#: ../../Zotlabs/Lib/ThreadItem.php:268 ../../include/taxonomy.php:316 msgid "like" msgstr "mag" -#: ../../Zotlabs/Lib/ThreadItem.php:264 ../../include/taxonomy.php:317 +#: ../../Zotlabs/Lib/ThreadItem.php:269 ../../include/taxonomy.php:317 msgid "dislike" msgstr "verurteile" -#: ../../Zotlabs/Lib/ThreadItem.php:268 +#: ../../Zotlabs/Lib/ThreadItem.php:273 msgid "Share This" msgstr "Teilen" -#: ../../Zotlabs/Lib/ThreadItem.php:268 +#: ../../Zotlabs/Lib/ThreadItem.php:273 msgid "share" msgstr "Teilen" -#: ../../Zotlabs/Lib/ThreadItem.php:277 +#: ../../Zotlabs/Lib/ThreadItem.php:282 msgid "Delivery Report" msgstr "Zustellungsbericht" -#: ../../Zotlabs/Lib/ThreadItem.php:295 +#: ../../Zotlabs/Lib/ThreadItem.php:300 #, php-format msgid "%d comment" msgid_plural "%d comments" msgstr[0] "%d Kommentar" msgstr[1] "%d Kommentare" -#: ../../Zotlabs/Lib/ThreadItem.php:324 ../../Zotlabs/Lib/ThreadItem.php:325 +#: ../../Zotlabs/Lib/ThreadItem.php:329 ../../Zotlabs/Lib/ThreadItem.php:330 #, php-format msgid "View %s's profile - %s" msgstr "Schaue Dir %ss Profil an – %s" -#: ../../Zotlabs/Lib/ThreadItem.php:328 +#: ../../Zotlabs/Lib/ThreadItem.php:333 msgid "to" msgstr "an" -#: ../../Zotlabs/Lib/ThreadItem.php:329 +#: ../../Zotlabs/Lib/ThreadItem.php:334 msgid "via" msgstr "via" -#: ../../Zotlabs/Lib/ThreadItem.php:330 +#: ../../Zotlabs/Lib/ThreadItem.php:335 msgid "Wall-to-Wall" msgstr "Wall-to-Wall" -#: ../../Zotlabs/Lib/ThreadItem.php:331 +#: ../../Zotlabs/Lib/ThreadItem.php:336 msgid "via Wall-To-Wall:" msgstr "via Wall-To-Wall:" -#: ../../Zotlabs/Lib/ThreadItem.php:343 ../../include/conversation.php:722 +#: ../../Zotlabs/Lib/ThreadItem.php:348 ../../include/conversation.php:736 #, php-format msgid "from %s" msgstr "via %s" -#: ../../Zotlabs/Lib/ThreadItem.php:346 ../../include/conversation.php:725 +#: ../../Zotlabs/Lib/ThreadItem.php:351 ../../include/conversation.php:739 #, php-format msgid "last edited: %s" msgstr "zuletzt bearbeitet: %s" -#: ../../Zotlabs/Lib/ThreadItem.php:347 ../../include/conversation.php:726 +#: ../../Zotlabs/Lib/ThreadItem.php:352 ../../include/conversation.php:740 #, php-format msgid "Expires: %s" msgstr "Verfällt: %s" -#: ../../Zotlabs/Lib/ThreadItem.php:372 +#: ../../Zotlabs/Lib/ThreadItem.php:358 +msgid "Attend" +msgstr "Zusagen" + +#: ../../Zotlabs/Lib/ThreadItem.php:359 +msgid "Attendance Options" +msgstr "Zusageoptionen" + +#: ../../Zotlabs/Lib/ThreadItem.php:360 +msgid "Vote" +msgstr "Abstimmen" + +#: ../../Zotlabs/Lib/ThreadItem.php:361 +msgid "Voting Options" +msgstr "Abstimmungsoptionen" + +#: ../../Zotlabs/Lib/ThreadItem.php:381 +#: ../../extend/addon/addon/bookmarker/bookmarker.php:38 msgid "Save Bookmarks" msgstr "Favoriten speichern" -#: ../../Zotlabs/Lib/ThreadItem.php:373 +#: ../../Zotlabs/Lib/ThreadItem.php:382 msgid "Add to Calendar" msgstr "Zum Kalender hinzufügen" -#: ../../Zotlabs/Lib/ThreadItem.php:382 +#: ../../Zotlabs/Lib/ThreadItem.php:391 msgid "Mark all seen" msgstr "Alle als gelesen markieren" -#: ../../Zotlabs/Lib/ThreadItem.php:423 ../../include/js_strings.php:7 +#: ../../Zotlabs/Lib/ThreadItem.php:440 ../../include/js_strings.php:7 #, php-format msgid "%s show all" msgstr "%s mehr anzeigen" -#: ../../Zotlabs/Lib/ThreadItem.php:713 ../../include/conversation.php:1238 +#: ../../Zotlabs/Lib/ThreadItem.php:730 ../../include/conversation.php:1255 msgid "Bold" msgstr "Fett" -#: ../../Zotlabs/Lib/ThreadItem.php:714 ../../include/conversation.php:1239 +#: ../../Zotlabs/Lib/ThreadItem.php:731 ../../include/conversation.php:1256 msgid "Italic" msgstr "Kursiv" -#: ../../Zotlabs/Lib/ThreadItem.php:715 ../../include/conversation.php:1240 +#: ../../Zotlabs/Lib/ThreadItem.php:732 ../../include/conversation.php:1257 msgid "Underline" msgstr "Unterstrichen" -#: ../../Zotlabs/Lib/ThreadItem.php:716 ../../include/conversation.php:1241 +#: ../../Zotlabs/Lib/ThreadItem.php:733 ../../include/conversation.php:1258 msgid "Quote" msgstr "Zitat" -#: ../../Zotlabs/Lib/ThreadItem.php:717 ../../include/conversation.php:1242 +#: ../../Zotlabs/Lib/ThreadItem.php:734 ../../include/conversation.php:1259 msgid "Code" msgstr "Code" -#: ../../Zotlabs/Lib/ThreadItem.php:718 +#: ../../Zotlabs/Lib/ThreadItem.php:735 msgid "Image" msgstr "Bild" -#: ../../Zotlabs/Lib/ThreadItem.php:719 +#: ../../Zotlabs/Lib/ThreadItem.php:736 msgid "Insert Link" msgstr "Link einfügen" -#: ../../Zotlabs/Lib/ThreadItem.php:720 +#: ../../Zotlabs/Lib/ThreadItem.php:737 msgid "Video" msgstr "Video" +#: ../../Zotlabs/Lib/Enotify.php:60 ../../include/network.php:1914 +msgid "$Projectname Notification" +msgstr "$Projectname-Benachrichtigung" + +#: ../../Zotlabs/Lib/Enotify.php:61 ../../extend/addon/addon/diaspora/p.php:46 +#: ../../extend/addon/addon/diaspora/util.php:218 +#: ../../extend/addon/addon/diaspora/util.php:231 +#: ../../include/network.php:1915 +msgid "$projectname" +msgstr "$projectname" + +#: ../../Zotlabs/Lib/Enotify.php:63 ../../include/network.php:1917 +msgid "Thank You," +msgstr "Danke." + +#: ../../Zotlabs/Lib/Enotify.php:65 ../../include/network.php:1919 +#, php-format +msgid "%s Administrator" +msgstr "der Administrator von %s" + +#: ../../Zotlabs/Lib/Enotify.php:116 +#, php-format +msgid "%s " +msgstr "%s " + +#: ../../Zotlabs/Lib/Enotify.php:120 +#, php-format +msgid "[$Projectname:Notify] New mail received at %s" +msgstr "[$Projectname:Benachrichtigung] Neue Mail empfangen auf %s" + +#: ../../Zotlabs/Lib/Enotify.php:122 +#, php-format +msgid "%1$s, %2$s sent you a new private message at %3$s." +msgstr "%1$s, %2$s hat Dir eine private Nachricht auf %3$s gesendet." + +#: ../../Zotlabs/Lib/Enotify.php:123 +#, php-format +msgid "%1$s sent you %2$s." +msgstr "%1$s hat Dir %2$s geschickt." + +#: ../../Zotlabs/Lib/Enotify.php:123 +msgid "a private message" +msgstr "eine private Nachricht" + +#: ../../Zotlabs/Lib/Enotify.php:124 +#, php-format +msgid "Please visit %s to view and/or reply to your private messages." +msgstr "Bitte besuche %s, um die private Nachricht anzusehen und/oder darauf zu antworten." + +#: ../../Zotlabs/Lib/Enotify.php:183 +#, php-format +msgid "%1$s, %2$s commented on [zrl=%3$s]a %4$s[/zrl]" +msgstr "%1$s, %2$s hat [zrl=%3$s]einen %4$s[/zrl] kommentiert" + +#: ../../Zotlabs/Lib/Enotify.php:191 +#, php-format +msgid "%1$s, %2$s commented on [zrl=%3$s]%4$s's %5$s[/zrl]" +msgstr "%1$s, %2$s hat [zrl=%3$s]%4$ss %5$s[/zrl] kommentiert" + +#: ../../Zotlabs/Lib/Enotify.php:200 +#, php-format +msgid "%1$s, %2$s commented on [zrl=%3$s]your %4$s[/zrl]" +msgstr "%1$s, %2$s hat [zrl=%3$s]Deinen %4$s[/zrl] kommentiert" + +#: ../../Zotlabs/Lib/Enotify.php:211 +#, php-format +msgid "[$Projectname:Notify] Comment to conversation #%1$d by %2$s" +msgstr "[$Projectname:Benachrichtigung] Kommentar in Unterhaltung #%1$d von %2$s" + +#: ../../Zotlabs/Lib/Enotify.php:212 +#, php-format +msgid "%1$s, %2$s commented on an item/conversation you have been following." +msgstr "%1$s, %2$s hat eine Unterhaltung kommentiert, der Du folgst." + +#: ../../Zotlabs/Lib/Enotify.php:215 ../../Zotlabs/Lib/Enotify.php:230 +#: ../../Zotlabs/Lib/Enotify.php:256 ../../Zotlabs/Lib/Enotify.php:274 +#: ../../Zotlabs/Lib/Enotify.php:288 +#, php-format +msgid "Please visit %s to view and/or reply to the conversation." +msgstr "Bitte besuche %s, um die Unterhaltung anzusehen und/oder zu kommentieren." + +#: ../../Zotlabs/Lib/Enotify.php:221 +#, php-format +msgid "[$Projectname:Notify] %s posted to your profile wall" +msgstr "[$Projectname:Benachrichtigung] %s schrieb auf Deine Pinnwand" + +#: ../../Zotlabs/Lib/Enotify.php:223 +#, php-format +msgid "%1$s, %2$s posted to your profile wall at %3$s" +msgstr "%1$s, %2$s hat auf Deine Pinnwand auf %3$s geschrieben" + +#: ../../Zotlabs/Lib/Enotify.php:225 +#, php-format +msgid "%1$s, %2$s posted to [zrl=%3$s]your wall[/zrl]" +msgstr "%1$s, %2$s hat auf [zrl=%3$s]Deine Pinnwand[/zrl] geschrieben" + +#: ../../Zotlabs/Lib/Enotify.php:249 +#, php-format +msgid "[$Projectname:Notify] %s tagged you" +msgstr "[$Projectname:Benachrichtigung] %s hat Dich erwähnt" + +#: ../../Zotlabs/Lib/Enotify.php:250 +#, php-format +msgid "%1$s, %2$s tagged you at %3$s" +msgstr "%1$s, %2$s hat Dich auf %3$s erwähnt" + +#: ../../Zotlabs/Lib/Enotify.php:251 +#, php-format +msgid "%1$s, %2$s [zrl=%3$s]tagged you[/zrl]." +msgstr "%1$s, %2$s [zrl=%3$s]hat Dich erwähnt[/zrl]." + +#: ../../Zotlabs/Lib/Enotify.php:263 +#, php-format +msgid "[$Projectname:Notify] %1$s poked you" +msgstr "[$Projectname:Benachrichtigung] %1$s hat Dich angestupst" + +#: ../../Zotlabs/Lib/Enotify.php:264 +#, php-format +msgid "%1$s, %2$s poked you at %3$s" +msgstr "%1$s, %2$s hat Dich auf %3$s angestupst" + +#: ../../Zotlabs/Lib/Enotify.php:265 +#, php-format +msgid "%1$s, %2$s [zrl=%2$s]poked you[/zrl]." +msgstr "%1$s, %2$s [zrl=%2$s]hat Dich angestupst[/zrl]." + +#: ../../Zotlabs/Lib/Enotify.php:281 +#, php-format +msgid "[$Projectname:Notify] %s tagged your post" +msgstr "[$Projectname:Benachrichtigung] %s hat Deinen Beitrag verschlagwortet" + +#: ../../Zotlabs/Lib/Enotify.php:282 +#, php-format +msgid "%1$s, %2$s tagged your post at %3$s" +msgstr "%1$s, %2$s hat Deinen Beitrag auf %3$s verschlagwortet" + +#: ../../Zotlabs/Lib/Enotify.php:283 +#, php-format +msgid "%1$s, %2$s tagged [zrl=%3$s]your post[/zrl]" +msgstr "%1$s, %2$s hat [zrl=%3$s]Deinen Beitrag[/zrl] verschlagwortet" + +#: ../../Zotlabs/Lib/Enotify.php:295 +msgid "[$Projectname:Notify] Introduction received" +msgstr "[$Projectname:Benachrichtigung] Verbindungsanfrage erhalten" + +#: ../../Zotlabs/Lib/Enotify.php:296 +#, php-format +msgid "%1$s, you've received an new connection request from '%2$s' at %3$s" +msgstr "%1$s, Du hast eine neue Verbindungsanfrage von '%2$s' auf %3$s erhalten" + +#: ../../Zotlabs/Lib/Enotify.php:297 +#, php-format +msgid "" +"%1$s, you've received [zrl=%2$s]a new connection request[/zrl] from %3$s." +msgstr "%1$s, Du hast [zrl=%2$s]eine neue Verbindungsanfrage[/zrl] von %3$s erhalten." + +#: ../../Zotlabs/Lib/Enotify.php:301 ../../Zotlabs/Lib/Enotify.php:320 +#, php-format +msgid "You may visit their profile at %s" +msgstr "Du kannst Dir das Profil unter %s ansehen" + +#: ../../Zotlabs/Lib/Enotify.php:303 +#, php-format +msgid "Please visit %s to approve or reject the connection request." +msgstr "Bitte besuche %s , um die Verbindungsanfrage anzunehmen oder abzulehnen." + +#: ../../Zotlabs/Lib/Enotify.php:310 +msgid "[$Projectname:Notify] Friend suggestion received" +msgstr "[$Projectname:Benachrichtigung] Freundschaftsvorschlag erhalten" + +#: ../../Zotlabs/Lib/Enotify.php:311 +#, php-format +msgid "%1$s, you've received a friend suggestion from '%2$s' at %3$s" +msgstr "%1$s, Du hast einen Kontaktvorschlag von „%2$s“ auf %3$s erhalten" + +#: ../../Zotlabs/Lib/Enotify.php:312 +#, php-format +msgid "" +"%1$s, you've received [zrl=%2$s]a friend suggestion[/zrl] for %3$s from " +"%4$s." +msgstr "%1$s, Du hast [zrl=%2$s]einen Kontaktvorschlag[/zrl] für %3$s von %4$s erhalten." + +#: ../../Zotlabs/Lib/Enotify.php:318 +msgid "Name:" +msgstr "Name:" + +#: ../../Zotlabs/Lib/Enotify.php:319 +msgid "Photo:" +msgstr "Foto:" + +#: ../../Zotlabs/Lib/Enotify.php:322 +#, php-format +msgid "Please visit %s to approve or reject the suggestion." +msgstr "Bitte besuche %s um den Vorschlag zu akzeptieren oder abzulehnen." + +#: ../../Zotlabs/Lib/Enotify.php:540 +msgid "[$Projectname:Notify]" +msgstr "[$Projectname:Benachrichtigung]" + +#: ../../Zotlabs/Lib/Enotify.php:700 +msgid "created a new post" +msgstr "Neuer Beitrag wurde erzeugt" + +#: ../../Zotlabs/Lib/Enotify.php:701 +#, php-format +msgid "commented on %s's post" +msgstr "hat %s's Beitrag kommentiert" + +#: ../../extend/addon/addon/adultphotoflag/adultphotoflag.php:24 +msgid "Flag Adult Photos" +msgstr "Nicht jugendfreie Fotos markieren" + +#: ../../extend/addon/addon/adultphotoflag/adultphotoflag.php:25 +msgid "" +"Provide photo edit option to hide inappropriate photos from default album " +"view" +msgstr "Stellt eine Option zum Verstecken von Fotos mit unangemessenen Inhalten in der Standard-Albumansicht bereit" + +#: ../../extend/addon/addon/chords/Mod_Chords.php:44 +msgid "" +"This is a fairly comprehensive and complete guitar chord dictionary which " +"will list most of the available ways to play a certain chord, starting from " +"the base of the fingerboard up to a few frets beyond the twelfth fret " +"(beyond which everything repeats). A couple of non-standard tunings are " +"provided for the benefit of slide players, etc." +msgstr "" + +#: ../../extend/addon/addon/chords/Mod_Chords.php:46 +msgid "" +"Chord names start with a root note (A-G) and may include sharps (#) and " +"flats (b). This software will parse most of the standard naming conventions " +"such as maj, min, dim, sus(2 or 4), aug, with optional repeating elements." +msgstr "" + +#: ../../extend/addon/addon/chords/Mod_Chords.php:48 +msgid "" +"Valid examples include A, A7, Am7, Amaj7, Amaj9, Ammaj7, Aadd4, Asus2Add4, " +"E7b13b11 ..." +msgstr "Einige gültige Beispiele: A, A7, Am7, Amaj7, Amaj9, Ammaj7, Aadd4, Asus2Add4, E7b13b11 ..." + +#: ../../extend/addon/addon/chords/Mod_Chords.php:51 +msgid "Guitar Chords" +msgstr "Gitarrenakkorde" + +#: ../../extend/addon/addon/chords/Mod_Chords.php:52 +msgid "The complete online chord dictionary" +msgstr "Das komplette online Akkord-Verzeichnis" + +#: ../../extend/addon/addon/chords/Mod_Chords.php:57 +msgid "Tuning" +msgstr "Stimmen" + +#: ../../extend/addon/addon/chords/Mod_Chords.php:58 +msgid "Chord name: example: Em7" +msgstr "Beispiel Akkord Name: Em7" + +#: ../../extend/addon/addon/chords/Mod_Chords.php:59 +msgid "Show for left handed stringing" +msgstr "Linkshänder-Besaitung anzeigen" + +#: ../../extend/addon/addon/chords/chords.php:33 +msgid "Quick Reference" +msgstr "Schnellreferenz" + +#: ../../extend/addon/addon/diaspora/diaspora.php:671 +msgid "Diaspora Protocol Settings updated." +msgstr "Diaspora-Protokolleinstellungen aktualisiert." + +#: ../../extend/addon/addon/diaspora/diaspora.php:692 +msgid "Enable the Diaspora protocol for this channel" +msgstr "Diaspora-Protokoll für diesen Kanal aktivieren" + +#: ../../extend/addon/addon/diaspora/diaspora.php:696 +msgid "Allow any Diaspora member to comment on your public posts" +msgstr "Jedem Diaspora-Mitglied erlauben, Deine öffentlichen Beiträge zu kommentieren" + +#: ../../extend/addon/addon/diaspora/diaspora.php:700 +msgid "Prevent your hashtags from being redirected to other sites" +msgstr "Verhindern, dass Deine hashtags zu anderen Seiten umgeleitet werden" + +#: ../../extend/addon/addon/diaspora/diaspora.php:705 +msgid "Followed hashtags (comma separated, do not include the #)" +msgstr "Verfolgte Hashtags (Komma separierte Liste, ohne die #)" + +#: ../../extend/addon/addon/diaspora/diaspora.php:710 +msgid "Diaspora Protocol Settings" +msgstr "Diaspora-Protokolleinstellungen" + +#: ../../extend/addon/addon/dirstats/dirstats.php:94 +msgid "Hubzilla Directory Stats" +msgstr "Hubzilla-Verzeichnisstatistiken" + +#: ../../extend/addon/addon/dirstats/dirstats.php:95 +msgid "Total Hubs" +msgstr "Hubs insgesamt" + +#: ../../extend/addon/addon/dirstats/dirstats.php:97 +msgid "Hubzilla Hubs" +msgstr "Hubzilla Hubs" + +#: ../../extend/addon/addon/dirstats/dirstats.php:99 +msgid "Friendica Hubs" +msgstr "Friendica Hubs" + +#: ../../extend/addon/addon/dirstats/dirstats.php:101 +msgid "Diaspora Pods" +msgstr "Diaspora Pods" + +#: ../../extend/addon/addon/dirstats/dirstats.php:103 +msgid "Hubzilla Channels" +msgstr "Hubzilla-Kanäle" + +#: ../../extend/addon/addon/dirstats/dirstats.php:105 +msgid "Friendica Channels" +msgstr "Friendica-Kanäle" + +#: ../../extend/addon/addon/dirstats/dirstats.php:107 +msgid "Diaspora Channels" +msgstr "Diaspora-Kanäle" + +#: ../../extend/addon/addon/dirstats/dirstats.php:109 +msgid "Aged 35 and above" +msgstr "35 und älter" + +#: ../../extend/addon/addon/dirstats/dirstats.php:111 +msgid "Aged 34 and under" +msgstr "34 und jünger" + +#: ../../extend/addon/addon/dirstats/dirstats.php:113 +msgid "Average Age" +msgstr "Durchschnittsalter" + +#: ../../extend/addon/addon/dirstats/dirstats.php:115 +msgid "Known Chatrooms" +msgstr "Bekannte Chaträume" + +#: ../../extend/addon/addon/dirstats/dirstats.php:117 +msgid "Known Tags" +msgstr "Bekannte Schlagwörter" + +#: ../../extend/addon/addon/dirstats/dirstats.php:119 +msgid "" +"Please note Diaspora and Friendica statistics are merely those **this " +"directory** is aware of, and not all those known in the network. This also " +"applies to chatrooms," +msgstr "Bitte berücksichtige, dass Diaspora und Friendica Statistiken nur solche einschließen, die **diesem Verzeichnis** bekannt sind, nicht alle im Netzwerk bekannten. Das gilt auch für Chaträume." + +#: ../../extend/addon/addon/donate/donate.php:21 +msgid "Project Servers and Resources" +msgstr "Projektserver und -ressourcen" + +#: ../../extend/addon/addon/donate/donate.php:22 +msgid "Project Creator and Tech Lead" +msgstr "Projektersteller und Technischer Leiter" + +#: ../../extend/addon/addon/donate/donate.php:23 +msgid "Admin, developer, directorymin, support bloke" +msgstr "Administrator, Entwickler, Verzeichnis Betreibender, Supportleistende" + +#: ../../extend/addon/addon/donate/donate.php:50 +msgid "" +"And the hundreds of other people and organisations who helped make the " +"Hubzilla possible." +msgstr "Und die hunderte anderen Menschen und Organisationen, die geholfen haben Hubzilla möglich zu machen." + +#: ../../extend/addon/addon/donate/donate.php:53 +msgid "" +"The Redmatrix/Hubzilla projects are provided primarily by volunteers giving " +"their time and expertise - and often paying out of pocket for services they " +"share with others." +msgstr "Die Redmatrix/Hubzilla Projekte werden hauptsächlich von Freiwilligen bereitgestellt, die ihre Zeit und Expertise zur Verfügung stellen - und oft aus eigener Tasche für die Dienste zahlen, die sie mit anderen teilen." + +#: ../../extend/addon/addon/donate/donate.php:54 +msgid "" +"There is no corporate funding and no ads, and we do not collect and sell " +"your personal information. (We don't control your personal information - " +"you do.)" +msgstr "Es gibt keine Finanzierung durch Firmen, keine Werbung und wir verkaufen Deine persönlichen Daten nicht. (Wir kontrollieren Deine persönlichen Daten nicht - das machst Du.)" + +#: ../../extend/addon/addon/donate/donate.php:55 +msgid "" +"Help support our ground-breaking work in decentralisation, web identity, and" +" privacy." +msgstr "Hilf uns bei unserer wegweisenden Arbeit im Bereich der Dezantralisation, von Web-Identitäten und Privatsphäre." + +#: ../../extend/addon/addon/donate/donate.php:57 +msgid "" +"Your donations keep servers and services running and also helps us to " +"provide innovative new features and continued development." +msgstr "Die Spenden werden dafür verwendet Server und Dienste am laufen zu halten und helfen desweiteren innovative Neuerungen zu schaffen und die Entwicklung voran zu treiben." + +#: ../../extend/addon/addon/donate/donate.php:60 +msgid "Donate" +msgstr "Spenden" + +#: ../../extend/addon/addon/donate/donate.php:62 +msgid "" +"Choose a project, developer, or public hub to support with a one-time " +"donation" +msgstr "Wähle ein Projekt, einen Entwickler oder einen öffentlichen Hub den du mit einer einmaligen Spende unterstützen willst." + +#: ../../extend/addon/addon/donate/donate.php:63 +msgid "Donate Now" +msgstr "Jetzt spenden" + +#: ../../extend/addon/addon/donate/donate.php:64 +msgid "" +"Or become a project sponsor (Hubzilla Project " +"only)" +msgstr "Oder werde ein Unterstützer des Projekts (ausschließlich Hubzilla)" + +#: ../../extend/addon/addon/donate/donate.php:65 +msgid "" +"Please indicate if you would like your first name or full name (or nothing) " +"to appear in our sponsor listing" +msgstr "Bitte teile uns mit ob dein kompletter Name oder dein Vorname (oder gar nichts) auf unserer Sponsoren-Seite veröffentlicht werden soll." + +#: ../../extend/addon/addon/donate/donate.php:66 +msgid "Sponsor" +msgstr "Sponsor" + +#: ../../extend/addon/addon/donate/donate.php:69 +msgid "Special thanks to: " +msgstr "Besonderer Dank an: " + +#: ../../extend/addon/addon/dwpost/dwpost.php:42 +msgid "Post to Dreamwidth" +msgstr "Bei Dreamwidth veröffentlichen" + +#: ../../extend/addon/addon/dwpost/dwpost.php:73 +msgid "Enable Dreamwidth Post Plugin" +msgstr "Aktiviere das Dreamwidth-Plugin" + +#: ../../extend/addon/addon/dwpost/dwpost.php:77 +msgid "Dreamwidth username" +msgstr "Dreamwidth-Benutzername" + +#: ../../extend/addon/addon/dwpost/dwpost.php:81 +msgid "Dreamwidth password" +msgstr "Dreamwidth-Passwort" + +#: ../../extend/addon/addon/dwpost/dwpost.php:85 +msgid "Post to Dreamwidth by default" +msgstr "Standardmäßig auf auf Dreamwidth posten" + +#: ../../extend/addon/addon/dwpost/dwpost.php:89 +msgid "Dreamwidth Post Settings" +msgstr "Dreamwidth-Beitragseinstellungen" + +#: ../../extend/addon/addon/flattrwidget/flattrwidget.php:45 +msgid "Flattr this!" +msgstr "Flattr this!" + +#: ../../extend/addon/addon/flattrwidget/flattrwidget.php:83 +msgid "Flattr widget settings updated." +msgstr "Flattr Widget Einstellungen aktualisiert" + +#: ../../extend/addon/addon/flattrwidget/flattrwidget.php:100 +msgid "Flattr user" +msgstr "Flattr Nutzer" + +#: ../../extend/addon/addon/flattrwidget/flattrwidget.php:104 +msgid "URL of the Thing to flattr" +msgstr "URL des Dings zum flattrn" + +#: ../../extend/addon/addon/flattrwidget/flattrwidget.php:104 +msgid "If empty channel URL is used" +msgstr "Falls leer wird die Channel URL verwendet" + +#: ../../extend/addon/addon/flattrwidget/flattrwidget.php:108 +msgid "Title of the Thing to flattr" +msgstr "Titel des Dings zum flattrn" + +#: ../../extend/addon/addon/flattrwidget/flattrwidget.php:108 +msgid "If empty \"channel name on The Hubzilla\" will be used" +msgstr "Falls leer wird \"Kanalname auf The Hubzilla\" verwendet" + +#: ../../extend/addon/addon/flattrwidget/flattrwidget.php:112 +msgid "Static or dynamic flattr button" +msgstr "Statischer oder dynamischer Flattr Button" + +#: ../../extend/addon/addon/flattrwidget/flattrwidget.php:112 +msgid "static" +msgstr "statisch" + +#: ../../extend/addon/addon/flattrwidget/flattrwidget.php:112 +msgid "dynamic" +msgstr "dynamisch" + +#: ../../extend/addon/addon/flattrwidget/flattrwidget.php:116 +msgid "Alignment of the widget" +msgstr "Ausrichtung des Widgets" + +#: ../../extend/addon/addon/flattrwidget/flattrwidget.php:116 +msgid "left" +msgstr "links" + +#: ../../extend/addon/addon/flattrwidget/flattrwidget.php:116 +msgid "right" +msgstr "rechts" + +#: ../../extend/addon/addon/flattrwidget/flattrwidget.php:120 +msgid "Enable Flattr widget" +msgstr "Flattr Widget verwenden" + +#: ../../extend/addon/addon/flattrwidget/flattrwidget.php:124 +msgid "Flattr Widget Settings" +msgstr "Flattr Widget Einstellungen" + +#: ../../extend/addon/addon/friendica/dfrn_confirm.php:118 +msgid "Contact not found." +msgstr "Kontakt nicht gefunden." + +#: ../../extend/addon/addon/friendica/dfrn_confirm.php:119 +msgid "" +"This may occasionally happen if contact was requested by both persons and it" +" has already been approved." +msgstr "Dies kann unter Umständen passieren, wenn der Kontakt von beiden Seiten aus angefragt wurde und er bereits akzeptiert wurde.." + +#: ../../extend/addon/addon/friendica/dfrn_confirm.php:238 +msgid "Response from remote site was not understood." +msgstr "Antwort des entfernten Seite war unverständlich." + +#: ../../extend/addon/addon/friendica/dfrn_confirm.php:247 +#: ../../extend/addon/addon/friendica/dfrn_confirm.php:252 +msgid "Unexpected response from remote site: " +msgstr "Unerwartete Antwort der entfernten Seite" + +#: ../../extend/addon/addon/friendica/dfrn_confirm.php:261 +msgid "Confirmation completed successfully." +msgstr "Bestätigung erfolgreich abgeschlossen." + +#: ../../extend/addon/addon/friendica/dfrn_confirm.php:263 +#: ../../extend/addon/addon/friendica/dfrn_confirm.php:277 +#: ../../extend/addon/addon/friendica/dfrn_confirm.php:284 +msgid "Remote site reported: " +msgstr "Meldung der entfernten Seite" + +#: ../../extend/addon/addon/friendica/dfrn_confirm.php:275 +msgid "Temporary failure. Please wait and try again." +msgstr "Vorübergehende Störung. Bitte warte einen Moment und versuche es später erneut." + +#: ../../extend/addon/addon/friendica/dfrn_confirm.php:282 +msgid "Introduction failed or was revoked." +msgstr "Vorstellung fehlgeschlagen oder wurde zurück gezogen." + +#: ../../extend/addon/addon/friendica/dfrn_confirm.php:428 +msgid "Unable to set contact photo." +msgstr "Konnte das Kontakt-Photo nicht setzen." + +#: ../../extend/addon/addon/friendica/dfrn_confirm.php:485 +#, php-format +msgid "%1$s is now friends with %2$s" +msgstr "%1$s ist nun mit %2$s befreundet" + +#: ../../extend/addon/addon/friendica/dfrn_confirm.php:570 +#, php-format +msgid "No user record found for '%s' " +msgstr "Kein Benutzereintrag für '%s' gefunden" + +#: ../../extend/addon/addon/friendica/dfrn_confirm.php:580 +msgid "Our site encryption key is apparently messed up." +msgstr "Der Verschlüsselungsschlüssel unserer Seite ist anscheinend kaputt." + +#: ../../extend/addon/addon/friendica/dfrn_confirm.php:591 +msgid "Empty site URL was provided or URL could not be decrypted by us." +msgstr "Eine leere Seiten URL wurde angegeben, oder die URL konnte von uns nicht entziffert werden." + +#: ../../extend/addon/addon/friendica/dfrn_confirm.php:612 +msgid "Contact record was not found for you on our site." +msgstr "Für dich wurden keinerlei Kontaktdaten auf unserer Seite gefunden." + +#: ../../extend/addon/addon/friendica/dfrn_confirm.php:626 +#, php-format +msgid "Site public key not available in contact record for URL %s." +msgstr "Der öffentliche Schlüssel dieser Seite ist für die Kontaktdaten mit der URL %s nocht verfügbar." + +#: ../../extend/addon/addon/friendica/dfrn_confirm.php:646 +msgid "" +"The ID provided by your system is a duplicate on our system. It should work " +"if you try again." +msgstr "Die ID, die Durch Dein System angegeben wurde ist ein Duplikat auf unserem. Es sollte funktionieren, wenn Du es noch einmal versuchst." + +#: ../../extend/addon/addon/friendica/dfrn_confirm.php:657 +msgid "Unable to set your contact credentials on our system." +msgstr "" + +#: ../../extend/addon/addon/friendica/dfrn_confirm.php:724 +msgid "Unable to update your contact profile details on our system" +msgstr "Konnte die Details deines Profils auf unserem System nicht aktualisieren." + +#: ../../extend/addon/addon/friendica/dfrn_confirm.php:751 +#: ../../extend/addon/addon/friendica/dfrn_request.php:749 +msgid "[Name Withheld]" +msgstr "[Name zurück gehalten]" + +#: ../../extend/addon/addon/friendica/dfrn_confirm.php:796 +#, php-format +msgid "%1$s has joined %2$s" +msgstr "%1$s ist %2$s beigetreten" + +#: ../../extend/addon/addon/friendica/dfrn_poll.php:103 +#: ../../extend/addon/addon/friendica/dfrn_poll.php:536 +#, php-format +msgid "%1$s welcomes %2$s" +msgstr "%1$s heißt %2$s willkommen" + +#: ../../extend/addon/addon/friendica/dfrn_request.php:102 +msgid "This introduction has already been accepted." +msgstr "Die Vorstellung wurde bereits akzeptiert." + +#: ../../extend/addon/addon/friendica/dfrn_request.php:123 +#: ../../extend/addon/addon/friendica/dfrn_request.php:528 +msgid "Profile location is not valid or does not contain profile information." +msgstr "" + +#: ../../extend/addon/addon/friendica/dfrn_request.php:128 +#: ../../extend/addon/addon/friendica/dfrn_request.php:533 +msgid "Warning: profile location has no identifiable owner name." +msgstr "" + +#: ../../extend/addon/addon/friendica/dfrn_request.php:130 +#: ../../extend/addon/addon/friendica/dfrn_request.php:535 +msgid "Warning: profile location has no profile photo." +msgstr "" + +#: ../../extend/addon/addon/friendica/dfrn_request.php:133 +#: ../../extend/addon/addon/friendica/dfrn_request.php:538 +#, php-format +msgid "%d required parameter was not found at the given location" +msgid_plural "%d required parameters were not found at the given location" +msgstr[0] "" +msgstr[1] "" + +#: ../../extend/addon/addon/friendica/dfrn_request.php:180 +msgid "Introduction complete." +msgstr "Einführung abgeschlossen." + +#: ../../extend/addon/addon/friendica/dfrn_request.php:224 +msgid "Unrecoverable protocol error." +msgstr "Nicht behebbarer Protokollfehler." + +#: ../../extend/addon/addon/friendica/dfrn_request.php:252 +msgid "Profile unavailable." +msgstr "Profil nicht verfügbar." + +#: ../../extend/addon/addon/friendica/dfrn_request.php:277 +#, php-format +msgid "%s has received too many connection requests today." +msgstr "%s hat heute bereits zu viele Kontaktanfragen erhalten." + +#: ../../extend/addon/addon/friendica/dfrn_request.php:278 +msgid "Spam protection measures have been invoked." +msgstr "Maßnahmen zum Spam-Schutz wurden aktiviert." + +#: ../../extend/addon/addon/friendica/dfrn_request.php:279 +msgid "Friends are advised to please try again in 24 hours." +msgstr "Freunde sollten es bitte in 24 Stunden erneut versuchen." + +#: ../../extend/addon/addon/friendica/dfrn_request.php:341 +msgid "Invalid locator" +msgstr "" + +#: ../../extend/addon/addon/friendica/dfrn_request.php:350 +msgid "Invalid email address." +msgstr "Ungültige E-Mail-Adresse." + +#: ../../extend/addon/addon/friendica/dfrn_request.php:377 +msgid "This account has not been configured for email. Request failed." +msgstr "Dieser Account wurde nicht für E-Mail konfiguriert. Anfrage gescheitert." + +#: ../../extend/addon/addon/friendica/dfrn_request.php:473 +msgid "Unable to resolve your name at the provided location." +msgstr "" + +#: ../../extend/addon/addon/friendica/dfrn_request.php:486 +msgid "You have already introduced yourself here." +msgstr "Du hast dich hier bereits vorgestellt." + +#: ../../extend/addon/addon/friendica/dfrn_request.php:490 +#, php-format +msgid "Apparently you are already friends with %s." +msgstr "Anscheinend bist du bereits mit %s in Kontakt." + +#: ../../extend/addon/addon/friendica/dfrn_request.php:511 +msgid "Invalid profile URL." +msgstr "Ungültige Profil-URL." + +#: ../../extend/addon/addon/friendica/dfrn_request.php:517 +msgid "Disallowed profile URL." +msgstr "Nicht erlaubte Profil-URL." + +#: ../../extend/addon/addon/friendica/dfrn_request.php:587 +msgid "Failed to update contact record." +msgstr "Konnte den Verbindungseintrag nicht aktualisieren." + +#: ../../extend/addon/addon/friendica/dfrn_request.php:608 +msgid "Your introduction has been sent." +msgstr "Deine Vorstellung wurde gesendet." + +#: ../../extend/addon/addon/friendica/dfrn_request.php:662 +msgid "Please login to confirm introduction." +msgstr "Bitte melde dich an um die Vorstellung zu bestätigen." + +#: ../../extend/addon/addon/friendica/dfrn_request.php:676 +msgid "" +"Incorrect identity currently logged in. Please login to " +"this profile." +msgstr "" + +#: ../../extend/addon/addon/friendica/dfrn_request.php:690 +#: ../../extend/addon/addon/friendica/dfrn_request.php:707 +msgid "Confirm" +msgstr "Bestätigen" + +#: ../../extend/addon/addon/friendica/dfrn_request.php:702 +msgid "Hide this contact" +msgstr "Diesen Kontakt verbergen" + +#: ../../extend/addon/addon/friendica/dfrn_request.php:705 +#, php-format +msgid "Welcome home %s." +msgstr "Willkommen daheim %s" + +#: ../../extend/addon/addon/friendica/dfrn_request.php:706 +#, php-format +msgid "Please confirm your introduction/connection request to %s." +msgstr "Bitte bestätige deine Vorstellung/Kontaktanfrage bei %s." + +#: ../../extend/addon/addon/friendica/dfrn_request.php:836 +msgid "" +"Please enter your 'Identity Address' from one of the following supported " +"communications networks:" +msgstr "Bitte gib deine \"Identitäts Adresse\" von einem der folgenden unterstützten Kommunikations Netzwerke an." + +#: ../../extend/addon/addon/friendica/dfrn_request.php:857 +#, php-format +msgid "" +"If you are not yet a member of the free social web, follow this link to find a public Friendica site and " +"join us today." +msgstr "" + +#: ../../extend/addon/addon/friendica/dfrn_request.php:862 +msgid "Friend/Connection Request" +msgstr "Freundschafts-/Verbindungsanfrage" + +#: ../../extend/addon/addon/friendica/dfrn_request.php:863 +msgid "" +"Examples: jojo@demo.friendica.com, http://demo.friendica.com/profile/jojo, " +"testuser@identi.ca" +msgstr "Beispiele: jojo@demo.friendica.com, http://demo.friendica.com/profile/jojo, testuser@identi.ca" + +#: ../../extend/addon/addon/friendica/dfrn_request.php:864 +msgid "Please answer the following:" +msgstr "Bitte beantworten Sie folgendes:" + +#: ../../extend/addon/addon/friendica/dfrn_request.php:865 +#, php-format +msgid "Does %s know you?" +msgstr "Kennt %s Sie?" + +#: ../../extend/addon/addon/friendica/dfrn_request.php:869 +msgid "Add a personal note:" +msgstr "Eine persönliche Nachricht hinterlassen:" + +#: ../../extend/addon/addon/friendica/dfrn_request.php:871 +#: ../../include/network.php:2232 ../../include/network.php:2233 +msgid "Friendica" +msgstr "Friendica" + +#: ../../extend/addon/addon/friendica/dfrn_request.php:872 +msgid "StatusNet/Federated Social Web" +msgstr "StatusNet/Föderierte Soziale Netzwerke" + +#: ../../extend/addon/addon/friendica/dfrn_request.php:873 +#: ../../include/network.php:2238 +msgid "Diaspora" +msgstr "Diaspora" + +#: ../../extend/addon/addon/friendica/dfrn_request.php:874 +#, php-format +msgid "" +" - please do not use this form. Instead, enter %s into your Diaspora search" +" bar." +msgstr "- bitte verwende nicht dieses Formular sondern gib %s in die Suchleiste deiner Diaspora Seite ein." + +#: ../../extend/addon/addon/friendica/dfrn_request.php:875 +msgid "Your Identity Address:" +msgstr "Ihre Identitätsadresse:" + +#: ../../extend/addon/addon/friendica/dfrn_request.php:878 +msgid "Submit Request" +msgstr "Anfrage absenden" + +#: ../../extend/addon/addon/friendica/friendica.php:113 +#: ../../extend/addon/addon/gnusoc/gnusoc.php:114 +msgid "GNU-Social Protocol Settings updated." +msgstr "GNU Social Protokoll Einstellungen aktualisiert" + +#: ../../extend/addon/addon/friendica/friendica.php:124 +msgid "Enable the (experimental) GNU-Social protocol for this channel" +msgstr "GNU Social Protokoll (experimentell) für diesen Kanal aktualisieren" + +#: ../../extend/addon/addon/friendica/friendica.php:128 +#: ../../extend/addon/addon/gnusoc/gnusoc.php:129 +msgid "GNU-Social Protocol Settings" +msgstr "GNU Social Protokoll Einstellungen" + +#: ../../extend/addon/addon/friendica/friendica.php:185 +#: ../../extend/addon/addon/gnusoc/gnusoc.php:319 +msgid "Follow" +msgstr "Folgen" + +#: ../../extend/addon/addon/friendica/friendica.php:188 +#: ../../extend/addon/addon/gnusoc/gnusoc.php:322 +#, php-format +msgid "%1$s is now following %2$s" +msgstr "%1$s folgt nun %2$s" + +#: ../../extend/addon/addon/frphotos/frphotos.php:91 +msgid "Friendica Photo Album Import" +msgstr "Friendica-Fotoalbumimport" + +#: ../../extend/addon/addon/frphotos/frphotos.php:92 +msgid "This will import all your Friendica photo albums to this Red channel." +msgstr "Hiermit werden all deine Fotoalben von Friendica in diesen Hubzilla Kanal importiert." + +#: ../../extend/addon/addon/frphotos/frphotos.php:93 +msgid "Friendica Server base URL" +msgstr "BasisURL des Friendica Servers" + +#: ../../extend/addon/addon/frphotos/frphotos.php:94 +msgid "Friendica Login Username" +msgstr "Friendica-Anmeldebenutzername" + +#: ../../extend/addon/addon/frphotos/frphotos.php:95 +msgid "Friendica Login Password" +msgstr "Friendica-Anmeldepasswort" + +#: ../../extend/addon/addon/gnusoc/gnusoc.php:125 +msgid "Enable the GNU-Social protocol for this channel" +msgstr "GNU Social Protokoll für diesen Kanal aktualisieren" + +#: ../../extend/addon/addon/hubwall/hubwall.php:19 +msgid "Send email to all members" +msgstr "E-Mail an alle Mitglieder senden" + +#: ../../extend/addon/addon/hubwall/hubwall.php:33 +#, php-format +msgid "$1%s Administrator" +msgstr "$1%s Administrator" + +#: ../../extend/addon/addon/hubwall/hubwall.php:50 +#: ../../extend/addon/addon/mailtest/mailtest.php:50 +msgid "No recipients found." +msgstr "Keine Empfänger gefunden." + +#: ../../extend/addon/addon/hubwall/hubwall.php:73 +#, php-format +msgid "%1$d of %2$d messages sent." +msgstr "%1$d von %2$d Nachrichten gesendet." + +#: ../../extend/addon/addon/hubwall/hubwall.php:81 +msgid "Send email to all hub members." +msgstr "Eine E-Mail an alle Mitglieder dieses Hubs senden." + +#: ../../extend/addon/addon/hubwall/hubwall.php:92 +#: ../../extend/addon/addon/mailtest/mailtest.php:96 +msgid "Message subject" +msgstr "Betreff der Nachricht" + +#: ../../extend/addon/addon/hubwall/hubwall.php:93 +msgid "Sender Email address" +msgstr "E-Mail Adresse des Absenders" + +#: ../../extend/addon/addon/hubwall/hubwall.php:94 +msgid "Test mode (only send to hub administrator)" +msgstr "Test Modus (nur an Hub Administratoren senden)" + +#: ../../extend/addon/addon/ijpost/ijpost.php:42 +msgid "Post to Insanejournal" +msgstr "Bei InsaneJournal veröffentlichen" + +#: ../../extend/addon/addon/ijpost/ijpost.php:73 +msgid "Enable InsaneJournal Post Plugin" +msgstr "Aktiviere das InsaneJournal Plugin" + +#: ../../extend/addon/addon/ijpost/ijpost.php:77 +msgid "InsaneJournal username" +msgstr "InsaneJournal-Benutzername" + +#: ../../extend/addon/addon/ijpost/ijpost.php:81 +msgid "InsaneJournal password" +msgstr "InsaneJournal-Passwort" + +#: ../../extend/addon/addon/ijpost/ijpost.php:85 +msgid "Post to InsaneJournal by default" +msgstr "Standardmäßig bei InsaneJournal veröffentlichen" + +#: ../../extend/addon/addon/ijpost/ijpost.php:89 +msgid "InsaneJournal Post Settings" +msgstr "InsaneJournal-Beitragseinstellungen" + +#: ../../extend/addon/addon/ijpost/ijpost.php:104 +msgid "Insane Journal Settings saved." +msgstr "InsaneJournal-Einstellungen gespeichert." + +#: ../../extend/addon/addon/irc/irc.php:45 +msgid "Channels to auto connect" +msgstr "" + +#: ../../extend/addon/addon/irc/irc.php:45 +#: ../../extend/addon/addon/irc/irc.php:49 +msgid "Comma separated list" +msgstr "Kommagetrennte Liste" + +#: ../../extend/addon/addon/irc/irc.php:49 +#: ../../extend/addon/addon/irc/irc.php:96 +msgid "Popular Channels" +msgstr "Beliebte Kanäle" + +#: ../../extend/addon/addon/irc/irc.php:53 +msgid "IRC Settings" +msgstr "IRC-Einstellungen" + +#: ../../extend/addon/addon/irc/irc.php:69 +msgid "IRC settings saved." +msgstr "IRC-Einstellungen gespeichert." + +#: ../../extend/addon/addon/irc/irc.php:74 +msgid "IRC Chatroom" +msgstr "IRC-Chatraum" + +#: ../../extend/addon/addon/jappixmini/jappixmini.php:305 +#: ../../include/channel.php:1056 ../../include/channel.php:1218 +msgid "Status:" +msgstr "Status:" + +#: ../../extend/addon/addon/jappixmini/jappixmini.php:309 +msgid "Activate addon" +msgstr "Addon aktiviren" + +#: ../../extend/addon/addon/jappixmini/jappixmini.php:313 +msgid "Hide Jappixmini Chat-Widget from the webinterface" +msgstr "Jappix Mini Chat-Widget von der Weboberfläche verbergen" + +#: ../../extend/addon/addon/jappixmini/jappixmini.php:318 +msgid "Jabber username" +msgstr "Jabber-Benutzername" + +#: ../../extend/addon/addon/jappixmini/jappixmini.php:324 +msgid "Jabber server" +msgstr "Jabber-Server" + +#: ../../extend/addon/addon/jappixmini/jappixmini.php:330 +msgid "Jabber BOSH host URL" +msgstr "Jabber BOSH Host URL" + +#: ../../extend/addon/addon/jappixmini/jappixmini.php:337 +msgid "Jabber password" +msgstr "Jabber-Passwort" + +#: ../../extend/addon/addon/jappixmini/jappixmini.php:343 +msgid "Encrypt Jabber password with Hubzilla password" +msgstr "Jabber-Passwort mit Hubzilla-Passwort verschlüsseln" + +#: ../../extend/addon/addon/jappixmini/jappixmini.php:347 +#: ../../extend/addon/addon/redred/redred.php:115 +msgid "Hubzilla password" +msgstr "Hubzilla-Passwort" + +#: ../../extend/addon/addon/jappixmini/jappixmini.php:351 +#: ../../extend/addon/addon/jappixmini/jappixmini.php:355 +msgid "Approve subscription requests from Hubzilla contacts automatically" +msgstr "" + +#: ../../extend/addon/addon/jappixmini/jappixmini.php:359 +msgid "Purge internal list of jabber addresses of contacts" +msgstr "Interne Liste der Jabber Adressen von Kontakten löschen" + +#: ../../extend/addon/addon/jappixmini/jappixmini.php:364 +msgid "Configuration Help" +msgstr "Konfigurationshilfe" + +#: ../../extend/addon/addon/jappixmini/jappixmini.php:368 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1149 +msgid "Add Contact" +msgstr "Kontakt hinzufügen" + +#: ../../extend/addon/addon/jappixmini/jappixmini.php:371 +msgid "Jappix Mini Settings" +msgstr "Jappix Mini Einstellungen" + +#: ../../extend/addon/addon/js_upload/js_upload.php:44 +msgid "Upload a file" +msgstr "Datei hochladen" + +#: ../../extend/addon/addon/js_upload/js_upload.php:45 +msgid "Drop files here to upload" +msgstr "Dateien zum Hochladen hier fallen lassen" + +#: ../../extend/addon/addon/js_upload/js_upload.php:47 +msgid "Failed" +msgstr "Fehlgeschlagen" + +#: ../../extend/addon/addon/js_upload/js_upload.php:315 +msgid "No files were uploaded." +msgstr "Es wurden keine Dateien hochgeladen." + +#: ../../extend/addon/addon/js_upload/js_upload.php:322 +msgid "Uploaded file is empty" +msgstr "Hochgeladene Datei ist leer" + +#: ../../extend/addon/addon/js_upload/js_upload.php:335 +msgid "Image exceeds size limit of " +msgstr "Bild überschreitet Größenbeschränkung von " + +#: ../../extend/addon/addon/js_upload/js_upload.php:347 +msgid "File has an invalid extension, it should be one of " +msgstr "Die Datei hat eine ungültige Endung. Erlaubt sind folgende:" + +#: ../../extend/addon/addon/js_upload/js_upload.php:359 +msgid "Upload was cancelled, or server error encountered" +msgstr "Das Hochladen wurde abgebrochen oder es ist ein Serverfehler aufgetreten." + +#: ../../extend/addon/addon/ldapauth/ldapauth.php:61 +msgid "An account has been created for you." +msgstr "Ein Konto wurde für Sie erstellt." + +#: ../../extend/addon/addon/ldapauth/ldapauth.php:68 +msgid "Authentication successful but rejected: account creation is disabled." +msgstr "Authentifizierung war erfolgreich wurde aber abgewiesen! Das Anlegen von Accounts wurde deaktiviert." + +#: ../../extend/addon/addon/libertree/libertree.php:38 +msgid "Post to Libertree" +msgstr "Bei Libertree veröffentlichen" + +#: ../../extend/addon/addon/libertree/libertree.php:69 +msgid "Enable Libertree Post Plugin" +msgstr "Aktivire das Libertree-Plugin" + +#: ../../extend/addon/addon/libertree/libertree.php:73 +msgid "Libertree API token" +msgstr "Libertree API Token" + +#: ../../extend/addon/addon/libertree/libertree.php:77 +msgid "Libertree site URL" +msgstr "URL der Libertree Seite" + +#: ../../extend/addon/addon/libertree/libertree.php:81 +msgid "Post to Libertree by default" +msgstr "Standardmäßig bei Libertree veröffentlichen" + +#: ../../extend/addon/addon/libertree/libertree.php:85 +msgid "Libertree Post Settings" +msgstr "Libertree-Beitragseinstellungen" + +#: ../../extend/addon/addon/libertree/libertree.php:99 +msgid "Libertree Settings saved." +msgstr "Libertree-Einstellungen gespeichert." + +#: ../../extend/addon/addon/ljpost/ljpost.php:42 +msgid "Post to LiveJournal" +msgstr "Bei LiveJurnal veröffentlichen" + +#: ../../extend/addon/addon/ljpost/ljpost.php:70 +msgid "Enable LiveJournal Post Plugin" +msgstr "Aktiviere das LiveJurnal Plugin" + +#: ../../extend/addon/addon/ljpost/ljpost.php:74 +msgid "LiveJournal username" +msgstr "LiveJournal-Benutzername" + +#: ../../extend/addon/addon/ljpost/ljpost.php:78 +msgid "LiveJournal password" +msgstr "LiveJournal-Passwort" + +#: ../../extend/addon/addon/ljpost/ljpost.php:82 +msgid "Post to LiveJournal by default" +msgstr "Standardmäßig bei LiveJurnal veröffentlichen" + +#: ../../extend/addon/addon/ljpost/ljpost.php:86 +msgid "LiveJournal Post Settings" +msgstr "LiveJournal-Beitragseinstellungen" + +#: ../../extend/addon/addon/ljpost/ljpost.php:101 +msgid "LiveJournal Settings saved." +msgstr "LiveJournal-Einstellungen gespeichert." + +#: ../../extend/addon/addon/logrot/logrot.php:36 +msgid "Logfile archive directory" +msgstr "Verzeichnis der Logdatei" + +#: ../../extend/addon/addon/logrot/logrot.php:36 +msgid "Directory to store rotated logs" +msgstr "Verzeichnis, in dem rotierte Logs gespeichert werden sollen" + +#: ../../extend/addon/addon/logrot/logrot.php:37 +msgid "Logfile size in bytes before rotating" +msgstr "zu erreichende Logdateigröße in Bytes, bevor rotiert wird" + +#: ../../extend/addon/addon/logrot/logrot.php:38 +msgid "Number of logfiles to retain" +msgstr "Anzahl aufzubewahrender rotierter Logdateien" + +#: ../../extend/addon/addon/mailhost/mailhost.php:36 +msgid "Email notification hub" +msgstr "Hub für E-Mail-Benachrichtigungen" + +#: ../../extend/addon/addon/mailhost/mailhost.php:36 +msgid "Hostname" +msgstr "Servername" + +#: ../../extend/addon/addon/mailhost/mailhost.php:40 +msgid "Mailhost Settings" +msgstr "Mailhost-Einstellungen" + +#: ../../extend/addon/addon/mailhost/mailhost.php:54 +msgid "MAILHOST Settings saved." +msgstr "MAILHOST-Einstellungen gespeichert." + +#: ../../extend/addon/addon/moremoods/moremoods.php:19 +msgid "lonely" +msgstr "einsam" + +#: ../../extend/addon/addon/moremoods/moremoods.php:20 +msgid "drunk" +msgstr "betrunken" + +#: ../../extend/addon/addon/moremoods/moremoods.php:21 +msgid "horny" +msgstr "geil" + +#: ../../extend/addon/addon/moremoods/moremoods.php:22 +msgid "stoned" +msgstr "bekifft" + +#: ../../extend/addon/addon/moremoods/moremoods.php:23 +msgid "fucked up" +msgstr "beschissen" + +#: ../../extend/addon/addon/moremoods/moremoods.php:24 +msgid "clusterfucked" +msgstr "clusterfucked" + +#: ../../extend/addon/addon/moremoods/moremoods.php:25 +msgid "crazy" +msgstr "verrückt" + +#: ../../extend/addon/addon/moremoods/moremoods.php:26 +msgid "hurt" +msgstr "verletzt" + +#: ../../extend/addon/addon/moremoods/moremoods.php:27 +msgid "sleepy" +msgstr "müde" + +#: ../../extend/addon/addon/moremoods/moremoods.php:28 +msgid "grumpy" +msgstr "mürrisch" + +#: ../../extend/addon/addon/moremoods/moremoods.php:29 +msgid "high" +msgstr "hoch" + +#: ../../extend/addon/addon/moremoods/moremoods.php:30 +msgid "semi-conscious" +msgstr "halb bewusstlos" + +#: ../../extend/addon/addon/moremoods/moremoods.php:31 +msgid "in love" +msgstr "verliebt" + +#: ../../extend/addon/addon/moremoods/moremoods.php:32 +msgid "in lust" +msgstr "" + +#: ../../extend/addon/addon/moremoods/moremoods.php:33 +msgid "naked" +msgstr "nackt" + +#: ../../extend/addon/addon/moremoods/moremoods.php:34 +msgid "stinky" +msgstr "stinkend" + +#: ../../extend/addon/addon/moremoods/moremoods.php:35 +msgid "sweaty" +msgstr "verschwitzt" + +#: ../../extend/addon/addon/moremoods/moremoods.php:36 +msgid "bleeding out" +msgstr "blutend" + +#: ../../extend/addon/addon/moremoods/moremoods.php:37 +msgid "victorious" +msgstr "siegreich" + +#: ../../extend/addon/addon/moremoods/moremoods.php:38 +msgid "defeated" +msgstr "besiegt" + +#: ../../extend/addon/addon/moremoods/moremoods.php:39 +msgid "envious" +msgstr "neidisch" + +#: ../../extend/addon/addon/moremoods/moremoods.php:40 +msgid "jealous" +msgstr "eifersüchtig" + +#: ../../extend/addon/addon/morepokes/morepokes.php:19 +msgid "bitchslap" +msgstr "Ohrfeige" + +#: ../../extend/addon/addon/morepokes/morepokes.php:19 +msgid "bitchslapped" +msgstr "geohrfeigt" + +#: ../../extend/addon/addon/morepokes/morepokes.php:20 +msgid "shag" +msgstr "bumsen" + +#: ../../extend/addon/addon/morepokes/morepokes.php:20 +msgid "shagged" +msgstr "gebumst" + +#: ../../extend/addon/addon/morepokes/morepokes.php:21 +msgid "patent" +msgstr "Patent" + +#: ../../extend/addon/addon/morepokes/morepokes.php:21 +msgid "patented" +msgstr "patentiert" + +#: ../../extend/addon/addon/morepokes/morepokes.php:22 +msgid "hug" +msgstr "umarmen" + +#: ../../extend/addon/addon/morepokes/morepokes.php:22 +msgid "hugged" +msgstr "umarmt" + +#: ../../extend/addon/addon/morepokes/morepokes.php:23 +msgid "murder" +msgstr "ermorden" + +#: ../../extend/addon/addon/morepokes/morepokes.php:23 +msgid "murdered" +msgstr "ermordet" + +#: ../../extend/addon/addon/morepokes/morepokes.php:24 +msgid "worship" +msgstr "" + +#: ../../extend/addon/addon/morepokes/morepokes.php:24 +msgid "worshipped" +msgstr "" + +#: ../../extend/addon/addon/morepokes/morepokes.php:25 +msgid "kiss" +msgstr "küssen" + +#: ../../extend/addon/addon/morepokes/morepokes.php:25 +msgid "kissed" +msgstr "geküsst" + +#: ../../extend/addon/addon/morepokes/morepokes.php:26 +msgid "tempt" +msgstr "verlocken" + +#: ../../extend/addon/addon/morepokes/morepokes.php:26 +msgid "tempted" +msgstr "verlockt" + +#: ../../extend/addon/addon/morepokes/morepokes.php:27 +msgid "raise eyebrows at" +msgstr "" + +#: ../../extend/addon/addon/morepokes/morepokes.php:27 +msgid "raised their eyebrows at" +msgstr "" + +#: ../../extend/addon/addon/morepokes/morepokes.php:28 +msgid "insult" +msgstr "beleidigen" + +#: ../../extend/addon/addon/morepokes/morepokes.php:28 +msgid "insulted" +msgstr "beleidigt" + +#: ../../extend/addon/addon/morepokes/morepokes.php:29 +msgid "praise" +msgstr "loben" + +#: ../../extend/addon/addon/morepokes/morepokes.php:29 +msgid "praised" +msgstr "gelobt" + +#: ../../extend/addon/addon/morepokes/morepokes.php:30 +msgid "be dubious of" +msgstr "" + +#: ../../extend/addon/addon/morepokes/morepokes.php:30 +msgid "was dubious of" +msgstr "" + +#: ../../extend/addon/addon/morepokes/morepokes.php:31 +msgid "eat" +msgstr "essen" + +#: ../../extend/addon/addon/morepokes/morepokes.php:31 +msgid "ate" +msgstr "aß" + +#: ../../extend/addon/addon/morepokes/morepokes.php:32 +msgid "giggle and fawn at" +msgstr "" + +#: ../../extend/addon/addon/morepokes/morepokes.php:32 +msgid "giggled and fawned at" +msgstr "" + +#: ../../extend/addon/addon/morepokes/morepokes.php:33 +msgid "doubt" +msgstr "anzweifeln" + +#: ../../extend/addon/addon/morepokes/morepokes.php:33 +msgid "doubted" +msgstr "angezweifelt" + +#: ../../extend/addon/addon/morepokes/morepokes.php:34 +msgid "glare" +msgstr "" + +#: ../../extend/addon/addon/morepokes/morepokes.php:34 +msgid "glared at" +msgstr "" + +#: ../../extend/addon/addon/morepokes/morepokes.php:35 +msgid "fuck" +msgstr "ficken" + +#: ../../extend/addon/addon/morepokes/morepokes.php:35 +msgid "fucked" +msgstr "gefickt" + +#: ../../extend/addon/addon/morepokes/morepokes.php:36 +msgid "bonk" +msgstr "" + +#: ../../extend/addon/addon/morepokes/morepokes.php:36 +msgid "bonked" +msgstr "" + +#: ../../extend/addon/addon/morepokes/morepokes.php:37 +msgid "declare undying love for" +msgstr "" + +#: ../../extend/addon/addon/morepokes/morepokes.php:37 +msgid "declared undying love for" +msgstr "" + +#: ../../extend/addon/addon/msgfooter/msgfooter.php:46 +#: ../../extend/addon/addon/xmpp/xmpp.php:91 +msgid "Save Settings" +msgstr "Einstellungen speichern" + +#: ../../extend/addon/addon/msgfooter/msgfooter.php:47 +msgid "text to include in all outgoing posts from this site" +msgstr "Test der in alle Beiträge angefügt werden soll, die von dieser Seite ausgehen" + +#: ../../extend/addon/addon/nofed/nofed.php:42 +msgid "Federate" +msgstr "" + +#: ../../extend/addon/addon/nofed/nofed.php:56 +msgid "nofed Settings saved." +msgstr "nofed Einstellungen gespeichert" + +#: ../../extend/addon/addon/nofed/nofed.php:72 +msgid "Allow Federation Toggle" +msgstr "" + +#: ../../extend/addon/addon/nofed/nofed.php:76 +msgid "Federate posts by default" +msgstr "" + +#: ../../extend/addon/addon/nofed/nofed.php:80 +msgid "NoFed Settings" +msgstr "NoFed-Einstellungen" + +#: ../../extend/addon/addon/nsabait/nsabait.php:125 +msgid "Nsabait Settings updated." +msgstr "Nsabait-Einstellungen aktualisiert." + +#: ../../extend/addon/addon/nsabait/nsabait.php:157 +msgid "Enable NSAbait Plugin" +msgstr "" + +#: ../../extend/addon/addon/nsabait/nsabait.php:161 +msgid "NSAbait Settings" +msgstr "NSAbait-Einstellungen" + +#: ../../extend/addon/addon/nsfw/nsfw.php:80 +msgid "" +"This plugin looks in posts for the words/text you specify below, and " +"collapses any content containing those keywords so it is not displayed at " +"inappropriate times, such as sexual innuendo that may be improper in a work " +"setting. It is polite and recommended to tag any content containing nudity " +"with #NSFW. This filter can also match any other word/text you specify, and" +" can thereby be used as a general purpose content filter." +msgstr "" + +#: ../../extend/addon/addon/nsfw/nsfw.php:84 +msgid "Enable Content filter" +msgstr "Inhaltsfilter aktivieren" + +#: ../../extend/addon/addon/nsfw/nsfw.php:88 +msgid "Comma separated list of keywords to hide" +msgstr "" + +#: ../../extend/addon/addon/nsfw/nsfw.php:88 +msgid "Use /expression/ to provide regular expressions" +msgstr "" + +#: ../../extend/addon/addon/nsfw/nsfw.php:92 +msgid "Not Safe For Work Settings" +msgstr "Not Safe For Work Einstellungen" + +#: ../../extend/addon/addon/nsfw/nsfw.php:92 +msgid "General Purpose Content Filter" +msgstr "Allzweck-Inhaltsfilter" + +#: ../../extend/addon/addon/nsfw/nsfw.php:110 +msgid "NSFW Settings saved." +msgstr "NSFW-Einstellungen gespeichert." + +#: ../../extend/addon/addon/nsfw/nsfw.php:207 +msgid "Possible adult content" +msgstr "Möglicherweise nicht jugendfreie Inhalte" + +#: ../../extend/addon/addon/nsfw/nsfw.php:211 +#, php-format +msgid "%s - click to open/close" +msgstr "%s - zum öffnen/schließen anklicken" + +#: ../../extend/addon/addon/openclipatar/openclipatar.php:49 +#: ../../extend/addon/addon/openclipatar/openclipatar.php:127 +msgid "System defaults:" +msgstr "Systemstandardeinstellungen:" + +#: ../../extend/addon/addon/openclipatar/openclipatar.php:53 +msgid "Preferred Clipart IDs" +msgstr "" + +#: ../../extend/addon/addon/openclipatar/openclipatar.php:53 +msgid "List of preferred clipart ids. These will be shown first." +msgstr "" + +#: ../../extend/addon/addon/openclipatar/openclipatar.php:54 +msgid "Default Search Term" +msgstr "" + +#: ../../extend/addon/addon/openclipatar/openclipatar.php:54 +msgid "The default search term. These will be shown second." +msgstr "" + +#: ../../extend/addon/addon/openclipatar/openclipatar.php:55 +msgid "Return After" +msgstr "" + +#: ../../extend/addon/addon/openclipatar/openclipatar.php:55 +msgid "Page to load after image selection." +msgstr "" + +#: ../../extend/addon/addon/openclipatar/openclipatar.php:57 +#: ../../include/channel.php:965 ../../include/nav.php:93 +msgid "Edit Profile" +msgstr "Profile bearbeiten" + +#: ../../extend/addon/addon/openclipatar/openclipatar.php:58 +msgid "Profile List" +msgstr "Profilliste" + +#: ../../extend/addon/addon/openclipatar/openclipatar.php:60 +msgid "Order of Preferred" +msgstr "Bevorzugte Reihenfolge" + +#: ../../extend/addon/addon/openclipatar/openclipatar.php:60 +msgid "Sort order of preferred clipart ids." +msgstr "" + +#: ../../extend/addon/addon/openclipatar/openclipatar.php:61 +#: ../../extend/addon/addon/openclipatar/openclipatar.php:67 +msgid "Newest first" +msgstr "Neueste zuerst" + +#: ../../extend/addon/addon/openclipatar/openclipatar.php:64 +msgid "As entered" +msgstr "Wie eingegeben" + +#: ../../extend/addon/addon/openclipatar/openclipatar.php:66 +msgid "Order of other" +msgstr "" + +#: ../../extend/addon/addon/openclipatar/openclipatar.php:66 +msgid "Sort order of other clipart ids." +msgstr "" + +#: ../../extend/addon/addon/openclipatar/openclipatar.php:68 +msgid "Most downloaded first" +msgstr "Meist heruntergeladene zuerst" + +#: ../../extend/addon/addon/openclipatar/openclipatar.php:69 +msgid "Most liked first" +msgstr "Beliebteste zuerst" + +#: ../../extend/addon/addon/openclipatar/openclipatar.php:71 +msgid "Preferred IDs Message" +msgstr "" + +#: ../../extend/addon/addon/openclipatar/openclipatar.php:71 +msgid "Message to display above preferred results." +msgstr "" + +#: ../../extend/addon/addon/openclipatar/openclipatar.php:77 +msgid "Uploaded by: " +msgstr "Hochgeladen von: " + +#: ../../extend/addon/addon/openclipatar/openclipatar.php:77 +msgid "Drawn by: " +msgstr "Gezeichnet von: " + +#: ../../extend/addon/addon/openclipatar/openclipatar.php:191 +msgid "Or select from a free OpenClipart.org image:" +msgstr "" + +#: ../../extend/addon/addon/openclipatar/openclipatar.php:194 +msgid "Search Term" +msgstr "Suchbegriff" + +#: ../../extend/addon/addon/openclipatar/openclipatar.php:216 +msgid "Unknown error. Please try again later." +msgstr "Unbekannter Fehler. Bitte versuchen Sie es später erneut." + +#: ../../extend/addon/addon/openclipatar/openclipatar.php:303 +msgid "Profile photo updated successfully." +msgstr "Profilfoto erfolgreich aktualisiert." + +#: ../../extend/addon/addon/openstreetmap/openstreetmap.php:146 +msgid "View Larger" +msgstr "Größer anzeigen" + +#: ../../extend/addon/addon/openstreetmap/openstreetmap.php:169 +msgid "Tile Server URL" +msgstr "Kachelserver-URL" + +#: ../../extend/addon/addon/openstreetmap/openstreetmap.php:169 +msgid "" +"A list of public tile servers" +msgstr "Eine Liste öffentlicher Kachelserver" + +#: ../../extend/addon/addon/openstreetmap/openstreetmap.php:170 +msgid "Nominatim (reverse geocoding) Server URL" +msgstr "Nominatim (reverse Geokodierung) Server URL" + +#: ../../extend/addon/addon/openstreetmap/openstreetmap.php:170 +msgid "" +"A list of Nominatim servers" +msgstr "Eine Liste der Nominatim Server" + +#: ../../extend/addon/addon/openstreetmap/openstreetmap.php:171 +msgid "Default zoom" +msgstr "Standardzoom" + +#: ../../extend/addon/addon/openstreetmap/openstreetmap.php:171 +msgid "" +"The default zoom level. (1:world, 18:highest, also depends on tile server)" +msgstr "Die Standard-Vergrößerungsstufe (1:Welt, 18:höchste, hängt außerdem vom Kachelserver ab)." + +#: ../../extend/addon/addon/openstreetmap/openstreetmap.php:172 +msgid "Include marker on map" +msgstr "Markierung auf der Karte einschließen" + +#: ../../extend/addon/addon/openstreetmap/openstreetmap.php:172 +msgid "Include a marker on the map." +msgstr "Binde eine Markierung auf der Karte ein." + +#: ../../extend/addon/addon/pageheader/pageheader.php:43 +msgid "Message to display on every page on this server" +msgstr "Nachricht, die auf jeder Seite dieses Servers angezeigt werden soll" + +#: ../../extend/addon/addon/pageheader/pageheader.php:48 +msgid "Pageheader Settings" +msgstr "Nachrichtenkopf-Einstellungen" + +#: ../../extend/addon/addon/pageheader/pageheader.php:64 +msgid "pageheader Settings saved." +msgstr "Nachrichtenkopf-Einstellungen gespeichert." + +#: ../../extend/addon/addon/piwik/piwik.php:85 +msgid "" +"This website is tracked using the Piwik " +"analytics tool." +msgstr "Diese Website verwendet Piwik, um die Besucherzugriffe auszuwerten." + +#: ../../extend/addon/addon/piwik/piwik.php:88 +#, php-format +msgid "" +"If you do not want that your visits are logged this way you can" +" set a cookie to prevent Piwik from tracking further visits of the site " +"(opt-out)." +msgstr "Wenn Du nicht möchtest, dass Deine Besuche zu diesem Zweck gespeichert werden, kannst Du ein Cookie setzen, welches Piwik davon abhält, Deine weiteren Besuche auf dieser Website zu verfolgen (Opt-out)." + +#: ../../extend/addon/addon/piwik/piwik.php:96 +msgid "Piwik Base URL" +msgstr "Piwik Basis-URL" + +#: ../../extend/addon/addon/piwik/piwik.php:96 +msgid "" +"Absolute path to your Piwik installation. (without protocol (http/s), with " +"trailing slash)" +msgstr "Der absolute Pfad zu Deiner Piwik-Installation (ohne Protokoll (http/s), aber mit abschließendem Schrägstrich / )." + +#: ../../extend/addon/addon/piwik/piwik.php:97 +msgid "Site ID" +msgstr "Seitenkennung" + +#: ../../extend/addon/addon/piwik/piwik.php:98 +msgid "Show opt-out cookie link?" +msgstr "Den Opt-out Cookie-Link anzeigen?" + +#: ../../extend/addon/addon/piwik/piwik.php:99 +msgid "Asynchronous tracking" +msgstr "Asynchrones Tracking" + +#: ../../extend/addon/addon/piwik/piwik.php:100 +msgid "Enable frontend JavaScript error tracking" +msgstr "Ermögliche Frontend-JavaScript-Fehlertracking" + +#: ../../extend/addon/addon/piwik/piwik.php:100 +msgid "This feature requires Piwik >= 2.2.0" +msgstr "Diese Funktion erfordert Piwik >= 2.2.0" + +#: ../../extend/addon/addon/planets/planets.php:121 +msgid "Planets Settings updated." +msgstr "Planeten Einstellungen aktualisiert" + +#: ../../extend/addon/addon/planets/planets.php:153 +msgid "Enable Planets Plugin" +msgstr "Aktiviere Planeten Plugin" + +#: ../../extend/addon/addon/planets/planets.php:157 +msgid "Planets Settings" +msgstr "Planeten Einstellungen" + +#: ../../extend/addon/addon/pumpio/pumpio.php:148 +msgid "You are now authenticated to pumpio." +msgstr "Du bist nun bei pumpio authenzifiziert." + +#: ../../extend/addon/addon/pumpio/pumpio.php:149 +msgid "return to the featured settings page" +msgstr "" + +#: ../../extend/addon/addon/pumpio/pumpio.php:163 +msgid "Post to Pump.io" +msgstr "Bei pumpio veröffentlichen" + +#: ../../extend/addon/addon/pumpio/pumpio.php:198 +msgid "Pump.io servername" +msgstr "Pump.io-Servername" + +#: ../../extend/addon/addon/pumpio/pumpio.php:198 +msgid "Without \"http://\" or \"https://\"" +msgstr "Ohne \"http://\" oder \"https://\"" + +#: ../../extend/addon/addon/pumpio/pumpio.php:202 +msgid "Pump.io username" +msgstr "Pump.io-Benutzername" + +#: ../../extend/addon/addon/pumpio/pumpio.php:202 +msgid "Without the servername" +msgstr "Ohne dem Servernamen" + +#: ../../extend/addon/addon/pumpio/pumpio.php:213 +msgid "You are not authenticated to pumpio" +msgstr "Du bist nicht bei pumpio authentifiziert." + +#: ../../extend/addon/addon/pumpio/pumpio.php:215 +msgid "(Re-)Authenticate your pump.io connection" +msgstr "Deine pumpio Verbindung (erneut) authentifizieren" + +#: ../../extend/addon/addon/pumpio/pumpio.php:219 +msgid "Enable pump.io Post Plugin" +msgstr "Aktiviere das pumpio-Plugin" + +#: ../../extend/addon/addon/pumpio/pumpio.php:223 +msgid "Post to pump.io by default" +msgstr "Standardmäßig bei pumpio veröffentlichen" + +#: ../../extend/addon/addon/pumpio/pumpio.php:227 +msgid "Should posts be public" +msgstr "Sollen die Beiträge öffentlich sein" + +#: ../../extend/addon/addon/pumpio/pumpio.php:231 +msgid "Mirror all public posts" +msgstr "Öffentliche Beiträge spiegeln" + +#: ../../extend/addon/addon/pumpio/pumpio.php:237 +msgid "Pump.io Post Settings" +msgstr "Pump.io-Beitragseinstellungen" + +#: ../../extend/addon/addon/pumpio/pumpio.php:266 +msgid "PumpIO Settings saved." +msgstr "PumpIO-Einstellungen gespeichert." + +#: ../../extend/addon/addon/qrator/qrator.php:48 +msgid "QR code" +msgstr "QR-Code" + +#: ../../extend/addon/addon/qrator/qrator.php:63 +msgid "QR Generator" +msgstr "QR-Generator" + +#: ../../extend/addon/addon/qrator/qrator.php:64 +msgid "Enter some text" +msgstr "" + +#: ../../extend/addon/addon/rainbowtag/rainbowtag.php:81 +msgid "Enable Rainbowtag" +msgstr "Rainbowtag aktivieren" + +#: ../../extend/addon/addon/rainbowtag/rainbowtag.php:85 +msgid "Rainbowtag Settings" +msgstr "Rainbowtag-Einstellungen" + +#: ../../extend/addon/addon/rainbowtag/rainbowtag.php:101 +msgid "Rainbowtag Settings saved." +msgstr "Rainbowtag-Einstellungen gespeichert." + +#: ../../extend/addon/addon/randpost/randpost.php:97 +msgid "You're welcome." +msgstr "Gern geschehen." + +#: ../../extend/addon/addon/randpost/randpost.php:98 +msgid "Ah shucks..." +msgstr "" + +#: ../../extend/addon/addon/randpost/randpost.php:99 +msgid "Don't mention it." +msgstr "Keine Ursache." + +#: ../../extend/addon/addon/randpost/randpost.php:100 +msgid "<blush>" +msgstr "" + +#: ../../extend/addon/addon/redfiles/redfiles.php:119 +msgid "Redmatrix File Storage Import" +msgstr "" + +#: ../../extend/addon/addon/redfiles/redfiles.php:120 +msgid "This will import all your Redmatrix cloud files to this channel." +msgstr "Hiermit werden alle deine Daten aus der Redmatrix Cloud in diesen Kanal importiert." + +#: ../../extend/addon/addon/redfiles/redfiles.php:121 +#: ../../extend/addon/addon/redphotos/redphotos.php:131 +msgid "Redmatrix Server base URL" +msgstr "Basis-URL des Redmatrix Servers" + +#: ../../extend/addon/addon/redfiles/redfiles.php:122 +#: ../../extend/addon/addon/redphotos/redphotos.php:132 +msgid "Redmatrix Login Username" +msgstr "Redmatrix-Anmeldebenutzername" + +#: ../../extend/addon/addon/redfiles/redfiles.php:123 +#: ../../extend/addon/addon/redphotos/redphotos.php:133 +msgid "Redmatrix Login Password" +msgstr "Redmatrix-Anmeldepasswort" + +#: ../../extend/addon/addon/redfiles/redfilehelper.php:67 +msgid "file" +msgstr "Datei" + +#: ../../extend/addon/addon/redphotos/redphotos.php:106 +msgid "Photos imported" +msgstr "Fotos importiert" + +#: ../../extend/addon/addon/redphotos/redphotos.php:129 +msgid "Redmatrix Photo Album Import" +msgstr "Redmatrix-Fotoalbumimport" + +#: ../../extend/addon/addon/redphotos/redphotos.php:130 +msgid "This will import all your Redmatrix photo albums to this channel." +msgstr "Hiermit werden all deine Fotoalben von Redmatrix in diesen Kanal importiert." + +#: ../../extend/addon/addon/redphotos/redphotos.php:134 +msgid "Import just this album" +msgstr "Nur dieses Album importieren" + +#: ../../extend/addon/addon/redphotos/redphotos.php:134 +msgid "Leave blank to import all albums" +msgstr "Leer lassen um alle Alben zu importieren" + +#: ../../extend/addon/addon/redphotos/redphotos.php:135 +msgid "Maximum count to import" +msgstr "Maximal zu importierende Anzahl" + +#: ../../extend/addon/addon/redphotos/redphotos.php:135 +msgid "0 or blank to import all available" +msgstr "0 oder leer lassen um alles zu importieren" + +#: ../../extend/addon/addon/redred/redred.php:45 +msgid "Post to Red" +msgstr "" + +#: ../../extend/addon/addon/redred/redred.php:60 +msgid "Channel is required." +msgstr "Kanal ist erforderlich." + +#: ../../extend/addon/addon/redred/redred.php:65 +msgid "Invalid channel." +msgstr "Ungültiger Kanal." + +#: ../../extend/addon/addon/redred/redred.php:76 +msgid "redred Settings saved." +msgstr "redred-Einstellungen gespeichert." + +#: ../../extend/addon/addon/redred/redred.php:95 +msgid "Allow posting to another Hubzilla Channel" +msgstr "Erlaube die Veröffentlichung in anderen Hubzilla Kanälen" + +#: ../../extend/addon/addon/redred/redred.php:99 +msgid "Send public postings to Hubzilla channel by default" +msgstr "" + +#: ../../extend/addon/addon/redred/redred.php:103 +msgid "Hubzilla API Path" +msgstr "Hubzilla-API-Pfad" + +#: ../../extend/addon/addon/redred/redred.php:103 +#: ../../extend/addon/addon/rtof/rtof.php:89 +msgid "https://{sitename}/api" +msgstr "https://{sitename}/api" + +#: ../../extend/addon/addon/redred/redred.php:107 +msgid "Hubzilla login name" +msgstr "Hubzilla-Anmeldename" + +#: ../../extend/addon/addon/redred/redred.php:111 +msgid "Hubzilla channel name" +msgstr "Hubzilla-Kanalname" + +#: ../../extend/addon/addon/redred/redred.php:111 +#: ../../extend/addon/addon/openid/MysqlProvider.php:54 +msgid "Nickname" +msgstr "Spitzname" + +#: ../../extend/addon/addon/redred/redred.php:119 +msgid "Hubzilla Crosspost Settings" +msgstr "" + +#: ../../extend/addon/addon/rtof/rtof.php:45 +msgid "Post to Friendica" +msgstr "Bei Friendica veröffentlichen" + +#: ../../extend/addon/addon/rtof/rtof.php:62 +msgid "rtof Settings saved." +msgstr "rtof-Einstellungen gespeichert." + +#: ../../extend/addon/addon/rtof/rtof.php:81 +msgid "Allow posting to Friendica" +msgstr "Erlaube die Veröffentlichung bei Friendica" + +#: ../../extend/addon/addon/rtof/rtof.php:85 +msgid "Send public postings to Friendica by default" +msgstr "Standardmäßig öffentliche Beiträge bei Friendica veröffentlichen" + +#: ../../extend/addon/addon/rtof/rtof.php:89 +msgid "Friendica API Path" +msgstr "Friendica-API-Pfad" + +#: ../../extend/addon/addon/rtof/rtof.php:93 +msgid "Friendica login name" +msgstr "Friendica-Anmeldename" + +#: ../../extend/addon/addon/rtof/rtof.php:97 +msgid "Friendica password" +msgstr "Friendica-Passwort" + +#: ../../extend/addon/addon/rtof/rtof.php:101 +msgid "Hubzilla to Friendica Post Settings" +msgstr "" + +#: ../../extend/addon/addon/sendzid/sendzid.php:25 +msgid "Extended Identity Sharing" +msgstr "Erweitertes Teilen von Identitäten" + +#: ../../extend/addon/addon/sendzid/sendzid.php:26 +msgid "" +"Share your identity with all websites on the internet. When disabled, " +"identity is only shared with sites in the matrix." +msgstr "" + +#: ../../extend/addon/addon/skeleton/skeleton.php:59 +msgid "Some setting" +msgstr "" + +#: ../../extend/addon/addon/skeleton/skeleton.php:61 +msgid "A setting" +msgstr "Eine Einstellung" + +#: ../../extend/addon/addon/skeleton/skeleton.php:64 +msgid "Skeleton Settings" +msgstr "" + +#: ../../extend/addon/addon/smileybutton/smileybutton.php:273 +msgid "Deactivate the feature" +msgstr "Diese Funktion abschalten" + +#: ../../extend/addon/addon/smileybutton/smileybutton.php:277 +msgid "Hide the button and show the smilies directly." +msgstr "Verstecke die Schaltfläche und zeige die Smilies direkt an." + +#: ../../extend/addon/addon/smileybutton/smileybutton.php:281 +msgid "Smileybutton Settings" +msgstr "Smileyknopf-Einstellungen" + +#: ../../extend/addon/addon/startpage/startpage.php:109 +msgid "Page to load after login" +msgstr "Seite, die nach dem Login geladen werden soll" + +#: ../../extend/addon/addon/startpage/startpage.php:109 +msgid "" +"Examples: "apps", "network?f=&gid=37" (privacy " +"collection), "channel" or "notifications/system" (leave " +"blank for default network page (grid)." +msgstr "Beispiele: "apps", "network?f=&gid=37" (Gruppen-gefilterte Beiträge), "channel" oder "notifications/system" (freilassen für die Standard-Netzwerkseite (grid)." + +#: ../../extend/addon/addon/startpage/startpage.php:113 +msgid "Startpage Settings" +msgstr "Startseiteneinstellungen" + +#: ../../extend/addon/addon/statusnet/statusnet.php:143 +msgid "Post to GNU social" +msgstr "Bei GNU social veröffentlichen" + +#: ../../extend/addon/addon/statusnet/statusnet.php:195 +msgid "" +"Please contact your site administrator.
        The provided API URL is not " +"valid." +msgstr "Bitte kontaktiere den Administrator deines Hubs.
        Die angegebene API URL ist nicht korrekt." + +#: ../../extend/addon/addon/statusnet/statusnet.php:232 +msgid "We could not contact the GNU social API with the Path you entered." +msgstr "Mit dem angegebenen Pfad war es uns nicht möglich, die GNU social API zu erreichen." + +#: ../../extend/addon/addon/statusnet/statusnet.php:266 +msgid "GNU social settings updated." +msgstr "GNU social Einstellungen aktualisiert." + +#: ../../extend/addon/addon/statusnet/statusnet.php:310 +msgid "Globally Available GNU social OAuthKeys" +msgstr "Global verfügbare GNU social OAuthKeys" + +#: ../../extend/addon/addon/statusnet/statusnet.php:312 +msgid "" +"There are preconfigured OAuth key pairs for some GNU social servers " +"available. If you are using one of them, please use these credentials.
        If not feel free to connect to any other GNU social instance (see below)." +msgstr "" + +#: ../../extend/addon/addon/statusnet/statusnet.php:327 +msgid "Provide your own OAuth Credentials" +msgstr "" + +#: ../../extend/addon/addon/statusnet/statusnet.php:329 +msgid "" +"No consumer key pair for GNU social found. Register your Hubzilla Account as" +" an desktop client on your GNU social account, copy the consumer key pair " +"here and enter the API base root.
        Before you register your own OAuth " +"key pair ask the administrator if there is already a key pair for this " +"Hubzilla installation at your favourite GNU social installation." +msgstr "" + +#: ../../extend/addon/addon/statusnet/statusnet.php:333 +msgid "OAuth Consumer Key" +msgstr "OAuth Consumer Key" + +#: ../../extend/addon/addon/statusnet/statusnet.php:337 +msgid "OAuth Consumer Secret" +msgstr "OAuth Consumer Secret" + +#: ../../extend/addon/addon/statusnet/statusnet.php:341 +msgid "Base API Path" +msgstr "Basis Pfad der API" + +#: ../../extend/addon/addon/statusnet/statusnet.php:341 +msgid "Remember the trailing /" +msgstr "Denke an das abschließende /" + +#: ../../extend/addon/addon/statusnet/statusnet.php:345 +msgid "GNU social application name" +msgstr "GNU social Anwendungsname" + +#: ../../extend/addon/addon/statusnet/statusnet.php:368 +msgid "" +"To connect to your GNU social account click the button below to get a " +"security code from GNU social which you have to copy into the input box " +"below and submit the form. Only your public posts will be " +"posted to GNU social." +msgstr "" + +#: ../../extend/addon/addon/statusnet/statusnet.php:370 +msgid "Log in with GNU social" +msgstr "Mit GNU social anmelden" + +#: ../../extend/addon/addon/statusnet/statusnet.php:373 +msgid "Copy the security code from GNU social here" +msgstr "Kopiere den Sicherheitscode von GNU social hier her" + +#: ../../extend/addon/addon/statusnet/statusnet.php:383 +msgid "Cancel Connection Process" +msgstr "Verbindungsprozes abbrechen" + +#: ../../extend/addon/addon/statusnet/statusnet.php:385 +msgid "Current GNU social API is" +msgstr "Aktuelle GNU social API ist" + +#: ../../extend/addon/addon/statusnet/statusnet.php:389 +msgid "Cancel GNU social Connection" +msgstr "GNU social Verbindung trennen" + +#: ../../extend/addon/addon/statusnet/statusnet.php:401 +#: ../../extend/addon/addon/twitter/twitter.php:232 +msgid "Currently connected to: " +msgstr "Momentan verbunden mit:" + +#: ../../extend/addon/addon/statusnet/statusnet.php:406 +msgid "" +"Note: Due your privacy settings (Hide your profile " +"details from unknown viewers?) the link potentially included in public " +"postings relayed to GNU social will lead the visitor to a blank page " +"informing the visitor that the access to your profile has been restricted." +msgstr "" + +#: ../../extend/addon/addon/statusnet/statusnet.php:411 +msgid "Allow posting to GNU social" +msgstr "Erlaube die Veröffentlichung bei GNU social" + +#: ../../extend/addon/addon/statusnet/statusnet.php:411 +msgid "" +"If enabled your public postings can be posted to the associated GNU-social " +"account" +msgstr "Wenn aktiv können deine öffentlichen Beiträge bei dem verbundenen GNU social Account veröffentlicht werden." + +#: ../../extend/addon/addon/statusnet/statusnet.php:415 +msgid "Post to GNU social by default" +msgstr "Standardmäßig bei GNU social veröffentlichen" + +#: ../../extend/addon/addon/statusnet/statusnet.php:415 +msgid "" +"If enabled your public postings will be posted to the associated GNU-social " +"account by default" +msgstr "Wenn aktiv werden all deine öffentlichen Beiträge standardmäßig bei dem verbundenen GNU social Account veröffentlicht." + +#: ../../extend/addon/addon/statusnet/statusnet.php:424 +#: ../../extend/addon/addon/twitter/twitter.php:255 +msgid "Clear OAuth configuration" +msgstr "OAuth Konfiguration löschen" + +#: ../../extend/addon/addon/statusnet/statusnet.php:432 +msgid "GNU social Post Settings" +msgstr "GNU social Einstellungen" + +#: ../../extend/addon/addon/statusnet/statusnet.php:891 +msgid "API URL" +msgstr "API-URL" + +#: ../../extend/addon/addon/statusnet/statusnet.php:894 +msgid "Application name" +msgstr "Anwendungsname" + +#: ../../extend/addon/addon/superblock/superblock.php:106 +msgid "Currently blocked" +msgstr "Derzeit blockiert" + +#: ../../extend/addon/addon/superblock/superblock.php:108 +msgid "No channels currently blocked" +msgstr "Momentan sind keine Kanäle blockiert" + +#: ../../extend/addon/addon/superblock/superblock.php:114 +msgid "\"Superblock\" Settings" +msgstr "\"Superblock\"-Einstellungen" + +#: ../../extend/addon/addon/superblock/superblock.php:279 +msgid "Block Completely" +msgstr "Vollständig blockieren" + +#: ../../extend/addon/addon/superblock/superblock.php:326 +msgid "superblock settings updated" +msgstr "Superblock Einstellungen aktualisiert" + +#: ../../extend/addon/addon/testdrive/testdrive.php:104 +#, php-format +msgid "Your account on %s will expire in a few days." +msgstr "Dein Account auf %s wird in ein paar Tagen ablaufen." + +#: ../../extend/addon/addon/testdrive/testdrive.php:105 +msgid "Your $Productname test account is about to expire." +msgstr "Dein $Productname Test-Account wird bald auslaufen." + +#: ../../extend/addon/addon/tictac/tictac.php:21 +msgid "Three Dimensional Tic-Tac-Toe" +msgstr "Dreidimensionales Tic-Tac-Toe" + +#: ../../extend/addon/addon/tictac/tictac.php:54 +msgid "3D Tic-Tac-Toe" +msgstr "3D Tic-Tac-Toe" + +#: ../../extend/addon/addon/tictac/tictac.php:59 +msgid "New game" +msgstr "Neues Spiel" + +#: ../../extend/addon/addon/tictac/tictac.php:60 +msgid "New game with handicap" +msgstr "Neues Handicaü-Spiel" + +#: ../../extend/addon/addon/tictac/tictac.php:61 +msgid "" +"Three dimensional tic-tac-toe is just like the traditional game except that " +"it is played on multiple levels simultaneously. " +msgstr "3D Tic-Tac-Toe funktioniert wie das ursprüngliche Spiel, nur dass es auf mehreren Ebenen gleichzeitig gespielt wird." + +#: ../../extend/addon/addon/tictac/tictac.php:62 +msgid "" +"In this case there are three levels. You win by getting three in a row on " +"any level, as well as up, down, and diagonally across the different levels." +msgstr "In diesem Fall sind es drei Ebenen. Du gewinnst, wenn es dir gelingt drei in einer Reihe auf einer beliebigen Ebene oder diagonal über die verschiedenen Ebenen hinweg zu erreichen." + +#: ../../extend/addon/addon/tictac/tictac.php:64 +msgid "" +"The handicap game disables the center position on the middle level because " +"the player claiming this square often has an unfair advantage." +msgstr "Bei einem Handicap-Spiel wird die Position im Zentrum der mittleren Ebene gesperrt, da der Spieler der dieses Feld für sich beansprucht meist einen unfairen Vorteil hat." + +#: ../../extend/addon/addon/tictac/tictac.php:183 +msgid "You go first..." +msgstr "Du darfst anfangen..." + +#: ../../extend/addon/addon/tictac/tictac.php:188 +msgid "I'm going first this time..." +msgstr "Diesmal werde ich anfangen..." + +#: ../../extend/addon/addon/tictac/tictac.php:194 +msgid "You won!" +msgstr "Sie haben gewonnen!" + +#: ../../extend/addon/addon/tictac/tictac.php:200 +#: ../../extend/addon/addon/tictac/tictac.php:225 +msgid "\"Cat\" game!" +msgstr "" + +#: ../../extend/addon/addon/tictac/tictac.php:223 +msgid "I won!" +msgstr "Ich habe gewonnen!" + +#: ../../extend/addon/addon/tour/tour.php:75 +msgid "Edit your profile and change settings." +msgstr "Bearbeite dein Profil und ändere die Einstellungen." + +#: ../../extend/addon/addon/tour/tour.php:76 +msgid "Click here to see activity from your connections." +msgstr "Klicke hier, um die Aktivitäten Deiner Verbindungen zu sehen." + +#: ../../extend/addon/addon/tour/tour.php:77 +msgid "Click here to see your channel home." +msgstr "Klicke hier, um Deine Kanal-Hauptseite zu sehen." + +#: ../../extend/addon/addon/tour/tour.php:78 +msgid "You can access your private messages from here." +msgstr "Hierüber kannst Du auf Deine privaten Nachrichten zugreifen." + +#: ../../extend/addon/addon/tour/tour.php:79 +msgid "Create new events here." +msgstr "Neue Termine hier erstellen" + +#: ../../extend/addon/addon/tour/tour.php:80 +msgid "" +"You can accept new connections and change permissions for existing ones " +"here. You can also e.g. create groups of contacts." +msgstr "Du kannst hier neue Verbindungen akzeptieren sowie die Einstellungen bereits vorhandener Vebindungen bearbeiten. Außerdem kannst Du Verbindungen in Gruppen zusammenfassen." + +#: ../../extend/addon/addon/tour/tour.php:81 +msgid "System notifications will arrive here" +msgstr "Systembenachrichtigungen werden hier eintreffen" + +#: ../../extend/addon/addon/tour/tour.php:82 +msgid "Search for content and users" +msgstr "Nach Inhalt von Benutzern suchen" + +#: ../../extend/addon/addon/tour/tour.php:83 +msgid "Browse for new contacts" +msgstr "Schaue nach möglichen neuen Verbindungen." + +#: ../../extend/addon/addon/tour/tour.php:84 +msgid "Launch installed apps" +msgstr "Installierte Apps starten" + +#: ../../extend/addon/addon/tour/tour.php:85 +msgid "Looking for help? Click here." +msgstr "Du benötigst Hilfe? Klicke hier." + +#: ../../extend/addon/addon/tour/tour.php:86 +msgid "" +"New events have occurred in your network. Click here to see what has " +"happened!" +msgstr "In Deinem Netzwerk gibt es neue Ereignisse. Klicke hier, um zu sehen, was passiert ist!" + +#: ../../extend/addon/addon/tour/tour.php:87 +msgid "You have received a new private message. Click here to see from who!" +msgstr "Du hast eine neue private Nachricht erhalten. Klicke hier, um zu sehen, von wem!" + +#: ../../extend/addon/addon/tour/tour.php:88 +msgid "There are events this week. Click here too see which!" +msgstr "Es gibt neue Termine diese Woche. Klicke hier, um zu sehen, welche!" + +#: ../../extend/addon/addon/tour/tour.php:89 +msgid "You have received a new introduction. Click here to see who!" +msgstr "Du hast eine neue Verbindungsanfrage erhalten. Klicke hier, um zu sehen, wer es ist!" + +#: ../../extend/addon/addon/tour/tour.php:90 +msgid "" +"There is a new system notification. Click here to see what has happened!" +msgstr "Es gibt eine neue Systembenachrichtigung. Klicke hier, um zu sehen, was passiert ist!" + +#: ../../extend/addon/addon/tour/tour.php:93 +msgid "Click here to share text, images, videos and sound." +msgstr "Klicke hier, um Texte, Bilder, Videos und Klänge zu teilen." + +#: ../../extend/addon/addon/tour/tour.php:94 +msgid "You can write an optional title for your update (good for long posts)." +msgstr "Du kannst Deinem Beitrag einen optionalen Titel geben (gut für lange Beiträge)." + +#: ../../extend/addon/addon/tour/tour.php:95 +msgid "Entering some categories here makes it easier to find your post later." +msgstr "Ein paar Kategorien hier einzugeben, macht es leichter, Deinen Beitrag später wiederzufinden." + +#: ../../extend/addon/addon/tour/tour.php:96 +msgid "Share photos, links, location, etc." +msgstr "Teile Photos, Links, Standort, usw." + +#: ../../extend/addon/addon/tour/tour.php:97 +msgid "" +"Only want to share content for a while? Make it expire at a certain date." +msgstr "Du möchtest diesen Inhalt nur für eine Weile teilen? Dann lass ihn zu einem bestimmten Datum ablaufen." + +#: ../../extend/addon/addon/tour/tour.php:98 +msgid "You can password protect content." +msgstr "Du kannst Inhalte mit einem Passwort schützen." + +#: ../../extend/addon/addon/tour/tour.php:99 +msgid "Choose who you share with." +msgstr "Wähle aus, mit wem Du teilen möchtest." + +#: ../../extend/addon/addon/tour/tour.php:101 +msgid "Click here when you are done." +msgstr "Klicke hier, wenn Du fertig bist." + +#: ../../extend/addon/addon/tour/tour.php:104 +msgid "Adjust from which channels posts should be displayed." +msgstr "Lege fest, von welchen Kanälen Beiträge angezeigt werden sollen." + +#: ../../extend/addon/addon/tour/tour.php:105 +msgid "Only show posts from channels in the specified privacy group." +msgstr "Zeige nur Beträge von Kanälen, die in einer bestimmten Gruppe sind." + +#: ../../extend/addon/addon/tour/tour.php:109 +msgid "Easily find posts containing tags (keywords preceded by the \"#\" symbol)." +msgstr "Finde Beiträge, die bestimmte Tags enthalten (Stichworte, die mit dem \"#\"-Symbol beginnen)." + +#: ../../extend/addon/addon/tour/tour.php:110 +msgid "Easily find posts in given category." +msgstr "Finde Beiträge in bestimmten Kategorien." + +#: ../../extend/addon/addon/tour/tour.php:111 +msgid "Easily find posts by date." +msgstr "Finde Beiträge anhand des Datums." + +#: ../../extend/addon/addon/tour/tour.php:112 +msgid "" +"Suggested users who have volounteered to be shown as suggestions, and who we" +" think you might find interesting." +msgstr "Vorgeschlagene Kanäle, die in ihren Einstellungen zugestimmt haben, als Vorschläge angezeigt zu werden, und die Du eventuell interessant finden könntest." + +#: ../../extend/addon/addon/tour/tour.php:113 +msgid "Here you see channels you have connected to." +msgstr "Hier siehst du die Kanäle, mit denen Du verbunden bist." + +#: ../../extend/addon/addon/tour/tour.php:114 +msgid "Save your search so you can repeat it at a later date." +msgstr "Speichere Deine Suche, so dass Du sie später leicht erneut durchführen kannst." + +#: ../../extend/addon/addon/tour/tour.php:117 +msgid "" +"If you see this icon you can be sure that the sender is who it say it is. It" +" is normal that it is not always possible to verify the sender, so the icon " +"will be missing sometimes. There is usually no need to worry about that." +msgstr "Wenn Du dieses Symbol siehst, kannst Du weitgehend sicher sein, dass der Ansender dem angegebenen entspricht. Nicht immer ist es möglich, den Absender zu verifizieren, daher fehlt das Symbol mitunter. Das ist aber in der Regel kein Grund zur Sorge." + +#: ../../extend/addon/addon/tour/tour.php:118 +msgid "" +"Danger! It seems someone tried to forge a message! This message is not " +"necessarily from who it says it is from!" +msgstr "Vorsicht! Es kann sein, dass jemand versucht, eine Nachricht zu fälschen! Diese Nachricht muss nicht unbedingt vom angegebenen Absender stammen!" + +#: ../../extend/addon/addon/tour/tour.php:125 +msgid "" +"Welcome to Hubzilla! Would you like to see a tour of the UI?

        You can " +"pause it at any time and continue where you left off by reloading the page, " +"or navigting to another page.

        You can also advance by pressing the " +"return key" +msgstr "Willkommen zu Hubzilla! Möchtest Du eine Tour der Benutzeroberfläche angezeigt bekommen?

        Du kannst zu jeder Zeit pausieren und fortsetzen, wo Du aufgehört hast, indem Du die Seite neu lädtst, oder zu einer anderen Seite springst.

        Du kannst auc durch das Drücken der Enter-Taste weitergehen." + +#: ../../extend/addon/addon/twitter/twitter.php:99 +msgid "Post to Twitter" +msgstr "Bei Twitter veröffentlichen" + +#: ../../extend/addon/addon/twitter/twitter.php:154 +msgid "Twitter settings updated." +msgstr "Twitter-Einstellungen aktualisiert." + +#: ../../extend/addon/addon/twitter/twitter.php:183 +msgid "" +"No consumer key pair for Twitter found. Please contact your site " +"administrator." +msgstr "" + +#: ../../extend/addon/addon/twitter/twitter.php:205 +msgid "" +"At this Hubzilla instance the Twitter plugin was enabled but you have not " +"yet connected your account to your Twitter account. To do so click the " +"button below to get a PIN from Twitter which you have to copy into the input" +" box below and submit the form. Only your public posts will" +" be posted to Twitter." +msgstr "" + +#: ../../extend/addon/addon/twitter/twitter.php:207 +msgid "Log in with Twitter" +msgstr "Mit Twitter anmelden" + +#: ../../extend/addon/addon/twitter/twitter.php:210 +msgid "Copy the PIN from Twitter here" +msgstr "PIN von Twitter hier her kopieren" + +#: ../../extend/addon/addon/twitter/twitter.php:237 +msgid "" +"Note: Due your privacy settings (Hide your profile " +"details from unknown viewers?) the link potentially included in public " +"postings relayed to Twitter will lead the visitor to a blank page informing " +"the visitor that the access to your profile has been restricted." +msgstr "" + +#: ../../extend/addon/addon/twitter/twitter.php:242 +msgid "Allow posting to Twitter" +msgstr "Erlaube die Veröffentlichung bei Twitter" + +#: ../../extend/addon/addon/twitter/twitter.php:242 +msgid "" +"If enabled your public postings can be posted to the associated Twitter " +"account" +msgstr "Wenn aktiv können deine öffentlichen Beiträge bei dem verbundenen Twitter Account veröffentlicht werden." + +#: ../../extend/addon/addon/twitter/twitter.php:246 +msgid "Send public postings to Twitter by default" +msgstr "Standardmäßig öffentliche Beiträge bei Twitter veröffentlichen" + +#: ../../extend/addon/addon/twitter/twitter.php:246 +msgid "" +"If enabled your public postings will be posted to the associated Twitter " +"account by default" +msgstr "Wenn aktiv können deine öffentlichen Beiträge bei dem verbundenen Twitter Account veröffentlicht werden." + +#: ../../extend/addon/addon/twitter/twitter.php:264 +msgid "Twitter Post Settings" +msgstr "Twitter-Beitragseinstellungen" + +#: ../../extend/addon/addon/twitter/twitter.php:773 +#: ../../extend/addon/addon/rendezvous/rendezvous.php:95 +msgid "Submit Settings" +msgstr "Einstellungen absenden" + +#: ../../extend/addon/addon/upload_limits/upload_limits.php:25 +msgid "Show Upload Limits" +msgstr "Hochladebeschränkungen anzeigen" + +#: ../../extend/addon/addon/upload_limits/upload_limits.php:27 +msgid "Hubzilla configured maximum size: " +msgstr "Die in Hubzilla eingestellte maximale Größe:" + +#: ../../extend/addon/addon/upload_limits/upload_limits.php:28 +msgid "PHP upload_max_filesize: " +msgstr "PHP upload_max_filesize:" + +#: ../../extend/addon/addon/upload_limits/upload_limits.php:29 +msgid "PHP post_max_size (must be larger than upload_max_filesize): " +msgstr "PHP post_max_size (muss größer sein als upload_max_filesize):" + +#: ../../extend/addon/addon/visage/visage.php:93 +msgid "Recent Channel/Profile Viewers" +msgstr "Kürzliche Kanal/Profil Besucher" + +#: ../../extend/addon/addon/visage/visage.php:98 +msgid "This plugin/addon has not been configured." +msgstr "Dieses Plugin/Addon wurde noch nicht konfiguriert." + +#: ../../extend/addon/addon/visage/visage.php:99 +#, php-format +msgid "Please visit the Visage settings on %s" +msgstr "Bitte rufe die Visage Einstellungen auf %s auf" + +#: ../../extend/addon/addon/visage/visage.php:99 +msgid "your feature settings page" +msgstr "" + +#: ../../extend/addon/addon/visage/visage.php:112 +msgid "No entries." +msgstr "Keine Einträge." + +#: ../../extend/addon/addon/visage/visage.php:166 +msgid "Enable Visage Visitor Logging" +msgstr "Aktiviere das Visage-Besucher Logging" + +#: ../../extend/addon/addon/visage/visage.php:170 +msgid "Visage Settings" +msgstr "Visage-Einstellungen" + +#: ../../extend/addon/addon/wholikesme/wholikesme.php:29 +msgid "Who likes me?" +msgstr "Wer mag mich?" + +#: ../../extend/addon/addon/wppost/wppost.php:45 +msgid "Post to WordPress" +msgstr "Auf WordPress posten" + +#: ../../extend/addon/addon/wppost/wppost.php:82 +msgid "Enable WordPress Post Plugin" +msgstr "Aktiviere das WordPress-Plugin" + +#: ../../extend/addon/addon/wppost/wppost.php:86 +msgid "WordPress username" +msgstr "WordPress-Benutzername" + +#: ../../extend/addon/addon/wppost/wppost.php:90 +msgid "WordPress password" +msgstr "WordPress-Passwort" + +#: ../../extend/addon/addon/wppost/wppost.php:94 +msgid "WordPress API URL" +msgstr "WordPress-API-URL" + +#: ../../extend/addon/addon/wppost/wppost.php:95 +msgid "Typically https://your-blog.tld/xmlrpc.php" +msgstr "Normalerweise https://your-blog.tld/xmlrpc.php" + +#: ../../extend/addon/addon/wppost/wppost.php:98 +msgid "WordPress blogid" +msgstr "WordPress blogid" + +#: ../../extend/addon/addon/wppost/wppost.php:99 +msgid "For multi-user sites such as wordpress.com, otherwise leave blank" +msgstr "Nötig für Mehrbenutzer Seiten wie wordpress.com, andernfalls frei lassen" + +#: ../../extend/addon/addon/wppost/wppost.php:105 +msgid "Post to WordPress by default" +msgstr "Standardmäßig auf auf WordPress posten" + +#: ../../extend/addon/addon/wppost/wppost.php:109 +msgid "Forward comments (requires hubzilla_wp plugin)" +msgstr "Kommentare weiterleiten (benötigt hubzilla_wp Plugin)" + +#: ../../extend/addon/addon/wppost/wppost.php:113 +msgid "WordPress Post Settings" +msgstr "WordPress-Beitragseinstellungen" + +#: ../../extend/addon/addon/wppost/wppost.php:129 +msgid "Wordpress Settings saved." +msgstr "Wordpress-Einstellungen gespeichert." + +#: ../../extend/addon/addon/xmpp/xmpp.php:31 +msgid "XMPP settings updated." +msgstr "XMPP-Einstellungen aktualisiert." + +#: ../../extend/addon/addon/xmpp/xmpp.php:53 +msgid "Enable Chat" +msgstr "Chat aktivieren" + +#: ../../extend/addon/addon/xmpp/xmpp.php:58 +msgid "Individual credentials" +msgstr "Individuelle Anmeldedaten" + +#: ../../extend/addon/addon/xmpp/xmpp.php:64 +msgid "Jabber BOSH server" +msgstr "Jabber BOSH Server" + +#: ../../extend/addon/addon/xmpp/xmpp.php:69 +msgid "XMPP Settings" +msgstr "XMPP-Einstellungen" + +#: ../../extend/addon/addon/xmpp/xmpp.php:92 +msgid "Jabber BOSH host" +msgstr "Jabber BOSH Host" + +#: ../../extend/addon/addon/xmpp/xmpp.php:93 +msgid "Use central userbase" +msgstr "Zentrale Benutzerbasis verwenden" + +#: ../../extend/addon/addon/xmpp/xmpp.php:93 +msgid "" +"If enabled, members will automatically login to an ejabberd server that has " +"to be installed on this machine with synchronized credentials via the " +"\"auth_ejabberd.php\" script." +msgstr "" + +#: ../../extend/addon/addon/cdav/include/widgets.php:37 +msgid "Select Channel" +msgstr "Kanal auswählen" + +#: ../../extend/addon/addon/cdav/include/widgets.php:42 +msgid "Read-write" +msgstr "Lesen-schreiben" + +#: ../../extend/addon/addon/cdav/include/widgets.php:43 +msgid "Read-only" +msgstr "Nur Lesen" + +#: ../../extend/addon/addon/cdav/include/widgets.php:116 +msgid "My Calendars" +msgstr "Meine Kalender" + +#: ../../extend/addon/addon/cdav/include/widgets.php:118 +msgid "Shared Calendars" +msgstr "Geteilte Kalender" + +#: ../../extend/addon/addon/cdav/include/widgets.php:122 +msgid "Share this calendar" +msgstr "Diesen Kalender teilen" + +#: ../../extend/addon/addon/cdav/include/widgets.php:124 +msgid "Calendar name and color" +msgstr "Kalendername und -farbe" + +#: ../../extend/addon/addon/cdav/include/widgets.php:126 +msgid "Create new calendar" +msgstr "Neuen Kalender erstellen" + +#: ../../extend/addon/addon/cdav/include/widgets.php:128 +msgid "Calendar Name" +msgstr "Kalendername" + +#: ../../extend/addon/addon/cdav/include/widgets.php:129 +msgid "Calendar Tools" +msgstr "Kalenderwerkzeuge" + +#: ../../extend/addon/addon/cdav/include/widgets.php:130 +msgid "Import calendar" +msgstr "Kalender importieren" + +#: ../../extend/addon/addon/cdav/include/widgets.php:131 +msgid "Select a calendar to import to" +msgstr "Kalender zum Hineinimportieren auswählen" + +#: ../../extend/addon/addon/cdav/include/widgets.php:158 +msgid "Addressbooks" +msgstr "Adressbücher" + +#: ../../extend/addon/addon/cdav/include/widgets.php:160 +msgid "Addressbook name" +msgstr "Adressbuchname" + +#: ../../extend/addon/addon/cdav/include/widgets.php:162 +msgid "Create new addressbook" +msgstr "Neues Adressbuch erstellen" + +#: ../../extend/addon/addon/cdav/include/widgets.php:163 +msgid "Addressbook Name" +msgstr "Adressbuchname" + +#: ../../extend/addon/addon/cdav/include/widgets.php:165 +msgid "Addressbook Tools" +msgstr "Adressbuchwerkzeuge" + +#: ../../extend/addon/addon/cdav/include/widgets.php:166 +msgid "Import addressbook" +msgstr "Adressbuch importieren" + +#: ../../extend/addon/addon/cdav/include/widgets.php:167 +msgid "Select an addressbook to import to" +msgstr "Adressbuch zum Hineinimportieren auswählen" + +#: ../../extend/addon/addon/cdav/cdav.php:36 +msgid "Errors encountered creating database table: " +msgstr "" + +#: ../../extend/addon/addon/cdav/cdav.php:197 +msgid "Default Calendar" +msgstr "Standardkalender" + +#: ../../extend/addon/addon/cdav/cdav.php:206 +msgid "Default Addressbook" +msgstr "Standardadressbuch" + +#: ../../extend/addon/addon/cdav/cdav.php:215 +msgid "CalDAV/CardDAV Settings saved." +msgstr "CalDAV/CardDAV-Einstellungen gespeichert." + +#: ../../extend/addon/addon/cdav/cdav.php:234 +msgid "Enable CalDAV/CardDAV Server for this channel" +msgstr "Aktiviere den CalDAV/CardDAV Server für diesen Kanal" + +#: ../../extend/addon/addon/cdav/cdav.php:237 +#, php-format +msgid "Your CalDAV resources are located at %s " +msgstr "Deine CalDAV Resourcen sind unter %s verfügbar" + +#: ../../extend/addon/addon/cdav/cdav.php:240 +#, php-format +msgid "Your CardDAV resources are located at %s " +msgstr "Deine CardDAV Ressourcen sind unter %s verfügbar" + +#: ../../extend/addon/addon/cdav/cdav.php:246 +msgid "CalDAV/CardDAV Settings" +msgstr "CalDAV/CardDAV-Einstellungen" + +#: ../../extend/addon/addon/cdav/cdav.php:270 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1145 +msgid "Mobile" +msgstr "Mobil" + +#: ../../extend/addon/addon/cdav/cdav.php:271 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1146 ../../include/nav.php:88 +msgid "Home" +msgstr "Home" + +#: ../../extend/addon/addon/cdav/cdav.php:272 +msgid "Home, Voice" +msgstr "Zuhause, Sprache" + +#: ../../extend/addon/addon/cdav/cdav.php:273 +msgid "Home, Fax" +msgstr "Zuhause, Fax" + +#: ../../extend/addon/addon/cdav/cdav.php:274 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1147 +msgid "Work" +msgstr "Arbeit" + +#: ../../extend/addon/addon/cdav/cdav.php:275 +msgid "Work, Voice" +msgstr "Arbeit, Sprache" + +#: ../../extend/addon/addon/cdav/cdav.php:276 +msgid "Work, Fax" +msgstr "Arbeit, Fax" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:744 +msgid "INVALID EVENT DISMISSED!" +msgstr "UNGÜLTIGEN TERMIN ABGELEHNT!" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:745 +msgid "Summary: " +msgstr "Zusammenfassung:" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:746 +msgid "Date: " +msgstr "Datum:" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:747 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:754 +msgid "Reason: " +msgstr "Grund:" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:752 +msgid "INVALID CARD DISMISSED!" +msgstr "UNGÜLTIGE KARTE ABGELEHNT!" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:753 +msgid "Name: " +msgstr "Name: " + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:770 +msgid "" +"You have to enable this plugin in Feature/Addon Settings > CalDAV/CardDAV " +"Settings before you can use it." +msgstr "" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:836 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:837 +msgid "Example: YYYY-MM-DD HH:mm" +msgstr "Beispiel: JJJJ-MM-TT HH:mm" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:837 +msgid "End date and time" +msgstr "Enddatum und -zeit" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:852 +msgid "List month" +msgstr "" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:853 +msgid "List week" +msgstr "" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:854 +msgid "List day" +msgstr "" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:861 +msgid "More" +msgstr "Mehr" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:862 +msgid "Less" +msgstr "Weniger" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:863 +msgid "Select calendar" +msgstr "Kalender auswählen" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:865 +msgid "Delete all" +msgstr "Alles löschen" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:867 +msgid "Sorry! Editing of recurrent events is not yet implemented." +msgstr "Entschuldigung, aber das Bearbeiten von wiederkehrenden Veranstaltungen ist leider noch nicht implementiert." + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1137 +msgid "Organisation" +msgstr "Organisation" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1138 +#: ../../include/page_widgets.php:46 +msgid "Title" +msgstr "Titel" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1139 +msgid "Phone" +msgstr "Telefon" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1141 +msgid "Instant messenger" +msgstr "" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1142 +msgid "Website" +msgstr "Webseite" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1144 +msgid "Note" +msgstr "Hinweis" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1150 +msgid "Add Field" +msgstr "Feld hinzufügen" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1155 +msgid "P.O. Box" +msgstr "" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1156 +msgid "Additional" +msgstr "Zusätzlich" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1157 +msgid "Street" +msgstr "Straße" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1158 +msgid "Locality" +msgstr "Ortschaft" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1159 +msgid "Region" +msgstr "Region" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1160 +msgid "ZIP Code" +msgstr "Postleitzahl" + +#: ../../extend/addon/addon/chess/chess.php:276 +#: ../../extend/addon/addon/chess/chess.php:430 +msgid "Invalid game." +msgstr "Ungültiges Spiel." + +#: ../../extend/addon/addon/chess/chess.php:282 +#: ../../extend/addon/addon/chess/chess.php:436 +msgid "You are not a player in this game." +msgstr "Sie sind kein Spieler in diesem Spiel." + +#: ../../extend/addon/addon/chess/chess.php:315 +msgid "You must be a local channel to create a game." +msgstr "Um ein Spiel zu eröffnen, musst du ein lokaler Kanal sein" + +#: ../../extend/addon/addon/chess/chess.php:333 +msgid "You must select one opponent that is not yourself." +msgstr "Du musst einen Gegner wählen, der nicht du selbst ist" + +#: ../../extend/addon/addon/chess/chess.php:336 +msgid "Creating new game..." +msgstr "Neues Spiel wird erstellt..." + +#: ../../extend/addon/addon/chess/chess.php:342 +msgid "You must select white or black." +msgstr "Sie müssen weiß oder schwarz auswählen." + +#: ../../extend/addon/addon/chess/chess.php:349 +msgid "Error creating new game." +msgstr "Fehler beim Erstellen eines neuen Spiels." + +#: ../../extend/addon/addon/chess/chess.php:379 ../../include/channel.php:816 +msgid "Requested channel is not available." +msgstr "Angeforderte Kanal nicht verfügbar." + +#: ../../extend/addon/addon/chess/chess.php:392 +msgid "You must select a local channel /chess/channelname" +msgstr "Du musst einen lokalen Kanal/Schach(Kanalnamen aufwählen" + +#: ../../extend/addon/addon/chess/chess.php:920 +msgid "Enable notifications" +msgstr "Benachrichtigungen aktivieren" + +#: ../../extend/addon/addon/likebanner/likebanner.php:51 +msgid "Your Webbie:" +msgstr "Dein Webbie" + +#: ../../extend/addon/addon/likebanner/likebanner.php:54 +msgid "Fontsize (px):" +msgstr "Schriftgröße (px):" + +#: ../../extend/addon/addon/likebanner/likebanner.php:68 +msgid "Link:" +msgstr "Link:" + +#: ../../extend/addon/addon/likebanner/likebanner.php:70 +msgid "Like us on Hubzilla" +msgstr "Like us on Hubzilla" + +#: ../../extend/addon/addon/likebanner/likebanner.php:72 +msgid "Embed:" +msgstr "Einbetten" + +#: ../../extend/addon/addon/openid/Mod_Id.php:85 +#: ../../include/selectors.php:49 ../../include/selectors.php:66 +msgid "Male" +msgstr "Männlich" + +#: ../../extend/addon/addon/openid/Mod_Id.php:87 +#: ../../include/selectors.php:49 ../../include/selectors.php:66 +msgid "Female" +msgstr "Weiblich" + +#: ../../extend/addon/addon/openid/Mod_Openid.php:30 +msgid "OpenID protocol error. No ID returned." +msgstr "OpenID-Protokollfehler. Keine Kennung zurückgegeben." + +#: ../../extend/addon/addon/openid/Mod_Openid.php:193 +#: ../../include/auth.php:286 +msgid "Login failed." +msgstr "Login fehlgeschlagen." + +#: ../../extend/addon/addon/openid/MysqlProvider.php:52 +msgid "First Name" +msgstr "Vorname" + +#: ../../extend/addon/addon/openid/MysqlProvider.php:53 +msgid "Last Name" +msgstr "Nachname" + +#: ../../extend/addon/addon/openid/MysqlProvider.php:55 +msgid "Full Name" +msgstr "Voller Name" + +#: ../../extend/addon/addon/openid/MysqlProvider.php:61 +msgid "Profile Photo 16px" +msgstr "Profilfoto 16 px" + +#: ../../extend/addon/addon/openid/MysqlProvider.php:62 +msgid "Profile Photo 32px" +msgstr "Profilfoto 32 px" + +#: ../../extend/addon/addon/openid/MysqlProvider.php:63 +msgid "Profile Photo 48px" +msgstr "Profilfoto 48 px" + +#: ../../extend/addon/addon/openid/MysqlProvider.php:64 +msgid "Profile Photo 64px" +msgstr "Profilfoto 64 px" + +#: ../../extend/addon/addon/openid/MysqlProvider.php:65 +msgid "Profile Photo 80px" +msgstr "Profilfoto 80 px" + +#: ../../extend/addon/addon/openid/MysqlProvider.php:66 +msgid "Profile Photo 128px" +msgstr "Profilfoto 128 px" + +#: ../../extend/addon/addon/openid/MysqlProvider.php:67 +msgid "Timezone" +msgstr "Zeitzone" + +#: ../../extend/addon/addon/openid/MysqlProvider.php:70 +msgid "Birth Year" +msgstr "Geburtsjahr" + +#: ../../extend/addon/addon/openid/MysqlProvider.php:71 +msgid "Birth Month" +msgstr "Geburtsmonat" + +#: ../../extend/addon/addon/openid/MysqlProvider.php:72 +msgid "Birth Day" +msgstr "Geburtstag" + +#: ../../extend/addon/addon/openid/MysqlProvider.php:73 +msgid "Birthdate" +msgstr "Geburtsdatum" + +#: ../../extend/addon/addon/openid/openid.php:49 +msgid "" +"We encountered a problem while logging in with the OpenID you provided. " +"Please check the correct spelling of the ID." +msgstr "Wir haben ein Problem mit der OpenID festgestellt, mit der Du Dich anmelden wolltest. Bitte überprüfe sie noch einmal." + +#: ../../extend/addon/addon/openid/openid.php:49 +msgid "The error message was:" +msgstr "Die Fehlermeldung war:" + +#: ../../extend/addon/addon/diaspora_reconnect/diaspora_reconnect.php:44 +#, php-format +msgid "Reconnecting %d connections" +msgstr "Erneuere %d Verbindungen" + +#: ../../extend/addon/addon/diaspora_reconnect/diaspora_reconnect.php:63 +msgid "Diaspora Reconnect" +msgstr "" + +#: ../../extend/addon/addon/diaspora_reconnect/diaspora_reconnect.php:65 +msgid "" +"Use this form to re-establish Diaspora connections which were initially made" +" from a different hub." +msgstr "" + +#: ../../extend/addon/addon/diaspora_reconnect/diaspora_reconnect.php:70 +msgid "Reconnect" +msgstr "Erneut verbinden" + +#: ../../extend/addon/addon/mailtest/mailtest.php:19 +msgid "Send test email" +msgstr "Test-E-Mail senden" + +#: ../../extend/addon/addon/mailtest/mailtest.php:66 +msgid "Mail sent." +msgstr "Mail gesendet." + +#: ../../extend/addon/addon/mailtest/mailtest.php:68 +msgid "Sending of mail failed." +msgstr "Senden der E-Mail fehlgeschlagen." + +#: ../../extend/addon/addon/mailtest/mailtest.php:77 +msgid "Mail Test" +msgstr "Mail Test" + +#: ../../extend/addon/addon/rendezvous/rendezvous.php:57 +msgid "Errors encountered deleting database table " +msgstr "Beim Löschen der Datenbanktabelle sind Fehler aufgetreten." + +#: ../../extend/addon/addon/rendezvous/rendezvous.php:96 +msgid "Drop tables when uninstalling?" +msgstr "Lösche Tabellen beim Deinstallieren?" + +#: ../../extend/addon/addon/rendezvous/rendezvous.php:96 +msgid "" +"If checked, the Rendezvous database tables will be deleted when the plugin " +"is uninstalled." +msgstr "Wenn ausgewählt, werden die Rendezvous-Tabellen in der Datenbank gelöscht, sobald das Plugin deinstalliert wird." + +#: ../../extend/addon/addon/rendezvous/rendezvous.php:97 +msgid "Mapbox Access Token" +msgstr "Mapbox Zugangs-Token" + +#: ../../extend/addon/addon/rendezvous/rendezvous.php:97 +msgid "" +"If you enter a Mapbox access token, it will be used to retrieve map tiles " +"from Mapbox instead of the default OpenStreetMap tile server." +msgstr "Wenn Du ein Mapbox Zugangs-Token eingibst, werden die Kartendaten (Kacheln) damit von Mapbox geladen, anstatt von OpenStreetMap, welches die Voreinstellung ist." + +#: ../../extend/addon/addon/rendezvous/rendezvous.php:122 +msgid "Rendezvous" +msgstr "Rendezvous" + +#: ../../extend/addon/addon/rendezvous/rendezvous.php:127 +msgid "" +"This identity has been deleted by another member due to inactivity. Please " +"press the \"New identity\" button or refresh the page to register a new " +"identity. You may use the same name." +msgstr "Diese Identität wurde von einem anderen Mitglied aufgrund von Inaktivität gelöscht. Bitte klicke auf \"Neue Identität\" oder aktualisiere die Website im Browser, um eine neue Identität zu registrieren. Du kannst dabei den selben Namen verwenden." + +#: ../../extend/addon/addon/rendezvous/rendezvous.php:128 +msgid "Welcome to Rendezvous!" +msgstr "Willkommen bei Rendezvous!" + +#: ../../extend/addon/addon/rendezvous/rendezvous.php:129 +msgid "" +"Enter your name to join this rendezvous. To begin sharing your location with" +" the other members, tap the GPS control. When your location is discovered, a" +" red dot will appear and others will be able to see you on the map." +msgstr "Gib Deinen Namen ein, um diesem Rendezvous beizutreten. Um Deinen Standort mit anderen Mitgliedern zu teilen, klicke auf das GPS Symbol. Sobald Dein Standort ermittelt ist, erscheint ein roter Punkt, und die Anderen werden Dich auf der Karte sehen können." + +#: ../../extend/addon/addon/rendezvous/rendezvous.php:131 +msgid "Let's meet here" +msgstr "Lasst uns hier treffen" + +#: ../../extend/addon/addon/rendezvous/rendezvous.php:134 +msgid "New marker" +msgstr "Neue Markierung" + +#: ../../extend/addon/addon/rendezvous/rendezvous.php:135 +msgid "Edit marker" +msgstr "Markierung bearbeiten" + +#: ../../extend/addon/addon/rendezvous/rendezvous.php:136 +msgid "New identity" +msgstr "Neue Identität" + +#: ../../extend/addon/addon/rendezvous/rendezvous.php:137 +msgid "Delete marker" +msgstr "Markierung löschen" + +#: ../../extend/addon/addon/rendezvous/rendezvous.php:138 +msgid "Delete member" +msgstr "Mitglied löschen" + +#: ../../extend/addon/addon/rendezvous/rendezvous.php:139 +msgid "Edit proximity alert" +msgstr "Annäherungsalarm bearbeiten" + +#: ../../extend/addon/addon/rendezvous/rendezvous.php:140 +msgid "" +"A proximity alert will be issued when this member is within a certain radius" +" of you.

        Enter a radius in meters (0 to disable):" +msgstr "Ein Annäherungsalarm wird ausgelöst werden, sobald sich dieses Mitglied innerhalb eines bestimmten Radius von Dir aufhält.

        Gib einen Radius in Metern ein (0 zum Abschalten der Funktion):" + +#: ../../extend/addon/addon/rendezvous/rendezvous.php:140 +msgid "distance" +msgstr "Entfernung" + +#: ../../extend/addon/addon/rendezvous/rendezvous.php:150 +msgid "Add new rendezvous" +msgstr "Neues Rendezvous hinzufügen" + +#: ../../extend/addon/addon/rendezvous/rendezvous.php:151 +msgid "" +"Create a new rendezvous and share the access link with those you wish to " +"invite to the group. Those who open the link become members of the " +"rendezvous. They can view other member locations, add markers to the map, or" +" share their own locations with the group." +msgstr "Erstelle ein neues Rendezvous und teile den Zugriffslink mit allen, die Du in die Gruppe einladen möchtest. Die, die den Link öffnen, werden Mitglieder des Rendezvous. Sie können die Standorte der anderen Mitglieder sehen, Marker zur Karte hinzufügen oder ihre eigenen Standorte mit der Gruppe teilen." + #: ../../include/Import/import_diaspora.php:16 msgid "No username found in import file." msgstr "Kein Benutzername in der Importdatei gefunden." @@ -7216,497 +10404,92 @@ msgstr "Kein Benutzername in der Importdatei gefunden." msgid "Unable to create a unique channel address. Import failed." msgstr "Es war nicht möglich, eine eindeutige Kanal-Adresse zu erzeugen. Der Import ist fehlgeschlagen." -#: ../../include/dba/dba_driver.php:173 +#: ../../include/dba/dba_driver.php:187 #, php-format msgid "Cannot locate DNS info for database server '%s'" msgstr "Kann die DNS-Informationen für den Datenbank-Server '%s' nicht finden" -#: ../../include/network.php:704 -msgid "view full size" -msgstr "In Vollbildansicht anschauen" - -#: ../../include/network.php:1935 ../../include/account.php:326 -#: ../../include/account.php:353 ../../include/account.php:413 -msgid "Administrator" -msgstr "Administrator" - -#: ../../include/network.php:1949 -msgid "No Subject" -msgstr "Kein Betreff" - -#: ../../include/network.php:2203 ../../include/network.php:2204 -msgid "Friendica" -msgstr "Friendica" - -#: ../../include/network.php:2205 -msgid "OStatus" -msgstr "OStatus" - -#: ../../include/network.php:2206 -msgid "GNU-Social" -msgstr "GNU-Social" - -#: ../../include/network.php:2207 -msgid "RSS/Atom" -msgstr "RSS/Atom" - -#: ../../include/network.php:2209 -msgid "Diaspora" -msgstr "Diaspora" - -#: ../../include/network.php:2210 -msgid "Facebook" -msgstr "Facebook" - -#: ../../include/network.php:2211 -msgid "Zot" -msgstr "Zot!" - -#: ../../include/network.php:2212 -msgid "LinkedIn" -msgstr "LinkedIn" - -#: ../../include/network.php:2213 -msgid "XMPP/IM" -msgstr "XMPP/IM" - -#: ../../include/network.php:2214 -msgid "MySpace" -msgstr "MySpace" - -#: ../../include/photos.php:114 -#, php-format -msgid "Image exceeds website size limit of %lu bytes" -msgstr "Bild überschreitet das Webseitenlimit von %lu Bytes" - -#: ../../include/photos.php:121 -msgid "Image file is empty." -msgstr "Bilddatei ist leer." - -#: ../../include/photos.php:259 -msgid "Photo storage failed." -msgstr "Fotospeicherung fehlgeschlagen." - -#: ../../include/photos.php:299 -msgid "a new photo" -msgstr "ein neues Foto" - -#: ../../include/photos.php:303 -#, php-format -msgctxt "photo_upload" -msgid "%1$s posted %2$s to %3$s" -msgstr "%1$s hat %2$s auf %3$s veröffentlicht" - -#: ../../include/photos.php:506 ../../include/conversation.php:1674 -msgid "Photo Albums" -msgstr "Fotoalben" - -#: ../../include/photos.php:510 -msgid "Upload New Photos" -msgstr "Neue Fotos hochladen" - -#: ../../include/nav.php:85 ../../include/nav.php:118 ../../boot.php:1738 -msgid "Logout" -msgstr "Abmelden" - -#: ../../include/nav.php:85 ../../include/nav.php:118 -msgid "End this session" -msgstr "Beende diese Sitzung" - -#: ../../include/nav.php:88 ../../include/nav.php:149 -msgid "Home" -msgstr "Home" - -#: ../../include/nav.php:88 -msgid "Your posts and conversations" -msgstr "Deine Beiträge und Unterhaltungen" - -#: ../../include/nav.php:89 -msgid "Your profile page" -msgstr "Deine Profilseite" - -#: ../../include/nav.php:91 -msgid "Manage/Edit profiles" -msgstr "Profile verwalten" - -#: ../../include/nav.php:93 ../../include/channel.php:963 -msgid "Edit Profile" -msgstr "Profile bearbeiten" - -#: ../../include/nav.php:93 -msgid "Edit your profile" -msgstr "Profil bearbeiten" - -#: ../../include/nav.php:95 -msgid "Your photos" -msgstr "Deine Bilder" - -#: ../../include/nav.php:96 -msgid "Your files" -msgstr "Deine Dateien" - -#: ../../include/nav.php:99 -msgid "Your chatrooms" -msgstr "Deine Chaträume" - -#: ../../include/nav.php:105 ../../include/conversation.php:1714 -msgid "Bookmarks" -msgstr "Lesezeichen" - -#: ../../include/nav.php:105 -msgid "Your bookmarks" -msgstr "Deine Lesezeichen" - -#: ../../include/nav.php:109 -msgid "Your webpages" -msgstr "Deine Webseiten" - -#: ../../include/nav.php:111 -msgid "Your wiki" -msgstr "Dein Wiki" - -#: ../../include/nav.php:115 -msgid "Sign in" -msgstr "Anmelden" - -#: ../../include/nav.php:132 -#, php-format -msgid "%s - click to logout" -msgstr "%s - Klick zum Abmelden" - -#: ../../include/nav.php:135 -msgid "Remote authentication" -msgstr "Über Konto auf anderem Server einloggen" - -#: ../../include/nav.php:135 -msgid "Click to authenticate to your home hub" -msgstr "Klicke, um Dich über Deinen Heimat-Server zu authentifizieren" - -#: ../../include/nav.php:149 -msgid "Home Page" -msgstr "Homepage" - -#: ../../include/nav.php:152 -msgid "Create an account" -msgstr "Erzeuge ein Konto" - -#: ../../include/nav.php:164 -msgid "Help and documentation" -msgstr "Hilfe und Dokumentation" - -#: ../../include/nav.php:168 -msgid "Applications, utilities, links, games" -msgstr "Anwendungen (Apps), Zubehör, Links, Spiele" - -#: ../../include/nav.php:170 -msgid "Search site @name, #tag, ?docs, content" -msgstr "Hub durchsuchen: @Name. #Schlagwort, ?Dokumentation, Inhalt" - -#: ../../include/nav.php:172 -msgid "Channel Directory" -msgstr "Kanal-Verzeichnis" - -#: ../../include/nav.php:184 -msgid "Your grid" -msgstr "Dein Grid" - -#: ../../include/nav.php:185 -msgid "Mark all grid notifications seen" -msgstr "Alle Grid-Benachrichtigungen als angesehen markieren" - -#: ../../include/nav.php:187 -msgid "Channel home" -msgstr "Mein Kanal" - -#: ../../include/nav.php:188 -msgid "Mark all channel notifications seen" -msgstr "Markiere alle Kanal-Benachrichtigungen als angesehen" - -#: ../../include/nav.php:194 -msgid "Notices" -msgstr "Benachrichtigungen" - -#: ../../include/nav.php:194 -msgid "Notifications" -msgstr "Benachrichtigungen" - -#: ../../include/nav.php:195 -msgid "See all notifications" -msgstr "Alle Benachrichtigungen ansehen" - -#: ../../include/nav.php:198 -msgid "Private mail" -msgstr "Persönliche Mail" - -#: ../../include/nav.php:199 -msgid "See all private messages" -msgstr "Alle persönlichen Nachrichten ansehen" - -#: ../../include/nav.php:200 -msgid "Mark all private messages seen" -msgstr "Markiere alle persönlichen Nachrichten als gesehen" - -#: ../../include/nav.php:201 ../../include/widgets.php:700 -msgid "Inbox" -msgstr "Eingang" - -#: ../../include/nav.php:202 ../../include/widgets.php:705 -msgid "Outbox" -msgstr "Ausgang" - -#: ../../include/nav.php:203 ../../include/widgets.php:710 -msgid "New Message" -msgstr "Neue Nachricht" - -#: ../../include/nav.php:206 -msgid "Event Calendar" -msgstr "Terminkalender" - -#: ../../include/nav.php:207 -msgid "See all events" -msgstr "Alle Termine ansehen" - -#: ../../include/nav.php:208 -msgid "Mark all events seen" -msgstr "Markiere alle Termine als gesehen" - -#: ../../include/nav.php:211 -msgid "Manage Your Channels" -msgstr "Verwalte Deine Kanäle" - -#: ../../include/nav.php:213 -msgid "Account/Channel Settings" -msgstr "Konto-/Kanal-Einstellungen" - -#: ../../include/nav.php:221 ../../include/widgets.php:1590 -msgid "Admin" -msgstr "Administration" - -#: ../../include/nav.php:221 -msgid "Site Setup and Configuration" -msgstr "Seiten-Einrichtung und -Konfiguration" - -#: ../../include/nav.php:252 ../../include/conversation.php:855 -msgid "Loading..." -msgstr "Lädt ..." - -#: ../../include/nav.php:257 -msgid "@name, #tag, ?doc, content" -msgstr "@Name, #Schlagwort, ?Dokumentation, Inhalt" - -#: ../../include/nav.php:258 -msgid "Please wait..." -msgstr "Bitte warten..." - -#: ../../include/oembed.php:349 -msgid "Embedded content" -msgstr "Eingebetteter Inhalt" - -#: ../../include/oembed.php:358 -msgid "Embedding disabled" -msgstr "Einbetten deaktiviert" - -#: ../../include/permissions.php:35 -msgid "Can view my normal stream and posts" -msgstr "Kann meine normalen Beiträge sehen" - -#: ../../include/permissions.php:39 -msgid "Can view my webpages" -msgstr "Kann meine Webseiten sehen" - -#: ../../include/permissions.php:43 -msgid "Can post on my channel page (\"wall\")" -msgstr "Kann auf meiner Kanal-Seite (\"wall\") Beiträge veröffentlichen" - -#: ../../include/permissions.php:46 -msgid "Can like/dislike stuff" -msgstr "Kann andere Elemente mögen/nicht mögen" - -#: ../../include/permissions.php:46 -msgid "Profiles and things other than posts/comments" -msgstr "Profile und alles außer Beiträge und Kommentare" - -#: ../../include/permissions.php:48 -msgid "Can forward to all my channel contacts via post @mentions" -msgstr "Kann an alle meine Kontakte via @-Erwähnung Nachrichten weiterleiten" - -#: ../../include/permissions.php:48 -msgid "Advanced - useful for creating group forum channels" -msgstr "Fortgeschritten - sinnvoll, um Gruppen-Kanäle/-Foren zu erstellen" - -#: ../../include/permissions.php:49 -msgid "Can chat with me (when available)" -msgstr "Kann mit mir chatten (wenn verfügbar)" - -#: ../../include/permissions.php:50 -msgid "Can write to my file storage and photos" -msgstr "Kann in meine Datei- und Bilderordner schreiben" - -#: ../../include/permissions.php:51 -msgid "Can edit my webpages" -msgstr "Kann meine Webseiten bearbeiten" - -#: ../../include/permissions.php:53 -msgid "Somewhat advanced - very useful in open communities" -msgstr "Etwas fortgeschritten – sehr nützlich in offenen Gemeinschaften" - -#: ../../include/permissions.php:55 -msgid "Can administer my channel resources" -msgstr "Kann meine Kanäle administrieren" - -#: ../../include/permissions.php:55 -msgid "" -"Extremely advanced. Leave this alone unless you know what you are doing" -msgstr "Sehr fortgeschritten. Bearbeite das nur, wenn Du genau weißt, was Du tust" - -#: ../../include/import.php:30 -msgid "" -"Cannot create a duplicate channel identifier on this system. Import failed." -msgstr "Kann keinen doppelten Kanal-Identifikator auf diesem System erzeugen (Spitzname oder Hash schon belegt). Import fehlgeschlagen." - -#: ../../include/import.php:97 -msgid "Channel clone failed. Import failed." -msgstr "Klonen des Kanals fehlgeschlagen. Import fehlgeschlagen." - -#: ../../include/import.php:1441 -msgid "Unable to import element \"" -msgstr "" - -#: ../../include/items.php:918 ../../include/items.php:963 -msgid "(Unknown)" -msgstr "(Unbekannt)" - -#: ../../include/items.php:1162 -msgid "Visible to anybody on the internet." -msgstr "Für jeden im Internet sichtbar." - -#: ../../include/items.php:1164 -msgid "Visible to you only." -msgstr "Nur für Dich sichtbar." - -#: ../../include/items.php:1166 -msgid "Visible to anybody in this network." -msgstr "Für jedes $Projectname-Mitglied sichtbar." - -#: ../../include/items.php:1168 -msgid "Visible to anybody authenticated." -msgstr "Für jeden sichtbar, der angemeldet ist." - -#: ../../include/items.php:1170 -#, php-format -msgid "Visible to anybody on %s." -msgstr "Für jeden auf %s sichtbar." - -#: ../../include/items.php:1172 -msgid "Visible to all connections." -msgstr "Für alle Verbindungen sichtbar." - -#: ../../include/items.php:1174 -msgid "Visible to approved connections." -msgstr "Nur für akzeptierte Verbindungen sichtbar." - -#: ../../include/items.php:1176 -msgid "Visible to specific connections." -msgstr "Sichtbar für bestimmte Verbindungen." - -#: ../../include/items.php:3966 -msgid "Privacy group is empty." -msgstr "Gruppe ist leer." - -#: ../../include/items.php:3973 -#, php-format -msgid "Privacy group: %s" -msgstr "Gruppe: %s" - -#: ../../include/items.php:3985 -msgid "Connection not found." -msgstr "Die Verbindung wurde nicht gefunden." - -#: ../../include/items.php:4338 -msgid "profile photo" -msgstr "Profilfoto" - -#: ../../include/datetime.php:135 +#: ../../include/datetime.php:147 msgid "Birthday" msgstr "Geburtstag" -#: ../../include/datetime.php:137 +#: ../../include/datetime.php:149 msgid "Age: " msgstr "Alter:" -#: ../../include/datetime.php:139 +#: ../../include/datetime.php:151 msgid "YYYY-MM-DD or MM-DD" msgstr "JJJJ-MM-TT oder MM-TT" -#: ../../include/datetime.php:272 ../../boot.php:2578 +#: ../../include/datetime.php:286 ../../boot.php:2563 msgid "never" msgstr "Nie" -#: ../../include/datetime.php:278 +#: ../../include/datetime.php:292 msgid "less than a second ago" msgstr "Vor weniger als einer Sekunde" -#: ../../include/datetime.php:296 +#: ../../include/datetime.php:310 #, php-format msgctxt "e.g. 22 hours ago, 1 minute ago" msgid "%1$d %2$s ago" msgstr "vor %1$d %2$s" -#: ../../include/datetime.php:307 +#: ../../include/datetime.php:321 msgctxt "relative_date" msgid "year" msgid_plural "years" msgstr[0] "Jahr" msgstr[1] "Jahre" -#: ../../include/datetime.php:310 +#: ../../include/datetime.php:324 msgctxt "relative_date" msgid "month" msgid_plural "months" msgstr[0] "Monat" msgstr[1] "Monate" -#: ../../include/datetime.php:313 +#: ../../include/datetime.php:327 msgctxt "relative_date" msgid "week" msgid_plural "weeks" msgstr[0] "Woche" msgstr[1] "Wochen" -#: ../../include/datetime.php:316 +#: ../../include/datetime.php:330 msgctxt "relative_date" msgid "day" msgid_plural "days" msgstr[0] "Tag" msgstr[1] "Tage" -#: ../../include/datetime.php:319 +#: ../../include/datetime.php:333 msgctxt "relative_date" msgid "hour" msgid_plural "hours" msgstr[0] "Stunde" msgstr[1] "Stunden" -#: ../../include/datetime.php:322 +#: ../../include/datetime.php:336 msgctxt "relative_date" msgid "minute" msgid_plural "minutes" msgstr[0] "Minute" msgstr[1] "Minuten" -#: ../../include/datetime.php:325 +#: ../../include/datetime.php:339 msgctxt "relative_date" msgid "second" msgid_plural "seconds" msgstr[0] "Sekunde" msgstr[1] "Sekunden" -#: ../../include/datetime.php:562 +#: ../../include/datetime.php:576 #, php-format msgid "%1$s's birthday" msgstr "%1$ss Geburtstag" -#: ../../include/datetime.php:563 +#: ../../include/datetime.php:577 #, php-format msgid "Happy Birthday %1$s" msgstr "Alles Gute zum Geburtstag, %1$s" @@ -7739,46 +10522,62 @@ msgstr "Bitte gib die benötigten Informationen ein." msgid "Failed to store account information." msgstr "Speichern der Nutzerkontodaten fehlgeschlagen." -#: ../../include/account.php:258 +#: ../../include/account.php:263 #, php-format msgid "Registration confirmation for %s" msgstr "Registrierungsbestätigung für %s" -#: ../../include/account.php:324 +#: ../../include/account.php:330 #, php-format msgid "Registration request at %s" msgstr "Registrierungsanfrage auf %s" -#: ../../include/account.php:348 +#: ../../include/account.php:352 msgid "your registration password" msgstr "Dein Registrierungspasswort" -#: ../../include/account.php:351 ../../include/account.php:411 +#: ../../include/account.php:358 ../../include/account.php:420 #, php-format msgid "Registration details for %s" msgstr "Registrierungsdetails für %s" -#: ../../include/account.php:423 +#: ../../include/account.php:431 msgid "Account approved." msgstr "Nutzerkonto bestätigt." -#: ../../include/account.php:463 +#: ../../include/account.php:471 #, php-format msgid "Registration revoked for %s" msgstr "Registrierung für %s wurde widerrufen" -#: ../../include/account.php:748 ../../include/account.php:750 +#: ../../include/account.php:756 ../../include/account.php:758 msgid "Click here to upgrade." msgstr "Klicke hier, um das Upgrade durchzuführen." -#: ../../include/account.php:756 +#: ../../include/account.php:764 msgid "This action exceeds the limits set by your subscription plan." msgstr "Diese Aktion überschreitet die Grenzen Ihres Abonnements." -#: ../../include/account.php:761 +#: ../../include/account.php:769 msgid "This action is not available under your subscription plan." msgstr "Diese Aktion ist in Ihrem Abonnement nicht verfügbar." +#: ../../include/message.php:20 +msgid "No recipient provided." +msgstr "Kein Empfänger angegeben" + +#: ../../include/message.php:25 +msgid "[no subject]" +msgstr "[no subject]" + +#: ../../include/message.php:45 +msgid "Unable to determine sender." +msgstr "Kann Absender nicht bestimmen." + +#: ../../include/message.php:223 +msgid "Stored post could not be verified." +msgstr "Gespeicherter Beitrag konnten nicht überprüft werden." + #: ../../include/selectors.php:30 msgid "Frequently" msgstr "Häufig" @@ -7803,14 +10602,6 @@ msgstr "Wöchentlich" msgid "Monthly" msgstr "Monatlich" -#: ../../include/selectors.php:49 ../../include/selectors.php:66 -msgid "Male" -msgstr "Männlich" - -#: ../../include/selectors.php:49 ../../include/selectors.php:66 -msgid "Female" -msgstr "Weiblich" - #: ../../include/selectors.php:49 msgid "Currently Male" msgstr "Momentan männlich" @@ -8027,223 +10818,1087 @@ msgstr "Interessiert mich nicht" msgid "Ask me" msgstr "Frag mich mal" -#: ../../include/bbcode.php:123 ../../include/bbcode.php:881 -#: ../../include/bbcode.php:884 ../../include/bbcode.php:889 -#: ../../include/bbcode.php:892 ../../include/bbcode.php:895 -#: ../../include/bbcode.php:898 ../../include/bbcode.php:903 -#: ../../include/bbcode.php:906 ../../include/bbcode.php:911 -#: ../../include/bbcode.php:914 ../../include/bbcode.php:917 -#: ../../include/bbcode.php:920 -msgid "Image/photo" -msgstr "Bild/Foto" +#: ../../include/channel.php:33 +msgid "Unable to obtain identity information from database" +msgstr "Kann keine Identitäts-Informationen aus Datenbank beziehen" -#: ../../include/bbcode.php:162 ../../include/bbcode.php:931 -msgid "Encrypted content" -msgstr "Verschlüsselter Inhalt" +#: ../../include/channel.php:67 +msgid "Empty name" +msgstr "Namensfeld leer" -#: ../../include/bbcode.php:178 -#, php-format -msgid "Install %s element: " -msgstr "Element %s installieren: " +#: ../../include/channel.php:70 +msgid "Name too long" +msgstr "Name ist zu lang" -#: ../../include/bbcode.php:182 -#, php-format +#: ../../include/channel.php:181 +msgid "No account identifier" +msgstr "Keine Account-Kennung" + +#: ../../include/channel.php:193 +msgid "Nickname is required." +msgstr "Spitzname ist erforderlich." + +#: ../../include/channel.php:207 +msgid "Reserved nickname. Please choose another." +msgstr "Reservierter Kurzname. Bitte wähle einen anderen." + +#: ../../include/channel.php:212 msgid "" -"This post contains an installable %s element, however you lack permissions " -"to install it on this site." -msgstr "Dieser Beitrag beinhaltet ein installierbares %s Element, aber Du hast nicht die nötigen Rechte, um es auf diesem Hub zu installieren." +"Nickname has unsupported characters or is already being used on this site." +msgstr "Der Spitzname enthält nicht-unterstütze Zeichen oder wird bereits auf dieser Seite genutzt." -#: ../../include/bbcode.php:261 +#: ../../include/channel.php:272 +msgid "Unable to retrieve created identity" +msgstr "Kann die erstellte Identität nicht empfangen" + +#: ../../include/channel.php:341 +msgid "Default Profile" +msgstr "Standard-Profil" + +#: ../../include/channel.php:962 +msgid "Create New Profile" +msgstr "Neues Profil erstellen" + +#: ../../include/channel.php:982 +msgid "Visible to everybody" +msgstr "Für jeden sichtbar" + +#: ../../include/channel.php:1055 ../../include/channel.php:1174 +msgid "Gender:" +msgstr "Geschlecht:" + +#: ../../include/channel.php:1057 ../../include/channel.php:1229 +msgid "Homepage:" +msgstr "Homepage:" + +#: ../../include/channel.php:1058 +msgid "Online Now" +msgstr "gerade online" + +#: ../../include/channel.php:1179 +msgid "Like this channel" +msgstr "Dieser Kanal gefällt mir" + +#: ../../include/channel.php:1203 +msgid "j F, Y" +msgstr "j. F Y" + +#: ../../include/channel.php:1204 +msgid "j F" +msgstr "j. F" + +#: ../../include/channel.php:1211 +msgid "Birthday:" +msgstr "Geburtstag:" + +#: ../../include/channel.php:1224 #, php-format -msgid "%1$s wrote the following %2$s %3$s" -msgstr "%1$s schrieb den folgenden %2$s %3$s" +msgid "for %1$d %2$s" +msgstr "seit %1$d %2$s" -#: ../../include/bbcode.php:338 ../../include/bbcode.php:346 -msgid "Click to open/close" -msgstr "Klicke zum Öffnen/Schließen" +#: ../../include/channel.php:1227 +msgid "Sexual Preference:" +msgstr "Sexuelle Orientierung:" -#: ../../include/bbcode.php:346 -msgid "spoiler" -msgstr "Spoiler" +#: ../../include/channel.php:1233 +msgid "Tags:" +msgstr "Schlagworte:" -#: ../../include/bbcode.php:619 ../../include/wiki.php:525 -msgid "Different viewers will see this text differently" -msgstr "Verschiedene Betrachter werden diesen Text unterschiedlich sehen" +#: ../../include/channel.php:1235 +msgid "Political Views:" +msgstr "Politische Ansichten:" -#: ../../include/bbcode.php:869 -msgid "$1 wrote:" -msgstr "$1 schrieb:" +#: ../../include/channel.php:1237 +msgid "Religion:" +msgstr "Religion:" -#: ../../include/event.php:22 ../../include/event.php:69 -#: ../../include/bb2diaspora.php:485 -msgid "l F d, Y \\@ g:i A" -msgstr "l, d. F Y, H:i" +#: ../../include/channel.php:1241 +msgid "Hobbies/Interests:" +msgstr "Hobbys/Interessen:" -#: ../../include/event.php:30 ../../include/event.php:73 -#: ../../include/bb2diaspora.php:491 -msgid "Starts:" -msgstr "Beginnt:" +#: ../../include/channel.php:1243 +msgid "Likes:" +msgstr "Gefällt:" -#: ../../include/event.php:40 ../../include/event.php:77 -#: ../../include/bb2diaspora.php:499 -msgid "Finishes:" -msgstr "Endet:" +#: ../../include/channel.php:1245 +msgid "Dislikes:" +msgstr "Gefällt nicht:" -#: ../../include/event.php:821 -msgid "This event has been added to your calendar." -msgstr "Dieser Termin wurde zu Deinem Kalender hinzugefügt" +#: ../../include/channel.php:1247 +msgid "Contact information and Social Networks:" +msgstr "Kontaktinformation und soziale Netzwerke:" -#: ../../include/event.php:1021 -msgid "Not specified" -msgstr "Keine Angabe" +#: ../../include/channel.php:1249 +msgid "My other channels:" +msgstr "Meine anderen Kanäle:" -#: ../../include/event.php:1022 -msgid "Needs Action" -msgstr "Aktion erforderlich" +#: ../../include/channel.php:1251 +msgid "Musical interests:" +msgstr "Musikalische Interessen:" -#: ../../include/event.php:1023 -msgid "Completed" -msgstr "Abgeschlossen" +#: ../../include/channel.php:1253 +msgid "Books, literature:" +msgstr "Bücher, Literatur:" -#: ../../include/event.php:1024 -msgid "In Process" -msgstr "In Bearbeitung" +#: ../../include/channel.php:1255 +msgid "Television:" +msgstr "Fernsehen:" -#: ../../include/event.php:1025 -msgid "Cancelled" -msgstr "gestrichen" +#: ../../include/channel.php:1257 +msgid "Film/dance/culture/entertainment:" +msgstr "Film/Tanz/Kultur/Unterhaltung:" -#: ../../include/security.php:109 -msgid "guest:" -msgstr "Gast:" +#: ../../include/channel.php:1259 +msgid "Love/Romance:" +msgstr "Liebe/Romantik:" -#: ../../include/security.php:527 +#: ../../include/channel.php:1261 +msgid "Work/employment:" +msgstr "Arbeit/Anstellung:" + +#: ../../include/channel.php:1263 +msgid "School/education:" +msgstr "Schule/Ausbildung:" + +#: ../../include/channel.php:1284 +msgid "Like this thing" +msgstr "Gefällt mir" + +#: ../../include/connections.php:95 +msgid "New window" +msgstr "Neues Fenster" + +#: ../../include/connections.php:96 +msgid "Open the selected location in a different window or browser tab" +msgstr "Öffne die markierte Adresse in einem neuen Browserfenster oder Tab" + +#: ../../include/connections.php:214 +#, php-format +msgid "User '%s' deleted" +msgstr "Benutzer '%s' gelöscht" + +#: ../../include/dir_fns.php:141 +msgid "Directory Options" +msgstr "Verzeichnisoptionen" + +#: ../../include/dir_fns.php:143 +msgid "Safe Mode" +msgstr "Sicherer Modus" + +#: ../../include/dir_fns.php:144 +msgid "Public Forums Only" +msgstr "Nur öffentliche Foren" + +#: ../../include/dir_fns.php:145 +msgid "This Website Only" +msgstr "Nur dieser Hub" + +#: ../../include/nav.php:85 ../../include/nav.php:118 ../../boot.php:1718 +msgid "Logout" +msgstr "Abmelden" + +#: ../../include/nav.php:85 ../../include/nav.php:118 +msgid "End this session" +msgstr "Beende diese Sitzung" + +#: ../../include/nav.php:88 +msgid "Your posts and conversations" +msgstr "Deine Beiträge und Unterhaltungen" + +#: ../../include/nav.php:89 +msgid "Your profile page" +msgstr "Deine Profilseite" + +#: ../../include/nav.php:91 +msgid "Manage/Edit profiles" +msgstr "Profile verwalten" + +#: ../../include/nav.php:93 +msgid "Edit your profile" +msgstr "Profil bearbeiten" + +#: ../../include/nav.php:95 +msgid "Your photos" +msgstr "Deine Bilder" + +#: ../../include/nav.php:96 +msgid "Your files" +msgstr "Deine Dateien" + +#: ../../include/nav.php:99 +msgid "Your chatrooms" +msgstr "Deine Chaträume" + +#: ../../include/nav.php:105 ../../include/conversation.php:1735 +msgid "Bookmarks" +msgstr "Lesezeichen" + +#: ../../include/nav.php:105 +msgid "Your bookmarks" +msgstr "Deine Lesezeichen" + +#: ../../include/nav.php:109 +msgid "Your webpages" +msgstr "Deine Webseiten" + +#: ../../include/nav.php:111 +msgid "Your wikis" +msgstr "Ihre Wikis" + +#: ../../include/nav.php:115 +msgid "Sign in" +msgstr "Anmelden" + +#: ../../include/nav.php:131 +msgid "Remote authentication" +msgstr "Über Konto auf anderem Server einloggen" + +#: ../../include/nav.php:131 +msgid "Click to authenticate to your home hub" +msgstr "Klicke, um Dich über Deinen Heimat-Server zu authentifizieren" + +#: ../../include/nav.php:143 +msgid "Get me home" +msgstr "Bringe mich nach Hause (eigener Kanal)" + +#: ../../include/nav.php:145 +msgid "Log me out of this site" +msgstr "Logge mich von dieser Seite aus" + +#: ../../include/nav.php:150 +msgid "Create an account" +msgstr "Erzeuge ein Konto" + +#: ../../include/nav.php:162 +msgid "Help and documentation" +msgstr "Hilfe und Dokumentation" + +#: ../../include/nav.php:166 +msgid "Applications, utilities, links, games" +msgstr "Anwendungen (Apps), Zubehör, Links, Spiele" + +#: ../../include/nav.php:168 +msgid "Search site @name, #tag, ?docs, content" +msgstr "Hub durchsuchen: @Name. #Schlagwort, ?Dokumentation, Inhalt" + +#: ../../include/nav.php:170 +msgid "Channel Directory" +msgstr "Kanal-Verzeichnis" + +#: ../../include/nav.php:182 +msgid "Your grid" +msgstr "Dein Grid" + +#: ../../include/nav.php:183 +msgid "Mark all grid notifications seen" +msgstr "Alle Grid-Benachrichtigungen als angesehen markieren" + +#: ../../include/nav.php:185 +msgid "Channel home" +msgstr "Mein Kanal" + +#: ../../include/nav.php:186 +msgid "Mark all channel notifications seen" +msgstr "Markiere alle Kanal-Benachrichtigungen als angesehen" + +#: ../../include/nav.php:192 +msgid "Notices" +msgstr "Benachrichtigungen" + +#: ../../include/nav.php:192 +msgid "Notifications" +msgstr "Benachrichtigungen" + +#: ../../include/nav.php:193 +msgid "See all notifications" +msgstr "Alle Benachrichtigungen ansehen" + +#: ../../include/nav.php:196 +msgid "Private mail" +msgstr "Persönliche Mail" + +#: ../../include/nav.php:197 +msgid "See all private messages" +msgstr "Alle persönlichen Nachrichten ansehen" + +#: ../../include/nav.php:198 +msgid "Mark all private messages seen" +msgstr "Markiere alle persönlichen Nachrichten als gesehen" + +#: ../../include/nav.php:199 ../../include/widgets.php:700 +msgid "Inbox" +msgstr "Eingang" + +#: ../../include/nav.php:200 ../../include/widgets.php:705 +msgid "Outbox" +msgstr "Ausgang" + +#: ../../include/nav.php:201 ../../include/widgets.php:710 +msgid "New Message" +msgstr "Neue Nachricht" + +#: ../../include/nav.php:204 +msgid "Event Calendar" +msgstr "Terminkalender" + +#: ../../include/nav.php:205 +msgid "See all events" +msgstr "Alle Termine ansehen" + +#: ../../include/nav.php:206 +msgid "Mark all events seen" +msgstr "Markiere alle Termine als gesehen" + +#: ../../include/nav.php:209 +msgid "Manage Your Channels" +msgstr "Verwalte Deine Kanäle" + +#: ../../include/nav.php:211 +msgid "Account/Channel Settings" +msgstr "Konto-/Kanal-Einstellungen" + +#: ../../include/nav.php:219 ../../include/widgets.php:1665 +msgid "Admin" +msgstr "Administration" + +#: ../../include/nav.php:219 +msgid "Site Setup and Configuration" +msgstr "Seiten-Einrichtung und -Konfiguration" + +#: ../../include/nav.php:250 ../../include/conversation.php:869 +msgid "Loading..." +msgstr "Lädt ..." + +#: ../../include/nav.php:255 +msgid "@name, #tag, ?doc, content" +msgstr "@Name, #Schlagwort, ?Dokumentation, Inhalt" + +#: ../../include/nav.php:256 +msgid "Please wait..." +msgstr "Bitte warten..." + +#: ../../include/features.php:58 +msgid "General Features" +msgstr "Allgemeine Funktionen" + +#: ../../include/features.php:63 +msgid "Multiple Profiles" +msgstr "Mehrfachprofile" + +#: ../../include/features.php:64 +msgid "Ability to create multiple profiles" +msgstr "Ermöglicht das Anlegen mehrerer Profile pro Kanal" + +#: ../../include/features.php:72 +msgid "Advanced Profiles" +msgstr "Erweiterte Profile" + +#: ../../include/features.php:73 +msgid "Additional profile sections and selections" +msgstr "Stellt zusätzliche Bereiche und Felder im Profil zur Verfügung" + +#: ../../include/features.php:81 +msgid "Profile Import/Export" +msgstr "Profil-Import/Export" + +#: ../../include/features.php:82 +msgid "Save and load profile details across sites/channels" +msgstr "Ermöglicht das Speichern von Profilen, um sie in einen anderen Kanal zu importieren" + +#: ../../include/features.php:90 +msgid "Web Pages" +msgstr "Webseiten" + +#: ../../include/features.php:91 +msgid "Provide managed web pages on your channel" +msgstr "Ermöglicht das Erstellen von Webseiten in Deinem Kanal" + +#: ../../include/features.php:100 +msgid "Provide a wiki for your channel" +msgstr "Stelle ein Wiki in Deinem Kanal zur Verfügung" + +#: ../../include/features.php:117 +msgid "Private Notes" +msgstr "Private Notizen" + +#: ../../include/features.php:118 +msgid "Enables a tool to store notes and reminders (note: not encrypted)" +msgstr "Aktiviert ein Werkzeug mit dem Notizen und Erinnerungen gespeichert werden können (Hinweis: nicht verschlüsselt)" + +#: ../../include/features.php:126 +msgid "Navigation Channel Select" +msgstr "Kanal-Auswahl in der Navigationsleiste" + +#: ../../include/features.php:127 +msgid "Change channels directly from within the navigation dropdown menu" +msgstr "Ermöglicht den direkten Wechsel zu anderen Kanälen über das Navigationsmenü" + +#: ../../include/features.php:135 +msgid "Photo Location" +msgstr "Aufnahmeort" + +#: ../../include/features.php:136 +msgid "If location data is available on uploaded photos, link this to a map." +msgstr "Verlinkt den Aufnahmeort von Fotos (falls verfügbar) auf einer Karte" + +#: ../../include/features.php:144 +msgid "Access Controlled Chatrooms" +msgstr "Zugriffskontrollierte Chaträume" + +#: ../../include/features.php:145 +msgid "Provide chatrooms and chat services with access control." +msgstr "Bieten Sie Chaträume und Chatdienste mit Zugriffskontrolle an." + +#: ../../include/features.php:153 +msgid "Smart Birthdays" +msgstr "Smarte Geburtstage" + +#: ../../include/features.php:154 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 "Das Security-Token des Formulars war nicht korrekt. Das ist wahrscheinlich passiert, weil das Formular zu lange (>3 Stunden) offen war, bevor es abgeschickt wurde." +"Make birthday events timezone aware in case your friends are scattered " +"across the planet." +msgstr "Stellt für Geburtstage einen Zeitzonenbezug her, falls deine Freunde über den ganzen Planeten verstreut sind." -#: ../../include/help.php:25 -msgid "Help:" -msgstr "Hilfe:" +#: ../../include/features.php:162 +msgid "Advanced Directory Search" +msgstr "Erweiterte Verzeichnissuche" + +#: ../../include/features.php:163 +msgid "Allows creation of complex directory search queries" +msgstr "Ermöglicht die Erstellung komplexer Verzeichnis-Suchabfragen" + +#: ../../include/features.php:171 +msgid "Advanced Theme and Layout Settings" +msgstr "Erweiterte Design- und Layout-Einstellungen" + +#: ../../include/features.php:172 +msgid "Allows fine tuning of themes and page layouts" +msgstr "Erlaubt die Feineinstellung von Designs und Seitenlayouts" + +#: ../../include/features.php:182 +msgid "Post Composition Features" +msgstr "Nachbearbeitungsfunktionen" + +#: ../../include/features.php:186 +msgid "Large Photos" +msgstr "Große Fotos" + +#: ../../include/features.php:187 +msgid "" +"Include large (1024px) photo thumbnails in posts. If not enabled, use small " +"(640px) photo thumbnails" +msgstr "Große Vorschaubilder (1024px) in Beiträgen anzeigen. Falls nicht aktiviert, werden kleine Vorschaubilder (640px) verwendet." + +#: ../../include/features.php:196 +msgid "Automatically import channel content from other channels or feeds" +msgstr "Ermöglicht den automatischen Import von Inhalten für diesen Kanal von anderen Kanälen oder Feeds" + +#: ../../include/features.php:204 +msgid "Even More Encryption" +msgstr "Noch mehr Verschlüsselung" + +#: ../../include/features.php:205 +msgid "" +"Allow optional encryption of content end-to-end with a shared secret key" +msgstr "Ermöglicht optional die zusätzliche Verschlüsselung von Inhalten (Ende-zu-Ende mit geteiltem Schlüssel)" + +#: ../../include/features.php:213 +msgid "Enable Voting Tools" +msgstr "Umfragewerkzeuge aktivieren" + +#: ../../include/features.php:214 +msgid "Provide a class of post which others can vote on" +msgstr "Aktiviert die Umfragewerkzeuge, um anderen die Möglichkeit zu geben, einem Beitrag zuzustimmen, ihn abzulehnen oder sich zu enthalten. (Muss im Beitrag selbst noch aktiviert werden.)" + +#: ../../include/features.php:222 +msgid "Disable Comments" +msgstr "Kommentare deaktivieren" + +#: ../../include/features.php:223 +msgid "Provide the option to disable comments for a post" +msgstr "Ermöglicht, die Kommentarfunktion für einzelne Beiträge abzuschalten" + +#: ../../include/features.php:231 +msgid "Delayed Posting" +msgstr "Verzögertes Senden" + +#: ../../include/features.php:232 +msgid "Allow posts to be published at a later date" +msgstr "Ermöglicht es, Beiträge zu einem späteren Zeitpunkt zu veröffentlichen" + +#: ../../include/features.php:240 +msgid "Content Expiration" +msgstr "Verfall von Inhalten" + +#: ../../include/features.php:241 +msgid "Remove posts/comments and/or private messages at a future time" +msgstr "Ermöglicht das automatische Löschen von Beiträgen, Kommentaren und/oder privaten Nachrichten zu einem zukünftigen Datum." + +#: ../../include/features.php:249 +msgid "Suppress Duplicate Posts/Comments" +msgstr "Doppelte Beiträge unterdrücken" + +#: ../../include/features.php:250 +msgid "" +"Prevent posts with identical content to be published with less than two " +"minutes in between submissions." +msgstr "Verhindert, dass innerhalb von zwei Minuten Beiträge mit identischem Inhalt veröffentlicht werden." + +#: ../../include/features.php:261 +msgid "Network and Stream Filtering" +msgstr "Netzwerk- und Stream-Filter" + +#: ../../include/features.php:265 +msgid "Search by Date" +msgstr "Suche nach Datum" + +#: ../../include/features.php:266 +msgid "Ability to select posts by date ranges" +msgstr "Möglichkeit, Beiträge nach Zeiträumen auszuwählen" + +#: ../../include/features.php:274 ../../include/group.php:311 +msgid "Privacy Groups" +msgstr "Gruppen" + +#: ../../include/features.php:275 +msgid "Enable management and selection of privacy groups" +msgstr "Auswahl und Verwaltung von Gruppen für Kanäle aktivieren" + +#: ../../include/features.php:283 ../../include/widgets.php:283 +msgid "Saved Searches" +msgstr "Gespeicherte Suchanfragen" + +#: ../../include/features.php:284 +msgid "Save search terms for re-use" +msgstr "Ermöglicht das Abspeichern von Suchbegriffen zur Wiederverwendung" + +#: ../../include/features.php:292 +msgid "Network Personal Tab" +msgstr "Persönlicher Netzwerkreiter" + +#: ../../include/features.php:293 +msgid "Enable tab to display only Network posts that you've interacted on" +msgstr "Aktiviert einen Reiter in der Grid-Ansicht, der nur Netzwerk-Beiträge anzeigt, mit denen Du interagiert hast" + +#: ../../include/features.php:301 +msgid "Network New Tab" +msgstr "Netzwerkreiter Neu" + +#: ../../include/features.php:302 +msgid "Enable tab to display all new Network activity" +msgstr "Aktiviert einen Reiter in der Grid-Ansicht, der alle neuen Netzwerkaktivitäten anzeigt" + +#: ../../include/features.php:310 +msgid "Affinity Tool" +msgstr "Beziehungs-Tool" + +#: ../../include/features.php:311 +msgid "Filter stream activity by depth of relationships" +msgstr "Aktiviert ein Werkzeug in der Grid-Ansicht, das den Stream nach Grad der Beziehung filtern kann" + +#: ../../include/features.php:320 +msgid "Show friend and connection suggestions" +msgstr "Freund- und Verbindungsvorschläge anzeigen" + +#: ../../include/features.php:328 +msgid "Connection Filtering" +msgstr "Filter für Verbindungen" + +#: ../../include/features.php:329 +msgid "Filter incoming posts from connections based on keywords/content" +msgstr "Ermöglicht die Filterung eingehender Beiträge anhand von Schlüsselwörtern (muss an der Verbindung konfiguriert werden)" + +#: ../../include/features.php:341 +msgid "Post/Comment Tools" +msgstr "Beitrag-/Kommentar-Tools" + +#: ../../include/features.php:345 +msgid "Community Tagging" +msgstr "Gemeinschaftliches Verschlagworten" + +#: ../../include/features.php:346 +msgid "Ability to tag existing posts" +msgstr "Ermöglicht das Verschlagworten existierender Beiträge" + +#: ../../include/features.php:354 +msgid "Post Categories" +msgstr "Beitrags-Kategorien" + +#: ../../include/features.php:355 +msgid "Add categories to your posts" +msgstr "Aktiviert Kategorien für Beiträge" + +#: ../../include/features.php:363 +msgid "Emoji Reactions" +msgstr "Emoji Reaktionen" + +#: ../../include/features.php:364 +msgid "Add emoji reaction ability to posts" +msgstr "Aktiviert Emoji-Reaktionen für Beiträge" + +#: ../../include/features.php:372 ../../include/contact_widgets.php:53 +#: ../../include/widgets.php:346 +msgid "Saved Folders" +msgstr "Gespeicherte Ordner" + +#: ../../include/features.php:373 +msgid "Ability to file posts under folders" +msgstr "Möglichkeit, Beiträge in Verzeichnissen zu sammeln" + +#: ../../include/features.php:381 +msgid "Dislike Posts" +msgstr "Gefällt-mir-nicht-Beiträge" + +#: ../../include/features.php:382 +msgid "Ability to dislike posts/comments" +msgstr "Aktiviert die „Gefällt mir nicht“-Schaltfläche" + +#: ../../include/features.php:390 +msgid "Star Posts" +msgstr "Beiträge mit Sternchen versehen" + +#: ../../include/features.php:391 +msgid "Ability to mark special posts with a star indicator" +msgstr "Ermöglicht die lokale Markierung spezieller Beiträge mit einem Sternchen-Symbol" + +#: ../../include/features.php:399 +msgid "Tag Cloud" +msgstr "Schlagwort-Wolke" + +#: ../../include/features.php:400 +msgid "Provide a personal tag cloud on your channel page" +msgstr "Aktiviert die Anzeige einer Schlagwort-Wolke (Tag Cloud) auf Deiner Kanal-Seite" + +#: ../../include/features.php:412 +msgid "Premium Channel" +msgstr "Premium-Kanal" + +#: ../../include/features.php:413 +msgid "" +"Allows you to set restrictions and terms on those that connect with your " +"channel" +msgstr "Ermöglicht es, Einschränkungen und Bedingungen für Verbindungen dieses Kanals festzulegen" + +#: ../../include/text.php:460 +msgid "prev" +msgstr "vorherige" + +#: ../../include/text.php:462 +msgid "first" +msgstr "erste" + +#: ../../include/text.php:491 +msgid "last" +msgstr "letzte" + +#: ../../include/text.php:494 +msgid "next" +msgstr "nächste" + +#: ../../include/text.php:505 +msgid "older" +msgstr "älter" + +#: ../../include/text.php:507 +msgid "newer" +msgstr "neuer" + +#: ../../include/text.php:904 +msgid "No connections" +msgstr "Keine Verbindungen" + +#: ../../include/text.php:929 +#, php-format +msgid "View all %s connections" +msgstr "Alle Verbindungen von %s anzeigen" + +#: ../../include/text.php:1074 ../../include/text.php:1079 +msgid "poke" +msgstr "anstupsen" + +#: ../../include/text.php:1074 ../../include/text.php:1079 +#: ../../include/conversation.php:243 +msgid "poked" +msgstr "stupste" + +#: ../../include/text.php:1080 +msgid "ping" +msgstr "anpingen" + +#: ../../include/text.php:1080 +msgid "pinged" +msgstr "pingte" + +#: ../../include/text.php:1081 +msgid "prod" +msgstr "knuffen" + +#: ../../include/text.php:1081 +msgid "prodded" +msgstr "knuffte" + +#: ../../include/text.php:1082 +msgid "slap" +msgstr "ohrfeigen" + +#: ../../include/text.php:1082 +msgid "slapped" +msgstr "ohrfeigte" + +#: ../../include/text.php:1083 +msgid "finger" +msgstr "befummeln" + +#: ../../include/text.php:1083 +msgid "fingered" +msgstr "befummelte" + +#: ../../include/text.php:1084 +msgid "rebuff" +msgstr "eine Abfuhr erteilen" + +#: ../../include/text.php:1084 +msgid "rebuffed" +msgstr "zurückgewiesen" + +#: ../../include/text.php:1096 +msgid "happy" +msgstr "glücklich" + +#: ../../include/text.php:1097 +msgid "sad" +msgstr "traurig" + +#: ../../include/text.php:1098 +msgid "mellow" +msgstr "sanft" + +#: ../../include/text.php:1099 +msgid "tired" +msgstr "müde" + +#: ../../include/text.php:1100 +msgid "perky" +msgstr "frech" + +#: ../../include/text.php:1101 +msgid "angry" +msgstr "sauer" + +#: ../../include/text.php:1102 +msgid "stupefied" +msgstr "verblüfft" + +#: ../../include/text.php:1103 +msgid "puzzled" +msgstr "verwirrt" + +#: ../../include/text.php:1104 +msgid "interested" +msgstr "interessiert" + +#: ../../include/text.php:1105 +msgid "bitter" +msgstr "verbittert" + +#: ../../include/text.php:1106 +msgid "cheerful" +msgstr "fröhlich" + +#: ../../include/text.php:1107 +msgid "alive" +msgstr "lebendig" + +#: ../../include/text.php:1108 +msgid "annoyed" +msgstr "verärgert" + +#: ../../include/text.php:1109 +msgid "anxious" +msgstr "unruhig" + +#: ../../include/text.php:1110 +msgid "cranky" +msgstr "schrullig" + +#: ../../include/text.php:1111 +msgid "disturbed" +msgstr "verstört" + +#: ../../include/text.php:1112 +msgid "frustrated" +msgstr "frustriert" + +#: ../../include/text.php:1113 +msgid "depressed" +msgstr "deprimiert" + +#: ../../include/text.php:1114 +msgid "motivated" +msgstr "motiviert" + +#: ../../include/text.php:1115 +msgid "relaxed" +msgstr "entspannt" + +#: ../../include/text.php:1116 +msgid "surprised" +msgstr "überrascht" + +#: ../../include/text.php:1303 ../../include/js_strings.php:70 +msgid "Monday" +msgstr "Montag" + +#: ../../include/text.php:1303 ../../include/js_strings.php:71 +msgid "Tuesday" +msgstr "Dienstag" + +#: ../../include/text.php:1303 ../../include/js_strings.php:72 +msgid "Wednesday" +msgstr "Mittwoch" + +#: ../../include/text.php:1303 ../../include/js_strings.php:73 +msgid "Thursday" +msgstr "Donnerstag" + +#: ../../include/text.php:1303 ../../include/js_strings.php:74 +msgid "Friday" +msgstr "Freitag" + +#: ../../include/text.php:1303 ../../include/js_strings.php:75 +msgid "Saturday" +msgstr "Samstag" + +#: ../../include/text.php:1303 ../../include/js_strings.php:69 +msgid "Sunday" +msgstr "Sonntag" + +#: ../../include/text.php:1307 ../../include/js_strings.php:45 +msgid "January" +msgstr "Januar" + +#: ../../include/text.php:1307 ../../include/js_strings.php:46 +msgid "February" +msgstr "Februar" + +#: ../../include/text.php:1307 ../../include/js_strings.php:47 +msgid "March" +msgstr "März" + +#: ../../include/text.php:1307 ../../include/js_strings.php:48 +msgid "April" +msgstr "April" + +#: ../../include/text.php:1307 +msgid "May" +msgstr "Mai" + +#: ../../include/text.php:1307 ../../include/js_strings.php:50 +msgid "June" +msgstr "Juni" + +#: ../../include/text.php:1307 ../../include/js_strings.php:51 +msgid "July" +msgstr "Juli" + +#: ../../include/text.php:1307 ../../include/js_strings.php:52 +msgid "August" +msgstr "August" + +#: ../../include/text.php:1307 ../../include/js_strings.php:53 +msgid "September" +msgstr "September" + +#: ../../include/text.php:1307 ../../include/js_strings.php:54 +msgid "October" +msgstr "Oktober" + +#: ../../include/text.php:1307 ../../include/js_strings.php:55 +msgid "November" +msgstr "November" + +#: ../../include/text.php:1307 ../../include/js_strings.php:56 +msgid "December" +msgstr "Dezember" + +#: ../../include/text.php:1384 ../../include/text.php:1388 +msgid "Unknown Attachment" +msgstr "Unbekannter Anhang" + +#: ../../include/text.php:1390 +msgid "unknown" +msgstr "unbekannt" + +#: ../../include/text.php:1426 +msgid "remove category" +msgstr "Kategorie entfernen" + +#: ../../include/text.php:1503 +msgid "remove from file" +msgstr "aus der Datei entfernen" + +#: ../../include/text.php:1770 ../../include/language.php:367 +msgid "default" +msgstr "Standard" + +#: ../../include/text.php:1778 +msgid "Page layout" +msgstr "Seiten-Layout" + +#: ../../include/text.php:1778 +msgid "You can create your own with the layouts tool" +msgstr "Mit dem Gestaltungswerkzeug kannst Du Deine eigenen Layouts erstellen" + +#: ../../include/text.php:1820 +msgid "Page content type" +msgstr "Art des Seiteninhalts" + +#: ../../include/text.php:1953 +msgid "activity" +msgstr "Aktivität" + +#: ../../include/text.php:2267 +msgid "Design Tools" +msgstr "Gestaltungswerkzeuge" + +#: ../../include/text.php:2273 +msgid "Pages" +msgstr "Seiten" + +#: ../../include/text.php:2295 +msgid "Import website..." +msgstr "Webseite importieren..." + +#: ../../include/text.php:2296 +msgid "Select folder to import" +msgstr "Ordner zum Importieren auswählen" + +#: ../../include/text.php:2297 +msgid "Import from a zipped folder:" +msgstr "Aus einem gezippten Ordner importieren:" + +#: ../../include/text.php:2298 +msgid "Import from cloud files:" +msgstr "Aus Cloud-Dateien importieren:" + +#: ../../include/text.php:2299 +msgid "/cloud/channel/path/to/folder" +msgstr "/Cloud/Kanal/Pfad/zum/Ordner" + +#: ../../include/text.php:2300 +msgid "Enter path to website files" +msgstr "Pfad zu Webseitendateien eingeben" + +#: ../../include/text.php:2301 +msgid "Select folder" +msgstr "Ordner auswählen" + +#: ../../include/text.php:2302 +msgid "Export website..." +msgstr "Webseite exportieren..." + +#: ../../include/text.php:2303 +msgid "Export to a zip file" +msgstr "In eine ZIP-Datei exportieren" + +#: ../../include/text.php:2304 +msgid "website.zip" +msgstr "website.zip" + +#: ../../include/text.php:2305 +msgid "Enter a name for the zip file." +msgstr "Geben Sie einen für die ZIP-Datei ein." + +#: ../../include/text.php:2306 +msgid "Export to cloud files" +msgstr "In Cloud-Dateien exportieren" + +#: ../../include/text.php:2307 +msgid "/path/to/export/folder" +msgstr "/Pfad/zum/exportierenden/Ordner" + +#: ../../include/text.php:2308 +msgid "Enter a path to a cloud files destination." +msgstr "Gib den Pfad zu einem Datei-Speicherort in der Cloud ein." + +#: ../../include/text.php:2309 +msgid "Specify folder" +msgstr "Ordner angeben" #: ../../include/bookmarks.php:35 #, php-format msgid "%1$s's bookmarks" msgstr "%1$ss Lesezeichen" -#: ../../include/group.php:26 -msgid "" -"A deleted group with this name was revived. Existing item permissions " -"may apply to this group and any future members. If this is " -"not what you intended, please create another group with a different name." -msgstr "Es hat früher schon einmal eine Gruppe mit diesem Namen existiert, die gelöscht wurde. Es könnten von damals noch Elemente (Beiträge, Dateien etc.) vorhanden sein, die allen jetzigen und zukünftigen Mitgliedern dieser Gruppe den Zugriff erlauben. Wenn das nicht Deine Absicht ist, erstelle bitte eine neue Gruppe mit einem anderen Namen." +#: ../../include/wiki.php:545 ../../include/bbcode.php:552 +#: ../../include/bbcode.php:683 +msgid "Different viewers will see this text differently" +msgstr "Verschiedene Betrachter werden diesen Text unterschiedlich sehen" -#: ../../include/group.php:248 -msgid "Add new connections to this privacy group" -msgstr "Neue Verbindung zu dieser Gruppe hinzufügen" - -#: ../../include/group.php:289 -msgid "edit" -msgstr "Bearbeiten" - -#: ../../include/group.php:311 ../../include/features.php:83 -msgid "Privacy Groups" -msgstr "Gruppen" - -#: ../../include/group.php:312 -msgid "Edit group" -msgstr "Gruppe ändern" - -#: ../../include/group.php:313 -msgid "Add privacy group" -msgstr "Gruppe hinzufügen" - -#: ../../include/group.php:314 -msgid "Channels not in any privacy group" -msgstr "Kanäle, die in keiner Gruppe sind" - -#: ../../include/group.php:316 ../../include/widgets.php:284 -msgid "add" -msgstr "hinzufügen" - -#: ../../include/attach.php:248 ../../include/attach.php:334 -msgid "Item was not found." -msgstr "Beitrag wurde nicht gefunden." - -#: ../../include/attach.php:500 -msgid "No source file." -msgstr "Keine Quelldatei." - -#: ../../include/attach.php:522 -msgid "Cannot locate file to replace" -msgstr "Kann Datei zum Ersetzen nicht finden" - -#: ../../include/attach.php:540 -msgid "Cannot locate file to revise/update" -msgstr "Kann Datei zum Prüfen/Aktualisieren nicht finden" - -#: ../../include/attach.php:675 -#, php-format -msgid "File exceeds size limit of %d" -msgstr "Datei überschreitet das Größen-Limit von %d" - -#: ../../include/attach.php:689 -#, php-format -msgid "You have reached your limit of %1$.0f Mbytes attachment storage." -msgstr "Die Größe Deiner Datei-Anhänge hat das Maximum von %1$.0f MByte erreicht." - -#: ../../include/attach.php:847 -msgid "File upload failed. Possible system limit or action terminated." -msgstr "Datei-Upload fehlgeschlagen. Mögliche Systembegrenzung oder abgebrochener Prozess." - -#: ../../include/attach.php:860 -msgid "Stored file could not be verified. Upload failed." -msgstr "Gespeichert Datei konnte nicht verifiziert werden. Upload abgebrochen." - -#: ../../include/attach.php:916 ../../include/attach.php:932 -msgid "Path not available." -msgstr "Pfad nicht verfügbar." - -#: ../../include/attach.php:978 ../../include/attach.php:1130 -msgid "Empty pathname" -msgstr "Leere Pfadangabe" - -#: ../../include/attach.php:1004 -msgid "duplicate filename or path" -msgstr "doppelter Dateiname oder Pfad" - -#: ../../include/attach.php:1026 -msgid "Path not found." -msgstr "Pfad nicht gefunden." - -#: ../../include/attach.php:1084 -msgid "mkdir failed." -msgstr "mkdir fehlgeschlagen." - -#: ../../include/attach.php:1088 -msgid "database storage failed." -msgstr "Speichern in der Datenbank fehlgeschlagen." - -#: ../../include/attach.php:1136 -msgid "Empty path" -msgstr "Leere Pfadangabe" +#: ../../include/help.php:31 +msgid "Help:" +msgstr "Hilfe:" #: ../../include/page_widgets.php:7 msgid "New Page" msgstr "Neue Seite" -#: ../../include/page_widgets.php:46 -msgid "Title" -msgstr "Titel" +#: ../../include/contact_widgets.php:11 +#, php-format +msgid "%d invitation available" +msgid_plural "%d invitations available" +msgstr[0] "%d Einladung verfügbar" +msgstr[1] "%d Einladungen verfügbar" -#: ../../include/bb2diaspora.php:398 -msgid "Attachments:" -msgstr "Anhänge:" +#: ../../include/contact_widgets.php:19 +msgid "Find Channels" +msgstr "Finde Kanäle" -#: ../../include/bb2diaspora.php:487 -msgid "$Projectname event notification:" -msgstr "$Projectname-Terminbenachrichtigung:" +#: ../../include/contact_widgets.php:20 +msgid "Enter name or interest" +msgstr "Name oder Interessen eingeben" + +#: ../../include/contact_widgets.php:21 +msgid "Connect/Follow" +msgstr "Verbinden/Folgen" + +#: ../../include/contact_widgets.php:22 +msgid "Examples: Robert Morgenstein, Fishing" +msgstr "Beispiele: Robert Morgenstein, Angeln" + +#: ../../include/contact_widgets.php:26 +msgid "Random Profile" +msgstr "Zufallsprofil" + +#: ../../include/contact_widgets.php:27 +msgid "Invite Friends" +msgstr "Lade Freunde ein" + +#: ../../include/contact_widgets.php:29 +msgid "Advanced example: name=fred and country=iceland" +msgstr "Fortgeschrittenes Beispiel: name=fred and country=iceland" + +#: ../../include/contact_widgets.php:56 ../../include/contact_widgets.php:94 +#: ../../include/widgets.php:349 ../../include/widgets.php:468 +msgid "Everything" +msgstr "Alles" + +#: ../../include/contact_widgets.php:91 ../../include/taxonomy.php:188 +#: ../../include/taxonomy.php:270 ../../include/widgets.php:46 +#: ../../include/widgets.php:465 +msgid "Categories" +msgstr "Kategorien" + +#: ../../include/contact_widgets.php:122 +#, php-format +msgid "%d connection in common" +msgid_plural "%d connections in common" +msgstr[0] "%d gemeinsame Verbindung" +msgstr[1] "%d gemeinsame Verbindungen" + +#: ../../include/contact_widgets.php:127 +msgid "show more" +msgstr "mehr zeigen" #: ../../include/js_strings.php:5 msgid "Delete this item?" @@ -8385,55 +12040,11 @@ msgstr " " msgid "timeago.numbers" msgstr "timeago.numbers" -#: ../../include/js_strings.php:45 ../../include/text.php:1289 -msgid "January" -msgstr "Januar" - -#: ../../include/js_strings.php:46 ../../include/text.php:1289 -msgid "February" -msgstr "Februar" - -#: ../../include/js_strings.php:47 ../../include/text.php:1289 -msgid "March" -msgstr "März" - -#: ../../include/js_strings.php:48 ../../include/text.php:1289 -msgid "April" -msgstr "April" - #: ../../include/js_strings.php:49 msgctxt "long" msgid "May" msgstr "Mai" -#: ../../include/js_strings.php:50 ../../include/text.php:1289 -msgid "June" -msgstr "Juni" - -#: ../../include/js_strings.php:51 ../../include/text.php:1289 -msgid "July" -msgstr "Juli" - -#: ../../include/js_strings.php:52 ../../include/text.php:1289 -msgid "August" -msgstr "August" - -#: ../../include/js_strings.php:53 ../../include/text.php:1289 -msgid "September" -msgstr "September" - -#: ../../include/js_strings.php:54 ../../include/text.php:1289 -msgid "October" -msgstr "Oktober" - -#: ../../include/js_strings.php:55 ../../include/text.php:1289 -msgid "November" -msgstr "November" - -#: ../../include/js_strings.php:56 ../../include/text.php:1289 -msgid "December" -msgstr "Dezember" - #: ../../include/js_strings.php:57 msgid "Jan" msgstr "Jan" @@ -8483,34 +12094,6 @@ msgstr "Nov" msgid "Dec" msgstr "Dez" -#: ../../include/js_strings.php:69 ../../include/text.php:1285 -msgid "Sunday" -msgstr "Sonntag" - -#: ../../include/js_strings.php:70 ../../include/text.php:1285 -msgid "Monday" -msgstr "Montag" - -#: ../../include/js_strings.php:71 ../../include/text.php:1285 -msgid "Tuesday" -msgstr "Dienstag" - -#: ../../include/js_strings.php:72 ../../include/text.php:1285 -msgid "Wednesday" -msgstr "Mittwoch" - -#: ../../include/js_strings.php:73 ../../include/text.php:1285 -msgid "Thursday" -msgstr "Donnerstag" - -#: ../../include/js_strings.php:74 ../../include/text.php:1285 -msgid "Friday" -msgstr "Freitag" - -#: ../../include/js_strings.php:75 ../../include/text.php:1285 -msgid "Saturday" -msgstr "Samstag" - #: ../../include/js_strings.php:76 msgid "Sun" msgstr "So" @@ -8564,610 +12147,45 @@ msgctxt "calendar" msgid "All day" msgstr "Ganztägig" -#: ../../include/follow.php:27 -msgid "Channel is blocked on this site." -msgstr "Der Kanal ist auf dieser Seite blockiert " +#: ../../include/network.php:729 +msgid "view full size" +msgstr "In Vollbildansicht anschauen" -#: ../../include/follow.php:32 -msgid "Channel location missing." -msgstr "Adresse des Kanals fehlt." +#: ../../include/network.php:1978 +msgid "No Subject" +msgstr "Kein Betreff" -#: ../../include/follow.php:80 -msgid "Response from remote channel was incomplete." -msgstr "Antwort des entfernten Kanals war unvollständig." +#: ../../include/network.php:2234 +msgid "OStatus" +msgstr "OStatus" -#: ../../include/follow.php:97 -msgid "Channel was deleted and no longer exists." -msgstr "Kanal wurde gelöscht und existiert nicht mehr." +#: ../../include/network.php:2235 +msgid "GNU-Social" +msgstr "GNU-Social" -#: ../../include/follow.php:147 ../../include/follow.php:183 -msgid "Protocol disabled." -msgstr "Protokoll deaktiviert." +#: ../../include/network.php:2236 +msgid "RSS/Atom" +msgstr "RSS/Atom" -#: ../../include/follow.php:171 -msgid "Channel discovery failed." -msgstr "Kanalsuche fehlgeschlagen" +#: ../../include/network.php:2239 +msgid "Facebook" +msgstr "Facebook" -#: ../../include/follow.php:210 -msgid "Cannot connect to yourself." -msgstr "Du kannst Dich nicht mit Dir selbst verbinden." +#: ../../include/network.php:2240 +msgid "Zot" +msgstr "Zot!" -#: ../../include/acl_selectors.php:169 -msgid "Who can see this?" -msgstr "Wer kann das sehen?" +#: ../../include/network.php:2241 +msgid "LinkedIn" +msgstr "LinkedIn" -#: ../../include/acl_selectors.php:170 -msgid "Custom selection" -msgstr "Benutzerdefinierte Auswahl" +#: ../../include/network.php:2242 +msgid "XMPP/IM" +msgstr "XMPP/IM" -#: ../../include/acl_selectors.php:171 -msgid "" -"Select \"Show\" to allow viewing. \"Don't show\" lets you override and limit" -" the scope of \"Show\"." -msgstr "Wähle \"Anzeigen\", um Betrachtung zuzulassen. \"Nicht anzeigen\" überstimmt und limitiert den Aktionsradius von \"Anzeigen\" für Ausnahmen." - -#: ../../include/acl_selectors.php:172 -msgid "Show" -msgstr "Anzeigen" - -#: ../../include/acl_selectors.php:173 -msgid "Don't show" -msgstr "Nicht anzeigen" - -#: ../../include/acl_selectors.php:207 -#, php-format -msgid "" -"Post permissions %s cannot be changed %s after a post is shared.
        These" -" permissions set who is allowed to view the post." -msgstr "Beitragsberechtigungen %s können nicht geändert werden %s, nachdem der Beitrag gesendet wurde.
        Diese Berechtigungen bestimmen, wer den Beitrag sehen kann." - -#: ../../include/channel.php:33 -msgid "Unable to obtain identity information from database" -msgstr "Kann keine Identitäts-Informationen aus Datenbank beziehen" - -#: ../../include/channel.php:67 -msgid "Empty name" -msgstr "Namensfeld leer" - -#: ../../include/channel.php:70 -msgid "Name too long" -msgstr "Name ist zu lang" - -#: ../../include/channel.php:181 -msgid "No account identifier" -msgstr "Keine Account-Kennung" - -#: ../../include/channel.php:193 -msgid "Nickname is required." -msgstr "Spitzname ist erforderlich." - -#: ../../include/channel.php:207 -msgid "Reserved nickname. Please choose another." -msgstr "Reservierter Kurzname. Bitte wähle einen anderen." - -#: ../../include/channel.php:212 -msgid "" -"Nickname has unsupported characters or is already being used on this site." -msgstr "Der Spitzname enthält nicht-unterstütze Zeichen oder wird bereits auf dieser Seite genutzt." - -#: ../../include/channel.php:272 -msgid "Unable to retrieve created identity" -msgstr "Kann die erstellte Identität nicht empfangen" - -#: ../../include/channel.php:341 -msgid "Default Profile" -msgstr "Standard-Profil" - -#: ../../include/channel.php:813 -msgid "Requested channel is not available." -msgstr "Angeforderte Kanal nicht verfügbar." - -#: ../../include/channel.php:960 -msgid "Create New Profile" -msgstr "Neues Profil erstellen" - -#: ../../include/channel.php:980 -msgid "Visible to everybody" -msgstr "Für jeden sichtbar" - -#: ../../include/channel.php:1053 ../../include/channel.php:1166 -msgid "Gender:" -msgstr "Geschlecht:" - -#: ../../include/channel.php:1054 ../../include/channel.php:1210 -msgid "Status:" -msgstr "Status:" - -#: ../../include/channel.php:1055 ../../include/channel.php:1221 -msgid "Homepage:" -msgstr "Homepage:" - -#: ../../include/channel.php:1056 -msgid "Online Now" -msgstr "gerade online" - -#: ../../include/channel.php:1171 -msgid "Like this channel" -msgstr "Dieser Kanal gefällt mir" - -#: ../../include/channel.php:1195 -msgid "j F, Y" -msgstr "j. F Y" - -#: ../../include/channel.php:1196 -msgid "j F" -msgstr "j. F" - -#: ../../include/channel.php:1203 -msgid "Birthday:" -msgstr "Geburtstag:" - -#: ../../include/channel.php:1216 -#, php-format -msgid "for %1$d %2$s" -msgstr "seit %1$d %2$s" - -#: ../../include/channel.php:1219 -msgid "Sexual Preference:" -msgstr "Sexuelle Orientierung:" - -#: ../../include/channel.php:1225 -msgid "Tags:" -msgstr "Schlagworte:" - -#: ../../include/channel.php:1227 -msgid "Political Views:" -msgstr "Politische Ansichten:" - -#: ../../include/channel.php:1229 -msgid "Religion:" -msgstr "Religion:" - -#: ../../include/channel.php:1233 -msgid "Hobbies/Interests:" -msgstr "Hobbys/Interessen:" - -#: ../../include/channel.php:1235 -msgid "Likes:" -msgstr "Gefällt:" - -#: ../../include/channel.php:1237 -msgid "Dislikes:" -msgstr "Gefällt nicht:" - -#: ../../include/channel.php:1239 -msgid "Contact information and Social Networks:" -msgstr "Kontaktinformation und soziale Netzwerke:" - -#: ../../include/channel.php:1241 -msgid "My other channels:" -msgstr "Meine anderen Kanäle:" - -#: ../../include/channel.php:1243 -msgid "Musical interests:" -msgstr "Musikalische Interessen:" - -#: ../../include/channel.php:1245 -msgid "Books, literature:" -msgstr "Bücher, Literatur:" - -#: ../../include/channel.php:1247 -msgid "Television:" -msgstr "Fernsehen:" - -#: ../../include/channel.php:1249 -msgid "Film/dance/culture/entertainment:" -msgstr "Film/Tanz/Kultur/Unterhaltung:" - -#: ../../include/channel.php:1251 -msgid "Love/Romance:" -msgstr "Liebe/Romantik:" - -#: ../../include/channel.php:1253 -msgid "Work/employment:" -msgstr "Arbeit/Anstellung:" - -#: ../../include/channel.php:1255 -msgid "School/education:" -msgstr "Schule/Ausbildung:" - -#: ../../include/channel.php:1276 -msgid "Like this thing" -msgstr "Gefällt mir" - -#: ../../include/connections.php:95 -msgid "New window" -msgstr "Neues Fenster" - -#: ../../include/connections.php:96 -msgid "Open the selected location in a different window or browser tab" -msgstr "Öffne die markierte Adresse in einem neuen Browserfenster oder Tab" - -#: ../../include/connections.php:214 -#, php-format -msgid "User '%s' deleted" -msgstr "Benutzer '%s' gelöscht" - -#: ../../include/contact_widgets.php:11 -#, php-format -msgid "%d invitation available" -msgid_plural "%d invitations available" -msgstr[0] "%d Einladung verfügbar" -msgstr[1] "%d Einladungen verfügbar" - -#: ../../include/contact_widgets.php:19 -msgid "Find Channels" -msgstr "Finde Kanäle" - -#: ../../include/contact_widgets.php:20 -msgid "Enter name or interest" -msgstr "Name oder Interessen eingeben" - -#: ../../include/contact_widgets.php:21 -msgid "Connect/Follow" -msgstr "Verbinden/Folgen" - -#: ../../include/contact_widgets.php:22 -msgid "Examples: Robert Morgenstein, Fishing" -msgstr "Beispiele: Robert Morgenstein, Angeln" - -#: ../../include/contact_widgets.php:26 -msgid "Random Profile" -msgstr "Zufallsprofil" - -#: ../../include/contact_widgets.php:27 -msgid "Invite Friends" -msgstr "Lade Freunde ein" - -#: ../../include/contact_widgets.php:29 -msgid "Advanced example: name=fred and country=iceland" -msgstr "Fortgeschrittenes Beispiel: name=fred and country=iceland" - -#: ../../include/contact_widgets.php:53 ../../include/widgets.php:346 -#: ../../include/features.php:97 -msgid "Saved Folders" -msgstr "Gespeicherte Ordner" - -#: ../../include/contact_widgets.php:56 ../../include/contact_widgets.php:94 -#: ../../include/widgets.php:349 ../../include/widgets.php:468 -msgid "Everything" -msgstr "Alles" - -#: ../../include/contact_widgets.php:91 ../../include/taxonomy.php:188 -#: ../../include/taxonomy.php:270 ../../include/widgets.php:46 -#: ../../include/widgets.php:465 -msgid "Categories" -msgstr "Kategorien" - -#: ../../include/contact_widgets.php:122 -#, php-format -msgid "%d connection in common" -msgid_plural "%d connections in common" -msgstr[0] "%d gemeinsame Verbindung" -msgstr[1] "%d gemeinsame Verbindungen" - -#: ../../include/contact_widgets.php:127 -msgid "show more" -msgstr "mehr zeigen" - -#: ../../include/auth.php:148 -msgid "Logged out." -msgstr "Ausgeloggt." - -#: ../../include/auth.php:275 -msgid "Failed authentication" -msgstr "Authentifizierung fehlgeschlagen" - -#: ../../include/auth.php:286 -msgid "Login failed." -msgstr "Login fehlgeschlagen." - -#: ../../include/activities.php:41 -msgid " and " -msgstr "und" - -#: ../../include/activities.php:49 -msgid "public profile" -msgstr "öffentliches Profil" - -#: ../../include/activities.php:58 -#, php-format -msgid "%1$s changed %2$s to “%3$s”" -msgstr "%1$s hat %2$s auf “%3$s” geändert" - -#: ../../include/activities.php:59 -#, php-format -msgid "Visit %1$s's %2$s" -msgstr "Besuche %1$s's %2$s" - -#: ../../include/activities.php:62 -#, php-format -msgid "%1$s has an updated %2$s, changing %3$s." -msgstr "%1$s hat ein aktualisiertes %2$s, %3$s wurde verändert." - -#: ../../include/conversation.php:204 -#, php-format -msgid "%1$s is now connected with %2$s" -msgstr "%1$s ist jetzt mit %2$s verbunden" - -#: ../../include/conversation.php:239 -#, php-format -msgid "%1$s poked %2$s" -msgstr "%1$s stupste %2$s an" - -#: ../../include/conversation.php:243 ../../include/text.php:1059 -#: ../../include/text.php:1064 -msgid "poked" -msgstr "stupste" - -#: ../../include/conversation.php:694 -#, php-format -msgid "View %s's profile @ %s" -msgstr "%ss Profil auf %s ansehen" - -#: ../../include/conversation.php:713 -msgid "Categories:" -msgstr "Kategorien:" - -#: ../../include/conversation.php:714 -msgid "Filed under:" -msgstr "Gespeichert unter:" - -#: ../../include/conversation.php:741 -msgid "View in context" -msgstr "Im Zusammenhang anschauen" - -#: ../../include/conversation.php:851 -msgid "remove" -msgstr "lösche" - -#: ../../include/conversation.php:856 -msgid "Delete Selected Items" -msgstr "Lösche die ausgewählten Elemente" - -#: ../../include/conversation.php:949 -msgid "View Source" -msgstr "Quelle anzeigen" - -#: ../../include/conversation.php:950 -msgid "Follow Thread" -msgstr "Unterhaltung folgen" - -#: ../../include/conversation.php:951 -msgid "Unfollow Thread" -msgstr "Unterhaltung nicht mehr folgen" - -#: ../../include/conversation.php:956 -msgid "Activity/Posts" -msgstr "Aktivitäten/Beiträge" - -#: ../../include/conversation.php:958 -msgid "Edit Connection" -msgstr "Verbindung bearbeiten" - -#: ../../include/conversation.php:959 -msgid "Message" -msgstr "Nachricht" - -#: ../../include/conversation.php:1076 -#, php-format -msgid "%s likes this." -msgstr "%s gefällt das." - -#: ../../include/conversation.php:1076 -#, php-format -msgid "%s doesn't like this." -msgstr "%s gefällt das nicht." - -#: ../../include/conversation.php:1080 -#, php-format -msgid "%2$d people like this." -msgid_plural "%2$d people like this." -msgstr[0] "%2$d Person gefällt das." -msgstr[1] "%2$d Leuten gefällt das." - -#: ../../include/conversation.php:1082 -#, php-format -msgid "%2$d people don't like this." -msgid_plural "%2$d people don't like this." -msgstr[0] "%2$d Person gefällt das nicht." -msgstr[1] "%2$d Leuten gefällt das nicht." - -#: ../../include/conversation.php:1088 -msgid "and" -msgstr "und" - -#: ../../include/conversation.php:1091 -#, php-format -msgid ", and %d other people" -msgid_plural ", and %d other people" -msgstr[0] "" -msgstr[1] ", und %d andere" - -#: ../../include/conversation.php:1092 -#, php-format -msgid "%s like this." -msgstr "%s gefällt das." - -#: ../../include/conversation.php:1092 -#, php-format -msgid "%s don't like this." -msgstr "%s gefällt das nicht." - -#: ../../include/conversation.php:1135 -msgid "Set your location" -msgstr "Standort" - -#: ../../include/conversation.php:1136 -msgid "Clear browser location" -msgstr "Browser-Standort löschen" - -#: ../../include/conversation.php:1184 -msgid "Tag term:" -msgstr "Schlagwort:" - -#: ../../include/conversation.php:1185 -msgid "Where are you right now?" -msgstr "Wo bist Du jetzt grade?" - -#: ../../include/conversation.php:1194 -msgid "Comments enabled" -msgstr "Kommentare aktiviert" - -#: ../../include/conversation.php:1195 -msgid "Comments disabled" -msgstr "Kommentare deaktiviert" - -#: ../../include/conversation.php:1233 -msgid "Page link name" -msgstr "Link zur Seite" - -#: ../../include/conversation.php:1236 -msgid "Post as" -msgstr "Veröffentlichen als" - -#: ../../include/conversation.php:1250 -msgid "Toggle voting" -msgstr "Umfragewerkzeug aktivieren" - -#: ../../include/conversation.php:1253 -msgid "Disable comments" -msgstr "Kommentare deaktivieren" - -#: ../../include/conversation.php:1254 -msgid "Toggle comments" -msgstr "Kommentare umschalten" - -#: ../../include/conversation.php:1262 -msgid "Categories (optional, comma-separated list)" -msgstr "Kategorien (optional, kommagetrennte Liste)" - -#: ../../include/conversation.php:1285 -msgid "Other networks and post services" -msgstr "Andere Netzwerke und Platformen" - -#: ../../include/conversation.php:1291 -msgid "Set publish date" -msgstr "Veröffentlichungsdatum festlegen" - -#: ../../include/conversation.php:1540 -msgid "Discover" -msgstr "Entdecken" - -#: ../../include/conversation.php:1543 -msgid "Imported public streams" -msgstr "Importierte öffentliche Beiträge" - -#: ../../include/conversation.php:1548 -msgid "Commented Order" -msgstr "Neueste Kommentare" - -#: ../../include/conversation.php:1551 -msgid "Sort by Comment Date" -msgstr "Nach Kommentardatum sortiert" - -#: ../../include/conversation.php:1555 -msgid "Posted Order" -msgstr "Neueste Beiträge" - -#: ../../include/conversation.php:1558 -msgid "Sort by Post Date" -msgstr "Nach Beitragsdatum sortiert" - -#: ../../include/conversation.php:1566 -msgid "Posts that mention or involve you" -msgstr "Beiträge mit Beteiligung Deinerseits" - -#: ../../include/conversation.php:1575 -msgid "Activity Stream - by date" -msgstr "Activity Stream – nach Datum sortiert" - -#: ../../include/conversation.php:1581 -msgid "Starred" -msgstr "Markiert" - -#: ../../include/conversation.php:1584 -msgid "Favourite Posts" -msgstr "Markierte Beiträge" - -#: ../../include/conversation.php:1591 -msgid "Spam" -msgstr "Spam" - -#: ../../include/conversation.php:1594 -msgid "Posts flagged as SPAM" -msgstr "Nachrichten, die als SPAM markiert wurden" - -#: ../../include/conversation.php:1653 -msgid "Status Messages and Posts" -msgstr "Statusnachrichten und Beiträge" - -#: ../../include/conversation.php:1662 -msgid "About" -msgstr "Über" - -#: ../../include/conversation.php:1665 -msgid "Profile Details" -msgstr "Profil-Details" - -#: ../../include/conversation.php:1681 -msgid "Files and Storage" -msgstr "Dateien und Speicher" - -#: ../../include/conversation.php:1701 ../../include/conversation.php:1704 -#: ../../include/widgets.php:883 -msgid "Chatrooms" -msgstr "Chaträume" - -#: ../../include/conversation.php:1717 -msgid "Saved Bookmarks" -msgstr "Gespeicherte Lesezeichen" - -#: ../../include/conversation.php:1727 -msgid "Manage Webpages" -msgstr "Webseiten verwalten" - -#: ../../include/conversation.php:1792 -msgctxt "noun" -msgid "Attending" -msgid_plural "Attending" -msgstr[0] "Zusage" -msgstr[1] "Zusagen" - -#: ../../include/conversation.php:1795 -msgctxt "noun" -msgid "Not Attending" -msgid_plural "Not Attending" -msgstr[0] "Absage" -msgstr[1] "Absagen" - -#: ../../include/conversation.php:1798 -msgctxt "noun" -msgid "Undecided" -msgid_plural "Undecided" -msgstr[0] " Unentschlossen" -msgstr[1] "Unentschlossene" - -#: ../../include/conversation.php:1801 -msgctxt "noun" -msgid "Agree" -msgid_plural "Agrees" -msgstr[0] "Zustimmung" -msgstr[1] "Zustimmungen" - -#: ../../include/conversation.php:1804 -msgctxt "noun" -msgid "Disagree" -msgid_plural "Disagrees" -msgstr[0] "Ablehnung" -msgstr[1] "Ablehnungen" - -#: ../../include/conversation.php:1807 -msgctxt "noun" -msgid "Abstain" -msgid_plural "Abstains" -msgstr[0] "Enthaltung" -msgstr[1] "Enthaltungen" +#: ../../include/network.php:2243 +msgid "MySpace" +msgstr "MySpace" #: ../../include/taxonomy.php:228 ../../include/taxonomy.php:249 msgid "Tags" @@ -9201,314 +12219,340 @@ msgstr "gefällt" msgid "dislikes" msgstr "missfällt" -#: ../../include/text.php:450 -msgid "prev" -msgstr "vorherige" +#: ../../include/import.php:30 +msgid "" +"Cannot create a duplicate channel identifier on this system. Import failed." +msgstr "Kann keinen doppelten Kanal-Identifikator auf diesem System erzeugen (Spitzname oder Hash schon belegt). Import fehlgeschlagen." -#: ../../include/text.php:452 -msgid "first" -msgstr "erste" +#: ../../include/import.php:90 +msgid "Channel clone failed. Import failed." +msgstr "Klonen des Kanals fehlgeschlagen. Import fehlgeschlagen." -#: ../../include/text.php:481 -msgid "last" -msgstr "letzte" +#: ../../include/import.php:1354 +msgid "Unable to import element \"" +msgstr "Element konnte nicht importiert werden." -#: ../../include/text.php:484 -msgid "next" -msgstr "nächste" +#: ../../include/security.php:117 +msgid "guest:" +msgstr "Gast:" -#: ../../include/text.php:494 -msgid "older" -msgstr "älter" +#: ../../include/security.php:535 +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 "Das Security-Token des Formulars war nicht korrekt. Das ist wahrscheinlich passiert, weil das Formular zu lange (>3 Stunden) offen war, bevor es abgeschickt wurde." -#: ../../include/text.php:496 -msgid "newer" -msgstr "neuer" +#: ../../include/zot.php:662 +msgid "Invalid data packet" +msgstr "Ungültiges Datenpaket" -#: ../../include/text.php:889 -msgid "No connections" -msgstr "Keine Verbindungen" +#: ../../include/zot.php:678 +msgid "Unable to verify channel signature" +msgstr "Konnte die Signatur des Kanals nicht verifizieren" -#: ../../include/text.php:914 +#: ../../include/zot.php:2320 #, php-format -msgid "View all %s connections" -msgstr "Alle Verbindungen von %s anzeigen" +msgid "Unable to verify site signature for %s" +msgstr "Kann die Signatur der Seite von %s nicht verifizieren" -#: ../../include/text.php:1059 ../../include/text.php:1064 -msgid "poke" -msgstr "anstupsen" +#: ../../include/zot.php:3718 +msgid "invalid target signature" +msgstr "Ungültige Signatur des Ziels" -#: ../../include/text.php:1065 -msgid "ping" -msgstr "anpingen" +#: ../../include/items.php:837 ../../include/items.php:882 +msgid "(Unknown)" +msgstr "(Unbekannt)" -#: ../../include/text.php:1065 -msgid "pinged" -msgstr "pingte" +#: ../../include/items.php:1080 +msgid "Visible to anybody on the internet." +msgstr "Für jeden im Internet sichtbar." -#: ../../include/text.php:1066 -msgid "prod" -msgstr "knuffen" +#: ../../include/items.php:1082 +msgid "Visible to you only." +msgstr "Nur für Dich sichtbar." -#: ../../include/text.php:1066 -msgid "prodded" -msgstr "knuffte" +#: ../../include/items.php:1084 +msgid "Visible to anybody in this network." +msgstr "Für jedes $Projectname-Mitglied sichtbar." -#: ../../include/text.php:1067 -msgid "slap" -msgstr "ohrfeigen" +#: ../../include/items.php:1086 +msgid "Visible to anybody authenticated." +msgstr "Für jeden sichtbar, der angemeldet ist." -#: ../../include/text.php:1067 -msgid "slapped" -msgstr "ohrfeigte" +#: ../../include/items.php:1088 +#, php-format +msgid "Visible to anybody on %s." +msgstr "Für jeden auf %s sichtbar." -#: ../../include/text.php:1068 -msgid "finger" -msgstr "befummeln" +#: ../../include/items.php:1090 +msgid "Visible to all connections." +msgstr "Für alle Verbindungen sichtbar." -#: ../../include/text.php:1068 -msgid "fingered" -msgstr "befummelte" +#: ../../include/items.php:1092 +msgid "Visible to approved connections." +msgstr "Nur für akzeptierte Verbindungen sichtbar." -#: ../../include/text.php:1069 -msgid "rebuff" -msgstr "eine Abfuhr erteilen" +#: ../../include/items.php:1094 +msgid "Visible to specific connections." +msgstr "Sichtbar für bestimmte Verbindungen." -#: ../../include/text.php:1069 -msgid "rebuffed" -msgstr "zurückgewiesen" +#: ../../include/items.php:3892 +msgid "Privacy group is empty." +msgstr "Gruppe ist leer." -#: ../../include/text.php:1081 -msgid "happy" -msgstr "glücklich" +#: ../../include/items.php:3899 +#, php-format +msgid "Privacy group: %s" +msgstr "Gruppe: %s" -#: ../../include/text.php:1082 -msgid "sad" -msgstr "traurig" +#: ../../include/items.php:3911 +msgid "Connection not found." +msgstr "Die Verbindung wurde nicht gefunden." -#: ../../include/text.php:1083 -msgid "mellow" -msgstr "sanft" +#: ../../include/items.php:4260 +msgid "profile photo" +msgstr "Profilfoto" -#: ../../include/text.php:1084 -msgid "tired" -msgstr "müde" +#: ../../include/items.php:4456 +#, php-format +msgid "[Edited %s]" +msgstr "[%s wurde bearbeitet]" -#: ../../include/text.php:1085 -msgid "perky" -msgstr "frech" +#: ../../include/items.php:4456 +msgctxt "edit_activity" +msgid "Post" +msgstr "Beitrag" -#: ../../include/text.php:1086 -msgid "angry" -msgstr "sauer" +#: ../../include/items.php:4456 +msgctxt "edit_activity" +msgid "Comment" +msgstr "Kommentar" -#: ../../include/text.php:1087 -msgid "stupefied" -msgstr "verblüfft" +#: ../../include/auth.php:148 +msgid "Logged out." +msgstr "Ausgeloggt." -#: ../../include/text.php:1088 -msgid "puzzled" -msgstr "verwirrt" +#: ../../include/auth.php:275 +msgid "Failed authentication" +msgstr "Authentifizierung fehlgeschlagen" -#: ../../include/text.php:1089 -msgid "interested" -msgstr "interessiert" +#: ../../include/activities.php:41 +msgid " and " +msgstr "und" -#: ../../include/text.php:1090 -msgid "bitter" -msgstr "verbittert" +#: ../../include/activities.php:49 +msgid "public profile" +msgstr "öffentliches Profil" -#: ../../include/text.php:1091 -msgid "cheerful" -msgstr "fröhlich" +#: ../../include/activities.php:58 +#, php-format +msgid "%1$s changed %2$s to “%3$s”" +msgstr "%1$s hat %2$s auf “%3$s” geändert" -#: ../../include/text.php:1092 -msgid "alive" -msgstr "lebendig" +#: ../../include/activities.php:59 +#, php-format +msgid "Visit %1$s's %2$s" +msgstr "Besuche %1$s's %2$s" -#: ../../include/text.php:1093 -msgid "annoyed" -msgstr "verärgert" +#: ../../include/activities.php:62 +#, php-format +msgid "%1$s has an updated %2$s, changing %3$s." +msgstr "%1$s hat ein aktualisiertes %2$s, %3$s wurde verändert." -#: ../../include/text.php:1094 -msgid "anxious" -msgstr "unruhig" +#: ../../include/attach.php:248 ../../include/attach.php:336 +msgid "Item was not found." +msgstr "Beitrag wurde nicht gefunden." -#: ../../include/text.php:1095 -msgid "cranky" -msgstr "schrullig" +#: ../../include/attach.php:497 +msgid "No source file." +msgstr "Keine Quelldatei." -#: ../../include/text.php:1096 -msgid "disturbed" -msgstr "verstört" +#: ../../include/attach.php:519 +msgid "Cannot locate file to replace" +msgstr "Kann Datei zum Ersetzen nicht finden" -#: ../../include/text.php:1097 -msgid "frustrated" -msgstr "frustriert" +#: ../../include/attach.php:537 +msgid "Cannot locate file to revise/update" +msgstr "Kann Datei zum Prüfen/Aktualisieren nicht finden" -#: ../../include/text.php:1098 -msgid "depressed" -msgstr "deprimiert" +#: ../../include/attach.php:668 +#, php-format +msgid "File exceeds size limit of %d" +msgstr "Datei überschreitet das Größen-Limit von %d" -#: ../../include/text.php:1099 -msgid "motivated" -msgstr "motiviert" +#: ../../include/attach.php:682 +#, php-format +msgid "You have reached your limit of %1$.0f Mbytes attachment storage." +msgstr "Die Größe Deiner Datei-Anhänge hat das Maximum von %1$.0f MByte erreicht." -#: ../../include/text.php:1100 -msgid "relaxed" -msgstr "entspannt" +#: ../../include/attach.php:852 +msgid "File upload failed. Possible system limit or action terminated." +msgstr "Datei-Upload fehlgeschlagen. Mögliche Systembegrenzung oder abgebrochener Prozess." -#: ../../include/text.php:1101 -msgid "surprised" -msgstr "überrascht" +#: ../../include/attach.php:865 +msgid "Stored file could not be verified. Upload failed." +msgstr "Gespeichert Datei konnte nicht verifiziert werden. Upload abgebrochen." -#: ../../include/text.php:1289 -msgid "May" -msgstr "Mai" +#: ../../include/attach.php:920 ../../include/attach.php:936 +msgid "Path not available." +msgstr "Pfad nicht verfügbar." -#: ../../include/text.php:1366 ../../include/text.php:1370 -msgid "Unknown Attachment" -msgstr "Unbekannter Anhang" +#: ../../include/attach.php:982 ../../include/attach.php:1140 +msgid "Empty pathname" +msgstr "Leere Pfadangabe" -#: ../../include/text.php:1372 -msgid "unknown" -msgstr "unbekannt" +#: ../../include/attach.php:1008 +msgid "duplicate filename or path" +msgstr "doppelter Dateiname oder Pfad" -#: ../../include/text.php:1408 -msgid "remove category" -msgstr "Kategorie entfernen" +#: ../../include/attach.php:1030 +msgid "Path not found." +msgstr "Pfad nicht gefunden." -#: ../../include/text.php:1485 -msgid "remove from file" -msgstr "aus der Datei entfernen" +#: ../../include/attach.php:1094 +msgid "mkdir failed." +msgstr "mkdir fehlgeschlagen." -#: ../../include/text.php:1784 ../../include/text.php:1855 -msgid "default" -msgstr "Standard" +#: ../../include/attach.php:1098 +msgid "database storage failed." +msgstr "Speichern in der Datenbank fehlgeschlagen." -#: ../../include/text.php:1792 -msgid "Page layout" -msgstr "Seiten-Layout" +#: ../../include/attach.php:1146 +msgid "Empty path" +msgstr "Leere Pfadangabe" -#: ../../include/text.php:1792 -msgid "You can create your own with the layouts tool" -msgstr "Mit dem Gestaltungswerkzeug kannst Du Deine eigenen Layouts erstellen" +#: ../../include/event.php:22 ../../include/event.php:69 +#: ../../include/bb2diaspora.php:498 +msgid "l F d, Y \\@ g:i A" +msgstr "l, d. F Y, H:i" -#: ../../include/text.php:1834 -msgid "Page content type" -msgstr "Art des Seiteninhalts" +#: ../../include/event.php:30 ../../include/event.php:73 +#: ../../include/bb2diaspora.php:504 +msgid "Starts:" +msgstr "Beginnt:" -#: ../../include/text.php:1867 +#: ../../include/event.php:40 ../../include/event.php:77 +#: ../../include/bb2diaspora.php:512 +msgid "Finishes:" +msgstr "Endet:" + +#: ../../include/event.php:824 +msgid "This event has been added to your calendar." +msgstr "Dieser Termin wurde zu Deinem Kalender hinzugefügt" + +#: ../../include/event.php:1024 +msgid "Not specified" +msgstr "Keine Angabe" + +#: ../../include/event.php:1025 +msgid "Needs Action" +msgstr "Aktion erforderlich" + +#: ../../include/event.php:1026 +msgid "Completed" +msgstr "Abgeschlossen" + +#: ../../include/event.php:1027 +msgid "In Process" +msgstr "In Bearbeitung" + +#: ../../include/event.php:1028 +msgid "Cancelled" +msgstr "gestrichen" + +#: ../../include/follow.php:27 +msgid "Channel is blocked on this site." +msgstr "Der Kanal ist auf dieser Seite blockiert " + +#: ../../include/follow.php:32 +msgid "Channel location missing." +msgstr "Adresse des Kanals fehlt." + +#: ../../include/follow.php:80 +msgid "Response from remote channel was incomplete." +msgstr "Antwort des entfernten Kanals war unvollständig." + +#: ../../include/follow.php:97 +msgid "Channel was deleted and no longer exists." +msgstr "Kanal wurde gelöscht und existiert nicht mehr." + +#: ../../include/follow.php:147 ../../include/follow.php:183 +msgid "Protocol disabled." +msgstr "Protokoll deaktiviert." + +#: ../../include/follow.php:171 +msgid "Channel discovery failed." +msgstr "Kanalsuche fehlgeschlagen" + +#: ../../include/follow.php:210 +msgid "Cannot connect to yourself." +msgstr "Du kannst Dich nicht mit Dir selbst verbinden." + +#: ../../include/group.php:26 +msgid "" +"A deleted group with this name was revived. Existing item permissions " +"may apply to this group and any future members. If this is " +"not what you intended, please create another group with a different name." +msgstr "Es hat früher schon einmal eine Gruppe mit diesem Namen existiert, die gelöscht wurde. Es könnten von damals noch Elemente (Beiträge, Dateien etc.) vorhanden sein, die allen jetzigen und zukünftigen Mitgliedern dieser Gruppe den Zugriff erlauben. Wenn das nicht Deine Absicht ist, erstelle bitte eine neue Gruppe mit einem anderen Namen." + +#: ../../include/group.php:248 +msgid "Add new connections to this privacy group" +msgstr "Neue Verbindung zu dieser Gruppe hinzufügen" + +#: ../../include/group.php:289 +msgid "edit" +msgstr "Bearbeiten" + +#: ../../include/group.php:312 +msgid "Edit group" +msgstr "Gruppe ändern" + +#: ../../include/group.php:313 +msgid "Add privacy group" +msgstr "Gruppe hinzufügen" + +#: ../../include/group.php:314 +msgid "Channels not in any privacy group" +msgstr "Kanäle, die in keiner Gruppe sind" + +#: ../../include/group.php:316 ../../include/widgets.php:284 +msgid "add" +msgstr "hinzufügen" + +#: ../../include/language.php:380 msgid "Select an alternate language" msgstr "Wähle eine alternative Sprache" -#: ../../include/text.php:2004 -msgid "activity" -msgstr "Aktivität" +#: ../../include/photos.php:115 +#, php-format +msgid "Image exceeds website size limit of %lu bytes" +msgstr "Bild überschreitet das Webseitenlimit von %lu Bytes" -#: ../../include/text.php:2305 -msgid "Design Tools" -msgstr "Gestaltungswerkzeuge" +#: ../../include/photos.php:122 +msgid "Image file is empty." +msgstr "Bilddatei ist leer." -#: ../../include/text.php:2311 -msgid "Pages" -msgstr "Seiten" +#: ../../include/photos.php:260 +msgid "Photo storage failed." +msgstr "Fotospeicherung fehlgeschlagen." -#: ../../include/text.php:2333 -msgid "Import website..." -msgstr "Webseite importieren..." +#: ../../include/photos.php:300 +msgid "a new photo" +msgstr "ein neues Foto" -#: ../../include/text.php:2334 -msgid "Select folder to import" -msgstr "Ordner zum Importieren auswählen" +#: ../../include/photos.php:304 +#, php-format +msgctxt "photo_upload" +msgid "%1$s posted %2$s to %3$s" +msgstr "%1$s hat %2$s auf %3$s veröffentlicht" -#: ../../include/text.php:2335 -msgid "Import from a zipped folder:" -msgstr "Aus einem gezippten Ordner importieren:" +#: ../../include/photos.php:507 ../../include/conversation.php:1695 +msgid "Photo Albums" +msgstr "Fotoalben" -#: ../../include/text.php:2336 -msgid "Import from cloud files:" -msgstr "Aus Cloud-Dateien importieren:" - -#: ../../include/text.php:2337 -msgid "/cloud/channel/path/to/folder" -msgstr "/Cloud/Kanal/Pfad/zum/Ordner" - -#: ../../include/text.php:2338 -msgid "Enter path to website files" -msgstr "Pfad zu Webseitendateien eingeben" - -#: ../../include/text.php:2339 -msgid "Select folder" -msgstr "Ordner auswählen" - -#: ../../include/text.php:2340 -msgid "Export website..." -msgstr "Webseite exportieren..." - -#: ../../include/text.php:2341 -msgid "Export to a zip file" -msgstr "In eine ZIP-Datei exportieren" - -#: ../../include/text.php:2342 -msgid "website.zip" -msgstr "website.zip" - -#: ../../include/text.php:2343 -msgid "Enter a name for the zip file." -msgstr "Geben Sie einen für die ZIP-Datei ein." - -#: ../../include/text.php:2344 -msgid "Export to cloud files" -msgstr "In Cloud-Dateien exportieren" - -#: ../../include/text.php:2345 -msgid "/path/to/export/folder" -msgstr "/Pfad/zum/exportierenden/Ordner" - -#: ../../include/text.php:2346 -msgid "Enter a path to a cloud files destination." -msgstr "Gib den Pfad zu einem Datei-Speicherort in der Cloud ein." - -#: ../../include/text.php:2347 -msgid "Specify folder" -msgstr "Ordner angeben" - -#: ../../include/api.php:1330 -msgid "Public Timeline" -msgstr "Öffentliche Zeitleiste" - -#: ../../include/dir_fns.php:141 -msgid "Directory Options" -msgstr "Verzeichnisoptionen" - -#: ../../include/dir_fns.php:143 -msgid "Safe Mode" -msgstr "Sicherer Modus" - -#: ../../include/dir_fns.php:144 -msgid "Public Forums Only" -msgstr "Nur öffentliche Foren" - -#: ../../include/dir_fns.php:145 -msgid "This Website Only" -msgstr "Nur dieser Hub" - -#: ../../include/message.php:20 -msgid "No recipient provided." -msgstr "Kein Empfänger angegeben" - -#: ../../include/message.php:25 -msgid "[no subject]" -msgstr "[no subject]" - -#: ../../include/message.php:45 -msgid "Unable to determine sender." -msgstr "Kann Absender nicht bestimmen." - -#: ../../include/message.php:222 -msgid "Stored post could not be verified." -msgstr "Gespeicherter Beitrag konnten nicht überprüft werden." +#: ../../include/photos.php:511 +msgid "Upload New Photos" +msgstr "Neue Fotos hochladen" #: ../../include/widgets.php:103 msgid "System" @@ -9551,10 +12595,6 @@ msgstr "Notizen" msgid "Remove term" msgstr "Eintrag löschen" -#: ../../include/widgets.php:283 ../../include/features.php:84 -msgid "Saved Searches" -msgstr "Gespeicherte Suchanfragen" - #: ../../include/widgets.php:390 msgid "Archives" msgstr "Archive" @@ -9639,6 +12679,11 @@ msgstr "Kalender exportieren" msgid "Import Calendar" msgstr "Kalender importieren" +#: ../../include/widgets.php:883 ../../include/conversation.php:1722 +#: ../../include/conversation.php:1725 +msgid "Chatrooms" +msgstr "Chaträume" + #: ../../include/widgets.php:887 msgid "Overview" msgstr "Übersicht" @@ -9647,375 +12692,508 @@ msgstr "Übersicht" msgid "Chat Members" msgstr "Chatmitglieder" -#: ../../include/widgets.php:916 +#: ../../include/widgets.php:960 msgid "Wiki List" msgstr "Wikiliste" -#: ../../include/widgets.php:954 +#: ../../include/widgets.php:968 +msgid "Create new wiki" +msgstr "Neues Wiki erstellen" + +#: ../../include/widgets.php:978 +msgid "Send notification" +msgstr "Benachrichtigung senden" + +#: ../../include/widgets.php:1014 msgid "Wiki Pages" msgstr "Wikiseiten" -#: ../../include/widgets.php:989 +#: ../../include/widgets.php:1019 +msgid "Add new page" +msgstr "Neue Seite hinzufügen" + +#: ../../include/widgets.php:1020 +msgid "Page name" +msgstr "Seitenname" + +#: ../../include/widgets.php:1052 msgid "Bookmarked Chatrooms" msgstr "Gespeicherte Chatrooms" -#: ../../include/widgets.php:1020 +#: ../../include/widgets.php:1083 msgid "Suggested Chatrooms" msgstr "Chatraum-Vorschläge" -#: ../../include/widgets.php:1166 ../../include/widgets.php:1278 +#: ../../include/widgets.php:1228 ../../include/widgets.php:1340 msgid "photo/image" msgstr "Foto/Bild" -#: ../../include/widgets.php:1221 +#: ../../include/widgets.php:1283 msgid "Click to show more" msgstr "Klick, um mehr anzuzeigen" -#: ../../include/widgets.php:1372 +#: ../../include/widgets.php:1434 msgid "Rating Tools" msgstr "Bewertungswerkzeuge" -#: ../../include/widgets.php:1376 ../../include/widgets.php:1378 +#: ../../include/widgets.php:1438 ../../include/widgets.php:1440 msgid "Rate Me" msgstr "Bewerte mich" -#: ../../include/widgets.php:1381 +#: ../../include/widgets.php:1443 msgid "View Ratings" msgstr "Bewertungen ansehen" -#: ../../include/widgets.php:1465 +#: ../../include/widgets.php:1536 msgid "Forums" msgstr "Foren" -#: ../../include/widgets.php:1494 +#: ../../include/widgets.php:1565 msgid "Tasks" msgstr "Aufgaben" -#: ../../include/widgets.php:1505 +#: ../../include/widgets.php:1576 msgid "Documentation" msgstr "Dokumentation" -#: ../../include/widgets.php:1557 ../../include/widgets.php:1595 +#: ../../include/widgets.php:1632 ../../include/widgets.php:1670 msgid "Member registrations waiting for confirmation" msgstr "Nutzer-Anmeldungen, die auf Bestätigung warten" -#: ../../include/widgets.php:1563 +#: ../../include/widgets.php:1638 msgid "Inspect queue" msgstr "Warteschlange kontrollieren" -#: ../../include/widgets.php:1565 +#: ../../include/widgets.php:1640 msgid "DB updates" msgstr "DB-Aktualisierungen" -#: ../../include/widgets.php:1591 +#: ../../include/widgets.php:1666 msgid "Plugin Features" msgstr "Plug-In Funktionen" -#: ../../include/zot.php:700 -msgid "Invalid data packet" -msgstr "Ungültiges Datenpaket" +#: ../../include/acl_selectors.php:198 +msgid "Who can see this?" +msgstr "Wer kann das sehen?" -#: ../../include/zot.php:716 -msgid "Unable to verify channel signature" -msgstr "Konnte die Signatur des Kanals nicht verifizieren" +#: ../../include/acl_selectors.php:199 +msgid "Custom selection" +msgstr "Benutzerdefinierte Auswahl" -#: ../../include/zot.php:2329 +#: ../../include/acl_selectors.php:200 +msgid "" +"Select \"Show\" to allow viewing. \"Don't show\" lets you override and limit" +" the scope of \"Show\"." +msgstr "Wähle \"Anzeigen\", um Betrachtung zuzulassen. \"Nicht anzeigen\" überstimmt und limitiert den Aktionsradius von \"Anzeigen\" für Ausnahmen." + +#: ../../include/acl_selectors.php:201 +msgid "Show" +msgstr "Anzeigen" + +#: ../../include/acl_selectors.php:202 +msgid "Don't show" +msgstr "Nicht anzeigen" + +#: ../../include/acl_selectors.php:235 #, php-format -msgid "Unable to verify site signature for %s" -msgstr "Kann die Signatur der Seite von %s nicht verifizieren" - -#: ../../include/zot.php:3711 -msgid "invalid target signature" -msgstr "Ungültige Signatur des Ziels" - -#: ../../include/features.php:50 -msgid "General Features" -msgstr "Allgemeine Funktionen" - -#: ../../include/features.php:52 -msgid "Content Expiration" -msgstr "Verfall von Inhalten" - -#: ../../include/features.php:52 -msgid "Remove posts/comments and/or private messages at a future time" -msgstr "Ermöglicht das automatische Löschen von Beiträgen, Kommentaren und/oder privaten Nachrichten zu einem zukünftigen Datum." - -#: ../../include/features.php:53 -msgid "Multiple Profiles" -msgstr "Mehrfachprofile" - -#: ../../include/features.php:53 -msgid "Ability to create multiple profiles" -msgstr "Ermöglicht das Anlegen mehrerer Profile pro Kanal" - -#: ../../include/features.php:54 -msgid "Advanced Profiles" -msgstr "Erweiterte Profile" - -#: ../../include/features.php:54 -msgid "Additional profile sections and selections" -msgstr "Stellt zusätzliche Bereiche und Felder im Profil zur Verfügung" - -#: ../../include/features.php:55 -msgid "Profile Import/Export" -msgstr "Profil-Import/Export" - -#: ../../include/features.php:55 -msgid "Save and load profile details across sites/channels" -msgstr "Ermöglicht das Speichern von Profilen, um sie in einen anderen Kanal zu importieren" - -#: ../../include/features.php:56 -msgid "Web Pages" -msgstr "Webseiten" - -#: ../../include/features.php:56 -msgid "Provide managed web pages on your channel" -msgstr "Ermöglicht das Erstellen von Webseiten in Deinem Kanal" - -#: ../../include/features.php:57 -msgid "Provide a wiki for your channel" -msgstr "Stelle ein Wiki in Deinem Kanal zur Verfügung" - -#: ../../include/features.php:59 -msgid "Private Notes" -msgstr "Private Notizen" - -#: ../../include/features.php:59 -msgid "Enables a tool to store notes and reminders (note: not encrypted)" -msgstr "Aktiviert ein Werkzeug mit dem Notizen und Erinnerungen gespeichert werden können (Hinweis: nicht verschlüsselt)" - -#: ../../include/features.php:60 -msgid "Navigation Channel Select" -msgstr "Kanal-Auswahl in der Navigationsleiste" - -#: ../../include/features.php:60 -msgid "Change channels directly from within the navigation dropdown menu" -msgstr "Ermöglicht den direkten Wechsel zu anderen Kanälen über das Navigationsmenü" - -#: ../../include/features.php:61 -msgid "Photo Location" -msgstr "Aufnahmeort" - -#: ../../include/features.php:61 -msgid "If location data is available on uploaded photos, link this to a map." -msgstr "Verlinkt den Aufnahmeort von Fotos (falls verfügbar) auf einer Karte" - -#: ../../include/features.php:62 -msgid "Access Controlled Chatrooms" -msgstr "Zugriffskontrollierte Chaträume" - -#: ../../include/features.php:62 -msgid "Provide chatrooms and chat services with access control." -msgstr "Bieten Sie Chaträume und Chatdienste mit Zugriffskontrolle an." - -#: ../../include/features.php:63 -msgid "Smart Birthdays" -msgstr "Smarte Geburtstage" - -#: ../../include/features.php:63 msgid "" -"Make birthday events timezone aware in case your friends are scattered " -"across the planet." -msgstr "Stellt für Geburtstage einen Zeitzonenbezug her, falls deine Freunde über den ganzen Planeten verstreut sind." +"Post permissions %s cannot be changed %s after a post is shared.
        These" +" permissions set who is allowed to view the post." +msgstr "Beitragsberechtigungen %s können nicht geändert werden %s, nachdem der Beitrag gesendet wurde.
        Diese Berechtigungen bestimmen, wer den Beitrag sehen kann." -#: ../../include/features.php:68 -msgid "Post Composition Features" -msgstr "Nachbearbeitungsfunktionen" +#: ../../include/oembed.php:312 +msgid " by " +msgstr "von" -#: ../../include/features.php:69 -msgid "Large Photos" -msgstr "Große Fotos" +#: ../../include/oembed.php:313 +msgid " on " +msgstr "am" -#: ../../include/features.php:69 +#: ../../include/oembed.php:342 +msgid "Embedded content" +msgstr "Eingebetteter Inhalt" + +#: ../../include/oembed.php:351 +msgid "Embedding disabled" +msgstr "Einbetten deaktiviert" + +#: ../../include/bb2diaspora.php:403 +msgid "Attachments:" +msgstr "Anhänge:" + +#: ../../include/bb2diaspora.php:500 +msgid "$Projectname event notification:" +msgstr "$Projectname-Terminbenachrichtigung:" + +#: ../../include/permissions.php:35 +msgid "Can view my normal stream and posts" +msgstr "Kann meine normalen Beiträge sehen" + +#: ../../include/permissions.php:39 +msgid "Can view my webpages" +msgstr "Kann meine Webseiten sehen" + +#: ../../include/permissions.php:43 +msgid "Can post on my channel page (\"wall\")" +msgstr "Kann auf meiner Kanal-Seite (\"wall\") Beiträge veröffentlichen" + +#: ../../include/permissions.php:46 +msgid "Can like/dislike stuff" +msgstr "Kann andere Elemente mögen/nicht mögen" + +#: ../../include/permissions.php:46 +msgid "Profiles and things other than posts/comments" +msgstr "Profile und alles außer Beiträge und Kommentare" + +#: ../../include/permissions.php:48 +msgid "Can forward to all my channel contacts via post @mentions" +msgstr "Kann an alle meine Kontakte via @-Erwähnung Nachrichten weiterleiten" + +#: ../../include/permissions.php:48 +msgid "Advanced - useful for creating group forum channels" +msgstr "Fortgeschritten - sinnvoll, um Gruppen-Kanäle/-Foren zu erstellen" + +#: ../../include/permissions.php:49 +msgid "Can chat with me (when available)" +msgstr "Kann mit mir chatten (wenn verfügbar)" + +#: ../../include/permissions.php:50 +msgid "Can write to my file storage and photos" +msgstr "Kann in meine Datei- und Bilderordner schreiben" + +#: ../../include/permissions.php:51 +msgid "Can edit my webpages" +msgstr "Kann meine Webseiten bearbeiten" + +#: ../../include/permissions.php:53 +msgid "Somewhat advanced - very useful in open communities" +msgstr "Etwas fortgeschritten – sehr nützlich in offenen Gemeinschaften" + +#: ../../include/permissions.php:55 +msgid "Can administer my channel resources" +msgstr "Kann meine Kanäle administrieren" + +#: ../../include/permissions.php:55 msgid "" -"Include large (1024px) photo thumbnails in posts. If not enabled, use small " -"(640px) photo thumbnails" -msgstr "Große Vorschaubilder (1024px) in Beiträgen anzeigen. Falls nicht aktiviert, werden kleine Vorschaubilder (640px) verwendet." +"Extremely advanced. Leave this alone unless you know what you are doing" +msgstr "Sehr fortgeschritten. Bearbeite das nur, wenn Du genau weißt, was Du tust" -#: ../../include/features.php:70 -msgid "Automatically import channel content from other channels or feeds" -msgstr "Ermöglicht den automatischen Import von Inhalten für diesen Kanal von anderen Kanälen oder Feeds" +#: ../../include/conversation.php:204 +#, php-format +msgid "%1$s is now connected with %2$s" +msgstr "%1$s ist jetzt mit %2$s verbunden" -#: ../../include/features.php:71 -msgid "Even More Encryption" -msgstr "Noch mehr Verschlüsselung" +#: ../../include/conversation.php:239 +#, php-format +msgid "%1$s poked %2$s" +msgstr "%1$s stupste %2$s an" -#: ../../include/features.php:71 -msgid "" -"Allow optional encryption of content end-to-end with a shared secret key" -msgstr "Ermöglicht optional die zusätzliche Verschlüsselung von Inhalten (Ende-zu-Ende mit geteiltem Schlüssel)" +#: ../../include/conversation.php:710 +#, php-format +msgid "View %s's profile @ %s" +msgstr "%ss Profil auf %s ansehen" -#: ../../include/features.php:72 -msgid "Enable Voting Tools" -msgstr "Umfragewerkzeuge aktivieren" +#: ../../include/conversation.php:729 +msgid "Categories:" +msgstr "Kategorien:" -#: ../../include/features.php:72 -msgid "Provide a class of post which others can vote on" -msgstr "Aktiviert die Umfragewerkzeuge, um anderen die Möglichkeit zu geben, einem Beitrag zuzustimmen, ihn abzulehnen oder sich zu enthalten. (Muss im Beitrag selbst noch aktiviert werden.)" +#: ../../include/conversation.php:730 +msgid "Filed under:" +msgstr "Gespeichert unter:" -#: ../../include/features.php:73 -msgid "Disable Comments" +#: ../../include/conversation.php:755 +msgid "View in context" +msgstr "Im Zusammenhang anschauen" + +#: ../../include/conversation.php:865 +msgid "remove" +msgstr "lösche" + +#: ../../include/conversation.php:870 +msgid "Delete Selected Items" +msgstr "Lösche die ausgewählten Elemente" + +#: ../../include/conversation.php:963 +msgid "View Source" +msgstr "Quelle anzeigen" + +#: ../../include/conversation.php:964 +msgid "Follow Thread" +msgstr "Unterhaltung folgen" + +#: ../../include/conversation.php:965 +msgid "Unfollow Thread" +msgstr "Unterhaltung nicht mehr folgen" + +#: ../../include/conversation.php:970 +msgid "Activity/Posts" +msgstr "Aktivitäten/Beiträge" + +#: ../../include/conversation.php:972 +msgid "Edit Connection" +msgstr "Verbindung bearbeiten" + +#: ../../include/conversation.php:973 +msgid "Message" +msgstr "Nachricht" + +#: ../../include/conversation.php:1093 +#, php-format +msgid "%s likes this." +msgstr "%s gefällt das." + +#: ../../include/conversation.php:1093 +#, php-format +msgid "%s doesn't like this." +msgstr "%s gefällt das nicht." + +#: ../../include/conversation.php:1097 +#, php-format +msgid "%2$d people like this." +msgid_plural "%2$d people like this." +msgstr[0] "%2$d Person gefällt das." +msgstr[1] "%2$d Leuten gefällt das." + +#: ../../include/conversation.php:1099 +#, php-format +msgid "%2$d people don't like this." +msgid_plural "%2$d people don't like this." +msgstr[0] "%2$d Person gefällt das nicht." +msgstr[1] "%2$d Leuten gefällt das nicht." + +#: ../../include/conversation.php:1105 +msgid "and" +msgstr "und" + +#: ../../include/conversation.php:1108 +#, php-format +msgid ", and %d other people" +msgid_plural ", and %d other people" +msgstr[0] "" +msgstr[1] ", und %d andere" + +#: ../../include/conversation.php:1109 +#, php-format +msgid "%s like this." +msgstr "%s gefällt das." + +#: ../../include/conversation.php:1109 +#, php-format +msgid "%s don't like this." +msgstr "%s gefällt das nicht." + +#: ../../include/conversation.php:1152 +msgid "Set your location" +msgstr "Standort" + +#: ../../include/conversation.php:1153 +msgid "Clear browser location" +msgstr "Browser-Standort löschen" + +#: ../../include/conversation.php:1201 +msgid "Tag term:" +msgstr "Schlagwort:" + +#: ../../include/conversation.php:1202 +msgid "Where are you right now?" +msgstr "Wo bist Du jetzt grade?" + +#: ../../include/conversation.php:1211 +msgid "Comments enabled" +msgstr "Kommentare aktiviert" + +#: ../../include/conversation.php:1212 +msgid "Comments disabled" +msgstr "Kommentare deaktiviert" + +#: ../../include/conversation.php:1250 +msgid "Page link name" +msgstr "Link zur Seite" + +#: ../../include/conversation.php:1253 +msgid "Post as" +msgstr "Veröffentlichen als" + +#: ../../include/conversation.php:1267 +msgid "Toggle voting" +msgstr "Umfragewerkzeug aktivieren" + +#: ../../include/conversation.php:1270 +msgid "Disable comments" msgstr "Kommentare deaktivieren" -#: ../../include/features.php:73 -msgid "Provide the option to disable comments for a post" -msgstr "Ermöglicht, die Kommentarfunktion für einzelne Beiträge abzuschalten" +#: ../../include/conversation.php:1271 +msgid "Toggle comments" +msgstr "Kommentare umschalten" -#: ../../include/features.php:74 -msgid "Delayed Posting" -msgstr "Verzögertes Senden" +#: ../../include/conversation.php:1279 +msgid "Categories (optional, comma-separated list)" +msgstr "Kategorien (optional, kommagetrennte Liste)" -#: ../../include/features.php:74 -msgid "Allow posts to be published at a later date" -msgstr "Ermöglicht es, Beiträge zu einem späteren Zeitpunkt zu veröffentlichen" +#: ../../include/conversation.php:1302 +msgid "Other networks and post services" +msgstr "Andere Netzwerke und Platformen" -#: ../../include/features.php:75 -msgid "Suppress Duplicate Posts/Comments" -msgstr "Doppelte Beiträge unterdrücken" +#: ../../include/conversation.php:1308 +msgid "Set publish date" +msgstr "Veröffentlichungsdatum festlegen" -#: ../../include/features.php:75 +#: ../../include/conversation.php:1562 +msgid "Discover" +msgstr "Entdecken" + +#: ../../include/conversation.php:1565 +msgid "Imported public streams" +msgstr "Importierte öffentliche Beiträge" + +#: ../../include/conversation.php:1570 +msgid "Commented Order" +msgstr "Neueste Kommentare" + +#: ../../include/conversation.php:1573 +msgid "Sort by Comment Date" +msgstr "Nach Kommentardatum sortiert" + +#: ../../include/conversation.php:1577 +msgid "Posted Order" +msgstr "Neueste Beiträge" + +#: ../../include/conversation.php:1580 +msgid "Sort by Post Date" +msgstr "Nach Beitragsdatum sortiert" + +#: ../../include/conversation.php:1588 +msgid "Posts that mention or involve you" +msgstr "Beiträge mit Beteiligung Deinerseits" + +#: ../../include/conversation.php:1597 +msgid "Activity Stream - by date" +msgstr "Activity Stream – nach Datum sortiert" + +#: ../../include/conversation.php:1603 +msgid "Starred" +msgstr "Markiert" + +#: ../../include/conversation.php:1606 +msgid "Favourite Posts" +msgstr "Markierte Beiträge" + +#: ../../include/conversation.php:1613 +msgid "Spam" +msgstr "Spam" + +#: ../../include/conversation.php:1616 +msgid "Posts flagged as SPAM" +msgstr "Nachrichten, die als SPAM markiert wurden" + +#: ../../include/conversation.php:1674 +msgid "Status Messages and Posts" +msgstr "Statusnachrichten und Beiträge" + +#: ../../include/conversation.php:1683 +msgid "About" +msgstr "Über" + +#: ../../include/conversation.php:1686 +msgid "Profile Details" +msgstr "Profil-Details" + +#: ../../include/conversation.php:1702 +msgid "Files and Storage" +msgstr "Dateien und Speicher" + +#: ../../include/conversation.php:1738 +msgid "Saved Bookmarks" +msgstr "Gespeicherte Lesezeichen" + +#: ../../include/conversation.php:1748 +msgid "Manage Webpages" +msgstr "Webseiten verwalten" + +#: ../../include/conversation.php:1813 +msgctxt "noun" +msgid "Attending" +msgid_plural "Attending" +msgstr[0] "Zusage" +msgstr[1] "Zusagen" + +#: ../../include/conversation.php:1816 +msgctxt "noun" +msgid "Not Attending" +msgid_plural "Not Attending" +msgstr[0] "Absage" +msgstr[1] "Absagen" + +#: ../../include/conversation.php:1819 +msgctxt "noun" +msgid "Undecided" +msgid_plural "Undecided" +msgstr[0] " Unentschlossen" +msgstr[1] "Unentschlossene" + +#: ../../include/conversation.php:1822 +msgctxt "noun" +msgid "Agree" +msgid_plural "Agrees" +msgstr[0] "Zustimmung" +msgstr[1] "Zustimmungen" + +#: ../../include/conversation.php:1825 +msgctxt "noun" +msgid "Disagree" +msgid_plural "Disagrees" +msgstr[0] "Ablehnung" +msgstr[1] "Ablehnungen" + +#: ../../include/conversation.php:1828 +msgctxt "noun" +msgid "Abstain" +msgid_plural "Abstains" +msgstr[0] "Enthaltung" +msgstr[1] "Enthaltungen" + +#: ../../include/bbcode.php:134 ../../include/bbcode.php:962 +#: ../../include/bbcode.php:965 ../../include/bbcode.php:970 +#: ../../include/bbcode.php:973 ../../include/bbcode.php:976 +#: ../../include/bbcode.php:979 ../../include/bbcode.php:984 +#: ../../include/bbcode.php:987 ../../include/bbcode.php:992 +#: ../../include/bbcode.php:995 ../../include/bbcode.php:998 +#: ../../include/bbcode.php:1001 +msgid "Image/photo" +msgstr "Bild/Foto" + +#: ../../include/bbcode.php:173 ../../include/bbcode.php:1012 +msgid "Encrypted content" +msgstr "Verschlüsselter Inhalt" + +#: ../../include/bbcode.php:189 +#, php-format +msgid "Install %s element: " +msgstr "Element %s installieren: " + +#: ../../include/bbcode.php:193 +#, php-format msgid "" -"Prevent posts with identical content to be published with less than two " -"minutes in between submissions." -msgstr "Verhindert, dass innerhalb von zwei Minuten Beiträge mit identischem Inhalt veröffentlicht werden." +"This post contains an installable %s element, however you lack permissions " +"to install it on this site." +msgstr "Dieser Beitrag beinhaltet ein installierbares %s Element, aber Du hast nicht die nötigen Rechte, um es auf diesem Hub zu installieren." -#: ../../include/features.php:81 -msgid "Network and Stream Filtering" -msgstr "Netzwerk- und Stream-Filter" +#: ../../include/bbcode.php:272 +#, php-format +msgid "%1$s wrote the following %2$s %3$s" +msgstr "%1$s schrieb den folgenden %2$s %3$s" -#: ../../include/features.php:82 -msgid "Search by Date" -msgstr "Suche nach Datum" +#: ../../include/bbcode.php:349 ../../include/bbcode.php:357 +msgid "Click to open/close" +msgstr "Klicke zum Öffnen/Schließen" -#: ../../include/features.php:82 -msgid "Ability to select posts by date ranges" -msgstr "Möglichkeit, Beiträge nach Zeiträumen auszuwählen" +#: ../../include/bbcode.php:357 +msgid "spoiler" +msgstr "Spoiler" -#: ../../include/features.php:83 -msgid "Enable management and selection of privacy groups" -msgstr "Auswahl und Verwaltung von Gruppen für Kanäle aktivieren" - -#: ../../include/features.php:84 -msgid "Save search terms for re-use" -msgstr "Ermöglicht das Abspeichern von Suchbegriffen zur Wiederverwendung" - -#: ../../include/features.php:85 -msgid "Network Personal Tab" -msgstr "Persönlicher Netzwerkreiter" - -#: ../../include/features.php:85 -msgid "Enable tab to display only Network posts that you've interacted on" -msgstr "Aktiviert einen Reiter in der Grid-Ansicht, der nur Netzwerk-Beiträge anzeigt, mit denen Du interagiert hast" - -#: ../../include/features.php:86 -msgid "Network New Tab" -msgstr "Netzwerkreiter Neu" - -#: ../../include/features.php:86 -msgid "Enable tab to display all new Network activity" -msgstr "Aktiviert einen Reiter in der Grid-Ansicht, der alle neuen Netzwerkaktivitäten anzeigt" - -#: ../../include/features.php:87 -msgid "Affinity Tool" -msgstr "Beziehungs-Tool" - -#: ../../include/features.php:87 -msgid "Filter stream activity by depth of relationships" -msgstr "Aktiviert ein Werkzeug in der Grid-Ansicht, das den Stream nach Grad der Beziehung filtern kann" - -#: ../../include/features.php:88 -msgid "Show friend and connection suggestions" -msgstr "Freund- und Verbindungsvorschläge anzeigen" - -#: ../../include/features.php:93 -msgid "Post/Comment Tools" -msgstr "Beitrag-/Kommentar-Tools" - -#: ../../include/features.php:94 -msgid "Community Tagging" -msgstr "Gemeinschaftliches Verschlagworten" - -#: ../../include/features.php:94 -msgid "Ability to tag existing posts" -msgstr "Ermöglicht das Verschlagworten existierender Beiträge" - -#: ../../include/features.php:95 -msgid "Post Categories" -msgstr "Beitrags-Kategorien" - -#: ../../include/features.php:95 -msgid "Add categories to your posts" -msgstr "Aktiviert Kategorien für Beiträge" - -#: ../../include/features.php:96 -msgid "Emoji Reactions" -msgstr "Emoji Reaktionen" - -#: ../../include/features.php:96 -msgid "Add emoji reaction ability to posts" -msgstr "Aktiviert Emoji-Reaktionen für Beiträge" - -#: ../../include/features.php:97 -msgid "Ability to file posts under folders" -msgstr "Möglichkeit, Beiträge in Verzeichnissen zu sammeln" - -#: ../../include/features.php:98 -msgid "Dislike Posts" -msgstr "Gefällt-mir-nicht-Beiträge" - -#: ../../include/features.php:98 -msgid "Ability to dislike posts/comments" -msgstr "Aktiviert die „Gefällt mir nicht“-Schaltfläche" - -#: ../../include/features.php:99 -msgid "Star Posts" -msgstr "Beiträge mit Sternchen versehen" - -#: ../../include/features.php:99 -msgid "Ability to mark special posts with a star indicator" -msgstr "Ermöglicht die lokale Markierung spezieller Beiträge mit einem Sternchen-Symbol" - -#: ../../include/features.php:100 -msgid "Tag Cloud" -msgstr "Schlagwort-Wolke" - -#: ../../include/features.php:100 -msgid "Provide a personal tag cloud on your channel page" -msgstr "Aktiviert die Anzeige einer Schlagwort-Wolke (Tag Cloud) auf Deiner Kanal-Seite" - -#: ../../include/features.php:109 -msgid "Connection Filtering" -msgstr "Filter für Verbindungen" - -#: ../../include/features.php:110 -msgid "Filter incoming posts from connections based on keywords/content" -msgstr "Ermöglicht die Filterung eingehender Beiträge anhand von Schlüsselwörtern (muss an der Verbindung konfiguriert werden)" - -#: ../../include/features.php:120 -msgid "Premium Channel" -msgstr "Premium-Kanal" - -#: ../../include/features.php:121 -msgid "" -"Allows you to set restrictions and terms on those that connect with your " -"channel" -msgstr "Ermöglicht es, Einschränkungen und Bedingungen für Verbindungen dieses Kanals festzulegen" - -#: ../../include/features.php:128 -msgid "Advanced Directory Search" -msgstr "Erweiterte Verzeichnissuche" - -#: ../../include/features.php:129 -msgid "Allows creation of complex directory search queries" -msgstr "Ermöglicht die Erstellung komplexer Verzeichnis-Suchabfragen" - -#: ../../include/features.php:135 -msgid "Advanced Theme and Layout Settings" -msgstr "Erweiterte Design- und Layout-Einstellungen" - -#: ../../include/features.php:136 -msgid "Allows fine tuning of themes and page layouts" -msgstr "Erlaubt die Feineinstellung von Designs und Seitenlayouts" +#: ../../include/bbcode.php:950 +msgid "$1 wrote:" +msgstr "$1 schrieb:" #: ../../view/theme/redbasic/php/config.php:9 msgid "Focus (Hubzilla default)" @@ -10149,66 +13327,66 @@ msgstr "Größe der Avatare von Themenstartern" msgid "Set size of followup author photos" msgstr "Größe der Avatare von Kommentatoren" -#: ../../boot.php:1195 +#: ../../boot.php:1175 #, php-format msgctxt "opensearch" msgid "Search %1$s (%2$s)" msgstr "Suche %1$s (%2$s)" -#: ../../boot.php:1195 +#: ../../boot.php:1175 msgctxt "opensearch" msgid "$Projectname" msgstr "$Projectname" -#: ../../boot.php:1513 +#: ../../boot.php:1493 #, php-format msgid "Update %s failed. See error logs." msgstr "Aktualisierung %s fehlgeschlagen. Details in den Fehlerprotokollen." -#: ../../boot.php:1516 +#: ../../boot.php:1496 #, php-format msgid "Update Error at %s" msgstr "Aktualisierungsfehler auf %s" -#: ../../boot.php:1720 +#: ../../boot.php:1700 msgid "" "Create an account to access services and applications within the Hubzilla" msgstr "Erstelle ein Konto, um Anwendungen und Dienste innerhalb von Hubzilla nutzen zu können." -#: ../../boot.php:1741 +#: ../../boot.php:1721 msgid "Login/Email" msgstr "Anmelden/E-Mail" -#: ../../boot.php:1742 +#: ../../boot.php:1722 msgid "Password" msgstr "Kennwort" -#: ../../boot.php:1743 +#: ../../boot.php:1723 msgid "Remember me" msgstr "Angaben speichern" -#: ../../boot.php:1746 +#: ../../boot.php:1726 msgid "Forgot your password?" msgstr "Passwort vergessen?" -#: ../../boot.php:2315 +#: ../../boot.php:2287 msgid "toggle mobile" msgstr "auf/von mobile Ansicht wechseln" -#: ../../boot.php:2470 +#: ../../boot.php:2442 msgid "Website SSL certificate is not valid. Please correct." msgstr "Das SSL-Zertifikat der Website ist nicht gültig. Bitte beheben." -#: ../../boot.php:2473 +#: ../../boot.php:2445 #, php-format msgid "[hubzilla] Website SSL error for %s" msgstr "[hubzilla] Website-SSL-Fehler für %s" -#: ../../boot.php:2577 +#: ../../boot.php:2562 msgid "Cron/Scheduled tasks not running." msgstr "Cron-Aufgaben laufen nicht." -#: ../../boot.php:2581 +#: ../../boot.php:2566 #, php-format msgid "[hubzilla] Cron tasks not running on %s" msgstr "[hubzilla] Cron-Aufgaben für %s laufen nicht" diff --git a/view/de/hstrings.php b/view/de/hstrings.php index 7ad83fb3b..f77354929 100644 --- a/view/de/hstrings.php +++ b/view/de/hstrings.php @@ -72,23 +72,6 @@ App::$strings["Requested profile is not available."] = "Das angefragte Profil is App::$strings["Some blurb about what to do when you're new here"] = "Ein Hinweis, was man tun kann, wenn man neu hier ist"; App::$strings["Away"] = "Abwesend"; App::$strings["Online"] = "Online"; -App::$strings["Invalid message"] = "Ungültige Beitrags-ID (mid)"; -App::$strings["no results"] = "keine Ergebnisse"; -App::$strings["channel sync processed"] = "Kanal-Sync verarbeitet"; -App::$strings["queued"] = "zur Warteschlange hinzugefügt"; -App::$strings["posted"] = "zugestellt"; -App::$strings["accepted for delivery"] = "für Zustellung akzeptiert"; -App::$strings["updated"] = "aktualisiert"; -App::$strings["update ignored"] = "Aktualisierung ignoriert"; -App::$strings["permission denied"] = "Zugriff verweigert"; -App::$strings["recipient not found"] = "Empfänger nicht gefunden."; -App::$strings["mail recalled"] = "Mail widerrufen"; -App::$strings["duplicate mail received"] = "Doppelte Mail erhalten"; -App::$strings["mail delivered"] = "Mail zugestellt"; -App::$strings["Delivery report for %1\$s"] = "Zustellungsbericht für %1\$s"; -App::$strings["Options"] = "Optionen"; -App::$strings["Redeliver"] = "Erneut zustellen"; -App::$strings["Fetching URL returns error: %1\$s"] = "Abrufen der URL gab einen Fehler zurück: %1\$s"; App::$strings["Maximum daily site registrations exceeded. Please try again tomorrow."] = "Maximale Anzahl täglicher Neuanmeldungen erreicht. Bitte versuche es morgen noch einmal."; App::$strings["Please indicate acceptance of the Terms of Service. Registration failed."] = "Bitte stimme den Nutzungsbedingungen zu. Registrierung fehlgeschlagen."; App::$strings["Passwords do not match."] = "Passwörter stimmen nicht überein."; @@ -118,81 +101,204 @@ App::$strings["yes"] = "ja"; App::$strings["Registration"] = "Registrierung"; App::$strings["Membership on this site is by invitation only."] = "Mitgliedschaft auf dieser Seite ist nur nach vorheriger Einladung möglich."; App::$strings["Register"] = "Registrieren"; -App::$strings["This site may require email verification after submitting this form. If you are returned to a login page, please check your email for instructions."] = "Diese Seite verlangt möglicherweise eine Emailbestätigung nach dem Ansenden des Formulars. Wenn Du auf eine Login-Seite zurückgeleitet wirst, prüfe bitte auf neue Mail mit entsprechenden Hinweisen."; -App::$strings["%s account blocked/unblocked"] = array( - 0 => "%s Konto blockiert/freigegeben", - 1 => "%s Konten blockiert/freigegeben", -); -App::$strings["%s account deleted"] = array( - 0 => "%s Konto gelöscht", - 1 => "%s Konten gelöscht", -); -App::$strings["Account not found"] = "Konto nicht gefunden"; -App::$strings["Account '%s' deleted"] = "Konto '%s' gelöscht"; -App::$strings["Account '%s' blocked"] = "Konto '%s' blockiert"; -App::$strings["Account '%s' unblocked"] = "Konto '%s' freigegeben"; -App::$strings["Administration"] = "Administration"; -App::$strings["Accounts"] = "Konten"; -App::$strings["Submit"] = "Absenden"; -App::$strings["select all"] = "Alle auswählen"; -App::$strings["Registrations waiting for confirm"] = "Registrierungen warten auf Bestätigung"; -App::$strings["Request date"] = "Antragsdatum"; -App::$strings["Email"] = "E-Mail"; -App::$strings["No registrations."] = "Keine Registrierungen."; -App::$strings["Approve"] = "Genehmigen"; -App::$strings["Deny"] = "Verweigern"; -App::$strings["Block"] = "Blockieren"; +App::$strings["This site may require email verification after submitting this form. If you are returned to a login page, please check your email for instructions."] = "Diese Seite verlangt möglicherweise eine Emailbestätigung nach dem Absenden des Formulars. Wenn Du auf eine Login-Seite zurückgeleitet wirst, prüfe bitte Deinen Posteingang auf neue Mails mit entsprechenden Hinweisen."; +App::$strings["Fetching URL returns error: %1\$s"] = "Abrufen der URL gab einen Fehler zurück: %1\$s"; +App::$strings["Profile Match"] = "Profil-Übereinstimmungen"; +App::$strings["No keywords to match. Please add keywords to your default profile."] = "Keine Schlüsselwörter für den Abgleich gefunden. Bitte füge Schlüsselwörter zu Deinem Standardprofil hinzu."; +App::$strings["is interested in:"] = "interessiert sich für:"; +App::$strings["Connect"] = "Verbinden"; +App::$strings["No matches"] = "Keine Übereinstimmungen"; +App::$strings["Could not access contact record."] = "Konnte nicht auf den Kontakteintrag zugreifen."; +App::$strings["Could not locate selected profile."] = "Gewähltes Profil nicht gefunden."; +App::$strings["Connection updated."] = "Verbindung aktualisiert."; +App::$strings["Failed to update connection record."] = "Konnte den Verbindungseintrag nicht aktualisieren."; +App::$strings["is now connected to"] = "ist jetzt verbunden mit"; +App::$strings["No"] = "Nein"; +App::$strings["Yes"] = "Ja"; +App::$strings["Could not access address book record."] = "Konnte nicht auf den Adressbuch-Eintrag zugreifen."; +App::$strings["Refresh failed - channel is currently unavailable."] = "Aktualisierung fehlgeschlagen – der Kanal ist im Moment nicht erreichbar."; +App::$strings["Unable to set address book parameters."] = "Konnte die Adressbuch-Parameter nicht setzen."; +App::$strings["Connection has been removed."] = "Verbindung wurde gelöscht."; +App::$strings["View Profile"] = "Profil ansehen"; +App::$strings["View %s's profile"] = "%ss Profil ansehen"; +App::$strings["Refresh Permissions"] = "Zugriffsrechte neu laden"; +App::$strings["Fetch updated permissions"] = "Aktualisierte Zugriffsrechte abfragen"; +App::$strings["Recent Activity"] = "Kürzliche Aktivitäten"; +App::$strings["View recent posts and comments"] = "Betrachte die neuesten Beiträge und Kommentare"; App::$strings["Unblock"] = "Freigeben"; -App::$strings["ID"] = "ID"; -App::$strings["All Channels"] = "Alle Kanäle"; -App::$strings["Register date"] = "Registrierungs-Datum"; -App::$strings["Last login"] = "Letzte Anmeldung"; -App::$strings["Expires"] = "Verfällt"; -App::$strings["Service Class"] = "Service-Klasse"; -App::$strings["Selected accounts will be deleted!\\n\\nEverything these accounts had posted on this site will be permanently deleted!\\n\\nAre you sure?"] = "Die ausgewählten Konten werden gelöscht!\\n\\nAlles, was diese Konten auf diesem Hub veröffentlicht haben, wird endgültig gelöscht werden!\\n\\nBist du dir sicher?"; -App::$strings["The account {0} will be deleted!\\n\\nEverything this account has posted on this site will be permanently deleted!\\n\\nAre you sure?"] = "Das Konto {0} wird gelöscht!\\n\\nAlles, was dieses Konto auf diesem Hub veröffentlicht hat, wird endgültig gelöscht werden!\\n\\nBist Du sicher?"; -App::$strings["%s channel censored/uncensored"] = array( - 0 => "%s Kanal gesperrt/freigegeben", - 1 => "%s Kanäle gesperrt/freigegeben", -); -App::$strings["%s channel code allowed/disallowed"] = array( - 0 => "Code für %s Kanal gesperrt/freigegeben", - 1 => "Code für %s Kanäle gesperrt/freigegeben", -); -App::$strings["%s channel deleted"] = array( - 0 => "%s Kanal gelöscht", - 1 => "%s Kanäle gelöscht", -); -App::$strings["Channel not found"] = "Kanal nicht gefunden"; -App::$strings["Channel '%s' deleted"] = "Kanal '%s' gelöscht"; -App::$strings["Channel '%s' censored"] = "Kanal '%s' gesperrt"; -App::$strings["Channel '%s' uncensored"] = "Kanal '%s' freigegeben"; -App::$strings["Channel '%s' code allowed"] = "Code für Kanal '%s' freigegeben"; -App::$strings["Channel '%s' code disallowed"] = "Code für Kanal '%s' gesperrt"; -App::$strings["Channels"] = "Kanäle"; -App::$strings["Censor"] = "Sperren"; -App::$strings["Uncensor"] = "Freigeben"; -App::$strings["Allow Code"] = "Code erlauben"; -App::$strings["Disallow Code"] = "Code sperren"; -App::$strings["Channel"] = "Kanal"; -App::$strings["UID"] = "UID"; +App::$strings["Block"] = "Blockieren"; +App::$strings["Block (or Unblock) all communications with this connection"] = "Jegliche Kommunikation mit dieser Verbindung blockieren/zulassen"; +App::$strings["This connection is blocked!"] = "Die Verbindung ist geblockt!"; +App::$strings["Unignore"] = "Nicht ignorieren"; +App::$strings["Ignore"] = "Ignorieren"; +App::$strings["Ignore (or Unignore) all inbound communications from this connection"] = "Jegliche eingehende Kommunikation von dieser Verbindung ignorieren/zulassen"; +App::$strings["This connection is ignored!"] = "Die Verbindung wird ignoriert!"; +App::$strings["Unarchive"] = "Aus Archiv zurückholen"; +App::$strings["Archive"] = "Archivieren"; +App::$strings["Archive (or Unarchive) this connection - mark channel dead but keep content"] = "Verbindung archivieren/aus dem Archiv zurückholen (Archiv = Kanal als erloschen markieren, aber die Beiträge behalten)"; +App::$strings["This connection is archived!"] = "Die Verbindung ist archiviert!"; +App::$strings["Unhide"] = "Wieder sichtbar machen"; +App::$strings["Hide"] = "Verstecken"; +App::$strings["Hide or Unhide this connection from your other connections"] = "Diese Verbindung vor anderen Verbindungen verstecken/zeigen"; +App::$strings["This connection is hidden!"] = "Die Verbindung ist versteckt!"; +App::$strings["Delete this connection"] = "Verbindung löschen"; +App::$strings["Me"] = "Ich"; +App::$strings["Family"] = "Familie"; +App::$strings["Friends"] = "Freunde"; +App::$strings["Acquaintances"] = "Bekannte"; +App::$strings["All"] = "Alle"; +App::$strings["Approve this connection"] = "Verbindung genehmigen"; +App::$strings["Accept connection to allow communication"] = "Akzeptiere die Verbindung, um Kommunikation zu ermöglichen"; +App::$strings["Set Affinity"] = "Beziehung festlegen"; +App::$strings["Set Profile"] = "Profil festlegen"; +App::$strings["Set Affinity & Profile"] = "Beziehung und Profile festlegen"; +App::$strings["none"] = "Keine"; +App::$strings["Connection Default Permissions"] = "Standardzugriffsrechte für neue Verbindungen:"; +App::$strings["Connection: %s"] = "Verbindung: %s"; +App::$strings["Apply these permissions automatically"] = "Diese Berechtigungen automatisch anwenden"; +App::$strings["Connection requests will be approved without your interaction"] = "Verbindungsanfragen werden sofort bestätigt, ohne dass Deine aktive Zustimmung erforderlich ist."; +App::$strings["This connection's primary address is"] = "Die Hauptadresse der Verbindung ist"; +App::$strings["Available locations:"] = "Verfügbare Klone:"; +App::$strings["The permissions indicated on this page will be applied to all new connections."] = "Die auf dieser Seite angegebenen Berechtigungen werden auf alle neuen Verbindungen angewendet."; +App::$strings["Connection Tools"] = "Verbindungswerkzeuge"; +App::$strings["Slide to adjust your degree of friendship"] = "Verschieben, um den Grad der Freundschaft zu einzustellen"; +App::$strings["Rating"] = "Bewertung"; +App::$strings["Slide to adjust your rating"] = "Verschieben, um Deine Bewertung einzustellen"; +App::$strings["Optionally explain your rating"] = "Optional kannst Du Deine Bewertung begründen"; +App::$strings["Custom Filter"] = "Benutzerdefinierter Filter"; +App::$strings["Only import posts with this text"] = "Nur Beiträge mit diesem Text importieren"; +App::$strings["words one per line or #tags or /patterns/ or lang=xx, leave blank to import all posts"] = "Einzelne Wörter pro Zeile, #Tags oder /Reguläre Ausdrücke/. lang=xx (z.B. lang=de) ermöglicht Filterung nach Sprache. Leer lassen, um alle Beiträge zu importieren."; +App::$strings["Do not import posts with this text"] = "Beiträge mit diesem Text nicht importieren"; +App::$strings["This information is public!"] = "Diese Information ist öffentlich!"; +App::$strings["Connection Pending Approval"] = "Verbindung wartet auf Bestätigung"; +App::$strings["inherited"] = "geerbt"; +App::$strings["Submit"] = "Absenden"; +App::$strings["Please choose the profile you would like to display to %s when viewing your profile securely."] = "Bitte wähle ein Profil, das wir %s zeigen sollen, wenn Deine Profilseite über eine verifizierte Verbindung aufgerufen wird."; +App::$strings["Their Settings"] = "Deren Einstellungen"; +App::$strings["My Settings"] = "Meine Einstellungen"; +App::$strings["Individual Permissions"] = "Individuelle Zugriffsrechte"; +App::$strings["Some permissions may be inherited from your channel's privacy settings, which have higher priority than individual settings. You can not change those settings here."] = "Einige Berechtigungen werden möglicherweise von den globalen Sicherheits- und Privatsphäre-Einstellungen dieses Kanals vererbt. Diese haben eine höhere Priorität als die Einstellungen an der Verbindung und können hier nicht verändert werden."; +App::$strings["Some permissions may be inherited from your channel's privacy settings, which have higher priority than individual settings. You can change those settings here but they wont have any impact unless the inherited setting changes."] = "Einige Berechtigungen werden möglicherweise von den globalen Sicherheits- und Privatsphäre-Einstellungen dieses Kanals geerbt. Diese haben eine höhere Priorität als die Einstellungen an der Verbindung. Werden geerbte Einstellungen hier geändert, hat dies keine Auswirkungen."; +App::$strings["Last update:"] = "Letzte Aktualisierung:"; +App::$strings["Invalid message"] = "Ungültige Beitrags-ID (mid)"; +App::$strings["no results"] = "keine Ergebnisse"; +App::$strings["channel sync processed"] = "Kanal-Sync verarbeitet"; +App::$strings["queued"] = "zur Warteschlange hinzugefügt"; +App::$strings["posted"] = "zugestellt"; +App::$strings["accepted for delivery"] = "für Zustellung akzeptiert"; +App::$strings["updated"] = "aktualisiert"; +App::$strings["update ignored"] = "Aktualisierung ignoriert"; +App::$strings["permission denied"] = "Zugriff verweigert"; +App::$strings["recipient not found"] = "Empfänger nicht gefunden."; +App::$strings["mail recalled"] = "Mail widerrufen"; +App::$strings["duplicate mail received"] = "Doppelte Mail erhalten"; +App::$strings["mail delivered"] = "Mail zugestellt"; +App::$strings["Delivery report for %1\$s"] = "Zustellungsbericht für %1\$s"; +App::$strings["Options"] = "Optionen"; +App::$strings["Redeliver"] = "Erneut zustellen"; +App::$strings["Bookmark added"] = "Lesezeichen hinzugefügt"; +App::$strings["My Bookmarks"] = "Meine Lesezeichen"; +App::$strings["My Connections Bookmarks"] = "Lesezeichen meiner Kontakte"; +App::$strings["network"] = "Netzwerk"; +App::$strings["RSS"] = "RSS"; +App::$strings["Location not found."] = "Klon nicht gefunden."; +App::$strings["Location lookup failed."] = "Nachschlagen des Kanal-Ortes fehlgeschlagen"; +App::$strings["Please select another location to become primary before removing the primary location."] = "Bitte mache einen anderen Kanal-Ort zum primären Ort, bevor Du den primären Ort löschst."; +App::$strings["Syncing locations"] = "Synchronisiere Klone"; +App::$strings["No locations found."] = "Keine Klon-Adressen gefunden."; +App::$strings["Manage Channel Locations"] = "Klon-Adressen verwalten"; +App::$strings["Location"] = "Ort"; App::$strings["Address"] = "Adresse"; -App::$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?"] = "Alle ausgewählten Kanäle werden gelöscht!\\n\\nAlles was von diesen Kanälen auf diesem Server geschrieben wurde, wird dauerhaft gelöscht!\\n\\nBist Du sicher?"; -App::$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?"] = "Der Kanal {0} wird gelöscht!\\n\\nAlles was von diesem Kanal auf diesem Server geschrieben wurde, wird gelöscht!\\n\\nBist Du sicher?"; -App::$strings["Update has been marked successful"] = "Update wurde als erfolgreich markiert"; -App::$strings["Executing %s failed. Check system logs."] = "Ausführen von %s fehlgeschlagen. Überprüfe die Systemprotokolle."; -App::$strings["Update %s was successfully applied."] = "Update %s wurde erfolgreich ausgeführt."; -App::$strings["Update %s did not return a status. Unknown if it succeeded."] = "Update %s lieferte keinen Rückgabewert. Erfolg unbekannt."; -App::$strings["Update function %s could not be found."] = "Update-Funktion %s konnte nicht gefunden werden."; -App::$strings["No failed updates."] = "Keine fehlgeschlagenen Aktualisierungen."; -App::$strings["Failed Updates"] = "Fehlgeschlagene Aktualisierungen"; -App::$strings["Mark success (if update was manually applied)"] = "Als erfolgreich markieren (wenn das Update manuell ausgeführt wurde)"; -App::$strings["Attempt to execute this update step automatically"] = "Versuche, diesen Updateschritt automatisch auszuführen"; +App::$strings["Primary"] = "Primär"; +App::$strings["Drop"] = "Löschen"; +App::$strings["Sync Now"] = "Jetzt synchronisieren"; +App::$strings["Please wait several minutes between consecutive operations."] = "Bitte warte mehrere Minuten zwischen dem Ausführen zweier Operationen!"; +App::$strings["When possible, drop a location by logging into that website/hub and removing your channel."] = "Wenn möglich, lösche einen Klon, indem Du Dich auf dem jeweiligen Hub einloggst und den Kanal dort löschst."; +App::$strings["Use this form to drop the location if the hub is no longer operating."] = "Benutze dieses Formular zum Löschen eines Klons, wenn es den Hub nicht mehr gibt."; +App::$strings["Continue"] = "Fortfahren"; +App::$strings["Premium Channel Setup"] = "Premium-Kanal-Einrichtung"; +App::$strings["Enable premium channel connection restrictions"] = "Einschränkungen für einen Premium-Kanal aktivieren"; +App::$strings["Please enter your restrictions or conditions, such as paypal receipt, usage guidelines, etc."] = "Bitte gib Deine Nutzungsbedingungen ein, z.B. Paypal-Quittung, Richtlinien etc."; +App::$strings["This channel may require additional steps or acknowledgement of the following conditions prior to connecting:"] = "Unter Umständen sind weitere Schritte oder die Bestätigung der folgenden Bedingungen vor dem Verbinden mit diesem Kanal nötig."; +App::$strings["Potential connections will then see the following text before proceeding:"] = "Potentielle Kontakte werden den folgenden Text sehen, bevor fortgefahren wird:"; +App::$strings["By continuing, I certify that I have complied with any instructions provided on this page."] = "Indem ich fortfahre, bestätige ich die Erfüllung aller Anweisungen auf dieser Seite."; +App::$strings["(No specific instructions have been provided by the channel owner.)"] = "(Der Kanal-Besitzer hat keine speziellen Anweisungen hinterlegt.)"; +App::$strings["Restricted or Premium Channel"] = "Eingeschränkter oder Premium-Kanal"; +App::$strings["Invalid item."] = "Ungültiges Element."; +App::$strings["Channel not found."] = "Kanal nicht gefunden."; +App::$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."; +App::$strings["Save to Folder:"] = "Speichern in Ordner:"; +App::$strings["- select -"] = "– auswählen –"; +App::$strings["Save"] = "Speichern"; +App::$strings["You have created %1$.0f of %2$.0f allowed channels."] = "Du hast %1$.0f von maximal %2$.0f erlaubten Kanälen eingerichtet."; +App::$strings["Create a new channel"] = "Neuen Kanal anlegen"; +App::$strings["Create New"] = "Neu anlegen"; +App::$strings["Channel Manager"] = "Kanal-Manager"; +App::$strings["Current Channel"] = "Aktueller Kanal"; +App::$strings["Switch to one of your channels by selecting it."] = "Wechsle zu einem Deiner Kanäle, indem Du auf ihn klickst."; +App::$strings["Default Channel"] = "Standard Kanal"; +App::$strings["Make Default"] = "Zum Standard machen"; +App::$strings["%d new messages"] = "%d neue Nachrichten"; +App::$strings["%d new introductions"] = "%d neue Vorstellungen"; +App::$strings["Delegated Channel"] = "Delegierte Kanäle"; +App::$strings["Blocked"] = "Blockiert"; +App::$strings["Ignored"] = "Ignoriert"; +App::$strings["Hidden"] = "Versteckt"; +App::$strings["Archived"] = "Archiviert"; +App::$strings["New"] = "Neu"; +App::$strings["New Connections"] = "Neue Verbindungen"; +App::$strings["Show pending (new) connections"] = "Ausstehende (neue) Verbindungsanfragen anzeigen"; +App::$strings["All Connections"] = "Alle Verbindungen"; +App::$strings["Show all connections"] = "Alle Verbindungen anzeigen"; +App::$strings["Only show blocked connections"] = "Nur blockierte Verbindungen anzeigen"; +App::$strings["Only show ignored connections"] = "Nur ignorierte Verbindungen anzeigen"; +App::$strings["Only show archived connections"] = "Nur archivierte Verbindungen anzeigen"; +App::$strings["Only show hidden connections"] = "Nur versteckte Verbindungen anzeigen"; +App::$strings["Pending approval"] = "Wartet auf Genehmigung"; +App::$strings["%1\$s [%2\$s]"] = "%1\$s [%2\$s]"; +App::$strings["Edit connection"] = "Verbindung bearbeiten"; +App::$strings["Delete connection"] = "Verbindung löschen"; +App::$strings["Channel address"] = "Kanaladresse"; +App::$strings["Network"] = "Netzwerk"; +App::$strings["Status"] = "Status"; +App::$strings["Connected"] = "Verbunden"; +App::$strings["Approve connection"] = "Verbindung genehmigen"; +App::$strings["Approve"] = "Genehmigen"; +App::$strings["Ignore connection"] = "Verbindung ignorieren"; +App::$strings["Recent activity"] = "Kürzliche Aktivitäten"; +App::$strings["Connections"] = "Verbindungen"; +App::$strings["Search"] = "Suche"; +App::$strings["Search your connections"] = "Verbindungen durchsuchen"; +App::$strings["Connections search"] = "Verbindung suchen"; +App::$strings["Find"] = "Finde"; +App::$strings["Image uploaded but image cropping failed."] = "Bild hochgeladen, aber das Zurechtschneiden schlug fehl."; +App::$strings["Cover Photos"] = "Cover Foto"; +App::$strings["Image resize failed."] = "Bild-Anpassung fehlgeschlagen."; +App::$strings["Unable to process image"] = "Kann Bild nicht verarbeiten"; +App::$strings["Image upload failed."] = "Hochladen des Bilds fehlgeschlagen."; +App::$strings["Unable to process image."] = "Kann Bild nicht verarbeiten."; +App::$strings["female"] = "weiblich"; +App::$strings["%1\$s updated her %2\$s"] = "%1\$s hat ihr %2\$s aktualisiert"; +App::$strings["male"] = "männlich"; +App::$strings["%1\$s updated his %2\$s"] = "%1\$s hat sein %2\$s aktualisiert"; +App::$strings["%1\$s updated their %2\$s"] = "%1\$s hat sein/ihr %2\$s aktualisiert"; +App::$strings["cover photo"] = "Cover Foto"; +App::$strings["Photo not available."] = "Foto nicht verfügbar."; +App::$strings["Upload File:"] = "Datei hochladen:"; +App::$strings["Select a profile:"] = "Wähle ein Profil:"; +App::$strings["Upload Cover Photo"] = "Cover Foto hochladen"; +App::$strings["or"] = "oder"; +App::$strings["skip this step"] = "diesen Schritt überspringen"; +App::$strings["select a photo from your photo albums"] = "ein Foto aus meinen Fotoalben"; +App::$strings["Crop Image"] = "Bild zuschneiden"; +App::$strings["Please adjust the image cropping for optimum viewing."] = "Bitte schneide das Bild für eine optimale Anzeige passend zu."; +App::$strings["Done Editing"] = "Bearbeitung fertigstellen"; App::$strings["Off"] = "Aus"; App::$strings["On"] = "An"; App::$strings["Lock feature %s"] = "Blockiere die Funktion %s"; App::$strings["Manage Additional Features"] = "Zusätzliche Funktionen verwalten"; App::$strings["Log settings updated."] = "Protokoll-Einstellungen aktualisiert."; +App::$strings["Administration"] = "Administration"; App::$strings["Logs"] = "Protokolle"; App::$strings["Clear"] = "Leeren"; App::$strings["Debugging"] = "Debugging"; @@ -237,7 +343,6 @@ App::$strings["Field Name"] = "Feldname"; App::$strings["Label on profile pages"] = "Bezeichnung auf Profilseiten"; App::$strings["Help text"] = "Hilfetext"; App::$strings["Additional info (optional)"] = "Zusätzliche Informationen (optional)"; -App::$strings["Save"] = "Speichern"; App::$strings["Field definition not found"] = "Feld-Definition nicht gefunden"; App::$strings["Edit Profile Field"] = "Profilfeld bearbeiten"; App::$strings["Profile Fields"] = "Profil Felder"; @@ -277,14 +382,90 @@ App::$strings["Only allow embeds from secure (SSL) websites and links."] = "Erla App::$strings["Allow unfiltered embedded HTML content only from these domains"] = "Erlaube Einbettung von Inhalten mit ungefiltertem HTML nur von diesen Domains"; App::$strings["One site per line. By default embedded content is filtered."] = "Eine Website/Domain pro Zeile. Standardmäßig wird eingebetteter Inhalt gefiltert."; App::$strings["Block embedded HTML from these domains"] = "Eingebettete HTML Inhalte von diesen Seiten blockieren"; +App::$strings["Theme settings updated."] = "Theme-Einstellungen aktualisiert."; +App::$strings["No themes found."] = "Keine Theme gefunden."; +App::$strings["Screenshot"] = "Bildschirmfoto"; +App::$strings["Themes"] = "Themes"; +App::$strings["[Experimental]"] = "[Experimentell]"; +App::$strings["[Unsupported]"] = "[Nicht unterstützt]"; +App::$strings["Password changed for account %d."] = "Passwort für Konto %d geändert."; +App::$strings["Account settings updated."] = "Kontoeinstellungen aktualisiert."; +App::$strings["Account not found."] = "Konto nicht gefunden."; +App::$strings["Account Edit"] = "Kontobearbeitung"; +App::$strings["New Password"] = "Neues Passwort"; +App::$strings["New Password again"] = "Neues Passwort wiederholen"; +App::$strings["Technical skill level"] = "Technische Qualifikationsstufe"; +App::$strings["Account language (for emails)"] = "Kontosprache (für E-Mails)"; +App::$strings["Service class"] = "Dienstklasse"; +App::$strings["%s account blocked/unblocked"] = array( + 0 => "%s Konto blockiert/freigegeben", + 1 => "%s Konten blockiert/freigegeben", +); +App::$strings["%s account deleted"] = array( + 0 => "%s Konto gelöscht", + 1 => "%s Konten gelöscht", +); +App::$strings["Account not found"] = "Konto nicht gefunden"; +App::$strings["Account '%s' deleted"] = "Konto '%s' gelöscht"; +App::$strings["Account '%s' blocked"] = "Konto '%s' blockiert"; +App::$strings["Account '%s' unblocked"] = "Konto '%s' freigegeben"; +App::$strings["Accounts"] = "Konten"; +App::$strings["select all"] = "Alle auswählen"; +App::$strings["Registrations waiting for confirm"] = "Registrierungen warten auf Bestätigung"; +App::$strings["Request date"] = "Antragsdatum"; +App::$strings["Email"] = "E-Mail"; +App::$strings["No registrations."] = "Keine Registrierungen."; +App::$strings["Deny"] = "Verweigern"; +App::$strings["ID"] = "ID"; +App::$strings["All Channels"] = "Alle Kanäle"; +App::$strings["Register date"] = "Registrierungs-Datum"; +App::$strings["Last login"] = "Letzte Anmeldung"; +App::$strings["Expires"] = "Verfällt"; +App::$strings["Service Class"] = "Service-Klasse"; +App::$strings["Selected accounts will be deleted!\\n\\nEverything these accounts had posted on this site will be permanently deleted!\\n\\nAre you sure?"] = "Die ausgewählten Konten werden gelöscht!\\n\\nAlles, was diese Konten auf diesem Hub veröffentlicht haben, wird endgültig gelöscht werden!\\n\\nBist du dir sicher?"; +App::$strings["The account {0} will be deleted!\\n\\nEverything this account has posted on this site will be permanently deleted!\\n\\nAre you sure?"] = "Das Konto {0} wird gelöscht!\\n\\nAlles, was dieses Konto auf diesem Hub veröffentlicht hat, wird endgültig gelöscht werden!\\n\\nBist Du sicher?"; +App::$strings["%s channel censored/uncensored"] = array( + 0 => "%s Kanal gesperrt/freigegeben", + 1 => "%s Kanäle gesperrt/freigegeben", +); +App::$strings["%s channel code allowed/disallowed"] = array( + 0 => "Code für %s Kanal gesperrt/freigegeben", + 1 => "Code für %s Kanäle gesperrt/freigegeben", +); +App::$strings["%s channel deleted"] = array( + 0 => "%s Kanal gelöscht", + 1 => "%s Kanäle gelöscht", +); +App::$strings["Channel not found"] = "Kanal nicht gefunden"; +App::$strings["Channel '%s' deleted"] = "Kanal '%s' gelöscht"; +App::$strings["Channel '%s' censored"] = "Kanal '%s' gesperrt"; +App::$strings["Channel '%s' uncensored"] = "Kanal '%s' freigegeben"; +App::$strings["Channel '%s' code allowed"] = "Code für Kanal '%s' freigegeben"; +App::$strings["Channel '%s' code disallowed"] = "Code für Kanal '%s' gesperrt"; +App::$strings["Channels"] = "Kanäle"; +App::$strings["Censor"] = "Sperren"; +App::$strings["Uncensor"] = "Freigeben"; +App::$strings["Allow Code"] = "Code erlauben"; +App::$strings["Disallow Code"] = "Code sperren"; +App::$strings["Channel"] = "Kanal"; +App::$strings["UID"] = "UID"; +App::$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?"] = "Alle ausgewählten Kanäle werden gelöscht!\\n\\nAlles was von diesen Kanälen auf diesem Server geschrieben wurde, wird dauerhaft gelöscht!\\n\\nBist Du sicher?"; +App::$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?"] = "Der Kanal {0} wird gelöscht!\\n\\nAlles was von diesem Kanal auf diesem Server geschrieben wurde, wird gelöscht!\\n\\nBist Du sicher?"; +App::$strings["Update has been marked successful"] = "Update wurde als erfolgreich markiert"; +App::$strings["Executing %s failed. Check system logs."] = "Ausführen von %s fehlgeschlagen. Überprüfe die Systemprotokolle."; +App::$strings["Update %s was successfully applied."] = "Update %s wurde erfolgreich ausgeführt."; +App::$strings["Update %s did not return a status. Unknown if it succeeded."] = "Update %s lieferte keinen Rückgabewert. Erfolg unbekannt."; +App::$strings["Update function %s could not be found."] = "Update-Funktion %s konnte nicht gefunden werden."; +App::$strings["No failed updates."] = "Keine fehlgeschlagenen Aktualisierungen."; +App::$strings["Failed Updates"] = "Fehlgeschlagene Aktualisierungen"; +App::$strings["Mark success (if update was manually applied)"] = "Als erfolgreich markieren (wenn das Update manuell ausgeführt wurde)"; +App::$strings["Attempt to execute this update step automatically"] = "Versuche, diesen Updateschritt automatisch auszuführen"; App::$strings["Site settings updated."] = "Site-Einstellungen aktualisiert."; App::$strings["Default"] = "Standard"; App::$strings["mobile"] = "mobil"; App::$strings["experimental"] = "experimentell"; App::$strings["unsupported"] = "nicht unterstützt"; -App::$strings["No"] = "Nein"; App::$strings["Yes - with approval"] = "Ja - mit Zustimmung"; -App::$strings["Yes"] = "Ja"; App::$strings["My site is not a public server"] = "Mein Server ist kein öffentlicher Server"; App::$strings["My site has paid access only"] = "Meine Seite hat nur bezahlten Zugriff"; App::$strings["My site has free access only"] = "Meine Seite hat nur freien Zugriff"; @@ -311,6 +492,8 @@ App::$strings["Members can set their own technical comfort level by default"] = App::$strings["Banner/Logo"] = "Banner/Logo"; App::$strings["Administrator Information"] = "Administrator-Informationen"; App::$strings["Contact information for site administrators. Displayed on siteinfo page. BBCode can be used here"] = "Kontaktinformationen für Administratoren des Servers. Wird auf der siteinfo-Seite angezeigt. BBCode kann verwendet werden."; +App::$strings["Site Information"] = "Seiteninformationen"; +App::$strings["Publicly visible description of this site. Displayed on siteinfo page. BBCode can be used here"] = "Öffentlich sichtbare Beschreibung dieses Servers. Wird auf der siteinfo-Seite angezeigt. BBCode kann hier verwendet werden."; App::$strings["System language"] = "System-Sprache"; App::$strings["System theme"] = "System-Theme"; App::$strings["Default system theme - may be over-ridden by user profiles - change theme settings"] = "Standard-System-Theme – kann durch Nutzerprofile überschieben werden – Theme-Einstellungen ändern"; @@ -360,140 +543,35 @@ App::$strings["Maximum Load Average"] = "Maximales Load Average"; App::$strings["Maximum system load before delivery and poll processes are deferred - default 50."] = "Maximale Systemlast, bevor Verteil- und Empfangsprozesse verschoben werden – Standard 50"; App::$strings["Expiration period in days for imported (grid/network) content"] = "Setze den Zeitraum (in Tagen), ab wann importierte (aus dem Netzwerk) Inhalte ablaufen sollen"; App::$strings["0 for no expiration of imported content"] = "0 = keine Löschung importierter Inhalte"; -App::$strings["Theme settings updated."] = "Theme-Einstellungen aktualisiert."; -App::$strings["No themes found."] = "Keine Theme gefunden."; -App::$strings["Screenshot"] = "Bildschirmfoto"; -App::$strings["Themes"] = "Themes"; -App::$strings["[Experimental]"] = "[Experimentell]"; -App::$strings["[Unsupported]"] = "[Nicht unterstützt]"; -App::$strings["Your service plan only allows %d channels."] = "Dein Vertrag erlaubt nur %d Kanäle."; -App::$strings["Nothing to import."] = "Nichts zu importieren."; -App::$strings["Unable to download data from old server"] = "Daten können vom alten Server nicht heruntergeladen werden"; -App::$strings["Imported file is empty."] = "Die importierte Datei ist leer."; -App::$strings["Warning: Database versions differ by %1\$d updates."] = "Achtung: Datenbankversionen unterscheiden sich um %1\$d Aktualisierungen."; -App::$strings["Cloned channel not found. Import failed."] = "Geklonter Kanal nicht gefunden. Import fehlgeschlagen."; -App::$strings["No channel. Import failed."] = "Kein Kanal. Import fehlgeschlagen."; -App::$strings["Import completed."] = "Import abgeschlossen."; -App::$strings["You must be logged in to use this feature."] = "Du musst angemeldet sein um diese Funktion zu nutzen."; -App::$strings["Import Channel"] = "Kanal importieren"; -App::$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."] = "Verwende dieses Formular, um einen existierenden Kanal von einem anderen Hub zu importieren. Du kannst den Kanal direkt vom bisherigen Hub über das Netzwerk oder aus einer exportierten Sicherheitskopie importieren."; -App::$strings["File to Upload"] = "Hochzuladende Datei:"; -App::$strings["Or provide the old server/hub details"] = "Oder gib die Details Deines bisherigen \$Projectname-Hubs ein"; -App::$strings["Your old identity address (xyz@example.com)"] = "Bisherige Kanal-Adresse (xyz@example.com)"; -App::$strings["Your old login email address"] = "Deine alte Login-E-Mail-Adresse"; -App::$strings["Your old login password"] = "Dein altes Passwort"; -App::$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."] = "Egal, welche Option Du wählst – bitte lege fest, ob dieser Server die neue primäre Adresse dieses Kanals sein soll, oder ob der bisherige \$Projectname-Hub diese Rolle weiterhin wahrnimmt. Du kannst von beiden Servern aus posten, aber nur einer kann der primäre Ort Deiner Dateien, Fotos und Medien sein."; -App::$strings["Make this hub my primary location"] = "Dieser $Pojectname-Hub ist mein primärer Hub."; -App::$strings["Import existing posts if possible (experimental - limited by available memory"] = "Importiere bestehende Beiträge falls möglich (experimentell - begrenzt durch zur Verfügung stehenden Speicher"; -App::$strings["This process may take several minutes to complete. Please submit the form only once and leave this page open until finished."] = "Dieser Vorgang kann einige Minuten dauern. Bitte sende das Formular nur einmal ab und lasse diese Seite bis zur Fertigstellung offen."; -App::$strings["Public access denied."] = "Öffentlichen Zugriff verweigert."; -App::$strings["%d rating"] = array( - 0 => "%d Bewertung", - 1 => "%d Bewertungen", -); -App::$strings["Gender: "] = "Geschlecht:"; -App::$strings["Status: "] = "Status:"; -App::$strings["Homepage: "] = "Webseite:"; -App::$strings["Age:"] = "Alter:"; -App::$strings["Location:"] = "Ort:"; -App::$strings["Description:"] = "Beschreibung:"; -App::$strings["Hometown:"] = "Heimatstadt:"; -App::$strings["About:"] = "Über:"; -App::$strings["Connect"] = "Verbinden"; -App::$strings["Public Forum:"] = "Öffentliches Forum:"; -App::$strings["Keywords: "] = "Schlüsselwörter:"; -App::$strings["Don't suggest"] = "Nicht vorschlagen"; -App::$strings["Common connections:"] = "Gemeinsame Verbindungen:"; -App::$strings["Global Directory"] = "Globales Verzeichnis"; -App::$strings["Local Directory"] = "Lokales Verzeichnis"; -App::$strings["Find"] = "Finde"; -App::$strings["Finding:"] = "Ergebnisse:"; -App::$strings["Channel Suggestions"] = "Kanal-Vorschläge"; -App::$strings["next page"] = "nächste Seite"; -App::$strings["previous page"] = "vorherige Seite"; -App::$strings["Sort options"] = "Sortieroptionen"; -App::$strings["Alphabetic"] = "alphabetisch"; -App::$strings["Reverse Alphabetic"] = "Entgegengesetzt alphabetisch"; -App::$strings["Newest to Oldest"] = "Neueste zuerst"; -App::$strings["Oldest to Newest"] = "Älteste zuerst"; -App::$strings["No entries (some entries may be hidden)."] = "Keine Einträge gefunden (einige könnten versteckt sein)."; -App::$strings["Bookmark added"] = "Lesezeichen hinzugefügt"; -App::$strings["My Bookmarks"] = "Meine Lesezeichen"; -App::$strings["My Connections Bookmarks"] = "Lesezeichen meiner Kontakte"; -App::$strings["Edit post"] = "Bearbeite Beitrag"; -App::$strings["No ratings"] = "Keine Bewertungen"; +App::$strings["Public Hubs"] = "Öffentliche Hubs"; +App::$strings["The listed hubs allow public registration for the \$Projectname network. All hubs in the network are interlinked so membership on any of them conveys membership in the network as a whole. Some hubs may require subscription or provide tiered service plans. The hub itself may provide additional details."] = "Die hier aufgeführten Hubs sind öffentlich und erlauben die Registrierung im \$Projectname Netzwerk. Alle Hubs dieses Netzwerks sind miteinander verbunden, so dass die Mitgliedschaft auf einem Hub die Verbindung zu beliebigen Seiten und Kanälen auf anderen Hubs ermöglicht. Es könnte sein, dass einige dieser Hubs kostenpflichtig sind oder abgestufte, je nach Umfang kostenpflichtige Mitgliedschaften anbieten. Auf den Seiten der einzelnen Hubs könnten jeweils nähere Informationen dazu stehen."; +App::$strings["Hub URL"] = "Hub-URL"; +App::$strings["Access Type"] = "Zugriffstyp"; +App::$strings["Registration Policy"] = "Registrierungsrichtlinien"; +App::$strings["Stats"] = "Statistiken"; +App::$strings["Software"] = "Software"; App::$strings["Ratings"] = "Bewertungen"; -App::$strings["Rating: "] = "Bewertung: "; -App::$strings["Website: "] = "Webseite: "; -App::$strings["Description: "] = "Beschreibung: "; -App::$strings["Photos"] = "Fotos"; -App::$strings["Invalid item."] = "Ungültiges Element."; -App::$strings["Channel not found."] = "Kanal nicht gefunden."; -App::$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."; -App::$strings["Save to Folder:"] = "Speichern in Ordner:"; -App::$strings["- select -"] = "– auswählen –"; -App::$strings["Blocked"] = "Blockiert"; -App::$strings["Ignored"] = "Ignoriert"; -App::$strings["Hidden"] = "Versteckt"; -App::$strings["Archived"] = "Archiviert"; -App::$strings["New"] = "Neu"; -App::$strings["All"] = "Alle"; -App::$strings["New Connections"] = "Neue Verbindungen"; -App::$strings["Show pending (new) connections"] = "Ausstehende (neue) Verbindungsanfragen anzeigen"; -App::$strings["All Connections"] = "Alle Verbindungen"; -App::$strings["Show all connections"] = "Alle Verbindungen anzeigen"; -App::$strings["Only show blocked connections"] = "Nur blockierte Verbindungen anzeigen"; -App::$strings["Only show ignored connections"] = "Nur ignorierte Verbindungen anzeigen"; -App::$strings["Only show archived connections"] = "Nur archivierte Verbindungen anzeigen"; -App::$strings["Only show hidden connections"] = "Nur versteckte Verbindungen anzeigen"; -App::$strings["Pending approval"] = "Wartet auf Genehmigung"; -App::$strings["%1\$s [%2\$s]"] = "%1\$s [%2\$s]"; -App::$strings["Edit connection"] = "Verbindung bearbeiten"; -App::$strings["Delete connection"] = "Verbindung löschen"; -App::$strings["Channel address"] = "Kanaladresse"; -App::$strings["Network"] = "Netzwerk"; -App::$strings["Status"] = "Status"; -App::$strings["Connected"] = "Verbunden"; -App::$strings["Approve connection"] = "Verbindung genehmigen"; -App::$strings["Ignore connection"] = "Verbindung ignorieren"; -App::$strings["Ignore"] = "Ignorieren"; -App::$strings["Recent activity"] = "Kürzliche Aktivitäten"; -App::$strings["Connections"] = "Verbindungen"; -App::$strings["Search"] = "Suche"; -App::$strings["Search your connections"] = "Verbindungen durchsuchen"; -App::$strings["Connections search"] = "Verbindung suchen"; -App::$strings["Image uploaded but image cropping failed."] = "Bild hochgeladen, aber das Zurechtschneiden schlug fehl."; -App::$strings["Cover Photos"] = "Cover Foto"; -App::$strings["Image resize failed."] = "Bild-Anpassung fehlgeschlagen."; -App::$strings["Unable to process image"] = "Kann Bild nicht verarbeiten"; -App::$strings["Image upload failed."] = "Hochladen des Bilds fehlgeschlagen."; -App::$strings["Unable to process image."] = "Kann Bild nicht verarbeiten."; -App::$strings["female"] = "weiblich"; -App::$strings["%1\$s updated her %2\$s"] = "%1\$s hat ihr %2\$s aktualisiert"; -App::$strings["male"] = "männlich"; -App::$strings["%1\$s updated his %2\$s"] = "%1\$s hat sein %2\$s aktualisiert"; -App::$strings["%1\$s updated their %2\$s"] = "%1\$s hat sein/ihr %2\$s aktualisiert"; -App::$strings["cover photo"] = "Cover Foto"; -App::$strings["Photo not available."] = "Foto nicht verfügbar."; -App::$strings["Upload File:"] = "Datei hochladen:"; -App::$strings["Select a profile:"] = "Wähle ein Profil:"; -App::$strings["Upload Cover Photo"] = "Cover Foto hochladen"; -App::$strings["or"] = "oder"; -App::$strings["skip this step"] = "diesen Schritt überspringen"; -App::$strings["select a photo from your photo albums"] = "ein Foto aus meinen Fotoalben"; -App::$strings["Crop Image"] = "Bild zuschneiden"; -App::$strings["Please adjust the image cropping for optimum viewing."] = "Bitte schneide das Bild für eine optimale Anzeige passend zu."; -App::$strings["Done Editing"] = "Bearbeitung fertigstellen"; +App::$strings["Rate"] = "Bewerten"; +App::$strings["View"] = "Ansicht"; App::$strings["Item not found"] = "Element nicht gefunden"; -App::$strings["Block Name"] = "Block-Name"; -App::$strings["Insert web link"] = "Link einfügen"; -App::$strings["Title (optional)"] = "Titel (optional)"; -App::$strings["Edit Block"] = "Block bearbeiten"; App::$strings["Layout Name"] = "Layout-Name"; App::$strings["Layout Description (Optional)"] = "Layout-Beschreibung (optional)"; App::$strings["Edit Layout"] = "Layout bearbeiten"; App::$strings["Page link"] = "Seiten-Link"; +App::$strings["Insert web link"] = "Link einfügen"; App::$strings["Edit Webpage"] = "Webseite bearbeiten"; +App::$strings["Photos"] = "Fotos"; +App::$strings["You must be logged in to see this page."] = "Du musst angemeldet sein, um diese Seite betrachten zu können."; +App::$strings["Posts and comments"] = "Beiträge und Kommentare"; +App::$strings["Only posts"] = "Nur Beiträge"; +App::$strings["Insufficient permissions. Request redirected to profile page."] = "Unzureichende Zugriffsrechte. Die Anfrage wurde zur Profil-Seite umgeleitet."; +App::$strings["No such group"] = "Gruppe nicht gefunden"; +App::$strings["No such channel"] = "Kanal nicht gefunden"; +App::$strings["forum"] = "Forum"; +App::$strings["Search Results For:"] = "Suchergebnisse für:"; +App::$strings["Privacy group is empty"] = "Gruppe ist leer"; +App::$strings["Privacy group: "] = "Gruppe:"; +App::$strings["Invalid connection."] = "Ungültige Verbindung."; App::$strings["Unable to update menu."] = "Kann Menü nicht aktualisieren."; App::$strings["Unable to create menu."] = "Kann Menü nicht erstellen."; App::$strings["Menu Name"] = "Name des Menüs"; @@ -504,7 +582,6 @@ App::$strings["Allow Bookmarks"] = "Lesezeichen erlauben"; App::$strings["Menu may be used to store saved bookmarks"] = "Im Menü können gespeicherte Lesezeichen abgelegt werden"; App::$strings["Submit and proceed"] = "Absenden und fortfahren"; App::$strings["Menus"] = "Menüs"; -App::$strings["Drop"] = "Löschen"; App::$strings["Created"] = "Erstellt"; App::$strings["Edited"] = "Geändert"; App::$strings["Bookmarks allowed"] = "Lesezeichen erlaubt"; @@ -536,6 +613,65 @@ App::$strings["Categories (optional, comma separated list)"] = "Kategorien (opti App::$strings["Version ID"] = "Versions-ID"; App::$strings["Price of app"] = "Preis der App"; App::$strings["Location (URL) to purchase app"] = "Ort (URL), um die App zu kaufen"; +App::$strings["Edit post"] = "Bearbeite Beitrag"; +App::$strings["Documentation Search"] = "Suche in der Dokumentation"; +App::$strings["\$Projectname Documentation"] = "\$Projectname-Dokumentation"; +App::$strings["Share content from Firefox to \$Projectname"] = "Inhalte von Firefox nach \$Projectname teilen"; +App::$strings["Activate the Firefox \$Projectname provider"] = "Aktiviert den \$Projectname-Provider für firefox"; +App::$strings["Apps"] = "Apps"; +App::$strings["\$Projectname"] = "\$Projectname"; +App::$strings["Welcome to %s"] = "Willkommen auf %s"; +App::$strings["Permission Denied."] = "Zugriff verweigert."; +App::$strings["File not found."] = "Datei nicht gefunden."; +App::$strings["Edit file permissions"] = "Dateiberechtigungen bearbeiten"; +App::$strings["Permissions"] = "Berechtigungen"; +App::$strings["Set/edit permissions"] = "Berechtigungen setzen/ändern"; +App::$strings["Include all files and sub folders"] = "Alle Dateien und Unterverzeichnisse einbinden"; +App::$strings["Return to file list"] = "Zurück zur Dateiliste"; +App::$strings["Copy/paste this code to attach file to a post"] = "Diesen Code kopieren und einfügen, um die Datei an einen Beitrag anzuhängen"; +App::$strings["Copy/paste this URL to link file from a web page"] = "Diese URL verwenden, um von einer Webseite aus auf die Datei zu verlinken"; +App::$strings["Share this file"] = "Diese Datei freigeben"; +App::$strings["Show URL to this file"] = "URL zu dieser Datei anzeigen"; +App::$strings["Notify your contacts about this file"] = "Meine Kontakte über diese Datei benachrichtigen"; +App::$strings["Public access denied."] = "Öffentlichen Zugriff verweigert."; +App::$strings["%d rating"] = array( + 0 => "%d Bewertung", + 1 => "%d Bewertungen", +); +App::$strings["Gender: "] = "Geschlecht:"; +App::$strings["Status: "] = "Status:"; +App::$strings["Homepage: "] = "Webseite:"; +App::$strings["Age:"] = "Alter:"; +App::$strings["Location:"] = "Ort:"; +App::$strings["Description:"] = "Beschreibung:"; +App::$strings["Hometown:"] = "Heimatstadt:"; +App::$strings["About:"] = "Über:"; +App::$strings["Public Forum:"] = "Öffentliches Forum:"; +App::$strings["Keywords: "] = "Schlüsselwörter:"; +App::$strings["Don't suggest"] = "Nicht vorschlagen"; +App::$strings["Common connections:"] = "Gemeinsame Verbindungen:"; +App::$strings["Global Directory"] = "Globales Verzeichnis"; +App::$strings["Local Directory"] = "Lokales Verzeichnis"; +App::$strings["Finding:"] = "Ergebnisse:"; +App::$strings["Channel Suggestions"] = "Kanal-Vorschläge"; +App::$strings["next page"] = "nächste Seite"; +App::$strings["previous page"] = "vorherige Seite"; +App::$strings["Sort options"] = "Sortieroptionen"; +App::$strings["Alphabetic"] = "alphabetisch"; +App::$strings["Reverse Alphabetic"] = "Entgegengesetzt alphabetisch"; +App::$strings["Newest to Oldest"] = "Neueste zuerst"; +App::$strings["Oldest to Newest"] = "Älteste zuerst"; +App::$strings["No entries (some entries may be hidden)."] = "Keine Einträge gefunden (einige könnten versteckt sein)."; +App::$strings["Unable to locate original post."] = "Originalbeitrag nicht gefunden."; +App::$strings["Empty post discarded."] = "Leeren Beitrag verworfen."; +App::$strings["Executable content type not permitted to this channel."] = "Ausführbarer Content-Typ ist für diesen Kanal nicht freigegeben."; +App::$strings["Duplicate post suppressed."] = "Doppelter Beitrag unterdrückt."; +App::$strings["System error. Post not saved."] = "Systemfehler. Beitrag nicht gespeichert."; +App::$strings["Unable to obtain post information from database."] = "Beitragsinformationen können nicht aus der Datenbank abgerufen werden."; +App::$strings["You have reached your limit of %1$.0f top level posts."] = "Du hast die maximale Anzahl von %1$.0f Beiträgen erreicht."; +App::$strings["You have reached your limit of %1$.0f webpages."] = "Du hast die maximale Anzahl von %1$.0f Webseiten erreicht."; +App::$strings["toggle full screen mode"] = "auf Vollbildmodus umschalten"; +App::$strings["Channel added."] = "Kanal hinzugefügt."; App::$strings["Unable to lookup recipient."] = "Konnte den Empfänger nicht finden."; App::$strings["Unable to communicate with requested channel."] = "Die Kommunikation mit dem ausgewählten Kanal ist fehlgeschlagen."; App::$strings["Cannot verify requested channel."] = "Verifizierung des angeforderten Kanals fehlgeschlagen."; @@ -562,75 +698,20 @@ App::$strings["Delete Conversation"] = "Unterhaltung löschen"; App::$strings["No secure communications available. You may be able to respond from the sender's profile page."] = "Keine sichere Kommunikation verfügbar. Eventuell kannst Du auf der Profilseite des Absenders antworten."; App::$strings["Send Reply"] = "Antwort senden"; App::$strings["Your message for %s (%s):"] = "Deine Nachricht für %s (%s):"; -App::$strings["Item not available."] = "Element nicht verfügbar."; -App::$strings["Share content from Firefox to \$Projectname"] = "Inhalte von Firefox nach \$Projectname teilen"; -App::$strings["Activate the Firefox \$Projectname provider"] = "Aktiviert den \$Projectname-Provider für firefox"; -App::$strings["Documentation Search"] = "Suche in der Dokumentation"; -App::$strings["\$Projectname Documentation"] = "\$Projectname-Dokumentation"; -App::$strings["\$Projectname"] = "\$Projectname"; -App::$strings["Welcome to %s"] = "Willkommen auf %s"; -App::$strings["Remote privacy information not available."] = "Privatsphäre-Einstellungen anderer Nutzer sind nicht verfügbar."; -App::$strings["Visible to:"] = "Sichtbar für:"; -App::$strings["Permission Denied."] = "Zugriff verweigert."; -App::$strings["File not found."] = "Datei nicht gefunden."; -App::$strings["Edit file permissions"] = "Dateiberechtigungen bearbeiten"; -App::$strings["Permissions"] = "Berechtigungen"; -App::$strings["Set/edit permissions"] = "Berechtigungen setzen/ändern"; -App::$strings["Include all files and sub folders"] = "Alle Dateien und Unterverzeichnisse einbinden"; -App::$strings["Return to file list"] = "Zurück zur Dateiliste"; -App::$strings["Copy/paste this code to attach file to a post"] = "Diesen Code kopieren und einfügen, um die Datei an einen Beitrag anzuhängen"; -App::$strings["Copy/paste this URL to link file from a web page"] = "Diese URL verwenden, um von einer Webseite aus auf die Datei zu verlinken"; -App::$strings["Share this file"] = "Diese Datei freigeben"; -App::$strings["Show URL to this file"] = "URL zu dieser Datei anzeigen"; -App::$strings["Notify your contacts about this file"] = "Meine Kontakte über diese Datei benachrichtigen"; -App::$strings["Hub not found."] = "Server nicht gefunden."; -App::$strings["Continue"] = "Fortfahren"; -App::$strings["Premium Channel Setup"] = "Premium-Kanal-Einrichtung"; -App::$strings["Enable premium channel connection restrictions"] = "Einschränkungen für einen Premium-Kanal aktivieren"; -App::$strings["Please enter your restrictions or conditions, such as paypal receipt, usage guidelines, etc."] = "Bitte gib Deine Nutzungsbedingungen ein, z.B. Paypal-Quittung, Richtlinien etc."; -App::$strings["This channel may require additional steps or acknowledgement of the following conditions prior to connecting:"] = "Unter Umständen sind weitere Schritte oder die Bestätigung der folgenden Bedingungen vor dem Verbinden mit diesem Kanal nötig."; -App::$strings["Potential connections will then see the following text before proceeding:"] = "Potentielle Kontakte werden den folgenden Text sehen, bevor fortgefahren wird:"; -App::$strings["By continuing, I certify that I have complied with any instructions provided on this page."] = "Indem ich fortfahre, bestätige ich die Erfüllung aller Anweisungen auf dieser Seite."; -App::$strings["(No specific instructions have been provided by the channel owner.)"] = "(Der Kanal-Besitzer hat keine speziellen Anweisungen hinterlegt.)"; -App::$strings["Restricted or Premium Channel"] = "Eingeschränkter oder Premium-Kanal"; -App::$strings["Privacy group created."] = "Gruppe wurde erstellt."; -App::$strings["Could not create privacy group."] = "Gruppe konnte nicht erstellt werden."; -App::$strings["Privacy group not found."] = "Gruppe nicht gefunden."; -App::$strings["Privacy group updated."] = "Gruppe wurde aktualisiert."; -App::$strings["Create a group of channels."] = "Erstelle eine Gruppe für Kanäle."; -App::$strings["Privacy group name: "] = "Gruppenname:"; -App::$strings["Members are visible to other channels"] = "Mitglieder sind sichtbar für andere Kanäle"; -App::$strings["Privacy group removed."] = "Gruppe wurde entfernt."; -App::$strings["Unable to remove privacy group."] = "Gruppe konnte nicht entfernt werden."; -App::$strings["Privacy group editor"] = "Gruppeneditor"; -App::$strings["Members"] = "Mitglieder"; -App::$strings["All Connected Channels"] = "Alle verbundenen Kanäle"; -App::$strings["Click on a channel to add or remove."] = "Wähle einen Kanal zum hinzufügen oder entfernen aus."; -App::$strings["Import Webpage Elements"] = "Webseitenelemente importieren"; -App::$strings["Import selected"] = "Import ausgewählt"; -App::$strings["Export Webpage Elements"] = "Webseitenelemente exportieren"; -App::$strings["Export selected"] = "Exportieren ausgewählt"; -App::$strings["Webpages"] = "Webseiten"; -App::$strings["Share"] = "Teilen"; -App::$strings["View"] = "Ansicht"; -App::$strings["Preview"] = "Vorschau"; -App::$strings["Actions"] = "Aktionen"; -App::$strings["Page Link"] = "Seiten-Link"; -App::$strings["Page Title"] = "Seitentitel"; -App::$strings["Invalid file type."] = "Ungültiger Dateityp."; -App::$strings["Error opening zip file"] = "Fehler beim Öffnen der ZIP-Datei"; -App::$strings["Invalid folder path."] = "Ungültiger Ordnerpfad."; -App::$strings["No webpage elements detected."] = "Keine Webseitenelemente erkannt."; -App::$strings["Import complete."] = "Import abgeschlossen."; App::$strings["webpage"] = "Webseite"; App::$strings["block"] = "Block"; App::$strings["layout"] = "Layout"; App::$strings["menu"] = "Menü"; App::$strings["%s element installed"] = "Element für %s installiert"; App::$strings["%s element installation failed"] = "Installation des Elements %s fehlgeschlagen"; +App::$strings["Nothing to import."] = "Nichts zu importieren."; +App::$strings["Unable to download data from old server"] = "Daten können vom alten Server nicht heruntergeladen werden"; +App::$strings["Imported file is empty."] = "Die importierte Datei ist leer."; +App::$strings["Warning: Database versions differ by %1\$d updates."] = "Achtung: Datenbankversionen unterscheiden sich um %1\$d Aktualisierungen."; App::$strings["Import completed"] = "Import abgeschlossen"; App::$strings["Import Items"] = "Beiträge importieren"; App::$strings["Use this form to import existing posts and content from an export file."] = "Mit diesem Formular kannst Du existierende Beiträge und Inhalte aus einer Sicherungsdatei importieren."; +App::$strings["File to Upload"] = "Hochzuladende Datei:"; App::$strings["Total invitation limit exceeded."] = "Einladungslimit überschritten."; App::$strings["%s : Not a valid email address."] = "%s : Keine gültige Email Adresse."; App::$strings["Please join us on \$Projectname"] = "Schließe Dich uns auf \$Projectname an!"; @@ -649,57 +730,28 @@ App::$strings["1. Register at any \$Projectname location (they are all inter-con App::$strings["2. Enter my \$Projectname network address into the site searchbar."] = "2. Gib meine \$Projectname-Adresse im Suchfeld ein."; App::$strings["or visit"] = "oder besuche"; App::$strings["3. Click [Connect]"] = "3. Klicke auf [Verbinden]"; -App::$strings["Location not found."] = "Klon nicht gefunden."; -App::$strings["Location lookup failed."] = "Nachschlagen des Kanal-Ortes fehlgeschlagen"; -App::$strings["Please select another location to become primary before removing the primary location."] = "Bitte mache einen anderen Kanal-Ort zum primären Ort, bevor Du den primären Ort löschst."; -App::$strings["Syncing locations"] = "Synchronisiere Klone"; -App::$strings["No locations found."] = "Keine Klon-Adressen gefunden."; -App::$strings["Manage Channel Locations"] = "Klon-Adressen verwalten"; -App::$strings["Location"] = "Ort"; -App::$strings["Primary"] = "Primär"; -App::$strings["Sync Now"] = "Jetzt synchronisieren"; -App::$strings["Please wait several minutes between consecutive operations."] = "Bitte warte mehrere Minuten zwischen dem Ausführen zweier Operationen!"; -App::$strings["When possible, drop a location by logging into that website/hub and removing your channel."] = "Wenn möglich, lösche einen Klon, indem Du Dich auf dem jeweiligen Hub einloggst und den Kanal dort löschst."; -App::$strings["Use this form to drop the location if the hub is no longer operating."] = "Benutze dieses Formular zum Löschen eines Klons, wenn es den Hub nicht mehr gibt."; -App::$strings["No such group"] = "Gruppe nicht gefunden"; -App::$strings["No such channel"] = "Kanal nicht gefunden"; -App::$strings["forum"] = "Forum"; -App::$strings["Search Results For:"] = "Suchergebnisse für:"; -App::$strings["Privacy group is empty"] = "Gruppe ist leer"; -App::$strings["Privacy group: "] = "Gruppe:"; -App::$strings["Invalid connection."] = "Ungültige Verbindung."; -App::$strings["Like/Dislike"] = "Mögen/Nicht mögen"; -App::$strings["This action is restricted to members."] = "Diese Aktion kann nur von Mitgliedern ausgeführt werden."; -App::$strings["Please login with your \$Projectname ID or register as a new \$Projectname member to continue."] = "Um fortzufahren melde Dich bitte mit Deiner \$Projectname-ID an oder registriere Dich als neues \$Projectname-Mitglied."; -App::$strings["Invalid request."] = "Ungültige Anfrage."; -App::$strings["channel"] = "Kanal"; -App::$strings["thing"] = "Sache"; -App::$strings["Channel unavailable."] = "Kanal nicht vorhanden."; -App::$strings["Previous action reversed."] = "Die vorherige Aktion wurde rückgängig gemacht."; -App::$strings["photo"] = "Foto"; -App::$strings["status"] = "Status"; -App::$strings["event"] = "Termin"; -App::$strings["%1\$s likes %2\$s's %3\$s"] = "%1\$s gefällt %2\$ss %3\$s"; -App::$strings["%1\$s doesn't like %2\$s's %3\$s"] = "%1\$s gefällt %2\$ss %3\$s nicht"; -App::$strings["%1\$s agrees with %2\$s's %3\$s"] = "%1\$s stimmt %2\$ss %3\$s zu"; -App::$strings["%1\$s doesn't agree with %2\$s's %3\$s"] = "%1\$s lehnt %2\$ss %3\$s ab"; -App::$strings["%1\$s abstains from a decision on %2\$s's %3\$s"] = "%1\$s enthält sich zu %2\$ss %3\$s"; -App::$strings["%1\$s is attending %2\$s's %3\$s"] = "%1\$s nimmt an %2\$ss %3\$s teil"; -App::$strings["%1\$s is not attending %2\$s's %3\$s"] = "%1\$s nimmt an %2\$ss %3\$s nicht teil"; -App::$strings["%1\$s may attend %2\$s's %3\$s"] = "%1\$s nimmt vielleicht an %2\$ss %3\$s teil"; -App::$strings["Action completed."] = "Aktion durchgeführt."; -App::$strings["Thank you."] = "Vielen Dank."; -App::$strings["You have created %1$.0f of %2$.0f allowed channels."] = "Du hast %1$.0f von maximal %2$.0f erlaubten Kanälen eingerichtet."; -App::$strings["Create a new channel"] = "Neuen Kanal anlegen"; -App::$strings["Create New"] = "Neu anlegen"; -App::$strings["Channel Manager"] = "Kanal-Manager"; -App::$strings["Current Channel"] = "Aktueller Kanal"; -App::$strings["Switch to one of your channels by selecting it."] = "Wechsle zu einem Deiner Kanäle, indem Du auf ihn klickst."; -App::$strings["Default Channel"] = "Standard Kanal"; -App::$strings["Make Default"] = "Zum Standard machen"; -App::$strings["%d new messages"] = "%d neue Nachrichten"; -App::$strings["%d new introductions"] = "%d neue Vorstellungen"; -App::$strings["Delegated Channel"] = "Delegierte Kanäle"; +App::$strings["Block Name"] = "Block-Name"; +App::$strings["Title (optional)"] = "Titel (optional)"; +App::$strings["Edit Block"] = "Block bearbeiten"; +App::$strings["Privacy group created."] = "Gruppe wurde erstellt."; +App::$strings["Could not create privacy group."] = "Gruppe konnte nicht erstellt werden."; +App::$strings["Privacy group not found."] = "Gruppe nicht gefunden."; +App::$strings["Privacy group updated."] = "Gruppe wurde aktualisiert."; +App::$strings["Create a group of channels."] = "Erstelle eine Gruppe für Kanäle."; +App::$strings["Privacy group name: "] = "Gruppenname:"; +App::$strings["Members are visible to other channels"] = "Mitglieder sind sichtbar für andere Kanäle"; +App::$strings["Privacy group removed."] = "Gruppe wurde entfernt."; +App::$strings["Unable to remove privacy group."] = "Gruppe konnte nicht entfernt werden."; +App::$strings["Privacy group editor"] = "Gruppeneditor"; +App::$strings["Members"] = "Mitglieder"; +App::$strings["All Connected Channels"] = "Alle verbundenen Kanäle"; +App::$strings["Click on a channel to add or remove."] = "Wähle einen Kanal zum hinzufügen oder entfernen aus."; +App::$strings["Invalid profile identifier."] = "Ungültiger Profil-Identifikator"; +App::$strings["Profile Visibility Editor"] = "Profil-Sichtbarkeits-Editor"; +App::$strings["Profile"] = "Profil"; +App::$strings["Click on a contact to add or remove."] = "Klicke auf einen Kontakt, um ihn hinzuzufügen oder zu entfernen."; +App::$strings["Visible To"] = "Sichtbar für"; +App::$strings["Hub not found."] = "Server nicht gefunden."; App::$strings["Unable to create element."] = "Element konnte nicht erstellt werden."; App::$strings["Unable to update menu element."] = "Kann Menü-Element nicht aktualisieren."; App::$strings["Unable to add menu element."] = "Kann Menü-Bestandteil nicht hinzufügen."; @@ -729,30 +781,189 @@ App::$strings["Menu item deleted."] = "Menü-Bestandteil gelöscht."; App::$strings["Menu item could not be deleted."] = "Menü-Bestandteil kann nicht gelöscht werden."; App::$strings["Edit Menu Element"] = "Bearbeite Menü-Bestandteil"; App::$strings["Link text"] = "Link Text"; -App::$strings["Rating"] = "Bewertung"; -App::$strings["Website:"] = "Webseite:"; -App::$strings["Remote Channel [%s] (not yet known on this site)"] = "Kanal [%s] (auf diesem Server noch unbekannt)"; -App::$strings["Rating (this information is public)"] = "Bewertung (öffentlich sichtbar)"; -App::$strings["Optionally explain your rating (this information is public)"] = "Optional kannst du deine Bewertung erklären (öffentlich sichtbar)"; -App::$strings["No valid account found."] = "Kein gültiges Konto gefunden."; -App::$strings["Password reset request issued. Check your email."] = "Zurücksetzen des Passworts eingeleitet. Schau in Deine E-Mails."; -App::$strings["Site Member (%s)"] = "Nutzer (%s)"; -App::$strings["Password reset requested at %s"] = "Passwort-Rücksetzung auf %s angefordert"; -App::$strings["Request could not be verified. (You may have previously submitted it.) Password reset failed."] = "Die Anfrage konnte nicht verifiziert werden. (Vielleicht hast Du schon einmal auf den Link in der E-Mail geklickt?) Passwort-Rücksetzung fehlgeschlagen."; -App::$strings["Password Reset"] = "Zurücksetzen des Kennworts"; -App::$strings["Your password has been reset as requested."] = "Dein Passwort wurde wie angefordert neu erstellt."; -App::$strings["Your new password is"] = "Dein neues Passwort lautet"; -App::$strings["Save or copy your new password - and then"] = "Speichere oder kopiere Dein neues Passwort – und dann"; -App::$strings["click here to login"] = "Klicke hier, um dich anzumelden"; -App::$strings["Your password may be changed from the Settings page after successful login."] = "Dein Passwort kann unter Einstellungen nach einer erfolgreichen Anmeldung geändert werden."; -App::$strings["Your password has changed at %s"] = "Auf %s wurde Dein Passwort geändert"; -App::$strings["Forgot your Password?"] = "Kennwort vergessen?"; -App::$strings["Enter your email address and submit to have your password reset. Then check your email for further instructions."] = "Gib Deine E-Mail-Adresse ein, um Dein Passwort zurücksetzen zu lassen. Du erhältst dann weitere Anweisungen per E-Mail."; -App::$strings["Email Address"] = "E-Mail Adresse"; -App::$strings["Reset"] = "Zurücksetzen"; +App::$strings["No ratings"] = "Keine Bewertungen"; +App::$strings["Rating: "] = "Bewertung: "; +App::$strings["Website: "] = "Webseite: "; +App::$strings["Description: "] = "Beschreibung: "; +App::$strings["Item not available."] = "Element nicht verfügbar."; App::$strings["__ctx:mood__ %1\$s is %2\$s"] = "%1\$s ist %2\$s"; App::$strings["Mood"] = "Laune"; App::$strings["Set your current mood and tell your friends"] = "Wähle Deine aktuelle Stimmung und teile sie mit Deinen Freunden"; +App::$strings["No more system notifications."] = "Keine System-Benachrichtigungen mehr."; +App::$strings["System Notifications"] = "System-Benachrichtigungen"; +App::$strings["Page owner information could not be retrieved."] = "Informationen über den Besitzer der Seite konnten nicht gefunden werden."; +App::$strings["Profile Photos"] = "Profilfotos"; +App::$strings["Album not found."] = "Album nicht gefunden."; +App::$strings["Delete Album"] = "Album löschen"; +App::$strings["Multiple storage folders exist with this album name, but within different directories. Please remove the desired folder or folders using the Files manager"] = "Mehrere Speicherordner mit diesem Albumnamen sind bereits vorhanden, aber in verschiedenen Verzeichnissen. Bitte entfernen Sie den oder die gewünschten Ordner mit dem Dateimanager"; +App::$strings["Delete Photo"] = "Foto löschen"; +App::$strings["No photos selected"] = "Keine Fotos ausgewählt"; +App::$strings["Access to this item is restricted."] = "Der Zugriff auf dieses Foto ist eingeschränkt."; +App::$strings["%1$.2f MB of %2$.2f MB photo storage used."] = "%1$.2f MB von %2$.2f MB Foto-Speicher belegt."; +App::$strings["%1$.2f MB photo storage used."] = "%1$.2f MB Foto-Speicher belegt."; +App::$strings["Upload Photos"] = "Fotos hochladen"; +App::$strings["Enter an album name"] = "Namen für ein neues Album eingeben"; +App::$strings["or select an existing album (doubleclick)"] = "oder ein bereits vorhandenes auswählen (Doppelklick)"; +App::$strings["Create a status post for this upload"] = "Einen Statusbeitrag für diesen Upload erzeugen"; +App::$strings["Caption (optional):"] = "Beschriftung (optional):"; +App::$strings["Description (optional):"] = "Beschreibung (optional):"; +App::$strings["Album name could not be decoded"] = "Albumname konnte nicht dekodiert werden"; +App::$strings["Contact Photos"] = "Kontakt-Bilder"; +App::$strings["Show Newest First"] = "Neueste zuerst anzeigen"; +App::$strings["Show Oldest First"] = "Älteste zuerst anzeigen"; +App::$strings["View Photo"] = "Foto ansehen"; +App::$strings["Edit Album"] = "Album bearbeiten"; +App::$strings["Permission denied. Access to this item may be restricted."] = "Berechtigung verweigert. Der Zugriff ist wahrscheinlich eingeschränkt worden."; +App::$strings["Photo not available"] = "Foto nicht verfügbar"; +App::$strings["Use as profile photo"] = "Als Profilfoto verwenden"; +App::$strings["Use as cover photo"] = "Als Titelbild verwenden"; +App::$strings["Private Photo"] = "Privates Foto"; +App::$strings["Previous"] = "Voriges"; +App::$strings["View Full Size"] = "In voller Größe anzeigen"; +App::$strings["Next"] = "Nächste"; +App::$strings["Edit photo"] = "Foto bearbeiten"; +App::$strings["Rotate CW (right)"] = "Drehen im UZS (rechts)"; +App::$strings["Rotate CCW (left)"] = "Drehen gegen UZS (links)"; +App::$strings["Move photo to album"] = "Foto in Album verschieben"; +App::$strings["Enter a new album name"] = "Gib einen Namen für ein neues Album ein"; +App::$strings["or select an existing one (doubleclick)"] = "oder wähle ein bereits vorhandenes aus (Doppelklick)"; +App::$strings["Caption"] = "Bildunterschrift"; +App::$strings["Add a Tag"] = "Schlagwort hinzufügen"; +App::$strings["Example: @bob, @Barbara_Jensen, @jim@example.com"] = "Beispiele: @ben, @Karl_Prester, @lieschen@example.com"; +App::$strings["Flag as adult in album view"] = "In der Albumansicht als nicht jugendfrei markieren"; +App::$strings["I like this (toggle)"] = "Mir gefällt das (Umschalter)"; +App::$strings["I don't like this (toggle)"] = "Mir gefällt das nicht (Umschalter)"; +App::$strings["Share"] = "Teilen"; +App::$strings["Please wait"] = "Bitte warten"; +App::$strings["This is you"] = "Das bist Du"; +App::$strings["Comment"] = "Kommentar"; +App::$strings["Preview"] = "Vorschau"; +App::$strings["__ctx:title__ Likes"] = "Gefällt mir"; +App::$strings["__ctx:title__ Dislikes"] = "Gefällt mir nicht"; +App::$strings["__ctx:title__ Agree"] = "Zustimmungen"; +App::$strings["__ctx:title__ Disagree"] = "Ablehnungen"; +App::$strings["__ctx:title__ Abstain"] = "Enthaltungen"; +App::$strings["__ctx:title__ Attending"] = "Zusagen"; +App::$strings["__ctx:title__ Not attending"] = "Absagen"; +App::$strings["__ctx:title__ Might attend"] = "Vielleicht"; +App::$strings["View all"] = "Alles anzeigen"; +App::$strings["__ctx:noun__ Like"] = array( + 0 => "Gefällt mir", + 1 => "Gefällt mir", +); +App::$strings["__ctx:noun__ Dislike"] = array( + 0 => "Gefällt nicht", + 1 => "Gefällt nicht", +); +App::$strings["Photo Tools"] = "Fotowerkzeuge"; +App::$strings["In This Photo:"] = "Auf diesem Foto:"; +App::$strings["Map"] = "Karte"; +App::$strings["__ctx:noun__ Likes"] = "Gefällt mir"; +App::$strings["__ctx:noun__ Dislikes"] = "Gefällt nicht"; +App::$strings["Close"] = "Schließen"; +App::$strings["View Album"] = "Album ansehen"; +App::$strings["Recent Photos"] = "Neueste Fotos"; +App::$strings["\$Projectname Server - Setup"] = "\$Projectname Server-Einrichtung"; +App::$strings["Could not connect to database."] = "Kann nicht mit der Datenbank verbinden."; +App::$strings["Could not connect to specified site URL. Possible SSL certificate or DNS issue."] = "Konnte die angegebene Webseiten-URL nicht erreichen. Möglicherweise ein Problem mit dem SSL-Zertifikat oder dem DNS."; +App::$strings["Could not create table."] = "Konnte Tabelle nicht erstellen."; +App::$strings["Your site database has been installed."] = "Die Datenbank Deines Hubs wurde installiert."; +App::$strings["You may need to import the file \"install/schema_xxx.sql\" manually using a database client."] = "Möglicherweise musst Du die Datei install/schema_xxx.sql manuell mit Hilfe eines Datenkbank-Clients importieren."; +App::$strings["Please see the file \"install/INSTALL.txt\"."] = "Lies die Datei \"install/INSTALL.txt\"."; +App::$strings["System check"] = "Systemprüfung"; +App::$strings["Check again"] = "Nochmal prüfen"; +App::$strings["Database connection"] = "Datenbankverbindung"; +App::$strings["In order to install \$Projectname we need to know how to connect to your database."] = "Um \$Projectname zu installieren, müssen wir wissen, wie wir eine Verbindung zu Deiner Datenbank aufbauen können."; +App::$strings["Please contact your hosting provider or site administrator if you have questions about these settings."] = "Bitte kontaktiere Deinen Hosting-Provider oder Administrator, falls Du Fragen zu diesen Einstellungen hast."; +App::$strings["The database you specify below should already exist. If it does not, please create it before continuing."] = "Die Datenbank, die Du weiter unten angibst, sollte bereits existieren. Sollte das noch nicht der Fall sein, erzeuge sie bitte bevor Du fortfährst."; +App::$strings["Database Server Name"] = "Datenbankservername"; +App::$strings["Default is 127.0.0.1"] = "Standard ist 127.0.0.1"; +App::$strings["Database Port"] = "Datenbankport"; +App::$strings["Communication port number - use 0 for default"] = "Port-Nummer für die Kommunikation – verwende 0 für die Standardeinstellung"; +App::$strings["Database Login Name"] = "Datenbank-Benutzername"; +App::$strings["Database Login Password"] = "Datenbank-Passwort"; +App::$strings["Database Name"] = "Datenbankname"; +App::$strings["Database Type"] = "Datenbanktyp"; +App::$strings["Site administrator email address"] = "E-Mail Adresse des Seiten-Administrators"; +App::$strings["Your account email address must match this in order to use the web admin panel."] = "Die E-Mail-Adresse Deines Accounts muss dieser Adresse entsprechen, damit Du Zugriff zur Administrations-Seite erhältst."; +App::$strings["Website URL"] = "Webseiten-URL"; +App::$strings["Please use SSL (https) URL if available."] = "Nutze wenn möglich eine SSL-URL (https)."; +App::$strings["Please select a default timezone for your website"] = "Standard-Zeitzone für Deinen Server"; +App::$strings["Site settings"] = "Seiteneinstellungen"; +App::$strings["PHP version 5.5 or greater is required."] = "PHP-Version 5.5 oder höher ist erforderlich."; +App::$strings["PHP version"] = "PHP-Version"; +App::$strings["Could not find a command line version of PHP in the web server PATH."] = "Konnte die Kommandozeilen-Version von PHP nicht im PATH des Web-Servers finden."; +App::$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."] = "Ohne Kommandozeilen-Version von PHP auf dem Server wirst Du nicht in der Lage sein, Hintergrundprozesse via cron auszuführen."; +App::$strings["PHP executable path"] = "PHP-Pfad zu ausführbarer Datei"; +App::$strings["Enter full path to php executable. You can leave this blank to continue the installation."] = "Gib den vollen Pfad zum PHP-Interpreter an. Du kannst dieses Feld frei lassen und mit der Installation fortfahren."; +App::$strings["Command line PHP"] = "PHP-Befehlszeile"; +App::$strings["Unable to check command line PHP, as shell_exec() is disabled. This is required."] = "Prüfung auf Kommandozeilen-PHP fehlgeschlagen, da shell_exec() deaktiviert ist. Dies wird aber benötigt."; +App::$strings["The command line version of PHP on your system does not have \"register_argc_argv\" enabled."] = "Bei der Kommandozeilen-Version von PHP auf Deinem System ist \"register_argc_argv\" nicht aktiviert."; +App::$strings["This is required for message delivery to work."] = "Das wird benötigt, damit die Auslieferung von Nachrichten funktioniert."; +App::$strings["PHP register_argc_argv"] = "PHP register_argc_argv"; +App::$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."] = "Die Maximalgröße für Uploads insgesamt liegt bei %s. Die Maximalgröße für eine Datei liegt bei %s. Es können maximal %d Dateien gleichzeitig hochgeladen werden."; +App::$strings["You can adjust these settings in the server php.ini file."] = "Du kannst diese Einstellungen in der php.ini - Datei des Servers anpassen."; +App::$strings["PHP upload limits"] = "PHP-Hochladebeschränkungen"; +App::$strings["Error: the \"openssl_pkey_new\" function on this system is not able to generate encryption keys"] = "Fehler: Die „openssl_pkey_new“-Funktion auf diesem System ist nicht in der Lage, Schlüssel für die Verschlüsselung zu erzeugen."; +App::$strings["If running under Windows, please see \"http://www.php.net/manual/en/openssl.installation.php\"."] = "Wenn Du Windows verwendest, findest Du unter http://www.php.net/manual/en/openssl.installation.php eine Installationsanleitung."; +App::$strings["Generate encryption keys"] = "Verschlüsselungsschlüssel erzeugen"; +App::$strings["libCurl PHP module"] = "libCurl-PHP-Modul"; +App::$strings["GD graphics PHP module"] = "GD-Grafik-PHP-Modul"; +App::$strings["OpenSSL PHP module"] = "OpenSSL-PHP-Modul"; +App::$strings["PDO database PHP module"] = "PDO-Datenbank-PHP-Modul"; +App::$strings["mb_string PHP module"] = "mb_string-PHP-Modul"; +App::$strings["xml PHP module"] = "xml-PHP-Modul"; +App::$strings["Apache mod_rewrite module"] = "Apache-mod_rewrite-Modul"; +App::$strings["Error: Apache webserver mod-rewrite module is required but not installed."] = "Fehler: Das Apache-Modul mod-rewrite wird benötigt, ist aber nicht installiert."; +App::$strings["exec"] = "exec"; +App::$strings["Error: exec is required but is either not installed or has been disabled in php.ini"] = "Fehler: exec ist erforderlich, aber entweder nicht installiert oder wurde in der php.ini deaktiviert"; +App::$strings["shell_exec"] = "shell_exec"; +App::$strings["Error: shell_exec is required but is either not installed or has been disabled in php.ini"] = "Fehler: shell_exec ist erforderlich, aber entweder nicht installiert oder wurde in der php.ini deaktiviert"; +App::$strings["Error: libCURL PHP module required but not installed."] = "Fehler: Das PHP-Modul libCURL wird benötigt, ist aber nicht installiert."; +App::$strings["Error: GD graphics PHP module with JPEG support required but not installed."] = "Fehler: Das PHP-Modul GD-Grafik mit JPEG-Unterstützung wird benötigt, ist aber nicht installiert."; +App::$strings["Error: openssl PHP module required but not installed."] = "Fehler: Das PHP-Modul openssl wird benötigt, ist aber nicht installiert."; +App::$strings["Error: PDO database PHP module required but not installed."] = "Fehler: PDO-Datenbank-PHP-Modul ist erforderlich, aber nicht installiert."; +App::$strings["Error: mb_string PHP module required but not installed."] = "Fehler: Das PHP-Modul mb_string wird benötigt, ist aber nicht installiert."; +App::$strings["Error: xml PHP module required for DAV but not installed."] = "Fehler: Das xml-PHP-Modul wird für DAV benötigt, ist aber nicht installiert."; +App::$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."] = "Der Installations-Assistent muss in der Lage sein, die Datei \".htconfig.php\" im Stammverzeichnis des Web-Servers anzulegen, ist er aber nicht."; +App::$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."] = "Meist liegt das daran, dass der Nutzer, unter dem der Web-Server läuft, keine Schreibrechte in dem Verzeichnis hat – selbst wenn Du selbst das darfst."; +App::$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."] = "Am Schluss dieses Vorgangs wird ein Text generiert, den Du unter dem Dateinamen .htconfig.php im Stammverzeichnis Deiner Hubzilla-Installation speichern musst."; +App::$strings["You can alternatively skip this procedure and perform a manual installation. Please see the file \"install/INSTALL.txt\" for instructions."] = "Alternativ kannst Du diesen Schritt überspringen und die Installation manuell vornehmen. Lies dazu die Datei install/INSTALL.txt."; +App::$strings[".htconfig.php is writable"] = ".htconfig.php ist beschreibbar"; +App::$strings["This software uses the Smarty3 template engine to render its web views. Smarty3 compiles templates to PHP to speed up rendering."] = "Diese Software verwendet die Smarty3 Template Engine, um Vorlagen für die Webdarstellung zu verarbeiten. Smarty3 übersetzt diese Vorlagen nach PHP, um die Darstellung zu beschleunigen."; +App::$strings["In order to store these compiled templates, the web server needs to have write access to the directory %s under the top level web folder."] = "Um diese kompilierten Vorlagen speichern zu können, braucht der Web-Server Schreibzugriff auf das Verzeichnis %s unterhalb des Hubzilla-Stammverzeichnisses."; +App::$strings["Please ensure that the user that your web server runs as (e.g. www-data) has write access to this folder."] = "Bitte stelle sicher, dass der Nutzer, unter dem der Web-Server läuft (z.B. www-data), Schreibzugriff auf dieses Verzeichnis hat."; +App::$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."] = "Hinweis: Aus Sicherheitsgründen sollte der Web-Server nur auf %s Schreibrechte haben, nicht auf die Template-Dateien (.tpl), die das Verzeichnis enthält."; +App::$strings["%s is writable"] = "%s ist beschreibbar"; +App::$strings["This software uses the store directory to save uploaded files. The web server needs to have write access to the store directory under the top level web folder"] = "Diese Software benutzt das Verzeichnis store, um hochgeladene Dateien zu speichern. Der Webserver benötigt Schreibrechte für dieses Verzeichnis direkt unterhalb des Web-Stammverzeichnisses."; +App::$strings["store is writable"] = "store ist schreibbar"; +App::$strings["SSL certificate cannot be validated. Fix certificate or disable https access to this site."] = "Das SSL-Zertifikat konnte nicht validiert werden. Korrigiere das Zertifikat oder deaktiviere den HTTPS-Zugriff auf diesen Server."; +App::$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!"] = "Wenn Du via HTTPS auf Deinen Server zugreifen möchtest, also Verbindungen über den Port 443 möglich sein sollen, ist ein SSL-Zertifikat einer Zertifizierungsstelle (CA) notwendig, das von den Browsern ohne Sicherheitsabfrage akzeptiert wird. Die Verwendung eines selbst signierten Zertifikates ist nicht möglich."; +App::$strings["This restriction is incorporated because public posts from you may for example contain references to images on your own hub."] = "Diese Einschränkung wurde eingebaut, weil Deine öffentlichen Beiträge zum Beispiel Verweise auf Bilder auf Deinem eigenen Hub enthalten können."; +App::$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."] = "Wenn Dein Zertifikat nicht von jedem Browser akzeptiert wird, erhalten die Mitglieder anderer \$Projectname-Hubs (die mit korrekten Zertifikaten ausgestattet sind) Sicherheits-Warnmeldungen, obwohl sie gar nicht direkt auf Deinem Server unterwegs sind (zum Beispiel, wenn ein Bild aus einem Deiner Beiträge angezeigt wird)."; +App::$strings["This can cause usability issues elsewhere (not just on your own site) so we must insist on this requirement."] = "Dies kann Probleme für andere Nutzer (nicht nur auf Deinem eigenen Server) verursachen, so dass wir auf dieser Forderung bestehen müssen."; +App::$strings["Providers are available that issue free certificates which are browser-valid."] = "Es gibt einige Zertifizierungsstellen (CAs), bei denen solche Zertifikate kostenlos zu haben sind."; +App::$strings["If you are confident that the certificate is valid and signed by a trusted authority, check to see if you have failed to install an intermediate cert. These are not normally required by browsers, but are required for server-to-server communications."] = "Wenn Du sicher bist, dass das Zertifikat gültig und von einer vertrauenswürdigen Zertifizierungsstelle signiert ist, prüfe auf ggf. noch zu installierende Zwischenzertifikate (intermediate). Diese werden nicht unbedingt von Browsern benötigt, aber sehr wohl für die Kommunikation zwischen Servern."; +App::$strings["SSL certificate validation"] = "SSL Zertifikatverifizierung"; +App::$strings["Url rewrite in .htaccess is not working. Check your server configuration.Test: "] = "Das Umschreiben von URLs (rewrite) per .htaccess funktioniert nicht. Bitte prüfe die Server-Konfiguration. Test:"; +App::$strings["Url rewrite is working"] = "Url rewrite funktioniert"; +App::$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."] = "Die Datenbank-Konfigurationsdatei „.htconfig.php“ konnte nicht geschrieben werden. Bitte verwende den unten angegebenen Text, um die Konfigurationsdatei im Stammverzeichnis des Webservers anzulegen."; +App::$strings["Errors encountered creating database tables."] = "Fehler beim Anlegen der Datenbank-Tabellen aufgetreten."; +App::$strings["

        What next

        "] = "

        Was als Nächstes

        "; +App::$strings["IMPORTANT: You will need to [manually] setup a scheduled task for the poller."] = "WICHTIG: Du musst [manuell] einen Cronjob für den Poller einrichten."; +App::$strings["Item is not editable"] = "Element kann nicht bearbeitet werden."; +App::$strings["This site is not a directory server"] = "Diese Webseite ist kein Verzeichnisserver"; +App::$strings["Create Channel"] = "Einen neuen Kanal anlegen"; +App::$strings["A channel is your identity on this network. It can represent a person, a blog, or a forum to name a few. Channels can make connections with other channels to share information with highly detailed permissions."] = "Ein Kanal ist Deine Identität in diesem Netzwerk. Er kann eine Person, ein Blog oder ein Forum repräsentieren, nur um ein paar Beispiele zu nennen. Kanäle können Verbindungen miteinander eingehen, um Informationen zu teilen, jeweils basierend auf sehr detaillierten Berechtigungseinstellungen."; +App::$strings["or import an existing channel from another location."] = "oder importiere einen bestehenden Kanal von einem anderen Server."; +App::$strings["Mark all system notifications seen"] = "Markiere alle System-Benachrichtigungen als gesehen"; +App::$strings["Poke"] = "Anstupsen"; +App::$strings["Poke somebody"] = "Jemanden anstupsen"; +App::$strings["Poke/Prod"] = "Anstupsen/Knuffen"; +App::$strings["Poke, prod or do other things to somebody"] = "Jemanden anstupsen, knuffen oder sonstiges"; +App::$strings["Recipient"] = "Empfänger"; +App::$strings["Choose what you wish to do to recipient"] = "Wähle, was Du mit dem/r Empfänger/in tun willst"; +App::$strings["Make this post private"] = "Diesen Beitrag privat machen"; App::$strings["Profile not found."] = "Profil nicht gefunden."; App::$strings["Profile deleted."] = "Profil gelöscht."; App::$strings["Profile-"] = "Profil-"; @@ -821,190 +1032,11 @@ App::$strings["Contact information and social networks"] = "Kontaktinformation u App::$strings["My other channels"] = "Meine anderen Kanäle"; App::$strings["Profile Image"] = "Profilfoto:"; App::$strings["Edit Profiles"] = "Profile bearbeiten"; -App::$strings["No more system notifications."] = "Keine System-Benachrichtigungen mehr."; -App::$strings["System Notifications"] = "System-Benachrichtigungen"; -App::$strings["Profile Match"] = "Profil-Übereinstimmungen"; -App::$strings["No keywords to match. Please add keywords to your default profile."] = "Keine Schlüsselwörter für den Abgleich gefunden. Bitte füge Schlüsselwörter zu Deinem Standardprofil hinzu."; -App::$strings["is interested in:"] = "interessiert sich für:"; -App::$strings["No matches"] = "Keine Übereinstimmungen"; -App::$strings["Authorize application connection"] = "Zugriff für die Anwendung autorisieren"; -App::$strings["Return to your app and insert this Security Code:"] = "Gehen Sie zu Ihrer App zurück und tragen Sie diesen Sicherheitscode ein:"; -App::$strings["Please login to continue."] = "Zum Weitermachen, bitte einloggen."; -App::$strings["Do you want to authorize this application to access your posts and contacts, and/or create new posts for you?"] = "Möchtest Du dieser Anwendung erlauben, Deine Nachrichten und Kontakte abzurufen und/oder neue Nachrichten für Dich zu erstellen?"; -App::$strings["Calendar entries imported."] = "Kalendereinträge wurden importiert."; -App::$strings["No calendar entries found."] = "Keine Kalendereinträge gefunden."; -App::$strings["Event can not end before it has started."] = "Termin-Ende liegt vor dem Beginn."; -App::$strings["Unable to generate preview."] = "Vorschau konnte nicht erzeugt werden."; -App::$strings["Event title and start time are required."] = "Titel und Startzeit des Termins sind erforderlich."; -App::$strings["Event not found."] = "Termin nicht gefunden."; -App::$strings["Edit event title"] = "Termintitel bearbeiten"; -App::$strings["Event title"] = "Termintitel"; -App::$strings["Categories (comma-separated list)"] = "Kategorien (Kommagetrennte Liste)"; -App::$strings["Edit Category"] = "Kategorie bearbeiten"; -App::$strings["Category"] = "Kategorie"; -App::$strings["Edit start date and time"] = "Startdatum und -zeit bearbeiten"; -App::$strings["Start date and time"] = "Startdatum und -zeit"; -App::$strings["Finish date and time are not known or not relevant"] = "Enddatum und -zeit sind unbekannt oder irrelevant"; -App::$strings["Edit finish date and time"] = "Enddatum und -zeit bearbeiten"; -App::$strings["Finish date and time"] = "Enddatum und -zeit"; -App::$strings["Adjust for viewer timezone"] = "An die Zeitzone des Betrachters anpassen"; -App::$strings["Important for events that happen in a particular place. Not practical for global holidays."] = "Wichtig für Veranstaltungen die an bestimmten Orten stattfinden. Nicht sinnvoll für globale Feiertage / Ferien."; -App::$strings["Edit Description"] = "Beschreibung bearbeiten"; -App::$strings["Edit Location"] = "Ort bearbeiten"; -App::$strings["Share this event"] = "Den Termin teilen"; -App::$strings["Permission settings"] = "Berechtigungs-Einstellungen"; -App::$strings["Advanced Options"] = "Weitere Optionen"; -App::$strings["l, F j"] = "l, j. F"; -App::$strings["Edit event"] = "Termin bearbeiten"; -App::$strings["Delete event"] = "Termin löschen"; -App::$strings["Link to Source"] = "Link zur Quelle"; -App::$strings["calendar"] = "Kalender"; -App::$strings["Edit Event"] = "Termin bearbeiten"; -App::$strings["Create Event"] = "Termin anlegen"; -App::$strings["Previous"] = "Voriges"; -App::$strings["Next"] = "Nächste"; -App::$strings["Export"] = "Exportieren"; -App::$strings["Month"] = "Monat"; -App::$strings["Week"] = "Woche"; -App::$strings["Day"] = "Tag"; -App::$strings["Today"] = "Heute"; -App::$strings["Event removed"] = "Termin gelöscht"; -App::$strings["Failed to remove event"] = "Termin konnte nicht gelöscht werden"; -App::$strings["Unable to locate original post."] = "Originalbeitrag nicht gefunden."; -App::$strings["Empty post discarded."] = "Leeren Beitrag verworfen."; -App::$strings["Executable content type not permitted to this channel."] = "Ausführbarer Content-Typ ist für diesen Kanal nicht freigegeben."; -App::$strings["Duplicate post suppressed."] = "Doppelter Beitrag unterdrückt."; -App::$strings["System error. Post not saved."] = "Systemfehler. Beitrag nicht gespeichert."; -App::$strings["Unable to obtain post information from database."] = "Beitragsinformationen können nicht aus der Datenbank abgerufen werden."; -App::$strings["You have reached your limit of %1$.0f top level posts."] = "Du hast die maximale Anzahl von %1$.0f Beiträgen erreicht."; -App::$strings["You have reached your limit of %1$.0f webpages."] = "Du hast die maximale Anzahl von %1$.0f Webseiten erreicht."; -App::$strings["Create Channel"] = "Einen neuen Kanal anlegen"; -App::$strings["A channel is your identity on this network. It can represent a person, a blog, or a forum to name a few. Channels can make connections with other channels to share information with highly detailed permissions."] = "Ein Kanal ist Deine Identität in diesem Netzwerk. Er kann eine Person, ein Blog oder ein Forum repräsentieren, nur um ein paar Beispiele zu nennen. Kanäle können Verbindungen miteinander eingehen, um Informationen zu teilen, jeweils basierend auf sehr detaillierten Berechtigungseinstellungen."; -App::$strings["or import an existing channel from another location."] = "oder importiere einen bestehenden Kanal von einem anderen Server."; -App::$strings["sent you a private message"] = "hat Dir eine private Nachricht geschickt"; -App::$strings["added your channel"] = "hat deinen Kanal hinzugefügt"; -App::$strings["g A l F d"] = "l, d. F, G:i \\U\\h\\r"; -App::$strings["[today]"] = "[Heute]"; -App::$strings["posted an event"] = "hat einen Termin veröffentlicht"; -App::$strings["Invalid request identifier."] = "Ungültiger Anfrage-Identifikator."; -App::$strings["Discard"] = "Verwerfen"; -App::$strings["Mark all system notifications seen"] = "Markiere alle System-Benachrichtigungen als gesehen"; -App::$strings["Poke"] = "Anstupsen"; -App::$strings["Poke somebody"] = "Jemanden anstupsen"; -App::$strings["Poke/Prod"] = "Anstupsen/Knuffen"; -App::$strings["Poke, prod or do other things to somebody"] = "Jemanden anstupsen, knuffen oder sonstiges"; -App::$strings["Recipient"] = "Empfänger"; -App::$strings["Choose what you wish to do to recipient"] = "Wähle, was Du mit dem/r Empfänger/in tun willst"; -App::$strings["Make this post private"] = "Diesen Beitrag privat machen"; -App::$strings["\$Projectname Server - Setup"] = "\$Projectname Server-Einrichtung"; -App::$strings["Could not connect to database."] = "Kann nicht mit der Datenbank verbinden."; -App::$strings["Could not connect to specified site URL. Possible SSL certificate or DNS issue."] = "Konnte die angegebene Webseiten-URL nicht erreichen. Möglicherweise ein Problem mit dem SSL-Zertifikat oder dem DNS."; -App::$strings["Could not create table."] = "Konnte Tabelle nicht erstellen."; -App::$strings["Your site database has been installed."] = "Die Datenbank Deines Hubs wurde installiert."; -App::$strings["You may need to import the file \"install/schema_xxx.sql\" manually using a database client."] = "Möglicherweise musst Du die Datei install/schema_xxx.sql manuell mit Hilfe eines Datenkbank-Clients importieren."; -App::$strings["Please see the file \"install/INSTALL.txt\"."] = "Lies die Datei \"install/INSTALL.txt\"."; -App::$strings["System check"] = "Systemprüfung"; -App::$strings["Check again"] = "Nochmal prüfen"; -App::$strings["Database connection"] = "Datenbankverbindung"; -App::$strings["In order to install \$Projectname we need to know how to connect to your database."] = "Um \$Projectname zu installieren, müssen wir wissen, wie wir eine Verbindung zu Deiner Datenbank aufbauen können."; -App::$strings["Please contact your hosting provider or site administrator if you have questions about these settings."] = "Bitte kontaktiere Deinen Hosting-Provider oder Administrator, falls Du Fragen zu diesen Einstellungen hast."; -App::$strings["The database you specify below should already exist. If it does not, please create it before continuing."] = "Die Datenbank, die Du weiter unten angibst, sollte bereits existieren. Sollte das noch nicht der Fall sein, erzeuge sie bitte bevor Du fortfährst."; -App::$strings["Database Server Name"] = "Datenbankservername"; -App::$strings["Default is 127.0.0.1"] = "Standard ist 127.0.0.1"; -App::$strings["Database Port"] = "Datenbankport"; -App::$strings["Communication port number - use 0 for default"] = "Port-Nummer für die Kommunikation – verwende 0 für die Standardeinstellung"; -App::$strings["Database Login Name"] = "Datenbank-Benutzername"; -App::$strings["Database Login Password"] = "Datenbank-Passwort"; -App::$strings["Database Name"] = "Datenbankname"; -App::$strings["Database Type"] = "Datenbanktyp"; -App::$strings["Site administrator email address"] = "E-Mail Adresse des Seiten-Administrators"; -App::$strings["Your account email address must match this in order to use the web admin panel."] = "Die E-Mail-Adresse Deines Accounts muss dieser Adresse entsprechen, damit Du Zugriff zur Administrations-Seite erhältst."; -App::$strings["Website URL"] = "Webseiten-URL"; -App::$strings["Please use SSL (https) URL if available."] = "Nutze wenn möglich eine SSL-URL (https)."; -App::$strings["Please select a default timezone for your website"] = "Standard-Zeitzone für Deinen Server"; -App::$strings["Site settings"] = "Seiteneinstellungen"; -App::$strings["PHP version 5.5 or greater is required."] = "PHP-Version 5.5 oder höher ist erforderlich."; -App::$strings["PHP version"] = "PHP-Version"; -App::$strings["Could not find a command line version of PHP in the web server PATH."] = "Konnte die Kommandozeilen-Version von PHP nicht im PATH des Web-Servers finden."; -App::$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."] = "Ohne Kommandozeilen-Version von PHP auf dem Server wirst Du nicht in der Lage sein, Hintergrundprozesse via cron auszuführen."; -App::$strings["PHP executable path"] = "PHP-Pfad zu ausführbarer Datei"; -App::$strings["Enter full path to php executable. You can leave this blank to continue the installation."] = "Gib den vollen Pfad zum PHP-Interpreter an. Du kannst dieses Feld frei lassen und mit der Installation fortfahren."; -App::$strings["Command line PHP"] = "PHP-Befehlszeile"; -App::$strings["The command line version of PHP on your system does not have \"register_argc_argv\" enabled."] = "Bei der Kommandozeilen-Version von PHP auf Deinem System ist \"register_argc_argv\" nicht aktiviert."; -App::$strings["This is required for message delivery to work."] = "Das wird benötigt, damit die Auslieferung von Nachrichten funktioniert."; -App::$strings["PHP register_argc_argv"] = "PHP register_argc_argv"; -App::$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."] = "Die Maximalgröße für Uploads insgesamt liegt bei %s. Die Maximalgröße für eine Datei liegt bei %s. Es können maximal %d Dateien gleichzeitig hochgeladen werden."; -App::$strings["You can adjust these settings in the servers php.ini."] = "Du kannst diese Einstellungen in der php.ini des Servers ändern."; -App::$strings["PHP upload limits"] = "PHP-Hochladebeschränkungen"; -App::$strings["Error: the \"openssl_pkey_new\" function on this system is not able to generate encryption keys"] = "Fehler: Die „openssl_pkey_new“-Funktion auf diesem System ist nicht in der Lage, Schlüssel für die Verschlüsselung zu erzeugen."; -App::$strings["If running under Windows, please see \"http://www.php.net/manual/en/openssl.installation.php\"."] = "Wenn Du Windows verwendest, findest Du unter http://www.php.net/manual/en/openssl.installation.php eine Installationsanleitung."; -App::$strings["Generate encryption keys"] = "Verschlüsselungsschlüssel erzeugen"; -App::$strings["libCurl PHP module"] = "libCurl-PHP-Modul"; -App::$strings["GD graphics PHP module"] = "GD-Grafik-PHP-Modul"; -App::$strings["OpenSSL PHP module"] = "OpenSSL-PHP-Modul"; -App::$strings["mysqli or postgres PHP module"] = "mysqli oder postgres PHP-Modul"; -App::$strings["mb_string PHP module"] = "mb_string-PHP-Modul"; -App::$strings["xml PHP module"] = "xml-PHP-Modul"; -App::$strings["Apache mod_rewrite module"] = "Apache-mod_rewrite-Modul"; -App::$strings["Error: Apache webserver mod-rewrite module is required but not installed."] = "Fehler: Das Apache-Modul mod-rewrite wird benötigt, ist aber nicht installiert."; -App::$strings["proc_open"] = "proc_open"; -App::$strings["Error: proc_open is required but is either not installed or has been disabled in php.ini"] = "Fehler: proc_open wird benötigt, ist aber entweder nicht installiert oder wurde in der php.ini deaktiviert"; -App::$strings["Error: libCURL PHP module required but not installed."] = "Fehler: Das PHP-Modul libCURL wird benötigt, ist aber nicht installiert."; -App::$strings["Error: GD graphics PHP module with JPEG support required but not installed."] = "Fehler: Das PHP-Modul GD-Grafik mit JPEG-Unterstützung wird benötigt, ist aber nicht installiert."; -App::$strings["Error: openssl PHP module required but not installed."] = "Fehler: Das PHP-Modul openssl wird benötigt, ist aber nicht installiert."; -App::$strings["Error: mysqli or postgres PHP module required but neither are installed."] = "Fehler: Das mysqli oder postgres PHP-Modul ist erforderlich, aber keines von beiden ist installiert."; -App::$strings["Error: mb_string PHP module required but not installed."] = "Fehler: Das PHP-Modul mb_string wird benötigt, ist aber nicht installiert."; -App::$strings["Error: xml PHP module required for DAV but not installed."] = "Fehler: Das xml-PHP-Modul wird für DAV benötigt, ist aber nicht installiert."; -App::$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."] = "Der Installations-Assistent muss in der Lage sein, die Datei \".htconfig.php\" im Stammverzeichnis des Web-Servers anzulegen, ist er aber nicht."; -App::$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."] = "Meist liegt das daran, dass der Nutzer, unter dem der Web-Server läuft, keine Schreibrechte in dem Verzeichnis hat – selbst wenn Du selbst das darfst."; -App::$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."] = "Am Schluss dieses Vorgangs wird ein Text generiert, den Du unter dem Dateinamen .htconfig.php im Stammverzeichnis Deiner Hubzilla-Installation speichern musst."; -App::$strings["You can alternatively skip this procedure and perform a manual installation. Please see the file \"install/INSTALL.txt\" for instructions."] = "Alternativ kannst Du diesen Schritt überspringen und die Installation manuell vornehmen. Lies dazu die Datei install/INSTALL.txt."; -App::$strings[".htconfig.php is writable"] = ".htconfig.php ist beschreibbar"; -App::$strings["Red uses the Smarty3 template engine to render its web views. Smarty3 compiles templates to PHP to speed up rendering."] = "\$Projectname verwendet Smarty3 um Vorlagen für die Webdarstellung zu übersetzen. Smarty3 übersetzt diese Vorlagen nach PHP, um die Darstellung zu beschleunigen."; -App::$strings["In order to store these compiled templates, the web server needs to have write access to the directory %s under the top level web folder."] = "Um diese kompilierten Vorlagen speichern zu können, braucht der Web-Server Schreibzugriff auf das Verzeichnis %s unterhalb des Hubzilla-Stammverzeichnisses."; -App::$strings["Please ensure that the user that your web server runs as (e.g. www-data) has write access to this folder."] = "Bitte stelle sicher, dass der Nutzer, unter dem der Web-Server läuft (z.B. www-data), Schreibzugriff auf dieses Verzeichnis hat."; -App::$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."] = "Hinweis: Aus Sicherheitsgründen sollte der Web-Server nur auf %s Schreibrechte haben, nicht auf die Template-Dateien (.tpl), die das Verzeichnis enthält."; -App::$strings["%s is writable"] = "%s ist beschreibbar"; -App::$strings["This software 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"] = "Diese Software benutzt das Verzeichnis store, um hochgeladene Dateien zu speichern. Der Web-Server benötigt Schreibrechte für dieses Verzeichnis direkt unterhalb des Hubzilla-Stammverzeichnisses"; -App::$strings["store is writable"] = "store ist schreibbar"; -App::$strings["SSL certificate cannot be validated. Fix certificate or disable https access to this site."] = "Das SSL-Zertifikat konnte nicht validiert werden. Korrigiere das Zertifikat oder deaktiviere den HTTPS-Zugriff auf diesen Server."; -App::$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!"] = "Wenn Du via HTTPS auf Deinen Server zugreifen möchtest, also Verbindungen über den Port 443 möglich sein sollen, ist ein SSL-Zertifikat einer Zertifizierungsstelle (CA) notwendig, das von den Browsern ohne Sicherheitsabfrage akzeptiert wird. Die Verwendung eines selbst signierten Zertifikates ist nicht möglich."; -App::$strings["This restriction is incorporated because public posts from you may for example contain references to images on your own hub."] = "Diese Einschränkung wurde eingebaut, weil Deine öffentlichen Beiträge zum Beispiel Verweise auf Bilder auf Deinem eigenen Hub enthalten können."; -App::$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."] = "Wenn Dein Zertifikat nicht von jedem Browser akzeptiert wird, erhalten die Mitglieder anderer \$Projectname-Hubs (die mit korrekten Zertifikaten ausgestattet sind) Sicherheits-Warnmeldungen, obwohl sie gar nicht direkt auf Deinem Server unterwegs sind (zum Beispiel, wenn ein Bild aus einem Deiner Beiträge angezeigt wird)."; -App::$strings["This can cause usability issues elsewhere (not just on your own site) so we must insist on this requirement."] = "Dies kann Probleme für andere Nutzer (nicht nur auf Deinem eigenen Server) verursachen, so dass wir auf dieser Forderung bestehen müssen."; -App::$strings["Providers are available that issue free certificates which are browser-valid."] = "Es gibt einige Zertifizierungsstellen (CAs), bei denen solche Zertifikate kostenlos zu haben sind."; -App::$strings["If you are confident that the certificate is valid and signed by a trusted authority, check to see if you have failed to install an intermediate cert. These are not normally required by browsers, but are required for server-to-server communications."] = "Wenn Du sicher bist, dass das Zertifikat gültig und von einer vertrauenswürdigen Zertifizierungsstelle signiert ist, prüfe auf ggf. noch zu installierende Zwischenzertifikate (intermediate). Diese werden nicht unbedingt von Browsern benötigt, aber sehr wohl für die Kommunikation zwischen Servern."; -App::$strings["SSL certificate validation"] = "SSL Zertifikatverifizierung"; -App::$strings["Url rewrite in .htaccess is not working. Check your server configuration.Test: "] = "Das Umschreiben von URLs (rewrite) per .htaccess funktioniert nicht. Bitte prüfe die Server-Konfiguration. Test:"; -App::$strings["Url rewrite is working"] = "Url rewrite funktioniert"; -App::$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."] = "Die Datenbank-Konfigurationsdatei „.htconfig.php“ konnte nicht geschrieben werden. Bitte verwende den unten angegebenen Text, um die Konfigurationsdatei im Stammverzeichnis des Webservers anzulegen."; -App::$strings["Errors encountered creating database tables."] = "Fehler beim Anlegen der Datenbank-Tabellen aufgetreten."; -App::$strings["

        What next

        "] = "

        Was als Nächstes

        "; -App::$strings["IMPORTANT: You will need to [manually] setup a scheduled task for the poller."] = "WICHTIG: Du musst [manuell] einen Cronjob für den Poller einrichten."; App::$strings["Unable to find your hub."] = "Konnte Deinen Server nicht finden."; App::$strings["Post successful."] = "Veröffentlichung erfolgreich."; -App::$strings["Invalid profile identifier."] = "Ungültiger Profil-Identifikator"; -App::$strings["Profile Visibility Editor"] = "Profil-Sichtbarkeits-Editor"; -App::$strings["Profile"] = "Profil"; -App::$strings["Click on a contact to add or remove."] = "Klicke auf einen Kontakt, um ihn hinzuzufügen oder zu entfernen."; -App::$strings["Visible To"] = "Sichtbar für"; App::$strings["This setting requires special processing and editing has been blocked."] = "Diese Einstellung erfordert eine besondere Verarbeitung und ist blockiert."; App::$strings["Configuration Editor"] = "Konfigurationseditor"; App::$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."] = "Warnung: Einige Einstellungen können Deinen Kanal funktionsunfähig machen. Bitte verlasse diese Seite, es sei denn Du bist vertraut damit, wie dieses Feature korrekt verwendet wird."; -App::$strings["Apps"] = "Apps"; -App::$strings["Version %s"] = "Version %s"; -App::$strings["Installed plugins/addons/apps:"] = "Installierte Plugins/Addons/Apps"; -App::$strings["No installed plugins/addons/apps"] = "Keine installierten Plugins/Addons/Apps"; -App::$strings["This is a hub of \$Projectname - a global cooperative network of decentralized privacy enhanced websites."] = "Dieser Hub ist Teil von \$Projectname – ein globales, kooperatives Netzwerk aus dezentralen Websites, die Rücksicht auf Deine Privatsphäre nehmen."; -App::$strings["Tag: "] = "Schlagwort: "; -App::$strings["Last background fetch: "] = "Letzter Hintergrundabruf:"; -App::$strings["Current load average: "] = "Aktuelles Load Average:"; -App::$strings["Running at web location"] = "Erreichbar unter der Web-Adresse"; -App::$strings["Please visit hubzilla.org to learn more about \$Projectname."] = "Bitte besuchen Sie hubzilla.org, um mehr über \$Projectname zu erfahren."; -App::$strings["Bug reports and issues: please visit"] = "Probleme oder Fehler gefunden? Bitte besuche"; -App::$strings["\$projectname issues"] = "\$projectname-Bugtracker"; -App::$strings["Suggestions, praise, etc. - please email \"redmatrix\" at librelist - dot com"] = "Vorschläge, Lob, usw.: E-Mail an 'redmatrix' at librelist - dot - com"; -App::$strings["Site Administrators"] = "Administratoren"; App::$strings["Blocks"] = "Blöcke"; App::$strings["Block Title"] = "Titel des Blocks"; App::$strings["Layouts"] = "Layouts"; @@ -1012,99 +1044,79 @@ App::$strings["Help"] = "Hilfe"; App::$strings["Comanche page description language help"] = "Hilfe zur Comanche-Seitenbeschreibungssprache"; App::$strings["Layout Description"] = "Layout-Beschreibung"; App::$strings["Download PDL file"] = "PDL-Datei herunterladen"; -App::$strings["Profile Photos"] = "Profilfotos"; +App::$strings["Website:"] = "Webseite:"; +App::$strings["Remote Channel [%s] (not yet known on this site)"] = "Kanal [%s] (auf diesem Server noch unbekannt)"; +App::$strings["Rating (this information is public)"] = "Bewertung (öffentlich sichtbar)"; +App::$strings["Optionally explain your rating (this information is public)"] = "Optional kannst du deine Bewertung erklären (öffentlich sichtbar)"; +App::$strings["Like/Dislike"] = "Mögen/Nicht mögen"; +App::$strings["This action is restricted to members."] = "Diese Aktion kann nur von Mitgliedern ausgeführt werden."; +App::$strings["Please login with your \$Projectname ID or register as a new \$Projectname member to continue."] = "Um fortzufahren melde Dich bitte mit Deiner \$Projectname-ID an oder registriere Dich als neues \$Projectname-Mitglied."; +App::$strings["Invalid request."] = "Ungültige Anfrage."; +App::$strings["channel"] = "Kanal"; +App::$strings["thing"] = "Sache"; +App::$strings["Channel unavailable."] = "Kanal nicht vorhanden."; +App::$strings["Previous action reversed."] = "Die vorherige Aktion wurde rückgängig gemacht."; +App::$strings["photo"] = "Foto"; +App::$strings["status"] = "Status"; +App::$strings["event"] = "Termin"; +App::$strings["%1\$s likes %2\$s's %3\$s"] = "%1\$s gefällt %2\$ss %3\$s"; +App::$strings["%1\$s doesn't like %2\$s's %3\$s"] = "%1\$s gefällt %2\$ss %3\$s nicht"; +App::$strings["%1\$s agrees with %2\$s's %3\$s"] = "%1\$s stimmt %2\$ss %3\$s zu"; +App::$strings["%1\$s doesn't agree with %2\$s's %3\$s"] = "%1\$s lehnt %2\$ss %3\$s ab"; +App::$strings["%1\$s abstains from a decision on %2\$s's %3\$s"] = "%1\$s enthält sich zu %2\$ss %3\$s"; +App::$strings["%1\$s is attending %2\$s's %3\$s"] = "%1\$s nimmt an %2\$ss %3\$s teil"; +App::$strings["%1\$s is not attending %2\$s's %3\$s"] = "%1\$s nimmt an %2\$ss %3\$s nicht teil"; +App::$strings["%1\$s may attend %2\$s's %3\$s"] = "%1\$s nimmt vielleicht an %2\$ss %3\$s teil"; +App::$strings["Action completed."] = "Aktion durchgeführt."; +App::$strings["Thank you."] = "Vielen Dank."; App::$strings["Shift-reload the page or clear browser cache if the new photo does not display immediately."] = "Leere den Browser Cache oder nutze Umschalten-Neu Laden, falls das neue Foto nicht sofort angezeigt wird."; +App::$strings["Use Photo for Profile"] = "Foto für Profil verwenden"; App::$strings["Upload Profile Photo"] = "Lade neues Profilfoto hoch"; -App::$strings["Permissions denied."] = "Berechtigung verweigert."; -App::$strings["Import"] = "Import"; +App::$strings["Use"] = "Verwenden"; +App::$strings["Items tagged with: %s"] = "Beiträge mit Schlagwort: %s"; +App::$strings["Search results for: %s"] = "Suchergebnisse für: %s"; App::$strings["No channel."] = "Kein Kanal."; App::$strings["Common connections"] = "Gemeinsame Verbindungen"; App::$strings["No connections in common."] = "Keine gemeinsamen Verbindungen."; -App::$strings["network"] = "Netzwerk"; -App::$strings["RSS"] = "RSS"; -App::$strings["Public Hubs"] = "Öffentliche Hubs"; -App::$strings["The listed hubs allow public registration for the \$Projectname network. All hubs in the network are interlinked so membership on any of them conveys membership in the network as a whole. Some hubs may require subscription or provide tiered service plans. The hub itself may provide additional details."] = "Die hier aufgeführten Hubs sind öffentlich und erlauben die Registrierung im \$Projectname Netzwerk. Alle Hubs dieses Netzwerks sind miteinander verbunden, so dass die Mitgliedschaft auf einem Hub die Verbindung zu beliebigen Seiten und Kanälen auf anderen Hubs ermöglicht. Es könnte sein, dass einige dieser Hubs kostenpflichtig sind oder abgestufte, je nach Umfang kostenpflichtige Mitgliedschaften anbieten. Auf den Seiten der einzelnen Hubs könnten jeweils nähere Informationen dazu stehen."; -App::$strings["Hub URL"] = "Hub-URL"; -App::$strings["Access Type"] = "Zugriffstyp"; -App::$strings["Registration Policy"] = "Registrierungsrichtlinien"; -App::$strings["Stats"] = "Statistiken"; -App::$strings["Software"] = "Software"; -App::$strings["Rate"] = "Bewerten"; -App::$strings["Layout updated."] = "Layout aktualisiert."; -App::$strings["Feature disabled."] = "Funktion deaktiviert."; -App::$strings["Edit System Page Description"] = "Systemseitenbeschreibung bearbeiten"; -App::$strings["Layout not found."] = "Layout nicht gefunden."; -App::$strings["Module Name:"] = "Modulname:"; -App::$strings["Layout Help"] = "Layout-Hilfe"; -App::$strings["Could not access contact record."] = "Konnte nicht auf den Kontakteintrag zugreifen."; -App::$strings["Could not locate selected profile."] = "Gewähltes Profil nicht gefunden."; -App::$strings["Connection updated."] = "Verbindung aktualisiert."; -App::$strings["Failed to update connection record."] = "Konnte den Verbindungseintrag nicht aktualisieren."; -App::$strings["is now connected to"] = "ist jetzt verbunden mit"; -App::$strings["Could not access address book record."] = "Konnte nicht auf den Adressbuch-Eintrag zugreifen."; -App::$strings["Refresh failed - channel is currently unavailable."] = "Aktualisierung fehlgeschlagen – der Kanal ist im Moment nicht erreichbar."; -App::$strings["Unable to set address book parameters."] = "Konnte die Adressbuch-Parameter nicht setzen."; -App::$strings["Connection has been removed."] = "Verbindung wurde gelöscht."; -App::$strings["View Profile"] = "Profil ansehen"; -App::$strings["View %s's profile"] = "%ss Profil ansehen"; -App::$strings["Refresh Permissions"] = "Zugriffsrechte neu laden"; -App::$strings["Fetch updated permissions"] = "Aktualisierte Zugriffsrechte abfragen"; -App::$strings["Recent Activity"] = "Kürzliche Aktivitäten"; -App::$strings["View recent posts and comments"] = "Betrachte die neuesten Beiträge und Kommentare"; -App::$strings["Block (or Unblock) all communications with this connection"] = "Jegliche Kommunikation mit dieser Verbindung blockieren/zulassen"; -App::$strings["This connection is blocked!"] = "Die Verbindung ist geblockt!"; -App::$strings["Unignore"] = "Nicht ignorieren"; -App::$strings["Ignore (or Unignore) all inbound communications from this connection"] = "Jegliche eingehende Kommunikation von dieser Verbindung ignorieren/zulassen"; -App::$strings["This connection is ignored!"] = "Die Verbindung wird ignoriert!"; -App::$strings["Unarchive"] = "Aus Archiv zurückholen"; -App::$strings["Archive"] = "Archivieren"; -App::$strings["Archive (or Unarchive) this connection - mark channel dead but keep content"] = "Verbindung archivieren/aus dem Archiv zurückholen (Archiv = Kanal als erloschen markieren, aber die Beiträge behalten)"; -App::$strings["This connection is archived!"] = "Die Verbindung ist archiviert!"; -App::$strings["Unhide"] = "Wieder sichtbar machen"; -App::$strings["Hide"] = "Verstecken"; -App::$strings["Hide or Unhide this connection from your other connections"] = "Diese Verbindung vor anderen Verbindungen verstecken/zeigen"; -App::$strings["This connection is hidden!"] = "Die Verbindung ist versteckt!"; -App::$strings["Delete this connection"] = "Verbindung löschen"; -App::$strings["Me"] = "Ich"; -App::$strings["Family"] = "Familie"; -App::$strings["Friends"] = "Freunde"; -App::$strings["Acquaintances"] = "Bekannte"; -App::$strings["Approve this connection"] = "Verbindung genehmigen"; -App::$strings["Accept connection to allow communication"] = "Akzeptiere die Verbindung, um Kommunikation zu ermöglichen"; -App::$strings["Set Affinity"] = "Beziehung festlegen"; -App::$strings["Set Profile"] = "Profil festlegen"; -App::$strings["Set Affinity & Profile"] = "Beziehung und Profile festlegen"; -App::$strings["none"] = "Keine"; -App::$strings["Connection Default Permissions"] = "Standardzugriffsrechte für neue Verbindungen:"; -App::$strings["Connection: %s"] = "Verbindung: %s"; -App::$strings["Apply these permissions automatically"] = "Diese Berechtigungen automatisch anwenden"; -App::$strings["Connection requests will be approved without your interaction"] = "Verbindungsanfragen werden sofort bestätigt, ohne dass Deine aktive Zustimmung erforderlich ist."; -App::$strings["This connection's primary address is"] = "Die Hauptadresse der Verbindung ist"; -App::$strings["Available locations:"] = "Verfügbare Klone:"; -App::$strings["The permissions indicated on this page will be applied to all new connections."] = "Die auf dieser Seite angegebenen Berechtigungen werden auf alle neuen Verbindungen angewendet."; -App::$strings["Connection Tools"] = "Verbindungswerkzeuge"; -App::$strings["Slide to adjust your degree of friendship"] = "Verschieben, um den Grad der Freundschaft zu einzustellen"; -App::$strings["Slide to adjust your rating"] = "Verschieben, um Deine Bewertung einzustellen"; -App::$strings["Optionally explain your rating"] = "Optional kannst Du Deine Bewertung begründen"; -App::$strings["Custom Filter"] = "Benutzerdefinierter Filter"; -App::$strings["Only import posts with this text"] = "Nur Beiträge mit diesem Text importieren"; -App::$strings["words one per line or #tags or /patterns/ or lang=xx, leave blank to import all posts"] = "Einzelne Wörter pro Zeile, #Tags oder /Reguläre Ausdrücke/. lang=xx (z.B. lang=de) ermöglicht Filterung nach Sprache. Leer lassen, um alle Beiträge zu importieren."; -App::$strings["Do not import posts with this text"] = "Beiträge mit diesem Text nicht importieren"; -App::$strings["This information is public!"] = "Diese Information ist öffentlich!"; -App::$strings["Connection Pending Approval"] = "Verbindung wartet auf Bestätigung"; -App::$strings["inherited"] = "geerbt"; -App::$strings["Please choose the profile you would like to display to %s when viewing your profile securely."] = "Bitte wähle ein Profil, das wir %s zeigen sollen, wenn Deine Profilseite über eine verifizierte Verbindung aufgerufen wird."; -App::$strings["Their Settings"] = "Deren Einstellungen"; -App::$strings["My Settings"] = "Meine Einstellungen"; -App::$strings["Individual Permissions"] = "Individuelle Zugriffsrechte"; -App::$strings["Some permissions may be inherited from your channel's privacy settings, which have higher priority than individual settings. You can not change those settings here."] = "Einige Berechtigungen werden möglicherweise von den globalen Sicherheits- und Privatsphäre-Einstellungen dieses Kanals vererbt. Diese haben eine höhere Priorität als die Einstellungen an der Verbindung und können hier nicht verändert werden."; -App::$strings["Some permissions may be inherited from your channel's privacy settings, which have higher priority than individual settings. You can change those settings here but they wont have any impact unless the inherited setting changes."] = "Einige Berechtigungen werden möglicherweise von den globalen Sicherheits- und Privatsphäre-Einstellungen dieses Kanals geerbt. Diese haben eine höhere Priorität als die Einstellungen an der Verbindung. Werden geerbte Einstellungen hier geändert, hat dies keine Auswirkungen."; -App::$strings["Last update:"] = "Letzte Aktualisierung:"; +App::$strings["Authorize application connection"] = "Zugriff für die Anwendung autorisieren"; +App::$strings["Return to your app and insert this Security Code:"] = "Gehen Sie zu Ihrer App zurück und tragen Sie diesen Sicherheitscode ein:"; +App::$strings["Please login to continue."] = "Zum Weitermachen, bitte einloggen."; +App::$strings["Do you want to authorize this application to access your posts and contacts, and/or create new posts for you?"] = "Möchtest Du dieser Anwendung erlauben, Deine Nachrichten und Kontakte abzurufen und/oder neue Nachrichten für Dich zu erstellen?"; +App::$strings["sent you a private message"] = "hat Dir eine private Nachricht geschickt"; +App::$strings["added your channel"] = "hat deinen Kanal hinzugefügt"; +App::$strings["g A l F d"] = "l, d. F, G:i \\U\\h\\r"; +App::$strings["[today]"] = "[Heute]"; +App::$strings["posted an event"] = "hat einen Termin veröffentlicht"; +App::$strings["About this site"] = "Über diese Seite"; +App::$strings["Site Name"] = "Seitenname"; +App::$strings["Administrator"] = "Administrator"; +App::$strings["Software and Project information"] = "Software und Projektinformationen"; +App::$strings["This site is powered by \$Projectname"] = "Diese Website wird bereitgestellt durch \$Projectname"; +App::$strings["Federated and decentralised networking and identity services provided by Zot"] = "Verbundene, dezentrale Netzwerk- und Identitätsdienste, ermöglicht mittels Zot"; +App::$strings["Version %s"] = "Version %s"; +App::$strings["Project homepage"] = "Projekt-Website"; +App::$strings["Developer homepage"] = "Entwickler-Website"; +App::$strings["No valid account found."] = "Kein gültiges Konto gefunden."; +App::$strings["Password reset request issued. Check your email."] = "Zurücksetzen des Passworts eingeleitet. Schau in Deine E-Mails."; +App::$strings["Site Member (%s)"] = "Nutzer (%s)"; +App::$strings["Password reset requested at %s"] = "Passwort-Rücksetzung auf %s angefordert"; +App::$strings["Request could not be verified. (You may have previously submitted it.) Password reset failed."] = "Die Anfrage konnte nicht verifiziert werden. (Vielleicht hast Du schon einmal auf den Link in der E-Mail geklickt?) Passwort-Rücksetzung fehlgeschlagen."; +App::$strings["Password Reset"] = "Zurücksetzen des Kennworts"; +App::$strings["Your password has been reset as requested."] = "Dein Passwort wurde wie angefordert neu erstellt."; +App::$strings["Your new password is"] = "Dein neues Passwort lautet"; +App::$strings["Save or copy your new password - and then"] = "Speichere oder kopiere Dein neues Passwort – und dann"; +App::$strings["click here to login"] = "Klicke hier, um dich anzumelden"; +App::$strings["Your password may be changed from the Settings page after successful login."] = "Dein Passwort kann unter Einstellungen nach einer erfolgreichen Anmeldung geändert werden."; +App::$strings["Your password has changed at %s"] = "Auf %s wurde Dein Passwort geändert"; +App::$strings["Forgot your Password?"] = "Kennwort vergessen?"; +App::$strings["Enter your email address and submit to have your password reset. Then check your email for further instructions."] = "Gib Deine E-Mail-Adresse ein, um Dein Passwort zurücksetzen zu lassen. Du erhältst dann weitere Anweisungen per E-Mail."; +App::$strings["Email Address"] = "E-Mail Adresse"; +App::$strings["Reset"] = "Zurücksetzen"; App::$strings["Select a bookmark folder"] = "Lesezeichenordner wählen"; App::$strings["Save Bookmark"] = "Lesezeichen speichern"; App::$strings["URL of bookmark"] = "URL des Lesezeichens"; App::$strings["Or enter new bookmark folder name"] = "Oder gib einen neuen Namen für den Lesezeichenordner ein"; -App::$strings["This site is not a directory server"] = "Diese Webseite ist kein Verzeichnisserver"; +App::$strings["This directory server requires an access token"] = "Dieser Verzeichnisserver benötigt einen Zugriffstoken"; App::$strings["Authentication failed."] = "Authentifizierung fehlgeschlagen."; App::$strings["Remote Authentication"] = "Entfernte Authentifizierung"; App::$strings["Enter your channel address (e.g. channel@example.com)"] = "Deine Kanal-Adresse (z. B. channel@example.com)"; @@ -1119,12 +1131,12 @@ App::$strings["Please enter your password for verification:"] = "Bitte gib zur B App::$strings["Remove this account, all its channels and all its channel clones from the network"] = "Dieses Konto, all seine Kanäle sowie alle Kanal-Klone aus dem Netzwerk löschen"; App::$strings["By default only the instances of the channels located on this hub will be removed from the network"] = "Standardmäßig werden nur die Kanalklone auf diesem \$Projectname-Hub aus dem Netzwerk entfernt"; App::$strings["Remove Account"] = "Konto entfernen"; -App::$strings["Channel removals are not allowed within 48 hours of changing the account password."] = "Innerhalb von 48 Stunden nach einer Änderung des Passworts können keine Kanäle gelöscht werden."; -App::$strings["Remove This Channel"] = "Diesen Kanal löschen"; -App::$strings["This channel will be completely removed from the network. "] = "Dieser Kanal wird vollständig aus dem Netzwerk gelöscht."; -App::$strings["Remove this channel and all its clones from the network"] = "Lösche diesen Kanal und all seine Klone aus dem Netzwerk"; -App::$strings["By default only the instance of the channel located on this hub will be removed from the network"] = "Standardmäßig wird der Kanal nur auf diesem Server gelöscht, seine Klone verbleiben im Netzwerk"; -App::$strings["Remove Channel"] = "Kanal löschen"; +App::$strings["Layout updated."] = "Layout aktualisiert."; +App::$strings["Feature disabled."] = "Funktion deaktiviert."; +App::$strings["Edit System Page Description"] = "Systemseitenbeschreibung bearbeiten"; +App::$strings["Layout not found."] = "Layout nicht gefunden."; +App::$strings["Module Name:"] = "Modulname:"; +App::$strings["Layout Help"] = "Layout-Hilfe"; App::$strings["Export Channel"] = "Kanal exportieren"; App::$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."] = "Exportiert die grundlegenden Kanal-Informationen in eine kleine Datei. Diese stellt eine Sicherung Deiner Verbindungen, Berechtigungen, Profile und Basisdaten bereit, die für den Import auf einem anderen Hub verwendet werden kann, aber nicht die Beiträge Deines Kanals enthält."; App::$strings["Export Content"] = "Kanal und Inhalte exportieren"; @@ -1134,42 +1146,75 @@ App::$strings["You may also export your posts and conversations for a particular App::$strings["To select all posts for a given year, such as this year, visit %2\$s"] = "Um alle Beiträge eines bestimmten Jahres, zum Beispiel dieses Jahres, auszuwählen, klicke %2\$s."; App::$strings["To select all posts for a given month, such as January of this year, visit %2\$s"] = "Um alle Beiträge eines bestimmten Monats auszuwählen, zum Beispiel vom Januar diesen Jahres, klicke %2\$s."; App::$strings["These content files may be imported or restored by visiting %2\$s on any site containing your channel. For best results please import or restore these in date order (oldest first)."] = "Diese Inhalts-Sicherungen können wiederhergestellt werden, indem Du %2\$s auf jeglichem Hub besuchst, der diesen Kanal enthält. Das funktioniert am besten, wenn Du dabei die zeitliche Reihenfolge einhältst, also die Sicherungen für den ältesten Zeitraum zuerst importierst."; -App::$strings["Item is not editable"] = "Element kann nicht bearbeitet werden."; -App::$strings["Items tagged with: %s"] = "Beiträge mit Schlagwort: %s"; -App::$strings["Search results for: %s"] = "Suchergebnisse für: %s"; -App::$strings["You must be logged in to see this page."] = "Du musst angemeldet sein, um diese Seite betrachten zu können."; -App::$strings["Posts and comments"] = "Beiträge und Kommentare"; -App::$strings["Only posts"] = "Nur Beiträge"; -App::$strings["Insufficient permissions. Request redirected to profile page."] = "Unzureichende Zugriffsrechte. Die Anfrage wurde zur Profil-Seite umgeleitet."; +App::$strings["Permissions denied."] = "Berechtigung verweigert."; +App::$strings["l, F j"] = "l, j. F"; +App::$strings["Link to Source"] = "Link zur Quelle"; +App::$strings["Edit Event"] = "Termin bearbeiten"; +App::$strings["Create Event"] = "Termin anlegen"; +App::$strings["Export"] = "Exportieren"; +App::$strings["Import"] = "Import"; +App::$strings["Today"] = "Heute"; +App::$strings["# Accounts"] = "Anzahl der Konten"; +App::$strings["# blocked accounts"] = "Anzahl der blockierten Konten"; +App::$strings["# expired accounts"] = "Anzahl der abgelaufenen Konten"; +App::$strings["# expiring accounts"] = "Anzahl der ablaufenden Konten"; +App::$strings["# Channels"] = "Anzahl der Kanäle"; +App::$strings["# primary"] = "Anzahl der primären Kanäle"; +App::$strings["# clones"] = "Anzahl der Klone"; +App::$strings["Message queues"] = "Nachrichten-Warteschlangen"; +App::$strings["Your software should be updated"] = "Die installierte Software sollte aktualisiert werden"; +App::$strings["Summary"] = "Zusammenfassung"; +App::$strings["Registered accounts"] = "Registrierte Konten"; +App::$strings["Pending registrations"] = "Ausstehende Registrierungen"; +App::$strings["Registered channels"] = "Registrierte Kanäle"; +App::$strings["Active plugins"] = "Aktive Plug-Ins"; +App::$strings["Version"] = "Version"; +App::$strings["Repository version (master)"] = "Repository-Version (master)"; +App::$strings["Repository version (dev)"] = "Repository-Version (dev)"; +App::$strings["Remote privacy information not available."] = "Privatsphäre-Einstellungen anderer Nutzer sind nicht verfügbar."; +App::$strings["Visible to:"] = "Sichtbar für:"; App::$strings["No service class restrictions found."] = "Keine Dienstklassenbeschränkungen gefunden."; -App::$strings["Thing updated"] = "Sache aktualisiert"; -App::$strings["Object store: failed"] = "Speichern des Objekts fehlgeschlagen"; -App::$strings["Thing added"] = "Sache hinzugefügt"; -App::$strings["OBJ: %1\$s %2\$s %3\$s"] = "OBJ: %1\$s %2\$s %3\$s"; -App::$strings["Show Thing"] = "Sache anzeigen"; -App::$strings["item not found."] = "Eintrag nicht gefunden"; -App::$strings["Edit Thing"] = "Sache bearbeiten"; -App::$strings["Select a profile"] = "Wähle ein Profil"; -App::$strings["Post an activity"] = "Aktivitätsnachricht senden"; -App::$strings["Only sends to viewers of the applicable profile"] = "Nur an Betrachter des ausgewählten Profils senden"; -App::$strings["Name of thing e.g. something"] = "Name der Sache, z. B. irgendwas"; -App::$strings["URL of thing (optional)"] = "URL der Sache (optional)"; -App::$strings["URL for photo of thing (optional)"] = "URL eines Fotos der Sache (optional)"; -App::$strings["Add Thing to your Profile"] = "Die Sache Deinem Profil hinzufügen"; -App::$strings["This directory server requires an access token"] = "Dieser Verzeichnisserver benötigt einen Zugriffstoken"; +App::$strings["Import Webpage Elements"] = "Webseitenelemente importieren"; +App::$strings["Import selected"] = "Import ausgewählt"; +App::$strings["Export Webpage Elements"] = "Webseitenelemente exportieren"; +App::$strings["Export selected"] = "Exportieren ausgewählt"; +App::$strings["Webpages"] = "Webseiten"; +App::$strings["Actions"] = "Aktionen"; +App::$strings["Page Link"] = "Seiten-Link"; +App::$strings["Page Title"] = "Seitentitel"; +App::$strings["Invalid file type."] = "Ungültiger Dateityp."; +App::$strings["Error opening zip file"] = "Fehler beim Öffnen der ZIP-Datei"; +App::$strings["Invalid folder path."] = "Ungültiger Ordnerpfad."; +App::$strings["No webpage elements detected."] = "Keine Webseitenelemente erkannt."; +App::$strings["Import complete."] = "Import abgeschlossen."; +App::$strings["Channel removals are not allowed within 48 hours of changing the account password."] = "Innerhalb von 48 Stunden nach einer Änderung des Passworts können keine Kanäle gelöscht werden."; +App::$strings["Remove This Channel"] = "Diesen Kanal löschen"; +App::$strings["This channel will be completely removed from the network. "] = "Dieser Kanal wird vollständig aus dem Netzwerk gelöscht."; +App::$strings["Remove this channel and all its clones from the network"] = "Lösche diesen Kanal und all seine Klone aus dem Netzwerk"; +App::$strings["By default only the instance of the channel located on this hub will be removed from the network"] = "Standardmäßig wird der Kanal nur auf diesem Server gelöscht, seine Klone verbleiben im Netzwerk"; +App::$strings["Remove Channel"] = "Kanal löschen"; App::$strings["Files: shared with me"] = "Dateien, die mit mir geteilt wurden"; App::$strings["NEW"] = "NEU"; App::$strings["Remove all files"] = "Alle Dateien löschen"; App::$strings["Remove this file"] = "Diese Datei löschen"; App::$strings["Not found"] = "Nicht gefunden"; -App::$strings["Wiki"] = "Wiki"; -App::$strings["Sandbox"] = "Sandbox"; -App::$strings["\"# Wiki Sandbox\\n\\nContent you **edit** and **preview** here *will not be saved*.\""] = "\"# Wiki Sandkasten\\n\\nInhalte, die Du hier **veränderst** und **als Vorschau anzeigst**, *werden nicht gespeichert*.\""; +App::$strings["Invalid channel"] = "Ungültiger Kanal"; +App::$strings["Error retrieving wiki"] = "Fehler beim Abrufen des Wiki"; +App::$strings["Error creating zip file export folder"] = "Fehler bei der Erzeugung des Zip-Datei Export-Verzeichnisses "; +App::$strings["Error downloading wiki: "] = "Fehler beim Herunterladen des Wiki:"; +App::$strings["Wikis"] = "Wikis"; +App::$strings["Download"] = "Herunterladen"; +App::$strings["Wiki name"] = "Name des Wiki"; +App::$strings["Content type"] = "Inhaltstyp"; +App::$strings["Create a status post for this wiki"] = "Erzeuge einen Statusbeitrag für dieses Wiki"; +App::$strings["Wiki not found"] = "Wiki nicht gefunden"; +App::$strings["Rename page"] = "Seite umbenennen"; +App::$strings["Error retrieving page content"] = "Fehler beim Abrufen des Seiteninhalts"; App::$strings["Revision Comparison"] = "Revisionsvergleich"; App::$strings["Revert"] = "Rückgängig machen"; -App::$strings["Enter the name of your new wiki:"] = "Gib einen Namen für Dein neues Wiki ein:"; -App::$strings["Enter the name of the new page:"] = "Geben Sie den Namen der neuen Seite ein:"; -App::$strings["Enter the new name:"] = "Geben Sie den neuen Namen ein:"; +App::$strings["Choose an available wiki from the list on the left."] = "Wähle ein vorhandenes Wiki aus der Liste auf der linken Seite aus."; +App::$strings["Source"] = "Quelle"; +App::$strings["New page name"] = "Neuer Seitenname"; App::$strings["Embed image from photo albums"] = "Bild aus Fotoalben einbetten"; App::$strings["Embed an image from your albums"] = "Betten Sie ein Bild aus Ihren Alben ein"; App::$strings["OK"] = "Ok"; @@ -1179,6 +1224,10 @@ App::$strings["Choose a different album..."] = "Wählen Sie ein anderes Album au App::$strings["Error getting album list"] = "Fehler beim Holen der Albenliste"; App::$strings["Error getting photo link"] = "Fehler beim Holen des Fotolinks"; App::$strings["Error getting album"] = "Fehler beim Holen des Albums"; +App::$strings["Error creating wiki. Invalid name."] = "Fehler beim Erstellen des Wiki. Ungültiger Name."; +App::$strings["Wiki created, but error creating Home page."] = "Das Wiki wurde erzeugt, aber es gab einen Fehler bei der Erstellung der Startseite"; +App::$strings["Error creating wiki"] = "Fehler beim Erstellen des Wiki"; +App::$strings["New page created"] = "Neue Seite erstellt"; App::$strings["Failed to create source. No channel selected."] = "Konnte die Quelle nicht anlegen. Kein Kanal ausgewählt."; App::$strings["Source created."] = "Quelle erstellt."; App::$strings["Source updated."] = "Quelle aktualisiert."; @@ -1204,113 +1253,31 @@ App::$strings["Ignore/Hide"] = "Ignorieren/Verstecken"; App::$strings["post"] = "Beitrag"; App::$strings["comment"] = "Kommentar"; App::$strings["%1\$s tagged %2\$s's %3\$s with %4\$s"] = "%1\$s hat %2\$ss %3\$s mit %4\$s verschlagwortet"; -App::$strings["Tag removed"] = "Schlagwort entfernt"; -App::$strings["Remove Item Tag"] = "Schlagwort entfernen"; -App::$strings["Select a tag to remove: "] = "Schlagwort zum Entfernen auswählen:"; -App::$strings["Page owner information could not be retrieved."] = "Informationen über den Besitzer der Seite konnten nicht gefunden werden."; -App::$strings["Album not found."] = "Album nicht gefunden."; -App::$strings["Delete Album"] = "Album löschen"; -App::$strings["Multiple storage folders exist with this album name, but within different directories. Please remove the desired folder or folders using the Files manager"] = "Mehrere Speicherordner mit diesem Albumnamen sind bereits vorhanden, aber in verschiedenen Verzeichnissen. Bitte entfernen Sie den oder die gewünschten Ordner mit dem Dateimanager"; -App::$strings["Delete Photo"] = "Foto löschen"; -App::$strings["No photos selected"] = "Keine Fotos ausgewählt"; -App::$strings["Access to this item is restricted."] = "Der Zugriff auf dieses Foto ist eingeschränkt."; -App::$strings["%1$.2f MB of %2$.2f MB photo storage used."] = "%1$.2f MB von %2$.2f MB Foto-Speicher belegt."; -App::$strings["%1$.2f MB photo storage used."] = "%1$.2f MB Foto-Speicher belegt."; -App::$strings["Upload Photos"] = "Fotos hochladen"; -App::$strings["Enter an album name"] = "Namen für ein neues Album eingeben"; -App::$strings["or select an existing album (doubleclick)"] = "oder ein bereits vorhandenes auswählen (Doppelklick)"; -App::$strings["Create a status post for this upload"] = "Einen Statusbeitrag für diesen Upload erzeugen"; -App::$strings["Caption (optional):"] = "Beschriftung (optional):"; -App::$strings["Description (optional):"] = "Beschreibung (optional):"; -App::$strings["Album name could not be decoded"] = "Albumname konnte nicht dekodiert werden"; -App::$strings["Contact Photos"] = "Kontakt-Bilder"; -App::$strings["Show Newest First"] = "Neueste zuerst anzeigen"; -App::$strings["Show Oldest First"] = "Älteste zuerst anzeigen"; -App::$strings["View Photo"] = "Foto ansehen"; -App::$strings["Edit Album"] = "Album bearbeiten"; -App::$strings["Permission denied. Access to this item may be restricted."] = "Berechtigung verweigert. Der Zugriff ist wahrscheinlich eingeschränkt worden."; -App::$strings["Photo not available"] = "Foto nicht verfügbar"; -App::$strings["Use as profile photo"] = "Als Profilfoto verwenden"; -App::$strings["Use as cover photo"] = "Als Titelbild verwenden"; -App::$strings["Private Photo"] = "Privates Foto"; -App::$strings["View Full Size"] = "In voller Größe anzeigen"; -App::$strings["Edit photo"] = "Foto bearbeiten"; -App::$strings["Rotate CW (right)"] = "Drehen im UZS (rechts)"; -App::$strings["Rotate CCW (left)"] = "Drehen gegen UZS (links)"; -App::$strings["Move photo to album"] = "Foto in Album verschieben"; -App::$strings["Enter a new album name"] = "Gib einen Namen für ein neues Album ein"; -App::$strings["or select an existing one (doubleclick)"] = "oder wähle ein bereits vorhandenes aus (Doppelklick)"; -App::$strings["Caption"] = "Bildunterschrift"; -App::$strings["Add a Tag"] = "Schlagwort hinzufügen"; -App::$strings["Example: @bob, @Barbara_Jensen, @jim@example.com"] = "Beispiele: @ben, @Karl_Prester, @lieschen@example.com"; -App::$strings["Flag as adult in album view"] = "In der Albumansicht als nicht jugendfrei markieren"; -App::$strings["I like this (toggle)"] = "Mir gefällt das (Umschalter)"; -App::$strings["I don't like this (toggle)"] = "Mir gefällt das nicht (Umschalter)"; -App::$strings["Please wait"] = "Bitte warten"; -App::$strings["This is you"] = "Das bist Du"; -App::$strings["Comment"] = "Kommentar"; -App::$strings["__ctx:title__ Likes"] = "Gefällt mir"; -App::$strings["__ctx:title__ Dislikes"] = "Gefällt mir nicht"; -App::$strings["__ctx:title__ Agree"] = "Zustimmungen"; -App::$strings["__ctx:title__ Disagree"] = "Ablehnungen"; -App::$strings["__ctx:title__ Abstain"] = "Enthaltungen"; -App::$strings["__ctx:title__ Attending"] = "Zusagen"; -App::$strings["__ctx:title__ Not attending"] = "Absagen"; -App::$strings["__ctx:title__ Might attend"] = "Vielleicht"; -App::$strings["View all"] = "Alles anzeigen"; -App::$strings["__ctx:noun__ Like"] = array( - 0 => "Gefällt mir", - 1 => "Gefällt mir", -); -App::$strings["__ctx:noun__ Dislike"] = array( - 0 => "Gefällt nicht", - 1 => "Gefällt nicht", -); -App::$strings["Photo Tools"] = "Fotowerkzeuge"; -App::$strings["In This Photo:"] = "Auf diesem Foto:"; -App::$strings["Map"] = "Karte"; -App::$strings["__ctx:noun__ Likes"] = "Gefällt mir"; -App::$strings["__ctx:noun__ Dislikes"] = "Gefällt nicht"; -App::$strings["Close"] = "Schließen"; -App::$strings["View Album"] = "Album ansehen"; -App::$strings["Recent Photos"] = "Neueste Fotos"; -App::$strings["Channel added."] = "Kanal hinzugefügt."; -App::$strings["No connections."] = "Keine Verbindungen."; -App::$strings["Visit %s's profile [%s]"] = "%ss Profil [%s] besuchen"; -App::$strings["View Connections"] = "Verbindungen anzeigen"; -App::$strings["Source of Item"] = "Quelle des Elements"; -App::$strings["Room not found"] = "Chatraum nicht gefunden"; -App::$strings["Leave Room"] = "Raum verlassen"; -App::$strings["Delete Room"] = "Raum löschen"; -App::$strings["I am away right now"] = "Ich bin gerade nicht da"; -App::$strings["I am online"] = "Ich bin online"; -App::$strings["Bookmark this room"] = "Lesezeichen für diesen Raum setzen"; -App::$strings["New Chatroom"] = "Neuer Chatraum"; -App::$strings["Chatroom name"] = "Chatraumname"; -App::$strings["Expiration of chats (minutes)"] = "Verfall von Chats (Minuten)"; -App::$strings["%1\$s's Chatrooms"] = "%1\$ss Chaträume"; -App::$strings["No chatrooms available"] = "Keine Chaträume verfügbar"; -App::$strings["Expiration"] = "Verfall"; -App::$strings["min"] = "min"; -App::$strings["Xchan Lookup"] = "Xchan-Suche"; -App::$strings["Lookup xchan beginning with (or webbie): "] = "Nach xchans oder Webbies (Kanal-Adressen) suchen, die wie folgt beginnen:"; -App::$strings["# Accounts"] = "Anzahl der Konten"; -App::$strings["# blocked accounts"] = "Anzahl der blockierten Konten"; -App::$strings["# expired accounts"] = "Anzahl der abgelaufenen Konten"; -App::$strings["# expiring accounts"] = "Anzahl der ablaufenden Konten"; -App::$strings["# Channels"] = "Anzahl der Kanäle"; -App::$strings["# primary"] = "Anzahl der primären Kanäle"; -App::$strings["# clones"] = "Anzahl der Klone"; -App::$strings["Message queues"] = "Nachrichten-Warteschlangen"; -App::$strings["Your software should be updated"] = "Die installierte Software sollte aktualisiert werden"; -App::$strings["Summary"] = "Zusammenfassung"; -App::$strings["Registered accounts"] = "Registrierte Konten"; -App::$strings["Pending registrations"] = "Ausstehende Registrierungen"; -App::$strings["Registered channels"] = "Registrierte Kanäle"; -App::$strings["Active plugins"] = "Aktive Plug-Ins"; -App::$strings["Version"] = "Version"; -App::$strings["Repository version (master)"] = "Repository-Version (master)"; -App::$strings["Repository version (dev)"] = "Repository-Version (dev)"; +App::$strings["Additional Features"] = "Zusätzliche Funktionen"; +App::$strings["Name is required"] = "Name ist erforderlich"; +App::$strings["Key and Secret are required"] = "Schlüssel und Geheimnis werden benötigt"; +App::$strings["Add application"] = "Anwendung hinzufügen"; +App::$strings["Name of application"] = "Name der Anwendung"; +App::$strings["Consumer Key"] = "Consumer Key"; +App::$strings["Automatically generated - change if desired. Max length 20"] = "Automatisch erzeugt – ändern, falls erwünscht. Maximale Länge 20"; +App::$strings["Consumer Secret"] = "Consumer Secret"; +App::$strings["Redirect"] = "Umleitung"; +App::$strings["Redirect URI - leave blank unless your application specifically requires this"] = "Umleitungs-URl – lasse das leer, solange Deine Anwendung es nicht explizit erfordert"; +App::$strings["Icon url"] = "Symbol-URL"; +App::$strings["Application not found."] = "Die Anwendung wurde nicht gefunden."; +App::$strings["Connected Apps"] = "Verbundene Apps"; +App::$strings["Client key starts with"] = "Client Key beginnt mit"; +App::$strings["No name"] = "Kein Name"; +App::$strings["Remove authorization"] = "Authorisierung aufheben"; +App::$strings["This channel is limited to %d tokens"] = "Dieser Kanal ist auf %d Token begrenzt"; +App::$strings["Name and Password are required."] = "Name und Passwort sind erforderlich."; +App::$strings["Token saved."] = "Token gespeichert."; +App::$strings["Use this form to create temporary access identifiers to share things with non-members. These identities may be used in Access Control Lists and visitors may login using these credentials to access private content."] = "Mit diesem Formular kannst Du temporäre Zugangs-IDs anlegen, um Inhalte mit Nicht-Mitgliedern zu teilen. Die IDs können in Berechtigungslisten (ACLs) verwendet werden, und Besucher können sich damit einloggen, um auf private Inhalte zuzugreifen."; +App::$strings["You may also provide dropbox style access links to friends and associates by adding the Login Password to any specific site URL as shown. Examples:"] = "Du kannst auch Dropbox-ähnliche Zugriffslinks an Andere weitergeben, indem du das Login-Passwort an eine entsprechende URL anhängst wie nachfolgend gezeigt. Beispiele:"; +App::$strings["Guest Access Tokens"] = "Gastzugangstoken"; +App::$strings["Login Name"] = "Anmeldename"; +App::$strings["Login Password"] = "Anmeldepasswort"; +App::$strings["Expires (yyyy-mm-dd)"] = "Läuft ab (jjjj-mm-tt)"; App::$strings["Not valid email."] = "Keine gültige E-Mail Adresse."; App::$strings["Protected email address. Cannot change to that email."] = "Geschützte E-Mail Adresse. Diese kann nicht verändert werden."; App::$strings["System failure storing new email. Please try again."] = "Systemfehler während des Speicherns der neuen Mail. Bitte versuche es noch einmal."; @@ -1341,6 +1308,7 @@ App::$strings["Anybody on the internet"] = "Jeder im Internet"; App::$strings["Publish your default profile in the network directory"] = "Standard-Profil im Netzwerk-Verzeichnis veröffentlichen"; App::$strings["Allow us to suggest you as a potential friend to new members?"] = "Dürfen wir Dich neuen Mitgliedern als potentiellen Kontakt vorschlagen?"; App::$strings["Your channel address is"] = "Deine Kanal-Adresse lautet"; +App::$strings["Your files/photos are accessible via WebDAV at"] = "Deine Dateien/Fotos sind via WebDAV verfügbar auf"; App::$strings["Channel Settings"] = "Kanal-Einstellungen"; App::$strings["Basic Settings"] = "Grundeinstellungen"; App::$strings["Full Name:"] = "Voller Name:"; @@ -1432,6 +1400,8 @@ App::$strings["Minimum of 10 seconds, no maximum"] = "Minimum 10 Sekunden, kein App::$strings["Maximum number of conversations to load at any time:"] = "Maximale Anzahl von Unterhaltungen, die auf einmal geladen werden sollen:"; App::$strings["Maximum of 100 items"] = "Maximum: 100 Beiträge"; App::$strings["Show emoticons (smilies) as images"] = "Emoticons (Smilies) als Bilder anzeigen"; +App::$strings["Manual conversation updates"] = "Manuelle Konversationsaktualisierung"; +App::$strings["Default is automatic, which may increase screen jumping"] = "Voreinstellung ist Automatisch, was aber das Springen der Seitenanzeige erhöhen kann."; App::$strings["Link post titles to source"] = "Beitragstitel zum Originalbeitrag verlinken"; App::$strings["System Page Layout Editor - (advanced)"] = "System-Seitenlayout-Editor (für Experten)"; App::$strings["Use blog/list mode on channel page"] = "Blog-/Listenmodus auf der Kanalseite verwenden"; @@ -1442,94 +1412,94 @@ App::$strings["click to expand content exceeding this height"] = "Blöcke, deren App::$strings["Grid page max height of content (in pixels)"] = "Maximale Höhe (in Pixel) des Inhalts der Netzwerkseite"; App::$strings["No feature settings configured"] = "Keine Funktions-Einstellungen konfiguriert"; App::$strings["Feature/Addon Settings"] = "Funktions-/Addon-Einstellungen"; -App::$strings["Additional Features"] = "Zusätzliche Funktionen"; -App::$strings["Name is required"] = "Name ist erforderlich"; -App::$strings["Key and Secret are required"] = "Schlüssel und Geheimnis werden benötigt"; -App::$strings["Add application"] = "Anwendung hinzufügen"; -App::$strings["Name of application"] = "Name der Anwendung"; -App::$strings["Consumer Key"] = "Consumer Key"; -App::$strings["Automatically generated - change if desired. Max length 20"] = "Automatisch erzeugt – ändern, falls erwünscht. Maximale Länge 20"; -App::$strings["Consumer Secret"] = "Consumer Secret"; -App::$strings["Redirect"] = "Umleitung"; -App::$strings["Redirect URI - leave blank unless your application specifically requires this"] = "Umleitungs-URl – lasse das leer, solange Deine Anwendung es nicht explizit erfordert"; -App::$strings["Icon url"] = "Symbol-URL"; -App::$strings["Application not found."] = "Die Anwendung wurde nicht gefunden."; -App::$strings["Connected Apps"] = "Verbundene Apps"; -App::$strings["Client key starts with"] = "Client Key beginnt mit"; -App::$strings["No name"] = "Kein Name"; -App::$strings["Remove authorization"] = "Authorisierung aufheben"; -App::$strings["This channel is limited to %d tokens"] = "Dieser Kanal ist auf %d Token begrenzt"; -App::$strings["Name and Password are required."] = "Name und Passwort sind erforderlich."; -App::$strings["Token saved."] = "Token gespeichert."; -App::$strings["Use this form to create temporary access identifiers to share things with non-members. These identities may be used in Access Control Lists and visitors may login using these credentials to access private content."] = "Mit diesem Formular kannst Du temporäre Zugangs-IDs anlegen, um Inhalte mit Nicht-Mitgliedern zu teilen. Die IDs können in Berechtigungslisten (ACLs) verwendet werden, und Besucher können sich damit einloggen, um auf private Inhalte zuzugreifen."; -App::$strings["You may also provide dropbox style access links to friends and associates by adding the Login Password to any specific site URL as shown. Examples:"] = "Du kannst auch Dropbox-ähnliche Zugriffslinks an Andere weitergeben, indem du das Login-Passwort an eine entsprechende URL anhängst wie nachfolgend gezeigt. Beispiele:"; -App::$strings["Guest Access Tokens"] = "Gastzugangstoken"; -App::$strings["Login Name"] = "Anmeldename"; -App::$strings["Login Password"] = "Anmeldepasswort"; -App::$strings["Expires (yyyy-mm-dd)"] = "Läuft ab (jjjj-mm-tt)"; +App::$strings["Tag removed"] = "Schlagwort entfernt"; +App::$strings["Remove Item Tag"] = "Schlagwort entfernen"; +App::$strings["Select a tag to remove: "] = "Schlagwort zum Entfernen auswählen:"; +App::$strings["Thing updated"] = "Sache aktualisiert"; +App::$strings["Object store: failed"] = "Speichern des Objekts fehlgeschlagen"; +App::$strings["Thing added"] = "Sache hinzugefügt"; +App::$strings["OBJ: %1\$s %2\$s %3\$s"] = "OBJ: %1\$s %2\$s %3\$s"; +App::$strings["Show Thing"] = "Sache anzeigen"; +App::$strings["item not found."] = "Eintrag nicht gefunden"; +App::$strings["Edit Thing"] = "Sache bearbeiten"; +App::$strings["Select a profile"] = "Wähle ein Profil"; +App::$strings["Post an activity"] = "Aktivitätsnachricht senden"; +App::$strings["Only sends to viewers of the applicable profile"] = "Nur an Betrachter des ausgewählten Profils senden"; +App::$strings["Name of thing e.g. something"] = "Name der Sache, z. B. irgendwas"; +App::$strings["URL of thing (optional)"] = "URL der Sache (optional)"; +App::$strings["URL for photo of thing (optional)"] = "URL eines Fotos der Sache (optional)"; +App::$strings["Add Thing to your Profile"] = "Die Sache Deinem Profil hinzufügen"; +App::$strings["Your service plan only allows %d channels."] = "Dein Vertrag erlaubt nur %d Kanäle."; +App::$strings["Cloned channel not found. Import failed."] = "Geklonter Kanal nicht gefunden. Import fehlgeschlagen."; +App::$strings["No channel. Import failed."] = "Kein Kanal. Import fehlgeschlagen."; +App::$strings["Import completed."] = "Import abgeschlossen."; +App::$strings["You must be logged in to use this feature."] = "Du musst angemeldet sein um diese Funktion zu nutzen."; +App::$strings["Import Channel"] = "Kanal importieren"; +App::$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."] = "Verwende dieses Formular, um einen existierenden Kanal von einem anderen Hub zu importieren. Du kannst den Kanal direkt vom bisherigen Hub über das Netzwerk oder aus einer exportierten Sicherheitskopie importieren."; +App::$strings["Or provide the old server/hub details"] = "Oder gib die Details Deines bisherigen \$Projectname-Hubs ein"; +App::$strings["Your old identity address (xyz@example.com)"] = "Bisherige Kanal-Adresse (xyz@example.com)"; +App::$strings["Your old login email address"] = "Deine alte Login-E-Mail-Adresse"; +App::$strings["Your old login password"] = "Dein altes Passwort"; +App::$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."] = "Egal, welche Option Du wählst – bitte lege fest, ob dieser Server die neue primäre Adresse dieses Kanals sein soll, oder ob der bisherige \$Projectname-Hub diese Rolle weiterhin wahrnimmt. Du kannst von beiden Servern aus posten, aber nur einer kann der primäre Ort Deiner Dateien, Fotos und Medien sein."; +App::$strings["Make this hub my primary location"] = "Dieser $Pojectname-Hub ist mein primärer Hub."; +App::$strings["Import existing posts if possible (experimental - limited by available memory"] = "Importiere bestehende Beiträge falls möglich (experimentell - begrenzt durch zur Verfügung stehenden Speicher"; +App::$strings["This process may take several minutes to complete. Please submit the form only once and leave this page open until finished."] = "Dieser Vorgang kann einige Minuten dauern. Bitte sende das Formular nur einmal ab und lasse diese Seite bis zur Fertigstellung offen."; +App::$strings["No connections."] = "Keine Verbindungen."; +App::$strings["Visit %s's profile [%s]"] = "%ss Profil [%s] besuchen"; +App::$strings["View Connections"] = "Verbindungen anzeigen"; +App::$strings["Source of Item"] = "Quelle des Elements"; +App::$strings["Room not found"] = "Chatraum nicht gefunden"; +App::$strings["Leave Room"] = "Raum verlassen"; +App::$strings["Delete Room"] = "Raum löschen"; +App::$strings["I am away right now"] = "Ich bin gerade nicht da"; +App::$strings["I am online"] = "Ich bin online"; +App::$strings["Bookmark this room"] = "Lesezeichen für diesen Raum setzen"; +App::$strings["New Chatroom"] = "Neuer Chatraum"; +App::$strings["Chatroom name"] = "Chatraumname"; +App::$strings["Expiration of chats (minutes)"] = "Verfall von Chats (Minuten)"; +App::$strings["%1\$s's Chatrooms"] = "%1\$ss Chaträume"; +App::$strings["No chatrooms available"] = "Keine Chaträume verfügbar"; +App::$strings["Expiration"] = "Verfall"; +App::$strings["min"] = "min"; +App::$strings["Xchan Lookup"] = "Xchan-Suche"; +App::$strings["Lookup xchan beginning with (or webbie): "] = "Nach xchans oder Webbies (Kanal-Adressen) suchen, die wie folgt beginnen:"; +App::$strings["Calendar entries imported."] = "Kalendereinträge wurden importiert."; +App::$strings["No calendar entries found."] = "Keine Kalendereinträge gefunden."; +App::$strings["Event can not end before it has started."] = "Termin-Ende liegt vor dem Beginn."; +App::$strings["Unable to generate preview."] = "Vorschau konnte nicht erzeugt werden."; +App::$strings["Event title and start time are required."] = "Titel und Startzeit des Termins sind erforderlich."; +App::$strings["Event not found."] = "Termin nicht gefunden."; +App::$strings["Edit event title"] = "Termintitel bearbeiten"; +App::$strings["Event title"] = "Termintitel"; +App::$strings["Categories (comma-separated list)"] = "Kategorien (Kommagetrennte Liste)"; +App::$strings["Edit Category"] = "Kategorie bearbeiten"; +App::$strings["Category"] = "Kategorie"; +App::$strings["Edit start date and time"] = "Startdatum und -zeit bearbeiten"; +App::$strings["Start date and time"] = "Startdatum und -zeit"; +App::$strings["Finish date and time are not known or not relevant"] = "Enddatum und -zeit sind unbekannt oder irrelevant"; +App::$strings["Edit finish date and time"] = "Enddatum und -zeit bearbeiten"; +App::$strings["Finish date and time"] = "Enddatum und -zeit"; +App::$strings["Adjust for viewer timezone"] = "An die Zeitzone des Betrachters anpassen"; +App::$strings["Important for events that happen in a particular place. Not practical for global holidays."] = "Wichtig für Veranstaltungen die an bestimmten Orten stattfinden. Nicht sinnvoll für globale Feiertage / Ferien."; +App::$strings["Edit Description"] = "Beschreibung bearbeiten"; +App::$strings["Edit Location"] = "Ort bearbeiten"; +App::$strings["Permission settings"] = "Berechtigungs-Einstellungen"; +App::$strings["Advanced Options"] = "Weitere Optionen"; +App::$strings["Edit event"] = "Termin bearbeiten"; +App::$strings["Delete event"] = "Termin löschen"; +App::$strings["calendar"] = "Kalender"; +App::$strings["Month"] = "Monat"; +App::$strings["Week"] = "Woche"; +App::$strings["Day"] = "Tag"; +App::$strings["Event removed"] = "Termin gelöscht"; +App::$strings["Failed to remove event"] = "Termin konnte nicht gelöscht werden"; App::$strings["Missing room name"] = "Der Chatraum hat keinen Namen"; App::$strings["Duplicate room name"] = "Name des Chatraums bereits vergeben"; App::$strings["Invalid room specifier."] = "Ungültiger Raumbezeichner."; App::$strings["Room not found."] = "Chatraum konnte nicht gefunden werden."; App::$strings["Room is full"] = "Der Chatraum ist voll"; -App::$strings["\$Projectname Notification"] = "\$Projectname-Benachrichtigung"; -App::$strings["\$projectname"] = "\$projectname"; -App::$strings["Thank You,"] = "Danke."; -App::$strings["%s Administrator"] = "der Administrator von %s"; -App::$strings["%s "] = "%s "; -App::$strings["[Hubzilla:Notify] New mail received at %s"] = "[Hubzilla:Benachrichtigung] Neue Mail empfangen auf %s"; -App::$strings["%1\$s, %2\$s sent you a new private message at %3\$s."] = "%1\$s, %2\$s hat Dir eine private Nachricht auf %3\$s gesendet."; -App::$strings["%1\$s sent you %2\$s."] = "%1\$s hat Dir %2\$s geschickt."; -App::$strings["a private message"] = "eine private Nachricht"; -App::$strings["Please visit %s to view and/or reply to your private messages."] = "Bitte besuche %s, um die private Nachricht anzusehen und/oder darauf zu antworten."; -App::$strings["%1\$s, %2\$s commented on [zrl=%3\$s]a %4\$s[/zrl]"] = "%1\$s, %2\$s hat [zrl=%3\$s]einen %4\$s[/zrl] kommentiert"; -App::$strings["%1\$s, %2\$s commented on [zrl=%3\$s]%4\$s's %5\$s[/zrl]"] = "%1\$s, %2\$s hat [zrl=%3\$s]%4\$ss %5\$s[/zrl] kommentiert"; -App::$strings["%1\$s, %2\$s commented on [zrl=%3\$s]your %4\$s[/zrl]"] = "%1\$s, %2\$s hat [zrl=%3\$s]Deinen %4\$s[/zrl] kommentiert"; -App::$strings["[Hubzilla:Notify] Comment to conversation #%1\$d by %2\$s"] = "[Hubzilla:Benachrichtigung] Kommentar in Unterhaltung #%1\$d von %2\$s"; -App::$strings["%1\$s, %2\$s commented on an item/conversation you have been following."] = "%1\$s, %2\$s hat eine Unterhaltung kommentiert, der Du folgst."; -App::$strings["Please visit %s to view and/or reply to the conversation."] = "Bitte besuche %s, um die Unterhaltung anzusehen und/oder zu kommentieren."; -App::$strings["[Hubzilla:Notify] %s posted to your profile wall"] = "[Hubzilla:Benachrichtigung] %s schrieb auf Deine Pinnwand"; -App::$strings["%1\$s, %2\$s posted to your profile wall at %3\$s"] = "%1\$s, %2\$s hat auf Deine Pinnwand auf %3\$s geschrieben"; -App::$strings["%1\$s, %2\$s posted to [zrl=%3\$s]your wall[/zrl]"] = "%1\$s, %2\$s hat auf [zrl=%3\$s]Deine Pinnwand[/zrl] geschrieben"; -App::$strings["[Hubzilla:Notify] %s tagged you"] = "[Hubzilla:Benachrichtigung] %s hat Dich erwähnt"; -App::$strings["%1\$s, %2\$s tagged you at %3\$s"] = "%1\$s, %2\$s hat Dich auf %3\$s erwähnt"; -App::$strings["%1\$s, %2\$s [zrl=%3\$s]tagged you[/zrl]."] = "%1\$s, %2\$s [zrl=%3\$s]hat Dich erwähnt[/zrl]."; -App::$strings["[Hubzilla:Notify] %1\$s poked you"] = "[Hubzilla:Benachrichtigung] %1\$s hat Dich angestupst"; -App::$strings["%1\$s, %2\$s poked you at %3\$s"] = "%1\$s, %2\$s hat Dich auf %3\$s angestupst"; -App::$strings["%1\$s, %2\$s [zrl=%2\$s]poked you[/zrl]."] = "%1\$s, %2\$s [zrl=%2\$s]hat Dich angestupst[/zrl]."; -App::$strings["[Hubzilla:Notify] %s tagged your post"] = "[Hubzilla:Benachrichtigung] %s hat Deinen Beitrag verschlagwortet"; -App::$strings["%1\$s, %2\$s tagged your post at %3\$s"] = "%1\$s, %2\$s hat Deinen Beitrag auf %3\$s verschlagwortet"; -App::$strings["%1\$s, %2\$s tagged [zrl=%3\$s]your post[/zrl]"] = "%1\$s, %2\$s hat [zrl=%3\$s]Deinen Beitrag[/zrl] verschlagwortet"; -App::$strings["[Hubzilla:Notify] Introduction received"] = "[Hubzilla:Benachrichtigung] Vorstellung erhalten"; -App::$strings["%1\$s, you've received an new connection request from '%2\$s' at %3\$s"] = "%1\$s, Du hast eine neue Verbindungsanfrage von '%2\$s' auf %3\$s erhalten"; -App::$strings["%1\$s, you've received [zrl=%2\$s]a new connection request[/zrl] from %3\$s."] = "%1\$s, Du hast [zrl=%2\$s]eine neue Verbindungsanfrage[/zrl] von %3\$s erhalten."; -App::$strings["You may visit their profile at %s"] = "Du kannst Dir das Profil unter %s ansehen"; -App::$strings["Please visit %s to approve or reject the connection request."] = "Bitte besuche %s , um die Verbindungsanfrage anzunehmen oder abzulehnen."; -App::$strings["[Hubzilla:Notify] Friend suggestion received"] = "[Hubzilla:Benachrichtigung] Freundschaftsvorschlag erhalten"; -App::$strings["%1\$s, you've received a friend suggestion from '%2\$s' at %3\$s"] = "%1\$s, Du hast einen Kontaktvorschlag von „%2\$s“ auf %3\$s erhalten"; -App::$strings["%1\$s, you've received [zrl=%2\$s]a friend suggestion[/zrl] for %3\$s from %4\$s."] = "%1\$s, Du hast [zrl=%2\$s]einen Kontaktvorschlag[/zrl] für %3\$s von %4\$s erhalten."; -App::$strings["Name:"] = "Name:"; -App::$strings["Photo:"] = "Foto:"; -App::$strings["Please visit %s to approve or reject the suggestion."] = "Bitte besuche %s um den Vorschlag zu akzeptieren oder abzulehnen."; -App::$strings["[Hubzilla:Notify]"] = "[Hubzilla:Benachrichtigung]"; -App::$strings["created a new post"] = "Neuer Beitrag wurde erzeugt"; -App::$strings["commented on %s's post"] = "hat %s's Beitrag kommentiert"; -App::$strings["Visible to your default audience"] = "Standard-Sichtbarkeit gemäß Kanaleinstellungen"; -App::$strings["Only me"] = "Nur ich"; -App::$strings["Public"] = "Öffentlich"; -App::$strings["Anybody in the \$Projectname network"] = "Jeder innerhalb des \$Projectname Netzwerks"; -App::$strings["Any account on %s"] = "Jedes Nutzerkonto auf %s"; -App::$strings["Any of my connections"] = "Alle meine Verbindungen"; -App::$strings["Only connections I specifically allow"] = "Nur Verbindungen, denen ich es explizit erlaube"; -App::$strings["Anybody authenticated (could include visitors from other networks)"] = "Jeder, der angemeldet ist (kann Besucher anderer Netzwerke beinhalten)"; -App::$strings["Any connections including those who haven't yet been approved"] = "Alle Verbindungen einschließlich der noch nicht bestätigten"; -App::$strings["This is your default setting for the audience of your normal stream, and posts."] = "Dies ist Deine Voreinstellung für die Sichtbarkeit Deiner normalen Beiträge (Stream)."; -App::$strings["This is your default setting for who can view your default channel profile"] = "Dies ist Deine Voreinstellung für die Sichtbarkeit Deines Standard-Kanalprofils."; -App::$strings["This is your default setting for who can view your connections"] = "Dies ist Deine Voreinstellung für die Sichtbarkeit Deiner Verbindungen."; -App::$strings["This is your default setting for who can view your file storage and photos"] = "Dies ist Deine Voreinstellung für die Sichtbarkeit Deiner Dateien und Fotos."; -App::$strings["This is your default setting for the audience of your webpages"] = "Dies ist Deine Voreinstellung für die Sichtbarkeit Deiner Webseiten."; App::$strings["Site Admin"] = "Hub-Administration"; -App::$strings["Bug Report"] = "Fehler-Rückmeldung"; +App::$strings["Report Bug"] = "Fehler melden"; App::$strings["View Bookmarks"] = "Lesezeichen ansehen"; App::$strings["My Chatrooms"] = "Meine Chaträume"; App::$strings["Firefox Share"] = "Teilen-Knopf für Firefox"; @@ -1537,6 +1507,7 @@ App::$strings["Remote Diagnostics"] = "Ferndiagnose"; App::$strings["Suggest Channels"] = "Kanäle vorschlagen"; App::$strings["Login"] = "Anmelden"; App::$strings["Grid"] = "Grid"; +App::$strings["Wiki"] = "Wiki"; App::$strings["Channel Home"] = "Mein Kanal"; App::$strings["Events"] = "Termine"; App::$strings["Directory"] = "Verzeichnis"; @@ -1551,6 +1522,20 @@ App::$strings["Language"] = "Sprache"; App::$strings["Post"] = "Beitrag schreiben"; App::$strings["Profile Photo"] = "Profilfoto"; App::$strings["Purchase"] = "Kaufen"; +App::$strings["Visible to your default audience"] = "Standard-Sichtbarkeit gemäß Kanaleinstellungen"; +App::$strings["Only me"] = "Nur ich"; +App::$strings["Public"] = "Öffentlich"; +App::$strings["Anybody in the \$Projectname network"] = "Jeder innerhalb des \$Projectname Netzwerks"; +App::$strings["Any account on %s"] = "Jedes Nutzerkonto auf %s"; +App::$strings["Any of my connections"] = "Alle meine Verbindungen"; +App::$strings["Only connections I specifically allow"] = "Nur Verbindungen, denen ich es explizit erlaube"; +App::$strings["Anybody authenticated (could include visitors from other networks)"] = "Jeder, der angemeldet ist (kann Besucher anderer Netzwerke beinhalten)"; +App::$strings["Any connections including those who haven't yet been approved"] = "Alle Verbindungen einschließlich der noch nicht bestätigten"; +App::$strings["This is your default setting for the audience of your normal stream, and posts."] = "Dies ist Deine Voreinstellung für die Sichtbarkeit Deiner normalen Beiträge (Stream)."; +App::$strings["This is your default setting for who can view your default channel profile"] = "Dies ist Deine Voreinstellung für die Sichtbarkeit Deines Standard-Kanalprofils."; +App::$strings["This is your default setting for who can view your connections"] = "Dies ist Deine Voreinstellung für die Sichtbarkeit Deiner Verbindungen."; +App::$strings["This is your default setting for who can view your file storage and photos"] = "Dies ist Deine Voreinstellung für die Sichtbarkeit Deiner Dateien und Fotos."; +App::$strings["This is your default setting for the audience of your webpages"] = "Dies ist Deine Voreinstellung für die Sichtbarkeit Deiner Webseiten."; App::$strings["Private Message"] = "Private Nachricht"; App::$strings["Select"] = "Auswählen"; App::$strings["Save to Folder"] = "In Ordner speichern"; @@ -1584,6 +1569,10 @@ App::$strings["via Wall-To-Wall:"] = "via Wall-To-Wall:"; App::$strings["from %s"] = "via %s"; App::$strings["last edited: %s"] = "zuletzt bearbeitet: %s"; App::$strings["Expires: %s"] = "Verfällt: %s"; +App::$strings["Attend"] = "Zusagen"; +App::$strings["Attendance Options"] = "Zusageoptionen"; +App::$strings["Vote"] = "Abstimmen"; +App::$strings["Voting Options"] = "Abstimmungsoptionen"; App::$strings["Save Bookmarks"] = "Favoriten speichern"; App::$strings["Add to Calendar"] = "Zum Kalender hinzufügen"; App::$strings["Mark all seen"] = "Alle als gelesen markieren"; @@ -1596,108 +1585,712 @@ App::$strings["Code"] = "Code"; App::$strings["Image"] = "Bild"; App::$strings["Insert Link"] = "Link einfügen"; App::$strings["Video"] = "Video"; +App::$strings["\$Projectname Notification"] = "\$Projectname-Benachrichtigung"; +App::$strings["\$projectname"] = "\$projectname"; +App::$strings["Thank You,"] = "Danke."; +App::$strings["%s Administrator"] = "der Administrator von %s"; +App::$strings["%s "] = "%s "; +App::$strings["[\$Projectname:Notify] New mail received at %s"] = "[\$Projectname:Benachrichtigung] Neue Mail empfangen auf %s"; +App::$strings["%1\$s, %2\$s sent you a new private message at %3\$s."] = "%1\$s, %2\$s hat Dir eine private Nachricht auf %3\$s gesendet."; +App::$strings["%1\$s sent you %2\$s."] = "%1\$s hat Dir %2\$s geschickt."; +App::$strings["a private message"] = "eine private Nachricht"; +App::$strings["Please visit %s to view and/or reply to your private messages."] = "Bitte besuche %s, um die private Nachricht anzusehen und/oder darauf zu antworten."; +App::$strings["%1\$s, %2\$s commented on [zrl=%3\$s]a %4\$s[/zrl]"] = "%1\$s, %2\$s hat [zrl=%3\$s]einen %4\$s[/zrl] kommentiert"; +App::$strings["%1\$s, %2\$s commented on [zrl=%3\$s]%4\$s's %5\$s[/zrl]"] = "%1\$s, %2\$s hat [zrl=%3\$s]%4\$ss %5\$s[/zrl] kommentiert"; +App::$strings["%1\$s, %2\$s commented on [zrl=%3\$s]your %4\$s[/zrl]"] = "%1\$s, %2\$s hat [zrl=%3\$s]Deinen %4\$s[/zrl] kommentiert"; +App::$strings["[\$Projectname:Notify] Comment to conversation #%1\$d by %2\$s"] = "[\$Projectname:Benachrichtigung] Kommentar in Unterhaltung #%1\$d von %2\$s"; +App::$strings["%1\$s, %2\$s commented on an item/conversation you have been following."] = "%1\$s, %2\$s hat eine Unterhaltung kommentiert, der Du folgst."; +App::$strings["Please visit %s to view and/or reply to the conversation."] = "Bitte besuche %s, um die Unterhaltung anzusehen und/oder zu kommentieren."; +App::$strings["[\$Projectname:Notify] %s posted to your profile wall"] = "[\$Projectname:Benachrichtigung] %s schrieb auf Deine Pinnwand"; +App::$strings["%1\$s, %2\$s posted to your profile wall at %3\$s"] = "%1\$s, %2\$s hat auf Deine Pinnwand auf %3\$s geschrieben"; +App::$strings["%1\$s, %2\$s posted to [zrl=%3\$s]your wall[/zrl]"] = "%1\$s, %2\$s hat auf [zrl=%3\$s]Deine Pinnwand[/zrl] geschrieben"; +App::$strings["[\$Projectname:Notify] %s tagged you"] = "[\$Projectname:Benachrichtigung] %s hat Dich erwähnt"; +App::$strings["%1\$s, %2\$s tagged you at %3\$s"] = "%1\$s, %2\$s hat Dich auf %3\$s erwähnt"; +App::$strings["%1\$s, %2\$s [zrl=%3\$s]tagged you[/zrl]."] = "%1\$s, %2\$s [zrl=%3\$s]hat Dich erwähnt[/zrl]."; +App::$strings["[\$Projectname:Notify] %1\$s poked you"] = "[\$Projectname:Benachrichtigung] %1\$s hat Dich angestupst"; +App::$strings["%1\$s, %2\$s poked you at %3\$s"] = "%1\$s, %2\$s hat Dich auf %3\$s angestupst"; +App::$strings["%1\$s, %2\$s [zrl=%2\$s]poked you[/zrl]."] = "%1\$s, %2\$s [zrl=%2\$s]hat Dich angestupst[/zrl]."; +App::$strings["[\$Projectname:Notify] %s tagged your post"] = "[\$Projectname:Benachrichtigung] %s hat Deinen Beitrag verschlagwortet"; +App::$strings["%1\$s, %2\$s tagged your post at %3\$s"] = "%1\$s, %2\$s hat Deinen Beitrag auf %3\$s verschlagwortet"; +App::$strings["%1\$s, %2\$s tagged [zrl=%3\$s]your post[/zrl]"] = "%1\$s, %2\$s hat [zrl=%3\$s]Deinen Beitrag[/zrl] verschlagwortet"; +App::$strings["[\$Projectname:Notify] Introduction received"] = "[\$Projectname:Benachrichtigung] Verbindungsanfrage erhalten"; +App::$strings["%1\$s, you've received an new connection request from '%2\$s' at %3\$s"] = "%1\$s, Du hast eine neue Verbindungsanfrage von '%2\$s' auf %3\$s erhalten"; +App::$strings["%1\$s, you've received [zrl=%2\$s]a new connection request[/zrl] from %3\$s."] = "%1\$s, Du hast [zrl=%2\$s]eine neue Verbindungsanfrage[/zrl] von %3\$s erhalten."; +App::$strings["You may visit their profile at %s"] = "Du kannst Dir das Profil unter %s ansehen"; +App::$strings["Please visit %s to approve or reject the connection request."] = "Bitte besuche %s , um die Verbindungsanfrage anzunehmen oder abzulehnen."; +App::$strings["[\$Projectname:Notify] Friend suggestion received"] = "[\$Projectname:Benachrichtigung] Freundschaftsvorschlag erhalten"; +App::$strings["%1\$s, you've received a friend suggestion from '%2\$s' at %3\$s"] = "%1\$s, Du hast einen Kontaktvorschlag von „%2\$s“ auf %3\$s erhalten"; +App::$strings["%1\$s, you've received [zrl=%2\$s]a friend suggestion[/zrl] for %3\$s from %4\$s."] = "%1\$s, Du hast [zrl=%2\$s]einen Kontaktvorschlag[/zrl] für %3\$s von %4\$s erhalten."; +App::$strings["Name:"] = "Name:"; +App::$strings["Photo:"] = "Foto:"; +App::$strings["Please visit %s to approve or reject the suggestion."] = "Bitte besuche %s um den Vorschlag zu akzeptieren oder abzulehnen."; +App::$strings["[\$Projectname:Notify]"] = "[\$Projectname:Benachrichtigung]"; +App::$strings["created a new post"] = "Neuer Beitrag wurde erzeugt"; +App::$strings["commented on %s's post"] = "hat %s's Beitrag kommentiert"; +App::$strings["Flag Adult Photos"] = "Nicht jugendfreie Fotos markieren"; +App::$strings["Provide photo edit option to hide inappropriate photos from default album view"] = "Stellt eine Option zum Verstecken von Fotos mit unangemessenen Inhalten in der Standard-Albumansicht bereit"; +App::$strings["This is a fairly comprehensive and complete guitar chord dictionary which will list most of the available ways to play a certain chord, starting from the base of the fingerboard up to a few frets beyond the twelfth fret (beyond which everything repeats). A couple of non-standard tunings are provided for the benefit of slide players, etc."] = ""; +App::$strings["Chord names start with a root note (A-G) and may include sharps (#) and flats (b). This software will parse most of the standard naming conventions such as maj, min, dim, sus(2 or 4), aug, with optional repeating elements."] = ""; +App::$strings["Valid examples include A, A7, Am7, Amaj7, Amaj9, Ammaj7, Aadd4, Asus2Add4, E7b13b11 ..."] = "Einige gültige Beispiele: A, A7, Am7, Amaj7, Amaj9, Ammaj7, Aadd4, Asus2Add4, E7b13b11 ..."; +App::$strings["Guitar Chords"] = "Gitarrenakkorde"; +App::$strings["The complete online chord dictionary"] = "Das komplette online Akkord-Verzeichnis"; +App::$strings["Tuning"] = "Stimmen"; +App::$strings["Chord name: example: Em7"] = "Beispiel Akkord Name: Em7"; +App::$strings["Show for left handed stringing"] = "Linkshänder-Besaitung anzeigen"; +App::$strings["Quick Reference"] = "Schnellreferenz"; +App::$strings["Diaspora Protocol Settings updated."] = "Diaspora-Protokolleinstellungen aktualisiert."; +App::$strings["Enable the Diaspora protocol for this channel"] = "Diaspora-Protokoll für diesen Kanal aktivieren"; +App::$strings["Allow any Diaspora member to comment on your public posts"] = "Jedem Diaspora-Mitglied erlauben, Deine öffentlichen Beiträge zu kommentieren"; +App::$strings["Prevent your hashtags from being redirected to other sites"] = "Verhindern, dass Deine hashtags zu anderen Seiten umgeleitet werden"; +App::$strings["Followed hashtags (comma separated, do not include the #)"] = "Verfolgte Hashtags (Komma separierte Liste, ohne die #)"; +App::$strings["Diaspora Protocol Settings"] = "Diaspora-Protokolleinstellungen"; +App::$strings["Hubzilla Directory Stats"] = "Hubzilla-Verzeichnisstatistiken"; +App::$strings["Total Hubs"] = "Hubs insgesamt"; +App::$strings["Hubzilla Hubs"] = "Hubzilla Hubs"; +App::$strings["Friendica Hubs"] = "Friendica Hubs"; +App::$strings["Diaspora Pods"] = "Diaspora Pods"; +App::$strings["Hubzilla Channels"] = "Hubzilla-Kanäle"; +App::$strings["Friendica Channels"] = "Friendica-Kanäle"; +App::$strings["Diaspora Channels"] = "Diaspora-Kanäle"; +App::$strings["Aged 35 and above"] = "35 und älter"; +App::$strings["Aged 34 and under"] = "34 und jünger"; +App::$strings["Average Age"] = "Durchschnittsalter"; +App::$strings["Known Chatrooms"] = "Bekannte Chaträume"; +App::$strings["Known Tags"] = "Bekannte Schlagwörter"; +App::$strings["Please note Diaspora and Friendica statistics are merely those **this directory** is aware of, and not all those known in the network. This also applies to chatrooms,"] = "Bitte berücksichtige, dass Diaspora und Friendica Statistiken nur solche einschließen, die **diesem Verzeichnis** bekannt sind, nicht alle im Netzwerk bekannten. Das gilt auch für Chaträume."; +App::$strings["Project Servers and Resources"] = "Projektserver und -ressourcen"; +App::$strings["Project Creator and Tech Lead"] = "Projektersteller und Technischer Leiter"; +App::$strings["Admin, developer, directorymin, support bloke"] = "Administrator, Entwickler, Verzeichnis Betreibender, Supportleistende"; +App::$strings["And the hundreds of other people and organisations who helped make the Hubzilla possible."] = "Und die hunderte anderen Menschen und Organisationen, die geholfen haben Hubzilla möglich zu machen."; +App::$strings["The Redmatrix/Hubzilla projects are provided primarily by volunteers giving their time and expertise - and often paying out of pocket for services they share with others."] = "Die Redmatrix/Hubzilla Projekte werden hauptsächlich von Freiwilligen bereitgestellt, die ihre Zeit und Expertise zur Verfügung stellen - und oft aus eigener Tasche für die Dienste zahlen, die sie mit anderen teilen."; +App::$strings["There is no corporate funding and no ads, and we do not collect and sell your personal information. (We don't control your personal information - you do.)"] = "Es gibt keine Finanzierung durch Firmen, keine Werbung und wir verkaufen Deine persönlichen Daten nicht. (Wir kontrollieren Deine persönlichen Daten nicht - das machst Du.)"; +App::$strings["Help support our ground-breaking work in decentralisation, web identity, and privacy."] = "Hilf uns bei unserer wegweisenden Arbeit im Bereich der Dezantralisation, von Web-Identitäten und Privatsphäre."; +App::$strings["Your donations keep servers and services running and also helps us to provide innovative new features and continued development."] = "Die Spenden werden dafür verwendet Server und Dienste am laufen zu halten und helfen desweiteren innovative Neuerungen zu schaffen und die Entwicklung voran zu treiben."; +App::$strings["Donate"] = "Spenden"; +App::$strings["Choose a project, developer, or public hub to support with a one-time donation"] = "Wähle ein Projekt, einen Entwickler oder einen öffentlichen Hub den du mit einer einmaligen Spende unterstützen willst."; +App::$strings["Donate Now"] = "Jetzt spenden"; +App::$strings["Or become a project sponsor (Hubzilla Project only)"] = "Oder werde ein Unterstützer des Projekts (ausschließlich Hubzilla)"; +App::$strings["Please indicate if you would like your first name or full name (or nothing) to appear in our sponsor listing"] = "Bitte teile uns mit ob dein kompletter Name oder dein Vorname (oder gar nichts) auf unserer Sponsoren-Seite veröffentlicht werden soll."; +App::$strings["Sponsor"] = "Sponsor"; +App::$strings["Special thanks to: "] = "Besonderer Dank an: "; +App::$strings["Post to Dreamwidth"] = "Bei Dreamwidth veröffentlichen"; +App::$strings["Enable Dreamwidth Post Plugin"] = "Aktiviere das Dreamwidth-Plugin"; +App::$strings["Dreamwidth username"] = "Dreamwidth-Benutzername"; +App::$strings["Dreamwidth password"] = "Dreamwidth-Passwort"; +App::$strings["Post to Dreamwidth by default"] = "Standardmäßig auf auf Dreamwidth posten"; +App::$strings["Dreamwidth Post Settings"] = "Dreamwidth-Beitragseinstellungen"; +App::$strings["Flattr this!"] = "Flattr this!"; +App::$strings["Flattr widget settings updated."] = "Flattr Widget Einstellungen aktualisiert"; +App::$strings["Flattr user"] = "Flattr Nutzer"; +App::$strings["URL of the Thing to flattr"] = "URL des Dings zum flattrn"; +App::$strings["If empty channel URL is used"] = "Falls leer wird die Channel URL verwendet"; +App::$strings["Title of the Thing to flattr"] = "Titel des Dings zum flattrn"; +App::$strings["If empty \"channel name on The Hubzilla\" will be used"] = "Falls leer wird \"Kanalname auf The Hubzilla\" verwendet"; +App::$strings["Static or dynamic flattr button"] = "Statischer oder dynamischer Flattr Button"; +App::$strings["static"] = "statisch"; +App::$strings["dynamic"] = "dynamisch"; +App::$strings["Alignment of the widget"] = "Ausrichtung des Widgets"; +App::$strings["left"] = "links"; +App::$strings["right"] = "rechts"; +App::$strings["Enable Flattr widget"] = "Flattr Widget verwenden"; +App::$strings["Flattr Widget Settings"] = "Flattr Widget Einstellungen"; +App::$strings["Contact not found."] = "Kontakt nicht gefunden."; +App::$strings["This may occasionally happen if contact was requested by both persons and it has already been approved."] = "Dies kann unter Umständen passieren, wenn der Kontakt von beiden Seiten aus angefragt wurde und er bereits akzeptiert wurde.."; +App::$strings["Response from remote site was not understood."] = "Antwort des entfernten Seite war unverständlich."; +App::$strings["Unexpected response from remote site: "] = "Unerwartete Antwort der entfernten Seite"; +App::$strings["Confirmation completed successfully."] = "Bestätigung erfolgreich abgeschlossen."; +App::$strings["Remote site reported: "] = "Meldung der entfernten Seite"; +App::$strings["Temporary failure. Please wait and try again."] = "Vorübergehende Störung. Bitte warte einen Moment und versuche es später erneut."; +App::$strings["Introduction failed or was revoked."] = "Vorstellung fehlgeschlagen oder wurde zurück gezogen."; +App::$strings["Unable to set contact photo."] = "Konnte das Kontakt-Photo nicht setzen."; +App::$strings["%1\$s is now friends with %2\$s"] = "%1\$s ist nun mit %2\$s befreundet"; +App::$strings["No user record found for '%s' "] = "Kein Benutzereintrag für '%s' gefunden"; +App::$strings["Our site encryption key is apparently messed up."] = "Der Verschlüsselungsschlüssel unserer Seite ist anscheinend kaputt."; +App::$strings["Empty site URL was provided or URL could not be decrypted by us."] = "Eine leere Seiten URL wurde angegeben, oder die URL konnte von uns nicht entziffert werden."; +App::$strings["Contact record was not found for you on our site."] = "Für dich wurden keinerlei Kontaktdaten auf unserer Seite gefunden."; +App::$strings["Site public key not available in contact record for URL %s."] = "Der öffentliche Schlüssel dieser Seite ist für die Kontaktdaten mit der URL %s nocht verfügbar."; +App::$strings["The ID provided by your system is a duplicate on our system. It should work if you try again."] = "Die ID, die Durch Dein System angegeben wurde ist ein Duplikat auf unserem. Es sollte funktionieren, wenn Du es noch einmal versuchst."; +App::$strings["Unable to set your contact credentials on our system."] = ""; +App::$strings["Unable to update your contact profile details on our system"] = "Konnte die Details deines Profils auf unserem System nicht aktualisieren."; +App::$strings["[Name Withheld]"] = "[Name zurück gehalten]"; +App::$strings["%1\$s has joined %2\$s"] = "%1\$s ist %2\$s beigetreten"; +App::$strings["%1\$s welcomes %2\$s"] = "%1\$s heißt %2\$s willkommen"; +App::$strings["This introduction has already been accepted."] = "Die Vorstellung wurde bereits akzeptiert."; +App::$strings["Profile location is not valid or does not contain profile information."] = ""; +App::$strings["Warning: profile location has no identifiable owner name."] = ""; +App::$strings["Warning: profile location has no profile photo."] = ""; +App::$strings["%d required parameter was not found at the given location"] = array( + 0 => "", + 1 => "", +); +App::$strings["Introduction complete."] = "Einführung abgeschlossen."; +App::$strings["Unrecoverable protocol error."] = "Nicht behebbarer Protokollfehler."; +App::$strings["Profile unavailable."] = "Profil nicht verfügbar."; +App::$strings["%s has received too many connection requests today."] = "%s hat heute bereits zu viele Kontaktanfragen erhalten."; +App::$strings["Spam protection measures have been invoked."] = "Maßnahmen zum Spam-Schutz wurden aktiviert."; +App::$strings["Friends are advised to please try again in 24 hours."] = "Freunde sollten es bitte in 24 Stunden erneut versuchen."; +App::$strings["Invalid locator"] = ""; +App::$strings["Invalid email address."] = "Ungültige E-Mail-Adresse."; +App::$strings["This account has not been configured for email. Request failed."] = "Dieser Account wurde nicht für E-Mail konfiguriert. Anfrage gescheitert."; +App::$strings["Unable to resolve your name at the provided location."] = ""; +App::$strings["You have already introduced yourself here."] = "Du hast dich hier bereits vorgestellt."; +App::$strings["Apparently you are already friends with %s."] = "Anscheinend bist du bereits mit %s in Kontakt."; +App::$strings["Invalid profile URL."] = "Ungültige Profil-URL."; +App::$strings["Disallowed profile URL."] = "Nicht erlaubte Profil-URL."; +App::$strings["Failed to update contact record."] = "Konnte den Verbindungseintrag nicht aktualisieren."; +App::$strings["Your introduction has been sent."] = "Deine Vorstellung wurde gesendet."; +App::$strings["Please login to confirm introduction."] = "Bitte melde dich an um die Vorstellung zu bestätigen."; +App::$strings["Incorrect identity currently logged in. Please login to this profile."] = ""; +App::$strings["Confirm"] = "Bestätigen"; +App::$strings["Hide this contact"] = "Diesen Kontakt verbergen"; +App::$strings["Welcome home %s."] = "Willkommen daheim %s"; +App::$strings["Please confirm your introduction/connection request to %s."] = "Bitte bestätige deine Vorstellung/Kontaktanfrage bei %s."; +App::$strings["Please enter your 'Identity Address' from one of the following supported communications networks:"] = "Bitte gib deine \"Identitäts Adresse\" von einem der folgenden unterstützten Kommunikations Netzwerke an."; +App::$strings["If you are not yet a member of the free social web, follow this link to find a public Friendica site and join us today."] = ""; +App::$strings["Friend/Connection Request"] = "Freundschafts-/Verbindungsanfrage"; +App::$strings["Examples: jojo@demo.friendica.com, http://demo.friendica.com/profile/jojo, testuser@identi.ca"] = "Beispiele: jojo@demo.friendica.com, http://demo.friendica.com/profile/jojo, testuser@identi.ca"; +App::$strings["Please answer the following:"] = "Bitte beantworten Sie folgendes:"; +App::$strings["Does %s know you?"] = "Kennt %s Sie?"; +App::$strings["Add a personal note:"] = "Eine persönliche Nachricht hinterlassen:"; +App::$strings["Friendica"] = "Friendica"; +App::$strings["StatusNet/Federated Social Web"] = "StatusNet/Föderierte Soziale Netzwerke"; +App::$strings["Diaspora"] = "Diaspora"; +App::$strings[" - please do not use this form. Instead, enter %s into your Diaspora search bar."] = "- bitte verwende nicht dieses Formular sondern gib %s in die Suchleiste deiner Diaspora Seite ein."; +App::$strings["Your Identity Address:"] = "Ihre Identitätsadresse:"; +App::$strings["Submit Request"] = "Anfrage absenden"; +App::$strings["GNU-Social Protocol Settings updated."] = "GNU Social Protokoll Einstellungen aktualisiert"; +App::$strings["Enable the (experimental) GNU-Social protocol for this channel"] = "GNU Social Protokoll (experimentell) für diesen Kanal aktualisieren"; +App::$strings["GNU-Social Protocol Settings"] = "GNU Social Protokoll Einstellungen"; +App::$strings["Follow"] = "Folgen"; +App::$strings["%1\$s is now following %2\$s"] = "%1\$s folgt nun %2\$s"; +App::$strings["Friendica Photo Album Import"] = "Friendica-Fotoalbumimport"; +App::$strings["This will import all your Friendica photo albums to this Red channel."] = "Hiermit werden all deine Fotoalben von Friendica in diesen Hubzilla Kanal importiert."; +App::$strings["Friendica Server base URL"] = "BasisURL des Friendica Servers"; +App::$strings["Friendica Login Username"] = "Friendica-Anmeldebenutzername"; +App::$strings["Friendica Login Password"] = "Friendica-Anmeldepasswort"; +App::$strings["Enable the GNU-Social protocol for this channel"] = "GNU Social Protokoll für diesen Kanal aktualisieren"; +App::$strings["Send email to all members"] = "E-Mail an alle Mitglieder senden"; +App::$strings["$1%s Administrator"] = "$1%s Administrator"; +App::$strings["No recipients found."] = "Keine Empfänger gefunden."; +App::$strings["%1\$d of %2\$d messages sent."] = "%1\$d von %2\$d Nachrichten gesendet."; +App::$strings["Send email to all hub members."] = "Eine E-Mail an alle Mitglieder dieses Hubs senden."; +App::$strings["Message subject"] = "Betreff der Nachricht"; +App::$strings["Sender Email address"] = "E-Mail Adresse des Absenders"; +App::$strings["Test mode (only send to hub administrator)"] = "Test Modus (nur an Hub Administratoren senden)"; +App::$strings["Post to Insanejournal"] = "Bei InsaneJournal veröffentlichen"; +App::$strings["Enable InsaneJournal Post Plugin"] = "Aktiviere das InsaneJournal Plugin"; +App::$strings["InsaneJournal username"] = "InsaneJournal-Benutzername"; +App::$strings["InsaneJournal password"] = "InsaneJournal-Passwort"; +App::$strings["Post to InsaneJournal by default"] = "Standardmäßig bei InsaneJournal veröffentlichen"; +App::$strings["InsaneJournal Post Settings"] = "InsaneJournal-Beitragseinstellungen"; +App::$strings["Insane Journal Settings saved."] = "InsaneJournal-Einstellungen gespeichert."; +App::$strings["Channels to auto connect"] = ""; +App::$strings["Comma separated list"] = "Kommagetrennte Liste"; +App::$strings["Popular Channels"] = "Beliebte Kanäle"; +App::$strings["IRC Settings"] = "IRC-Einstellungen"; +App::$strings["IRC settings saved."] = "IRC-Einstellungen gespeichert."; +App::$strings["IRC Chatroom"] = "IRC-Chatraum"; +App::$strings["Status:"] = "Status:"; +App::$strings["Activate addon"] = "Addon aktiviren"; +App::$strings["Hide Jappixmini Chat-Widget from the webinterface"] = "Jappix Mini Chat-Widget von der Weboberfläche verbergen"; +App::$strings["Jabber username"] = "Jabber-Benutzername"; +App::$strings["Jabber server"] = "Jabber-Server"; +App::$strings["Jabber BOSH host URL"] = "Jabber BOSH Host URL"; +App::$strings["Jabber password"] = "Jabber-Passwort"; +App::$strings["Encrypt Jabber password with Hubzilla password"] = "Jabber-Passwort mit Hubzilla-Passwort verschlüsseln"; +App::$strings["Hubzilla password"] = "Hubzilla-Passwort"; +App::$strings["Approve subscription requests from Hubzilla contacts automatically"] = ""; +App::$strings["Purge internal list of jabber addresses of contacts"] = "Interne Liste der Jabber Adressen von Kontakten löschen"; +App::$strings["Configuration Help"] = "Konfigurationshilfe"; +App::$strings["Add Contact"] = "Kontakt hinzufügen"; +App::$strings["Jappix Mini Settings"] = "Jappix Mini Einstellungen"; +App::$strings["Upload a file"] = "Datei hochladen"; +App::$strings["Drop files here to upload"] = "Dateien zum Hochladen hier fallen lassen"; +App::$strings["Failed"] = "Fehlgeschlagen"; +App::$strings["No files were uploaded."] = "Es wurden keine Dateien hochgeladen."; +App::$strings["Uploaded file is empty"] = "Hochgeladene Datei ist leer"; +App::$strings["Image exceeds size limit of "] = "Bild überschreitet Größenbeschränkung von "; +App::$strings["File has an invalid extension, it should be one of "] = "Die Datei hat eine ungültige Endung. Erlaubt sind folgende:"; +App::$strings["Upload was cancelled, or server error encountered"] = "Das Hochladen wurde abgebrochen oder es ist ein Serverfehler aufgetreten."; +App::$strings["An account has been created for you."] = "Ein Konto wurde für Sie erstellt."; +App::$strings["Authentication successful but rejected: account creation is disabled."] = "Authentifizierung war erfolgreich wurde aber abgewiesen! Das Anlegen von Accounts wurde deaktiviert."; +App::$strings["Post to Libertree"] = "Bei Libertree veröffentlichen"; +App::$strings["Enable Libertree Post Plugin"] = "Aktivire das Libertree-Plugin"; +App::$strings["Libertree API token"] = "Libertree API Token"; +App::$strings["Libertree site URL"] = "URL der Libertree Seite"; +App::$strings["Post to Libertree by default"] = "Standardmäßig bei Libertree veröffentlichen"; +App::$strings["Libertree Post Settings"] = "Libertree-Beitragseinstellungen"; +App::$strings["Libertree Settings saved."] = "Libertree-Einstellungen gespeichert."; +App::$strings["Post to LiveJournal"] = "Bei LiveJurnal veröffentlichen"; +App::$strings["Enable LiveJournal Post Plugin"] = "Aktiviere das LiveJurnal Plugin"; +App::$strings["LiveJournal username"] = "LiveJournal-Benutzername"; +App::$strings["LiveJournal password"] = "LiveJournal-Passwort"; +App::$strings["Post to LiveJournal by default"] = "Standardmäßig bei LiveJurnal veröffentlichen"; +App::$strings["LiveJournal Post Settings"] = "LiveJournal-Beitragseinstellungen"; +App::$strings["LiveJournal Settings saved."] = "LiveJournal-Einstellungen gespeichert."; +App::$strings["Logfile archive directory"] = "Verzeichnis der Logdatei"; +App::$strings["Directory to store rotated logs"] = "Verzeichnis, in dem rotierte Logs gespeichert werden sollen"; +App::$strings["Logfile size in bytes before rotating"] = "zu erreichende Logdateigröße in Bytes, bevor rotiert wird"; +App::$strings["Number of logfiles to retain"] = "Anzahl aufzubewahrender rotierter Logdateien"; +App::$strings["Email notification hub"] = "Hub für E-Mail-Benachrichtigungen"; +App::$strings["Hostname"] = "Servername"; +App::$strings["Mailhost Settings"] = "Mailhost-Einstellungen"; +App::$strings["MAILHOST Settings saved."] = "MAILHOST-Einstellungen gespeichert."; +App::$strings["lonely"] = "einsam"; +App::$strings["drunk"] = "betrunken"; +App::$strings["horny"] = "geil"; +App::$strings["stoned"] = "bekifft"; +App::$strings["fucked up"] = "beschissen"; +App::$strings["clusterfucked"] = "clusterfucked"; +App::$strings["crazy"] = "verrückt"; +App::$strings["hurt"] = "verletzt"; +App::$strings["sleepy"] = "müde"; +App::$strings["grumpy"] = "mürrisch"; +App::$strings["high"] = "hoch"; +App::$strings["semi-conscious"] = "halb bewusstlos"; +App::$strings["in love"] = "verliebt"; +App::$strings["in lust"] = ""; +App::$strings["naked"] = "nackt"; +App::$strings["stinky"] = "stinkend"; +App::$strings["sweaty"] = "verschwitzt"; +App::$strings["bleeding out"] = "blutend"; +App::$strings["victorious"] = "siegreich"; +App::$strings["defeated"] = "besiegt"; +App::$strings["envious"] = "neidisch"; +App::$strings["jealous"] = "eifersüchtig"; +App::$strings["bitchslap"] = "Ohrfeige"; +App::$strings["bitchslapped"] = "geohrfeigt"; +App::$strings["shag"] = "bumsen"; +App::$strings["shagged"] = "gebumst"; +App::$strings["patent"] = "Patent"; +App::$strings["patented"] = "patentiert"; +App::$strings["hug"] = "umarmen"; +App::$strings["hugged"] = "umarmt"; +App::$strings["murder"] = "ermorden"; +App::$strings["murdered"] = "ermordet"; +App::$strings["worship"] = ""; +App::$strings["worshipped"] = ""; +App::$strings["kiss"] = "küssen"; +App::$strings["kissed"] = "geküsst"; +App::$strings["tempt"] = "verlocken"; +App::$strings["tempted"] = "verlockt"; +App::$strings["raise eyebrows at"] = ""; +App::$strings["raised their eyebrows at"] = ""; +App::$strings["insult"] = "beleidigen"; +App::$strings["insulted"] = "beleidigt"; +App::$strings["praise"] = "loben"; +App::$strings["praised"] = "gelobt"; +App::$strings["be dubious of"] = ""; +App::$strings["was dubious of"] = ""; +App::$strings["eat"] = "essen"; +App::$strings["ate"] = "aß"; +App::$strings["giggle and fawn at"] = ""; +App::$strings["giggled and fawned at"] = ""; +App::$strings["doubt"] = "anzweifeln"; +App::$strings["doubted"] = "angezweifelt"; +App::$strings["glare"] = ""; +App::$strings["glared at"] = ""; +App::$strings["fuck"] = "ficken"; +App::$strings["fucked"] = "gefickt"; +App::$strings["bonk"] = ""; +App::$strings["bonked"] = ""; +App::$strings["declare undying love for"] = ""; +App::$strings["declared undying love for"] = ""; +App::$strings["Save Settings"] = "Einstellungen speichern"; +App::$strings["text to include in all outgoing posts from this site"] = "Test der in alle Beiträge angefügt werden soll, die von dieser Seite ausgehen"; +App::$strings["Federate"] = ""; +App::$strings["nofed Settings saved."] = "nofed Einstellungen gespeichert"; +App::$strings["Allow Federation Toggle"] = ""; +App::$strings["Federate posts by default"] = ""; +App::$strings["NoFed Settings"] = "NoFed-Einstellungen"; +App::$strings["Nsabait Settings updated."] = "Nsabait-Einstellungen aktualisiert."; +App::$strings["Enable NSAbait Plugin"] = ""; +App::$strings["NSAbait Settings"] = "NSAbait-Einstellungen"; +App::$strings["This plugin looks in posts for the words/text you specify below, and collapses any content containing those keywords so it is not displayed at inappropriate times, such as sexual innuendo that may be improper in a work setting. It is polite and recommended to tag any content containing nudity with #NSFW. This filter can also match any other word/text you specify, and can thereby be used as a general purpose content filter."] = ""; +App::$strings["Enable Content filter"] = "Inhaltsfilter aktivieren"; +App::$strings["Comma separated list of keywords to hide"] = ""; +App::$strings["Use /expression/ to provide regular expressions"] = ""; +App::$strings["Not Safe For Work Settings"] = "Not Safe For Work Einstellungen"; +App::$strings["General Purpose Content Filter"] = "Allzweck-Inhaltsfilter"; +App::$strings["NSFW Settings saved."] = "NSFW-Einstellungen gespeichert."; +App::$strings["Possible adult content"] = "Möglicherweise nicht jugendfreie Inhalte"; +App::$strings["%s - click to open/close"] = "%s - zum öffnen/schließen anklicken"; +App::$strings["System defaults:"] = "Systemstandardeinstellungen:"; +App::$strings["Preferred Clipart IDs"] = ""; +App::$strings["List of preferred clipart ids. These will be shown first."] = ""; +App::$strings["Default Search Term"] = ""; +App::$strings["The default search term. These will be shown second."] = ""; +App::$strings["Return After"] = ""; +App::$strings["Page to load after image selection."] = ""; +App::$strings["Edit Profile"] = "Profile bearbeiten"; +App::$strings["Profile List"] = "Profilliste"; +App::$strings["Order of Preferred"] = "Bevorzugte Reihenfolge"; +App::$strings["Sort order of preferred clipart ids."] = ""; +App::$strings["Newest first"] = "Neueste zuerst"; +App::$strings["As entered"] = "Wie eingegeben"; +App::$strings["Order of other"] = ""; +App::$strings["Sort order of other clipart ids."] = ""; +App::$strings["Most downloaded first"] = "Meist heruntergeladene zuerst"; +App::$strings["Most liked first"] = "Beliebteste zuerst"; +App::$strings["Preferred IDs Message"] = ""; +App::$strings["Message to display above preferred results."] = ""; +App::$strings["Uploaded by: "] = "Hochgeladen von: "; +App::$strings["Drawn by: "] = "Gezeichnet von: "; +App::$strings["Or select from a free OpenClipart.org image:"] = ""; +App::$strings["Search Term"] = "Suchbegriff"; +App::$strings["Unknown error. Please try again later."] = "Unbekannter Fehler. Bitte versuchen Sie es später erneut."; +App::$strings["Profile photo updated successfully."] = "Profilfoto erfolgreich aktualisiert."; +App::$strings["View Larger"] = "Größer anzeigen"; +App::$strings["Tile Server URL"] = "Kachelserver-URL"; +App::$strings["A list of public tile servers"] = "Eine Liste öffentlicher Kachelserver"; +App::$strings["Nominatim (reverse geocoding) Server URL"] = "Nominatim (reverse Geokodierung) Server URL"; +App::$strings["A list of Nominatim servers"] = "Eine Liste der Nominatim Server"; +App::$strings["Default zoom"] = "Standardzoom"; +App::$strings["The default zoom level. (1:world, 18:highest, also depends on tile server)"] = "Die Standard-Vergrößerungsstufe (1:Welt, 18:höchste, hängt außerdem vom Kachelserver ab)."; +App::$strings["Include marker on map"] = "Markierung auf der Karte einschließen"; +App::$strings["Include a marker on the map."] = "Binde eine Markierung auf der Karte ein."; +App::$strings["Message to display on every page on this server"] = "Nachricht, die auf jeder Seite dieses Servers angezeigt werden soll"; +App::$strings["Pageheader Settings"] = "Nachrichtenkopf-Einstellungen"; +App::$strings["pageheader Settings saved."] = "Nachrichtenkopf-Einstellungen gespeichert."; +App::$strings["This website is tracked using the Piwik analytics tool."] = "Diese Website verwendet Piwik, um die Besucherzugriffe auszuwerten."; +App::$strings["If you do not want that your visits are logged this way you can set a cookie to prevent Piwik from tracking further visits of the site (opt-out)."] = "Wenn Du nicht möchtest, dass Deine Besuche zu diesem Zweck gespeichert werden, kannst Du ein Cookie setzen, welches Piwik davon abhält, Deine weiteren Besuche auf dieser Website zu verfolgen (Opt-out)."; +App::$strings["Piwik Base URL"] = "Piwik Basis-URL"; +App::$strings["Absolute path to your Piwik installation. (without protocol (http/s), with trailing slash)"] = "Der absolute Pfad zu Deiner Piwik-Installation (ohne Protokoll (http/s), aber mit abschließendem Schrägstrich / )."; +App::$strings["Site ID"] = "Seitenkennung"; +App::$strings["Show opt-out cookie link?"] = "Den Opt-out Cookie-Link anzeigen?"; +App::$strings["Asynchronous tracking"] = "Asynchrones Tracking"; +App::$strings["Enable frontend JavaScript error tracking"] = "Ermögliche Frontend-JavaScript-Fehlertracking"; +App::$strings["This feature requires Piwik >= 2.2.0"] = "Diese Funktion erfordert Piwik >= 2.2.0"; +App::$strings["Planets Settings updated."] = "Planeten Einstellungen aktualisiert"; +App::$strings["Enable Planets Plugin"] = "Aktiviere Planeten Plugin"; +App::$strings["Planets Settings"] = "Planeten Einstellungen"; +App::$strings["You are now authenticated to pumpio."] = "Du bist nun bei pumpio authenzifiziert."; +App::$strings["return to the featured settings page"] = ""; +App::$strings["Post to Pump.io"] = "Bei pumpio veröffentlichen"; +App::$strings["Pump.io servername"] = "Pump.io-Servername"; +App::$strings["Without \"http://\" or \"https://\""] = "Ohne \"http://\" oder \"https://\""; +App::$strings["Pump.io username"] = "Pump.io-Benutzername"; +App::$strings["Without the servername"] = "Ohne dem Servernamen"; +App::$strings["You are not authenticated to pumpio"] = "Du bist nicht bei pumpio authentifiziert."; +App::$strings["(Re-)Authenticate your pump.io connection"] = "Deine pumpio Verbindung (erneut) authentifizieren"; +App::$strings["Enable pump.io Post Plugin"] = "Aktiviere das pumpio-Plugin"; +App::$strings["Post to pump.io by default"] = "Standardmäßig bei pumpio veröffentlichen"; +App::$strings["Should posts be public"] = "Sollen die Beiträge öffentlich sein"; +App::$strings["Mirror all public posts"] = "Öffentliche Beiträge spiegeln"; +App::$strings["Pump.io Post Settings"] = "Pump.io-Beitragseinstellungen"; +App::$strings["PumpIO Settings saved."] = "PumpIO-Einstellungen gespeichert."; +App::$strings["QR code"] = "QR-Code"; +App::$strings["QR Generator"] = "QR-Generator"; +App::$strings["Enter some text"] = ""; +App::$strings["Enable Rainbowtag"] = "Rainbowtag aktivieren"; +App::$strings["Rainbowtag Settings"] = "Rainbowtag-Einstellungen"; +App::$strings["Rainbowtag Settings saved."] = "Rainbowtag-Einstellungen gespeichert."; +App::$strings["You're welcome."] = "Gern geschehen."; +App::$strings["Ah shucks..."] = ""; +App::$strings["Don't mention it."] = "Keine Ursache."; +App::$strings["<blush>"] = ""; +App::$strings["Redmatrix File Storage Import"] = ""; +App::$strings["This will import all your Redmatrix cloud files to this channel."] = "Hiermit werden alle deine Daten aus der Redmatrix Cloud in diesen Kanal importiert."; +App::$strings["Redmatrix Server base URL"] = "Basis-URL des Redmatrix Servers"; +App::$strings["Redmatrix Login Username"] = "Redmatrix-Anmeldebenutzername"; +App::$strings["Redmatrix Login Password"] = "Redmatrix-Anmeldepasswort"; +App::$strings["file"] = "Datei"; +App::$strings["Photos imported"] = "Fotos importiert"; +App::$strings["Redmatrix Photo Album Import"] = "Redmatrix-Fotoalbumimport"; +App::$strings["This will import all your Redmatrix photo albums to this channel."] = "Hiermit werden all deine Fotoalben von Redmatrix in diesen Kanal importiert."; +App::$strings["Import just this album"] = "Nur dieses Album importieren"; +App::$strings["Leave blank to import all albums"] = "Leer lassen um alle Alben zu importieren"; +App::$strings["Maximum count to import"] = "Maximal zu importierende Anzahl"; +App::$strings["0 or blank to import all available"] = "0 oder leer lassen um alles zu importieren"; +App::$strings["Post to Red"] = ""; +App::$strings["Channel is required."] = "Kanal ist erforderlich."; +App::$strings["Invalid channel."] = "Ungültiger Kanal."; +App::$strings["redred Settings saved."] = "redred-Einstellungen gespeichert."; +App::$strings["Allow posting to another Hubzilla Channel"] = "Erlaube die Veröffentlichung in anderen Hubzilla Kanälen"; +App::$strings["Send public postings to Hubzilla channel by default"] = ""; +App::$strings["Hubzilla API Path"] = "Hubzilla-API-Pfad"; +App::$strings["https://{sitename}/api"] = "https://{sitename}/api"; +App::$strings["Hubzilla login name"] = "Hubzilla-Anmeldename"; +App::$strings["Hubzilla channel name"] = "Hubzilla-Kanalname"; +App::$strings["Nickname"] = "Spitzname"; +App::$strings["Hubzilla Crosspost Settings"] = ""; +App::$strings["Post to Friendica"] = "Bei Friendica veröffentlichen"; +App::$strings["rtof Settings saved."] = "rtof-Einstellungen gespeichert."; +App::$strings["Allow posting to Friendica"] = "Erlaube die Veröffentlichung bei Friendica"; +App::$strings["Send public postings to Friendica by default"] = "Standardmäßig öffentliche Beiträge bei Friendica veröffentlichen"; +App::$strings["Friendica API Path"] = "Friendica-API-Pfad"; +App::$strings["Friendica login name"] = "Friendica-Anmeldename"; +App::$strings["Friendica password"] = "Friendica-Passwort"; +App::$strings["Hubzilla to Friendica Post Settings"] = ""; +App::$strings["Extended Identity Sharing"] = "Erweitertes Teilen von Identitäten"; +App::$strings["Share your identity with all websites on the internet. When disabled, identity is only shared with sites in the matrix."] = ""; +App::$strings["Some setting"] = ""; +App::$strings["A setting"] = "Eine Einstellung"; +App::$strings["Skeleton Settings"] = ""; +App::$strings["Deactivate the feature"] = "Diese Funktion abschalten"; +App::$strings["Hide the button and show the smilies directly."] = "Verstecke die Schaltfläche und zeige die Smilies direkt an."; +App::$strings["Smileybutton Settings"] = "Smileyknopf-Einstellungen"; +App::$strings["Page to load after login"] = "Seite, die nach dem Login geladen werden soll"; +App::$strings["Examples: "apps", "network?f=&gid=37" (privacy collection), "channel" or "notifications/system" (leave blank for default network page (grid)."] = "Beispiele: "apps", "network?f=&gid=37" (Gruppen-gefilterte Beiträge), "channel" oder "notifications/system" (freilassen für die Standard-Netzwerkseite (grid)."; +App::$strings["Startpage Settings"] = "Startseiteneinstellungen"; +App::$strings["Post to GNU social"] = "Bei GNU social veröffentlichen"; +App::$strings["Please contact your site administrator.
        The provided API URL is not valid."] = "Bitte kontaktiere den Administrator deines Hubs.
        Die angegebene API URL ist nicht korrekt."; +App::$strings["We could not contact the GNU social API with the Path you entered."] = "Mit dem angegebenen Pfad war es uns nicht möglich, die GNU social API zu erreichen."; +App::$strings["GNU social settings updated."] = "GNU social Einstellungen aktualisiert."; +App::$strings["Globally Available GNU social OAuthKeys"] = "Global verfügbare GNU social OAuthKeys"; +App::$strings["There are preconfigured OAuth key pairs for some GNU social servers available. If you are using one of them, please use these credentials.
        If not feel free to connect to any other GNU social instance (see below)."] = ""; +App::$strings["Provide your own OAuth Credentials"] = ""; +App::$strings["No consumer key pair for GNU social found. Register your Hubzilla Account as an desktop client on your GNU social account, copy the consumer key pair here and enter the API base root.
        Before you register your own OAuth key pair ask the administrator if there is already a key pair for this Hubzilla installation at your favourite GNU social installation."] = ""; +App::$strings["OAuth Consumer Key"] = "OAuth Consumer Key"; +App::$strings["OAuth Consumer Secret"] = "OAuth Consumer Secret"; +App::$strings["Base API Path"] = "Basis Pfad der API"; +App::$strings["Remember the trailing /"] = "Denke an das abschließende /"; +App::$strings["GNU social application name"] = "GNU social Anwendungsname"; +App::$strings["To connect to your GNU social account click the button below to get a security code from GNU social which you have to copy into the input box below and submit the form. Only your public posts will be posted to GNU social."] = ""; +App::$strings["Log in with GNU social"] = "Mit GNU social anmelden"; +App::$strings["Copy the security code from GNU social here"] = "Kopiere den Sicherheitscode von GNU social hier her"; +App::$strings["Cancel Connection Process"] = "Verbindungsprozes abbrechen"; +App::$strings["Current GNU social API is"] = "Aktuelle GNU social API ist"; +App::$strings["Cancel GNU social Connection"] = "GNU social Verbindung trennen"; +App::$strings["Currently connected to: "] = "Momentan verbunden mit:"; +App::$strings["Note: Due your privacy settings (Hide your profile details from unknown viewers?) the link potentially included in public postings relayed to GNU social will lead the visitor to a blank page informing the visitor that the access to your profile has been restricted."] = ""; +App::$strings["Allow posting to GNU social"] = "Erlaube die Veröffentlichung bei GNU social"; +App::$strings["If enabled your public postings can be posted to the associated GNU-social account"] = "Wenn aktiv können deine öffentlichen Beiträge bei dem verbundenen GNU social Account veröffentlicht werden."; +App::$strings["Post to GNU social by default"] = "Standardmäßig bei GNU social veröffentlichen"; +App::$strings["If enabled your public postings will be posted to the associated GNU-social account by default"] = "Wenn aktiv werden all deine öffentlichen Beiträge standardmäßig bei dem verbundenen GNU social Account veröffentlicht."; +App::$strings["Clear OAuth configuration"] = "OAuth Konfiguration löschen"; +App::$strings["GNU social Post Settings"] = "GNU social Einstellungen"; +App::$strings["API URL"] = "API-URL"; +App::$strings["Application name"] = "Anwendungsname"; +App::$strings["Currently blocked"] = "Derzeit blockiert"; +App::$strings["No channels currently blocked"] = "Momentan sind keine Kanäle blockiert"; +App::$strings["\"Superblock\" Settings"] = "\"Superblock\"-Einstellungen"; +App::$strings["Block Completely"] = "Vollständig blockieren"; +App::$strings["superblock settings updated"] = "Superblock Einstellungen aktualisiert"; +App::$strings["Your account on %s will expire in a few days."] = "Dein Account auf %s wird in ein paar Tagen ablaufen."; +App::$strings["Your $Productname test account is about to expire."] = "Dein $Productname Test-Account wird bald auslaufen."; +App::$strings["Three Dimensional Tic-Tac-Toe"] = "Dreidimensionales Tic-Tac-Toe"; +App::$strings["3D Tic-Tac-Toe"] = "3D Tic-Tac-Toe"; +App::$strings["New game"] = "Neues Spiel"; +App::$strings["New game with handicap"] = "Neues Handicaü-Spiel"; +App::$strings["Three dimensional tic-tac-toe is just like the traditional game except that it is played on multiple levels simultaneously. "] = "3D Tic-Tac-Toe funktioniert wie das ursprüngliche Spiel, nur dass es auf mehreren Ebenen gleichzeitig gespielt wird."; +App::$strings["In this case there are three levels. You win by getting three in a row on any level, as well as up, down, and diagonally across the different levels."] = "In diesem Fall sind es drei Ebenen. Du gewinnst, wenn es dir gelingt drei in einer Reihe auf einer beliebigen Ebene oder diagonal über die verschiedenen Ebenen hinweg zu erreichen."; +App::$strings["The handicap game disables the center position on the middle level because the player claiming this square often has an unfair advantage."] = "Bei einem Handicap-Spiel wird die Position im Zentrum der mittleren Ebene gesperrt, da der Spieler der dieses Feld für sich beansprucht meist einen unfairen Vorteil hat."; +App::$strings["You go first..."] = "Du darfst anfangen..."; +App::$strings["I'm going first this time..."] = "Diesmal werde ich anfangen..."; +App::$strings["You won!"] = "Sie haben gewonnen!"; +App::$strings["\"Cat\" game!"] = ""; +App::$strings["I won!"] = "Ich habe gewonnen!"; +App::$strings["Edit your profile and change settings."] = "Bearbeite dein Profil und ändere die Einstellungen."; +App::$strings["Click here to see activity from your connections."] = "Klicke hier, um die Aktivitäten Deiner Verbindungen zu sehen."; +App::$strings["Click here to see your channel home."] = "Klicke hier, um Deine Kanal-Hauptseite zu sehen."; +App::$strings["You can access your private messages from here."] = "Hierüber kannst Du auf Deine privaten Nachrichten zugreifen."; +App::$strings["Create new events here."] = "Neue Termine hier erstellen"; +App::$strings["You can accept new connections and change permissions for existing ones here. You can also e.g. create groups of contacts."] = "Du kannst hier neue Verbindungen akzeptieren sowie die Einstellungen bereits vorhandener Vebindungen bearbeiten. Außerdem kannst Du Verbindungen in Gruppen zusammenfassen."; +App::$strings["System notifications will arrive here"] = "Systembenachrichtigungen werden hier eintreffen"; +App::$strings["Search for content and users"] = "Nach Inhalt von Benutzern suchen"; +App::$strings["Browse for new contacts"] = "Schaue nach möglichen neuen Verbindungen."; +App::$strings["Launch installed apps"] = "Installierte Apps starten"; +App::$strings["Looking for help? Click here."] = "Du benötigst Hilfe? Klicke hier."; +App::$strings["New events have occurred in your network. Click here to see what has happened!"] = "In Deinem Netzwerk gibt es neue Ereignisse. Klicke hier, um zu sehen, was passiert ist!"; +App::$strings["You have received a new private message. Click here to see from who!"] = "Du hast eine neue private Nachricht erhalten. Klicke hier, um zu sehen, von wem!"; +App::$strings["There are events this week. Click here too see which!"] = "Es gibt neue Termine diese Woche. Klicke hier, um zu sehen, welche!"; +App::$strings["You have received a new introduction. Click here to see who!"] = "Du hast eine neue Verbindungsanfrage erhalten. Klicke hier, um zu sehen, wer es ist!"; +App::$strings["There is a new system notification. Click here to see what has happened!"] = "Es gibt eine neue Systembenachrichtigung. Klicke hier, um zu sehen, was passiert ist!"; +App::$strings["Click here to share text, images, videos and sound."] = "Klicke hier, um Texte, Bilder, Videos und Klänge zu teilen."; +App::$strings["You can write an optional title for your update (good for long posts)."] = "Du kannst Deinem Beitrag einen optionalen Titel geben (gut für lange Beiträge)."; +App::$strings["Entering some categories here makes it easier to find your post later."] = "Ein paar Kategorien hier einzugeben, macht es leichter, Deinen Beitrag später wiederzufinden."; +App::$strings["Share photos, links, location, etc."] = "Teile Photos, Links, Standort, usw."; +App::$strings["Only want to share content for a while? Make it expire at a certain date."] = "Du möchtest diesen Inhalt nur für eine Weile teilen? Dann lass ihn zu einem bestimmten Datum ablaufen."; +App::$strings["You can password protect content."] = "Du kannst Inhalte mit einem Passwort schützen."; +App::$strings["Choose who you share with."] = "Wähle aus, mit wem Du teilen möchtest."; +App::$strings["Click here when you are done."] = "Klicke hier, wenn Du fertig bist."; +App::$strings["Adjust from which channels posts should be displayed."] = "Lege fest, von welchen Kanälen Beiträge angezeigt werden sollen."; +App::$strings["Only show posts from channels in the specified privacy group."] = "Zeige nur Beträge von Kanälen, die in einer bestimmten Gruppe sind."; +App::$strings["Easily find posts containing tags (keywords preceded by the \"#\" symbol)."] = "Finde Beiträge, die bestimmte Tags enthalten (Stichworte, die mit dem \"#\"-Symbol beginnen)."; +App::$strings["Easily find posts in given category."] = "Finde Beiträge in bestimmten Kategorien."; +App::$strings["Easily find posts by date."] = "Finde Beiträge anhand des Datums."; +App::$strings["Suggested users who have volounteered to be shown as suggestions, and who we think you might find interesting."] = "Vorgeschlagene Kanäle, die in ihren Einstellungen zugestimmt haben, als Vorschläge angezeigt zu werden, und die Du eventuell interessant finden könntest."; +App::$strings["Here you see channels you have connected to."] = "Hier siehst du die Kanäle, mit denen Du verbunden bist."; +App::$strings["Save your search so you can repeat it at a later date."] = "Speichere Deine Suche, so dass Du sie später leicht erneut durchführen kannst."; +App::$strings["If you see this icon you can be sure that the sender is who it say it is. It is normal that it is not always possible to verify the sender, so the icon will be missing sometimes. There is usually no need to worry about that."] = "Wenn Du dieses Symbol siehst, kannst Du weitgehend sicher sein, dass der Ansender dem angegebenen entspricht. Nicht immer ist es möglich, den Absender zu verifizieren, daher fehlt das Symbol mitunter. Das ist aber in der Regel kein Grund zur Sorge."; +App::$strings["Danger! It seems someone tried to forge a message! This message is not necessarily from who it says it is from!"] = "Vorsicht! Es kann sein, dass jemand versucht, eine Nachricht zu fälschen! Diese Nachricht muss nicht unbedingt vom angegebenen Absender stammen!"; +App::$strings["Welcome to Hubzilla! Would you like to see a tour of the UI?

        You can pause it at any time and continue where you left off by reloading the page, or navigting to another page.

        You can also advance by pressing the return key"] = "Willkommen zu Hubzilla! Möchtest Du eine Tour der Benutzeroberfläche angezeigt bekommen?

        Du kannst zu jeder Zeit pausieren und fortsetzen, wo Du aufgehört hast, indem Du die Seite neu lädtst, oder zu einer anderen Seite springst.

        Du kannst auc durch das Drücken der Enter-Taste weitergehen."; +App::$strings["Post to Twitter"] = "Bei Twitter veröffentlichen"; +App::$strings["Twitter settings updated."] = "Twitter-Einstellungen aktualisiert."; +App::$strings["No consumer key pair for Twitter found. Please contact your site administrator."] = ""; +App::$strings["At this Hubzilla instance the Twitter plugin was enabled but you have not yet connected your account to your Twitter account. To do so click the button below to get a PIN from Twitter which you have to copy into the input box below and submit the form. Only your public posts will be posted to Twitter."] = ""; +App::$strings["Log in with Twitter"] = "Mit Twitter anmelden"; +App::$strings["Copy the PIN from Twitter here"] = "PIN von Twitter hier her kopieren"; +App::$strings["Note: Due your privacy settings (Hide your profile details from unknown viewers?) the link potentially included in public postings relayed to Twitter will lead the visitor to a blank page informing the visitor that the access to your profile has been restricted."] = ""; +App::$strings["Allow posting to Twitter"] = "Erlaube die Veröffentlichung bei Twitter"; +App::$strings["If enabled your public postings can be posted to the associated Twitter account"] = "Wenn aktiv können deine öffentlichen Beiträge bei dem verbundenen Twitter Account veröffentlicht werden."; +App::$strings["Send public postings to Twitter by default"] = "Standardmäßig öffentliche Beiträge bei Twitter veröffentlichen"; +App::$strings["If enabled your public postings will be posted to the associated Twitter account by default"] = "Wenn aktiv können deine öffentlichen Beiträge bei dem verbundenen Twitter Account veröffentlicht werden."; +App::$strings["Twitter Post Settings"] = "Twitter-Beitragseinstellungen"; +App::$strings["Submit Settings"] = "Einstellungen absenden"; +App::$strings["Show Upload Limits"] = "Hochladebeschränkungen anzeigen"; +App::$strings["Hubzilla configured maximum size: "] = "Die in Hubzilla eingestellte maximale Größe:"; +App::$strings["PHP upload_max_filesize: "] = "PHP upload_max_filesize:"; +App::$strings["PHP post_max_size (must be larger than upload_max_filesize): "] = "PHP post_max_size (muss größer sein als upload_max_filesize):"; +App::$strings["Recent Channel/Profile Viewers"] = "Kürzliche Kanal/Profil Besucher"; +App::$strings["This plugin/addon has not been configured."] = "Dieses Plugin/Addon wurde noch nicht konfiguriert."; +App::$strings["Please visit the Visage settings on %s"] = "Bitte rufe die Visage Einstellungen auf %s auf"; +App::$strings["your feature settings page"] = ""; +App::$strings["No entries."] = "Keine Einträge."; +App::$strings["Enable Visage Visitor Logging"] = "Aktiviere das Visage-Besucher Logging"; +App::$strings["Visage Settings"] = "Visage-Einstellungen"; +App::$strings["Who likes me?"] = "Wer mag mich?"; +App::$strings["Post to WordPress"] = "Auf WordPress posten"; +App::$strings["Enable WordPress Post Plugin"] = "Aktiviere das WordPress-Plugin"; +App::$strings["WordPress username"] = "WordPress-Benutzername"; +App::$strings["WordPress password"] = "WordPress-Passwort"; +App::$strings["WordPress API URL"] = "WordPress-API-URL"; +App::$strings["Typically https://your-blog.tld/xmlrpc.php"] = "Normalerweise https://your-blog.tld/xmlrpc.php"; +App::$strings["WordPress blogid"] = "WordPress blogid"; +App::$strings["For multi-user sites such as wordpress.com, otherwise leave blank"] = "Nötig für Mehrbenutzer Seiten wie wordpress.com, andernfalls frei lassen"; +App::$strings["Post to WordPress by default"] = "Standardmäßig auf auf WordPress posten"; +App::$strings["Forward comments (requires hubzilla_wp plugin)"] = "Kommentare weiterleiten (benötigt hubzilla_wp Plugin)"; +App::$strings["WordPress Post Settings"] = "WordPress-Beitragseinstellungen"; +App::$strings["Wordpress Settings saved."] = "Wordpress-Einstellungen gespeichert."; +App::$strings["XMPP settings updated."] = "XMPP-Einstellungen aktualisiert."; +App::$strings["Enable Chat"] = "Chat aktivieren"; +App::$strings["Individual credentials"] = "Individuelle Anmeldedaten"; +App::$strings["Jabber BOSH server"] = "Jabber BOSH Server"; +App::$strings["XMPP Settings"] = "XMPP-Einstellungen"; +App::$strings["Jabber BOSH host"] = "Jabber BOSH Host"; +App::$strings["Use central userbase"] = "Zentrale Benutzerbasis verwenden"; +App::$strings["If enabled, members will automatically login to an ejabberd server that has to be installed on this machine with synchronized credentials via the \"auth_ejabberd.php\" script."] = ""; +App::$strings["Select Channel"] = "Kanal auswählen"; +App::$strings["Read-write"] = "Lesen-schreiben"; +App::$strings["Read-only"] = "Nur Lesen"; +App::$strings["My Calendars"] = "Meine Kalender"; +App::$strings["Shared Calendars"] = "Geteilte Kalender"; +App::$strings["Share this calendar"] = "Diesen Kalender teilen"; +App::$strings["Calendar name and color"] = "Kalendername und -farbe"; +App::$strings["Create new calendar"] = "Neuen Kalender erstellen"; +App::$strings["Calendar Name"] = "Kalendername"; +App::$strings["Calendar Tools"] = "Kalenderwerkzeuge"; +App::$strings["Import calendar"] = "Kalender importieren"; +App::$strings["Select a calendar to import to"] = "Kalender zum Hineinimportieren auswählen"; +App::$strings["Addressbooks"] = "Adressbücher"; +App::$strings["Addressbook name"] = "Adressbuchname"; +App::$strings["Create new addressbook"] = "Neues Adressbuch erstellen"; +App::$strings["Addressbook Name"] = "Adressbuchname"; +App::$strings["Addressbook Tools"] = "Adressbuchwerkzeuge"; +App::$strings["Import addressbook"] = "Adressbuch importieren"; +App::$strings["Select an addressbook to import to"] = "Adressbuch zum Hineinimportieren auswählen"; +App::$strings["Errors encountered creating database table: "] = ""; +App::$strings["Default Calendar"] = "Standardkalender"; +App::$strings["Default Addressbook"] = "Standardadressbuch"; +App::$strings["CalDAV/CardDAV Settings saved."] = "CalDAV/CardDAV-Einstellungen gespeichert."; +App::$strings["Enable CalDAV/CardDAV Server for this channel"] = "Aktiviere den CalDAV/CardDAV Server für diesen Kanal"; +App::$strings["Your CalDAV resources are located at %s "] = "Deine CalDAV Resourcen sind unter %s verfügbar"; +App::$strings["Your CardDAV resources are located at %s "] = "Deine CardDAV Ressourcen sind unter %s verfügbar"; +App::$strings["CalDAV/CardDAV Settings"] = "CalDAV/CardDAV-Einstellungen"; +App::$strings["Mobile"] = "Mobil"; +App::$strings["Home"] = "Home"; +App::$strings["Home, Voice"] = "Zuhause, Sprache"; +App::$strings["Home, Fax"] = "Zuhause, Fax"; +App::$strings["Work"] = "Arbeit"; +App::$strings["Work, Voice"] = "Arbeit, Sprache"; +App::$strings["Work, Fax"] = "Arbeit, Fax"; +App::$strings["INVALID EVENT DISMISSED!"] = "UNGÜLTIGEN TERMIN ABGELEHNT!"; +App::$strings["Summary: "] = "Zusammenfassung:"; +App::$strings["Date: "] = "Datum:"; +App::$strings["Reason: "] = "Grund:"; +App::$strings["INVALID CARD DISMISSED!"] = "UNGÜLTIGE KARTE ABGELEHNT!"; +App::$strings["Name: "] = "Name: "; +App::$strings["You have to enable this plugin in Feature/Addon Settings > CalDAV/CardDAV Settings before you can use it."] = ""; +App::$strings["Example: YYYY-MM-DD HH:mm"] = "Beispiel: JJJJ-MM-TT HH:mm"; +App::$strings["End date and time"] = "Enddatum und -zeit"; +App::$strings["List month"] = ""; +App::$strings["List week"] = ""; +App::$strings["List day"] = ""; +App::$strings["More"] = "Mehr"; +App::$strings["Less"] = "Weniger"; +App::$strings["Select calendar"] = "Kalender auswählen"; +App::$strings["Delete all"] = "Alles löschen"; +App::$strings["Sorry! Editing of recurrent events is not yet implemented."] = "Entschuldigung, aber das Bearbeiten von wiederkehrenden Veranstaltungen ist leider noch nicht implementiert."; +App::$strings["Organisation"] = "Organisation"; +App::$strings["Title"] = "Titel"; +App::$strings["Phone"] = "Telefon"; +App::$strings["Instant messenger"] = ""; +App::$strings["Website"] = "Webseite"; +App::$strings["Note"] = "Hinweis"; +App::$strings["Add Field"] = "Feld hinzufügen"; +App::$strings["P.O. Box"] = ""; +App::$strings["Additional"] = "Zusätzlich"; +App::$strings["Street"] = "Straße"; +App::$strings["Locality"] = "Ortschaft"; +App::$strings["Region"] = "Region"; +App::$strings["ZIP Code"] = "Postleitzahl"; +App::$strings["Invalid game."] = "Ungültiges Spiel."; +App::$strings["You are not a player in this game."] = "Sie sind kein Spieler in diesem Spiel."; +App::$strings["You must be a local channel to create a game."] = "Um ein Spiel zu eröffnen, musst du ein lokaler Kanal sein"; +App::$strings["You must select one opponent that is not yourself."] = "Du musst einen Gegner wählen, der nicht du selbst ist"; +App::$strings["Creating new game..."] = "Neues Spiel wird erstellt..."; +App::$strings["You must select white or black."] = "Sie müssen weiß oder schwarz auswählen."; +App::$strings["Error creating new game."] = "Fehler beim Erstellen eines neuen Spiels."; +App::$strings["Requested channel is not available."] = "Angeforderte Kanal nicht verfügbar."; +App::$strings["You must select a local channel /chess/channelname"] = "Du musst einen lokalen Kanal/Schach(Kanalnamen aufwählen"; +App::$strings["Enable notifications"] = "Benachrichtigungen aktivieren"; +App::$strings["Your Webbie:"] = "Dein Webbie"; +App::$strings["Fontsize (px):"] = "Schriftgröße (px):"; +App::$strings["Link:"] = "Link:"; +App::$strings["Like us on Hubzilla"] = "Like us on Hubzilla"; +App::$strings["Embed:"] = "Einbetten"; +App::$strings["Male"] = "Männlich"; +App::$strings["Female"] = "Weiblich"; +App::$strings["OpenID protocol error. No ID returned."] = "OpenID-Protokollfehler. Keine Kennung zurückgegeben."; +App::$strings["Login failed."] = "Login fehlgeschlagen."; +App::$strings["First Name"] = "Vorname"; +App::$strings["Last Name"] = "Nachname"; +App::$strings["Full Name"] = "Voller Name"; +App::$strings["Profile Photo 16px"] = "Profilfoto 16 px"; +App::$strings["Profile Photo 32px"] = "Profilfoto 32 px"; +App::$strings["Profile Photo 48px"] = "Profilfoto 48 px"; +App::$strings["Profile Photo 64px"] = "Profilfoto 64 px"; +App::$strings["Profile Photo 80px"] = "Profilfoto 80 px"; +App::$strings["Profile Photo 128px"] = "Profilfoto 128 px"; +App::$strings["Timezone"] = "Zeitzone"; +App::$strings["Birth Year"] = "Geburtsjahr"; +App::$strings["Birth Month"] = "Geburtsmonat"; +App::$strings["Birth Day"] = "Geburtstag"; +App::$strings["Birthdate"] = "Geburtsdatum"; +App::$strings["We encountered a problem while logging in with the OpenID you provided. Please check the correct spelling of the ID."] = "Wir haben ein Problem mit der OpenID festgestellt, mit der Du Dich anmelden wolltest. Bitte überprüfe sie noch einmal."; +App::$strings["The error message was:"] = "Die Fehlermeldung war:"; +App::$strings["Reconnecting %d connections"] = "Erneuere %d Verbindungen"; +App::$strings["Diaspora Reconnect"] = ""; +App::$strings["Use this form to re-establish Diaspora connections which were initially made from a different hub."] = ""; +App::$strings["Reconnect"] = "Erneut verbinden"; +App::$strings["Send test email"] = "Test-E-Mail senden"; +App::$strings["Mail sent."] = "Mail gesendet."; +App::$strings["Sending of mail failed."] = "Senden der E-Mail fehlgeschlagen."; +App::$strings["Mail Test"] = "Mail Test"; +App::$strings["Errors encountered deleting database table "] = "Beim Löschen der Datenbanktabelle sind Fehler aufgetreten."; +App::$strings["Drop tables when uninstalling?"] = "Lösche Tabellen beim Deinstallieren?"; +App::$strings["If checked, the Rendezvous database tables will be deleted when the plugin is uninstalled."] = "Wenn ausgewählt, werden die Rendezvous-Tabellen in der Datenbank gelöscht, sobald das Plugin deinstalliert wird."; +App::$strings["Mapbox Access Token"] = "Mapbox Zugangs-Token"; +App::$strings["If you enter a Mapbox access token, it will be used to retrieve map tiles from Mapbox instead of the default OpenStreetMap tile server."] = "Wenn Du ein Mapbox Zugangs-Token eingibst, werden die Kartendaten (Kacheln) damit von Mapbox geladen, anstatt von OpenStreetMap, welches die Voreinstellung ist."; +App::$strings["Rendezvous"] = "Rendezvous"; +App::$strings["This identity has been deleted by another member due to inactivity. Please press the \"New identity\" button or refresh the page to register a new identity. You may use the same name."] = "Diese Identität wurde von einem anderen Mitglied aufgrund von Inaktivität gelöscht. Bitte klicke auf \"Neue Identität\" oder aktualisiere die Website im Browser, um eine neue Identität zu registrieren. Du kannst dabei den selben Namen verwenden."; +App::$strings["Welcome to Rendezvous!"] = "Willkommen bei Rendezvous!"; +App::$strings["Enter your name to join this rendezvous. To begin sharing your location with the other members, tap the GPS control. When your location is discovered, a red dot will appear and others will be able to see you on the map."] = "Gib Deinen Namen ein, um diesem Rendezvous beizutreten. Um Deinen Standort mit anderen Mitgliedern zu teilen, klicke auf das GPS Symbol. Sobald Dein Standort ermittelt ist, erscheint ein roter Punkt, und die Anderen werden Dich auf der Karte sehen können."; +App::$strings["Let's meet here"] = "Lasst uns hier treffen"; +App::$strings["New marker"] = "Neue Markierung"; +App::$strings["Edit marker"] = "Markierung bearbeiten"; +App::$strings["New identity"] = "Neue Identität"; +App::$strings["Delete marker"] = "Markierung löschen"; +App::$strings["Delete member"] = "Mitglied löschen"; +App::$strings["Edit proximity alert"] = "Annäherungsalarm bearbeiten"; +App::$strings["A proximity alert will be issued when this member is within a certain radius of you.

        Enter a radius in meters (0 to disable):"] = "Ein Annäherungsalarm wird ausgelöst werden, sobald sich dieses Mitglied innerhalb eines bestimmten Radius von Dir aufhält.

        Gib einen Radius in Metern ein (0 zum Abschalten der Funktion):"; +App::$strings["distance"] = "Entfernung"; +App::$strings["Add new rendezvous"] = "Neues Rendezvous hinzufügen"; +App::$strings["Create a new rendezvous and share the access link with those you wish to invite to the group. Those who open the link become members of the rendezvous. They can view other member locations, add markers to the map, or share their own locations with the group."] = "Erstelle ein neues Rendezvous und teile den Zugriffslink mit allen, die Du in die Gruppe einladen möchtest. Die, die den Link öffnen, werden Mitglieder des Rendezvous. Sie können die Standorte der anderen Mitglieder sehen, Marker zur Karte hinzufügen oder ihre eigenen Standorte mit der Gruppe teilen."; App::$strings["No username found in import file."] = "Kein Benutzername in der Importdatei gefunden."; App::$strings["Unable to create a unique channel address. Import failed."] = "Es war nicht möglich, eine eindeutige Kanal-Adresse zu erzeugen. Der Import ist fehlgeschlagen."; App::$strings["Cannot locate DNS info for database server '%s'"] = "Kann die DNS-Informationen für den Datenbank-Server '%s' nicht finden"; -App::$strings["view full size"] = "In Vollbildansicht anschauen"; -App::$strings["Administrator"] = "Administrator"; -App::$strings["No Subject"] = "Kein Betreff"; -App::$strings["Friendica"] = "Friendica"; -App::$strings["OStatus"] = "OStatus"; -App::$strings["GNU-Social"] = "GNU-Social"; -App::$strings["RSS/Atom"] = "RSS/Atom"; -App::$strings["Diaspora"] = "Diaspora"; -App::$strings["Facebook"] = "Facebook"; -App::$strings["Zot"] = "Zot!"; -App::$strings["LinkedIn"] = "LinkedIn"; -App::$strings["XMPP/IM"] = "XMPP/IM"; -App::$strings["MySpace"] = "MySpace"; -App::$strings["Image exceeds website size limit of %lu bytes"] = "Bild überschreitet das Webseitenlimit von %lu Bytes"; -App::$strings["Image file is empty."] = "Bilddatei ist leer."; -App::$strings["Photo storage failed."] = "Fotospeicherung fehlgeschlagen."; -App::$strings["a new photo"] = "ein neues Foto"; -App::$strings["__ctx:photo_upload__ %1\$s posted %2\$s to %3\$s"] = "%1\$s hat %2\$s auf %3\$s veröffentlicht"; -App::$strings["Photo Albums"] = "Fotoalben"; -App::$strings["Upload New Photos"] = "Neue Fotos hochladen"; -App::$strings["Logout"] = "Abmelden"; -App::$strings["End this session"] = "Beende diese Sitzung"; -App::$strings["Home"] = "Home"; -App::$strings["Your posts and conversations"] = "Deine Beiträge und Unterhaltungen"; -App::$strings["Your profile page"] = "Deine Profilseite"; -App::$strings["Manage/Edit profiles"] = "Profile verwalten"; -App::$strings["Edit Profile"] = "Profile bearbeiten"; -App::$strings["Edit your profile"] = "Profil bearbeiten"; -App::$strings["Your photos"] = "Deine Bilder"; -App::$strings["Your files"] = "Deine Dateien"; -App::$strings["Your chatrooms"] = "Deine Chaträume"; -App::$strings["Bookmarks"] = "Lesezeichen"; -App::$strings["Your bookmarks"] = "Deine Lesezeichen"; -App::$strings["Your webpages"] = "Deine Webseiten"; -App::$strings["Your wiki"] = "Dein Wiki"; -App::$strings["Sign in"] = "Anmelden"; -App::$strings["%s - click to logout"] = "%s - Klick zum Abmelden"; -App::$strings["Remote authentication"] = "Über Konto auf anderem Server einloggen"; -App::$strings["Click to authenticate to your home hub"] = "Klicke, um Dich über Deinen Heimat-Server zu authentifizieren"; -App::$strings["Home Page"] = "Homepage"; -App::$strings["Create an account"] = "Erzeuge ein Konto"; -App::$strings["Help and documentation"] = "Hilfe und Dokumentation"; -App::$strings["Applications, utilities, links, games"] = "Anwendungen (Apps), Zubehör, Links, Spiele"; -App::$strings["Search site @name, #tag, ?docs, content"] = "Hub durchsuchen: @Name. #Schlagwort, ?Dokumentation, Inhalt"; -App::$strings["Channel Directory"] = "Kanal-Verzeichnis"; -App::$strings["Your grid"] = "Dein Grid"; -App::$strings["Mark all grid notifications seen"] = "Alle Grid-Benachrichtigungen als angesehen markieren"; -App::$strings["Channel home"] = "Mein Kanal"; -App::$strings["Mark all channel notifications seen"] = "Markiere alle Kanal-Benachrichtigungen als angesehen"; -App::$strings["Notices"] = "Benachrichtigungen"; -App::$strings["Notifications"] = "Benachrichtigungen"; -App::$strings["See all notifications"] = "Alle Benachrichtigungen ansehen"; -App::$strings["Private mail"] = "Persönliche Mail"; -App::$strings["See all private messages"] = "Alle persönlichen Nachrichten ansehen"; -App::$strings["Mark all private messages seen"] = "Markiere alle persönlichen Nachrichten als gesehen"; -App::$strings["Inbox"] = "Eingang"; -App::$strings["Outbox"] = "Ausgang"; -App::$strings["New Message"] = "Neue Nachricht"; -App::$strings["Event Calendar"] = "Terminkalender"; -App::$strings["See all events"] = "Alle Termine ansehen"; -App::$strings["Mark all events seen"] = "Markiere alle Termine als gesehen"; -App::$strings["Manage Your Channels"] = "Verwalte Deine Kanäle"; -App::$strings["Account/Channel Settings"] = "Konto-/Kanal-Einstellungen"; -App::$strings["Admin"] = "Administration"; -App::$strings["Site Setup and Configuration"] = "Seiten-Einrichtung und -Konfiguration"; -App::$strings["Loading..."] = "Lädt ..."; -App::$strings["@name, #tag, ?doc, content"] = "@Name, #Schlagwort, ?Dokumentation, Inhalt"; -App::$strings["Please wait..."] = "Bitte warten..."; -App::$strings["Embedded content"] = "Eingebetteter Inhalt"; -App::$strings["Embedding disabled"] = "Einbetten deaktiviert"; -App::$strings["Can view my normal stream and posts"] = "Kann meine normalen Beiträge sehen"; -App::$strings["Can view my webpages"] = "Kann meine Webseiten sehen"; -App::$strings["Can post on my channel page (\"wall\")"] = "Kann auf meiner Kanal-Seite (\"wall\") Beiträge veröffentlichen"; -App::$strings["Can like/dislike stuff"] = "Kann andere Elemente mögen/nicht mögen"; -App::$strings["Profiles and things other than posts/comments"] = "Profile und alles außer Beiträge und Kommentare"; -App::$strings["Can forward to all my channel contacts via post @mentions"] = "Kann an alle meine Kontakte via @-Erwähnung Nachrichten weiterleiten"; -App::$strings["Advanced - useful for creating group forum channels"] = "Fortgeschritten - sinnvoll, um Gruppen-Kanäle/-Foren zu erstellen"; -App::$strings["Can chat with me (when available)"] = "Kann mit mir chatten (wenn verfügbar)"; -App::$strings["Can write to my file storage and photos"] = "Kann in meine Datei- und Bilderordner schreiben"; -App::$strings["Can edit my webpages"] = "Kann meine Webseiten bearbeiten"; -App::$strings["Somewhat advanced - very useful in open communities"] = "Etwas fortgeschritten – sehr nützlich in offenen Gemeinschaften"; -App::$strings["Can administer my channel resources"] = "Kann meine Kanäle administrieren"; -App::$strings["Extremely advanced. Leave this alone unless you know what you are doing"] = "Sehr fortgeschritten. Bearbeite das nur, wenn Du genau weißt, was Du tust"; -App::$strings["Cannot create a duplicate channel identifier on this system. Import failed."] = "Kann keinen doppelten Kanal-Identifikator auf diesem System erzeugen (Spitzname oder Hash schon belegt). Import fehlgeschlagen."; -App::$strings["Channel clone failed. Import failed."] = "Klonen des Kanals fehlgeschlagen. Import fehlgeschlagen."; -App::$strings["Unable to import element \""] = ""; -App::$strings["(Unknown)"] = "(Unbekannt)"; -App::$strings["Visible to anybody on the internet."] = "Für jeden im Internet sichtbar."; -App::$strings["Visible to you only."] = "Nur für Dich sichtbar."; -App::$strings["Visible to anybody in this network."] = "Für jedes \$Projectname-Mitglied sichtbar."; -App::$strings["Visible to anybody authenticated."] = "Für jeden sichtbar, der angemeldet ist."; -App::$strings["Visible to anybody on %s."] = "Für jeden auf %s sichtbar."; -App::$strings["Visible to all connections."] = "Für alle Verbindungen sichtbar."; -App::$strings["Visible to approved connections."] = "Nur für akzeptierte Verbindungen sichtbar."; -App::$strings["Visible to specific connections."] = "Sichtbar für bestimmte Verbindungen."; -App::$strings["Privacy group is empty."] = "Gruppe ist leer."; -App::$strings["Privacy group: %s"] = "Gruppe: %s"; -App::$strings["Connection not found."] = "Die Verbindung wurde nicht gefunden."; -App::$strings["profile photo"] = "Profilfoto"; App::$strings["Birthday"] = "Geburtstag"; App::$strings["Age: "] = "Alter:"; App::$strings["YYYY-MM-DD or MM-DD"] = "JJJJ-MM-TT oder MM-TT"; @@ -1750,14 +2343,16 @@ App::$strings["Registration revoked for %s"] = "Registrierung für %s wurde wide App::$strings["Click here to upgrade."] = "Klicke hier, um das Upgrade durchzuführen."; App::$strings["This action exceeds the limits set by your subscription plan."] = "Diese Aktion überschreitet die Grenzen Ihres Abonnements."; App::$strings["This action is not available under your subscription plan."] = "Diese Aktion ist in Ihrem Abonnement nicht verfügbar."; +App::$strings["No recipient provided."] = "Kein Empfänger angegeben"; +App::$strings["[no subject]"] = "[no subject]"; +App::$strings["Unable to determine sender."] = "Kann Absender nicht bestimmen."; +App::$strings["Stored post could not be verified."] = "Gespeicherter Beitrag konnten nicht überprüft werden."; App::$strings["Frequently"] = "Häufig"; App::$strings["Hourly"] = "Stündlich"; App::$strings["Twice daily"] = "Zwei Mal am Tag"; App::$strings["Daily"] = "Täglich"; App::$strings["Weekly"] = "Wöchentlich"; App::$strings["Monthly"] = "Monatlich"; -App::$strings["Male"] = "Männlich"; -App::$strings["Female"] = "Weiblich"; App::$strings["Currently Male"] = "Momentan männlich"; App::$strings["Currently Female"] = "Momentan weiblich"; App::$strings["Mostly Male"] = "Größtenteils männlich"; @@ -1812,55 +2407,276 @@ App::$strings["Uncertain"] = "Ungewiss"; App::$strings["It's complicated"] = "Es ist kompliziert"; App::$strings["Don't care"] = "Interessiert mich nicht"; App::$strings["Ask me"] = "Frag mich mal"; -App::$strings["Image/photo"] = "Bild/Foto"; -App::$strings["Encrypted content"] = "Verschlüsselter Inhalt"; -App::$strings["Install %s element: "] = "Element %s installieren: "; -App::$strings["This post contains an installable %s element, however you lack permissions to install it on this site."] = "Dieser Beitrag beinhaltet ein installierbares %s Element, aber Du hast nicht die nötigen Rechte, um es auf diesem Hub zu installieren."; -App::$strings["%1\$s wrote the following %2\$s %3\$s"] = "%1\$s schrieb den folgenden %2\$s %3\$s"; -App::$strings["Click to open/close"] = "Klicke zum Öffnen/Schließen"; -App::$strings["spoiler"] = "Spoiler"; -App::$strings["Different viewers will see this text differently"] = "Verschiedene Betrachter werden diesen Text unterschiedlich sehen"; -App::$strings["$1 wrote:"] = "$1 schrieb:"; -App::$strings["l F d, Y \\@ g:i A"] = "l, d. F Y, H:i"; -App::$strings["Starts:"] = "Beginnt:"; -App::$strings["Finishes:"] = "Endet:"; -App::$strings["This event has been added to your calendar."] = "Dieser Termin wurde zu Deinem Kalender hinzugefügt"; -App::$strings["Not specified"] = "Keine Angabe"; -App::$strings["Needs Action"] = "Aktion erforderlich"; -App::$strings["Completed"] = "Abgeschlossen"; -App::$strings["In Process"] = "In Bearbeitung"; -App::$strings["Cancelled"] = "gestrichen"; -App::$strings["guest:"] = "Gast:"; -App::$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."] = "Das Security-Token des Formulars war nicht korrekt. Das ist wahrscheinlich passiert, weil das Formular zu lange (>3 Stunden) offen war, bevor es abgeschickt wurde."; -App::$strings["Help:"] = "Hilfe:"; -App::$strings["%1\$s's bookmarks"] = "%1\$ss Lesezeichen"; -App::$strings["A deleted group with this name was revived. Existing item permissions may apply to this group and any future members. If this is not what you intended, please create another group with a different name."] = "Es hat früher schon einmal eine Gruppe mit diesem Namen existiert, die gelöscht wurde. Es könnten von damals noch Elemente (Beiträge, Dateien etc.) vorhanden sein, die allen jetzigen und zukünftigen Mitgliedern dieser Gruppe den Zugriff erlauben. Wenn das nicht Deine Absicht ist, erstelle bitte eine neue Gruppe mit einem anderen Namen."; -App::$strings["Add new connections to this privacy group"] = "Neue Verbindung zu dieser Gruppe hinzufügen"; -App::$strings["edit"] = "Bearbeiten"; +App::$strings["Unable to obtain identity information from database"] = "Kann keine Identitäts-Informationen aus Datenbank beziehen"; +App::$strings["Empty name"] = "Namensfeld leer"; +App::$strings["Name too long"] = "Name ist zu lang"; +App::$strings["No account identifier"] = "Keine Account-Kennung"; +App::$strings["Nickname is required."] = "Spitzname ist erforderlich."; +App::$strings["Reserved nickname. Please choose another."] = "Reservierter Kurzname. Bitte wähle einen anderen."; +App::$strings["Nickname has unsupported characters or is already being used on this site."] = "Der Spitzname enthält nicht-unterstütze Zeichen oder wird bereits auf dieser Seite genutzt."; +App::$strings["Unable to retrieve created identity"] = "Kann die erstellte Identität nicht empfangen"; +App::$strings["Default Profile"] = "Standard-Profil"; +App::$strings["Create New Profile"] = "Neues Profil erstellen"; +App::$strings["Visible to everybody"] = "Für jeden sichtbar"; +App::$strings["Gender:"] = "Geschlecht:"; +App::$strings["Homepage:"] = "Homepage:"; +App::$strings["Online Now"] = "gerade online"; +App::$strings["Like this channel"] = "Dieser Kanal gefällt mir"; +App::$strings["j F, Y"] = "j. F Y"; +App::$strings["j F"] = "j. F"; +App::$strings["Birthday:"] = "Geburtstag:"; +App::$strings["for %1\$d %2\$s"] = "seit %1\$d %2\$s"; +App::$strings["Sexual Preference:"] = "Sexuelle Orientierung:"; +App::$strings["Tags:"] = "Schlagworte:"; +App::$strings["Political Views:"] = "Politische Ansichten:"; +App::$strings["Religion:"] = "Religion:"; +App::$strings["Hobbies/Interests:"] = "Hobbys/Interessen:"; +App::$strings["Likes:"] = "Gefällt:"; +App::$strings["Dislikes:"] = "Gefällt nicht:"; +App::$strings["Contact information and Social Networks:"] = "Kontaktinformation und soziale Netzwerke:"; +App::$strings["My other channels:"] = "Meine anderen Kanäle:"; +App::$strings["Musical interests:"] = "Musikalische Interessen:"; +App::$strings["Books, literature:"] = "Bücher, Literatur:"; +App::$strings["Television:"] = "Fernsehen:"; +App::$strings["Film/dance/culture/entertainment:"] = "Film/Tanz/Kultur/Unterhaltung:"; +App::$strings["Love/Romance:"] = "Liebe/Romantik:"; +App::$strings["Work/employment:"] = "Arbeit/Anstellung:"; +App::$strings["School/education:"] = "Schule/Ausbildung:"; +App::$strings["Like this thing"] = "Gefällt mir"; +App::$strings["New window"] = "Neues Fenster"; +App::$strings["Open the selected location in a different window or browser tab"] = "Öffne die markierte Adresse in einem neuen Browserfenster oder Tab"; +App::$strings["User '%s' deleted"] = "Benutzer '%s' gelöscht"; +App::$strings["Directory Options"] = "Verzeichnisoptionen"; +App::$strings["Safe Mode"] = "Sicherer Modus"; +App::$strings["Public Forums Only"] = "Nur öffentliche Foren"; +App::$strings["This Website Only"] = "Nur dieser Hub"; +App::$strings["Logout"] = "Abmelden"; +App::$strings["End this session"] = "Beende diese Sitzung"; +App::$strings["Your posts and conversations"] = "Deine Beiträge und Unterhaltungen"; +App::$strings["Your profile page"] = "Deine Profilseite"; +App::$strings["Manage/Edit profiles"] = "Profile verwalten"; +App::$strings["Edit your profile"] = "Profil bearbeiten"; +App::$strings["Your photos"] = "Deine Bilder"; +App::$strings["Your files"] = "Deine Dateien"; +App::$strings["Your chatrooms"] = "Deine Chaträume"; +App::$strings["Bookmarks"] = "Lesezeichen"; +App::$strings["Your bookmarks"] = "Deine Lesezeichen"; +App::$strings["Your webpages"] = "Deine Webseiten"; +App::$strings["Your wikis"] = "Ihre Wikis"; +App::$strings["Sign in"] = "Anmelden"; +App::$strings["Remote authentication"] = "Über Konto auf anderem Server einloggen"; +App::$strings["Click to authenticate to your home hub"] = "Klicke, um Dich über Deinen Heimat-Server zu authentifizieren"; +App::$strings["Get me home"] = "Bringe mich nach Hause (eigener Kanal)"; +App::$strings["Log me out of this site"] = "Logge mich von dieser Seite aus"; +App::$strings["Create an account"] = "Erzeuge ein Konto"; +App::$strings["Help and documentation"] = "Hilfe und Dokumentation"; +App::$strings["Applications, utilities, links, games"] = "Anwendungen (Apps), Zubehör, Links, Spiele"; +App::$strings["Search site @name, #tag, ?docs, content"] = "Hub durchsuchen: @Name. #Schlagwort, ?Dokumentation, Inhalt"; +App::$strings["Channel Directory"] = "Kanal-Verzeichnis"; +App::$strings["Your grid"] = "Dein Grid"; +App::$strings["Mark all grid notifications seen"] = "Alle Grid-Benachrichtigungen als angesehen markieren"; +App::$strings["Channel home"] = "Mein Kanal"; +App::$strings["Mark all channel notifications seen"] = "Markiere alle Kanal-Benachrichtigungen als angesehen"; +App::$strings["Notices"] = "Benachrichtigungen"; +App::$strings["Notifications"] = "Benachrichtigungen"; +App::$strings["See all notifications"] = "Alle Benachrichtigungen ansehen"; +App::$strings["Private mail"] = "Persönliche Mail"; +App::$strings["See all private messages"] = "Alle persönlichen Nachrichten ansehen"; +App::$strings["Mark all private messages seen"] = "Markiere alle persönlichen Nachrichten als gesehen"; +App::$strings["Inbox"] = "Eingang"; +App::$strings["Outbox"] = "Ausgang"; +App::$strings["New Message"] = "Neue Nachricht"; +App::$strings["Event Calendar"] = "Terminkalender"; +App::$strings["See all events"] = "Alle Termine ansehen"; +App::$strings["Mark all events seen"] = "Markiere alle Termine als gesehen"; +App::$strings["Manage Your Channels"] = "Verwalte Deine Kanäle"; +App::$strings["Account/Channel Settings"] = "Konto-/Kanal-Einstellungen"; +App::$strings["Admin"] = "Administration"; +App::$strings["Site Setup and Configuration"] = "Seiten-Einrichtung und -Konfiguration"; +App::$strings["Loading..."] = "Lädt ..."; +App::$strings["@name, #tag, ?doc, content"] = "@Name, #Schlagwort, ?Dokumentation, Inhalt"; +App::$strings["Please wait..."] = "Bitte warten..."; +App::$strings["General Features"] = "Allgemeine Funktionen"; +App::$strings["Multiple Profiles"] = "Mehrfachprofile"; +App::$strings["Ability to create multiple profiles"] = "Ermöglicht das Anlegen mehrerer Profile pro Kanal"; +App::$strings["Advanced Profiles"] = "Erweiterte Profile"; +App::$strings["Additional profile sections and selections"] = "Stellt zusätzliche Bereiche und Felder im Profil zur Verfügung"; +App::$strings["Profile Import/Export"] = "Profil-Import/Export"; +App::$strings["Save and load profile details across sites/channels"] = "Ermöglicht das Speichern von Profilen, um sie in einen anderen Kanal zu importieren"; +App::$strings["Web Pages"] = "Webseiten"; +App::$strings["Provide managed web pages on your channel"] = "Ermöglicht das Erstellen von Webseiten in Deinem Kanal"; +App::$strings["Provide a wiki for your channel"] = "Stelle ein Wiki in Deinem Kanal zur Verfügung"; +App::$strings["Private Notes"] = "Private Notizen"; +App::$strings["Enables a tool to store notes and reminders (note: not encrypted)"] = "Aktiviert ein Werkzeug mit dem Notizen und Erinnerungen gespeichert werden können (Hinweis: nicht verschlüsselt)"; +App::$strings["Navigation Channel Select"] = "Kanal-Auswahl in der Navigationsleiste"; +App::$strings["Change channels directly from within the navigation dropdown menu"] = "Ermöglicht den direkten Wechsel zu anderen Kanälen über das Navigationsmenü"; +App::$strings["Photo Location"] = "Aufnahmeort"; +App::$strings["If location data is available on uploaded photos, link this to a map."] = "Verlinkt den Aufnahmeort von Fotos (falls verfügbar) auf einer Karte"; +App::$strings["Access Controlled Chatrooms"] = "Zugriffskontrollierte Chaträume"; +App::$strings["Provide chatrooms and chat services with access control."] = "Bieten Sie Chaträume und Chatdienste mit Zugriffskontrolle an."; +App::$strings["Smart Birthdays"] = "Smarte Geburtstage"; +App::$strings["Make birthday events timezone aware in case your friends are scattered across the planet."] = "Stellt für Geburtstage einen Zeitzonenbezug her, falls deine Freunde über den ganzen Planeten verstreut sind."; +App::$strings["Advanced Directory Search"] = "Erweiterte Verzeichnissuche"; +App::$strings["Allows creation of complex directory search queries"] = "Ermöglicht die Erstellung komplexer Verzeichnis-Suchabfragen"; +App::$strings["Advanced Theme and Layout Settings"] = "Erweiterte Design- und Layout-Einstellungen"; +App::$strings["Allows fine tuning of themes and page layouts"] = "Erlaubt die Feineinstellung von Designs und Seitenlayouts"; +App::$strings["Post Composition Features"] = "Nachbearbeitungsfunktionen"; +App::$strings["Large Photos"] = "Große Fotos"; +App::$strings["Include large (1024px) photo thumbnails in posts. If not enabled, use small (640px) photo thumbnails"] = "Große Vorschaubilder (1024px) in Beiträgen anzeigen. Falls nicht aktiviert, werden kleine Vorschaubilder (640px) verwendet."; +App::$strings["Automatically import channel content from other channels or feeds"] = "Ermöglicht den automatischen Import von Inhalten für diesen Kanal von anderen Kanälen oder Feeds"; +App::$strings["Even More Encryption"] = "Noch mehr Verschlüsselung"; +App::$strings["Allow optional encryption of content end-to-end with a shared secret key"] = "Ermöglicht optional die zusätzliche Verschlüsselung von Inhalten (Ende-zu-Ende mit geteiltem Schlüssel)"; +App::$strings["Enable Voting Tools"] = "Umfragewerkzeuge aktivieren"; +App::$strings["Provide a class of post which others can vote on"] = "Aktiviert die Umfragewerkzeuge, um anderen die Möglichkeit zu geben, einem Beitrag zuzustimmen, ihn abzulehnen oder sich zu enthalten. (Muss im Beitrag selbst noch aktiviert werden.)"; +App::$strings["Disable Comments"] = "Kommentare deaktivieren"; +App::$strings["Provide the option to disable comments for a post"] = "Ermöglicht, die Kommentarfunktion für einzelne Beiträge abzuschalten"; +App::$strings["Delayed Posting"] = "Verzögertes Senden"; +App::$strings["Allow posts to be published at a later date"] = "Ermöglicht es, Beiträge zu einem späteren Zeitpunkt zu veröffentlichen"; +App::$strings["Content Expiration"] = "Verfall von Inhalten"; +App::$strings["Remove posts/comments and/or private messages at a future time"] = "Ermöglicht das automatische Löschen von Beiträgen, Kommentaren und/oder privaten Nachrichten zu einem zukünftigen Datum."; +App::$strings["Suppress Duplicate Posts/Comments"] = "Doppelte Beiträge unterdrücken"; +App::$strings["Prevent posts with identical content to be published with less than two minutes in between submissions."] = "Verhindert, dass innerhalb von zwei Minuten Beiträge mit identischem Inhalt veröffentlicht werden."; +App::$strings["Network and Stream Filtering"] = "Netzwerk- und Stream-Filter"; +App::$strings["Search by Date"] = "Suche nach Datum"; +App::$strings["Ability to select posts by date ranges"] = "Möglichkeit, Beiträge nach Zeiträumen auszuwählen"; App::$strings["Privacy Groups"] = "Gruppen"; -App::$strings["Edit group"] = "Gruppe ändern"; -App::$strings["Add privacy group"] = "Gruppe hinzufügen"; -App::$strings["Channels not in any privacy group"] = "Kanäle, die in keiner Gruppe sind"; -App::$strings["add"] = "hinzufügen"; -App::$strings["Item was not found."] = "Beitrag wurde nicht gefunden."; -App::$strings["No source file."] = "Keine Quelldatei."; -App::$strings["Cannot locate file to replace"] = "Kann Datei zum Ersetzen nicht finden"; -App::$strings["Cannot locate file to revise/update"] = "Kann Datei zum Prüfen/Aktualisieren nicht finden"; -App::$strings["File exceeds size limit of %d"] = "Datei überschreitet das Größen-Limit von %d"; -App::$strings["You have reached your limit of %1$.0f Mbytes attachment storage."] = "Die Größe Deiner Datei-Anhänge hat das Maximum von %1$.0f MByte erreicht."; -App::$strings["File upload failed. Possible system limit or action terminated."] = "Datei-Upload fehlgeschlagen. Mögliche Systembegrenzung oder abgebrochener Prozess."; -App::$strings["Stored file could not be verified. Upload failed."] = "Gespeichert Datei konnte nicht verifiziert werden. Upload abgebrochen."; -App::$strings["Path not available."] = "Pfad nicht verfügbar."; -App::$strings["Empty pathname"] = "Leere Pfadangabe"; -App::$strings["duplicate filename or path"] = "doppelter Dateiname oder Pfad"; -App::$strings["Path not found."] = "Pfad nicht gefunden."; -App::$strings["mkdir failed."] = "mkdir fehlgeschlagen."; -App::$strings["database storage failed."] = "Speichern in der Datenbank fehlgeschlagen."; -App::$strings["Empty path"] = "Leere Pfadangabe"; +App::$strings["Enable management and selection of privacy groups"] = "Auswahl und Verwaltung von Gruppen für Kanäle aktivieren"; +App::$strings["Saved Searches"] = "Gespeicherte Suchanfragen"; +App::$strings["Save search terms for re-use"] = "Ermöglicht das Abspeichern von Suchbegriffen zur Wiederverwendung"; +App::$strings["Network Personal Tab"] = "Persönlicher Netzwerkreiter"; +App::$strings["Enable tab to display only Network posts that you've interacted on"] = "Aktiviert einen Reiter in der Grid-Ansicht, der nur Netzwerk-Beiträge anzeigt, mit denen Du interagiert hast"; +App::$strings["Network New Tab"] = "Netzwerkreiter Neu"; +App::$strings["Enable tab to display all new Network activity"] = "Aktiviert einen Reiter in der Grid-Ansicht, der alle neuen Netzwerkaktivitäten anzeigt"; +App::$strings["Affinity Tool"] = "Beziehungs-Tool"; +App::$strings["Filter stream activity by depth of relationships"] = "Aktiviert ein Werkzeug in der Grid-Ansicht, das den Stream nach Grad der Beziehung filtern kann"; +App::$strings["Show friend and connection suggestions"] = "Freund- und Verbindungsvorschläge anzeigen"; +App::$strings["Connection Filtering"] = "Filter für Verbindungen"; +App::$strings["Filter incoming posts from connections based on keywords/content"] = "Ermöglicht die Filterung eingehender Beiträge anhand von Schlüsselwörtern (muss an der Verbindung konfiguriert werden)"; +App::$strings["Post/Comment Tools"] = "Beitrag-/Kommentar-Tools"; +App::$strings["Community Tagging"] = "Gemeinschaftliches Verschlagworten"; +App::$strings["Ability to tag existing posts"] = "Ermöglicht das Verschlagworten existierender Beiträge"; +App::$strings["Post Categories"] = "Beitrags-Kategorien"; +App::$strings["Add categories to your posts"] = "Aktiviert Kategorien für Beiträge"; +App::$strings["Emoji Reactions"] = "Emoji Reaktionen"; +App::$strings["Add emoji reaction ability to posts"] = "Aktiviert Emoji-Reaktionen für Beiträge"; +App::$strings["Saved Folders"] = "Gespeicherte Ordner"; +App::$strings["Ability to file posts under folders"] = "Möglichkeit, Beiträge in Verzeichnissen zu sammeln"; +App::$strings["Dislike Posts"] = "Gefällt-mir-nicht-Beiträge"; +App::$strings["Ability to dislike posts/comments"] = "Aktiviert die „Gefällt mir nicht“-Schaltfläche"; +App::$strings["Star Posts"] = "Beiträge mit Sternchen versehen"; +App::$strings["Ability to mark special posts with a star indicator"] = "Ermöglicht die lokale Markierung spezieller Beiträge mit einem Sternchen-Symbol"; +App::$strings["Tag Cloud"] = "Schlagwort-Wolke"; +App::$strings["Provide a personal tag cloud on your channel page"] = "Aktiviert die Anzeige einer Schlagwort-Wolke (Tag Cloud) auf Deiner Kanal-Seite"; +App::$strings["Premium Channel"] = "Premium-Kanal"; +App::$strings["Allows you to set restrictions and terms on those that connect with your channel"] = "Ermöglicht es, Einschränkungen und Bedingungen für Verbindungen dieses Kanals festzulegen"; +App::$strings["prev"] = "vorherige"; +App::$strings["first"] = "erste"; +App::$strings["last"] = "letzte"; +App::$strings["next"] = "nächste"; +App::$strings["older"] = "älter"; +App::$strings["newer"] = "neuer"; +App::$strings["No connections"] = "Keine Verbindungen"; +App::$strings["View all %s connections"] = "Alle Verbindungen von %s anzeigen"; +App::$strings["poke"] = "anstupsen"; +App::$strings["poked"] = "stupste"; +App::$strings["ping"] = "anpingen"; +App::$strings["pinged"] = "pingte"; +App::$strings["prod"] = "knuffen"; +App::$strings["prodded"] = "knuffte"; +App::$strings["slap"] = "ohrfeigen"; +App::$strings["slapped"] = "ohrfeigte"; +App::$strings["finger"] = "befummeln"; +App::$strings["fingered"] = "befummelte"; +App::$strings["rebuff"] = "eine Abfuhr erteilen"; +App::$strings["rebuffed"] = "zurückgewiesen"; +App::$strings["happy"] = "glücklich"; +App::$strings["sad"] = "traurig"; +App::$strings["mellow"] = "sanft"; +App::$strings["tired"] = "müde"; +App::$strings["perky"] = "frech"; +App::$strings["angry"] = "sauer"; +App::$strings["stupefied"] = "verblüfft"; +App::$strings["puzzled"] = "verwirrt"; +App::$strings["interested"] = "interessiert"; +App::$strings["bitter"] = "verbittert"; +App::$strings["cheerful"] = "fröhlich"; +App::$strings["alive"] = "lebendig"; +App::$strings["annoyed"] = "verärgert"; +App::$strings["anxious"] = "unruhig"; +App::$strings["cranky"] = "schrullig"; +App::$strings["disturbed"] = "verstört"; +App::$strings["frustrated"] = "frustriert"; +App::$strings["depressed"] = "deprimiert"; +App::$strings["motivated"] = "motiviert"; +App::$strings["relaxed"] = "entspannt"; +App::$strings["surprised"] = "überrascht"; +App::$strings["Monday"] = "Montag"; +App::$strings["Tuesday"] = "Dienstag"; +App::$strings["Wednesday"] = "Mittwoch"; +App::$strings["Thursday"] = "Donnerstag"; +App::$strings["Friday"] = "Freitag"; +App::$strings["Saturday"] = "Samstag"; +App::$strings["Sunday"] = "Sonntag"; +App::$strings["January"] = "Januar"; +App::$strings["February"] = "Februar"; +App::$strings["March"] = "März"; +App::$strings["April"] = "April"; +App::$strings["May"] = "Mai"; +App::$strings["June"] = "Juni"; +App::$strings["July"] = "Juli"; +App::$strings["August"] = "August"; +App::$strings["September"] = "September"; +App::$strings["October"] = "Oktober"; +App::$strings["November"] = "November"; +App::$strings["December"] = "Dezember"; +App::$strings["Unknown Attachment"] = "Unbekannter Anhang"; +App::$strings["unknown"] = "unbekannt"; +App::$strings["remove category"] = "Kategorie entfernen"; +App::$strings["remove from file"] = "aus der Datei entfernen"; +App::$strings["default"] = "Standard"; +App::$strings["Page layout"] = "Seiten-Layout"; +App::$strings["You can create your own with the layouts tool"] = "Mit dem Gestaltungswerkzeug kannst Du Deine eigenen Layouts erstellen"; +App::$strings["Page content type"] = "Art des Seiteninhalts"; +App::$strings["activity"] = "Aktivität"; +App::$strings["Design Tools"] = "Gestaltungswerkzeuge"; +App::$strings["Pages"] = "Seiten"; +App::$strings["Import website..."] = "Webseite importieren..."; +App::$strings["Select folder to import"] = "Ordner zum Importieren auswählen"; +App::$strings["Import from a zipped folder:"] = "Aus einem gezippten Ordner importieren:"; +App::$strings["Import from cloud files:"] = "Aus Cloud-Dateien importieren:"; +App::$strings["/cloud/channel/path/to/folder"] = "/Cloud/Kanal/Pfad/zum/Ordner"; +App::$strings["Enter path to website files"] = "Pfad zu Webseitendateien eingeben"; +App::$strings["Select folder"] = "Ordner auswählen"; +App::$strings["Export website..."] = "Webseite exportieren..."; +App::$strings["Export to a zip file"] = "In eine ZIP-Datei exportieren"; +App::$strings["website.zip"] = "website.zip"; +App::$strings["Enter a name for the zip file."] = "Geben Sie einen für die ZIP-Datei ein."; +App::$strings["Export to cloud files"] = "In Cloud-Dateien exportieren"; +App::$strings["/path/to/export/folder"] = "/Pfad/zum/exportierenden/Ordner"; +App::$strings["Enter a path to a cloud files destination."] = "Gib den Pfad zu einem Datei-Speicherort in der Cloud ein."; +App::$strings["Specify folder"] = "Ordner angeben"; +App::$strings["%1\$s's bookmarks"] = "%1\$ss Lesezeichen"; +App::$strings["Different viewers will see this text differently"] = "Verschiedene Betrachter werden diesen Text unterschiedlich sehen"; +App::$strings["Help:"] = "Hilfe:"; App::$strings["New Page"] = "Neue Seite"; -App::$strings["Title"] = "Titel"; -App::$strings["Attachments:"] = "Anhänge:"; -App::$strings["\$Projectname event notification:"] = "\$Projectname-Terminbenachrichtigung:"; +App::$strings["%d invitation available"] = array( + 0 => "%d Einladung verfügbar", + 1 => "%d Einladungen verfügbar", +); +App::$strings["Find Channels"] = "Finde Kanäle"; +App::$strings["Enter name or interest"] = "Name oder Interessen eingeben"; +App::$strings["Connect/Follow"] = "Verbinden/Folgen"; +App::$strings["Examples: Robert Morgenstein, Fishing"] = "Beispiele: Robert Morgenstein, Angeln"; +App::$strings["Random Profile"] = "Zufallsprofil"; +App::$strings["Invite Friends"] = "Lade Freunde ein"; +App::$strings["Advanced example: name=fred and country=iceland"] = "Fortgeschrittenes Beispiel: name=fred and country=iceland"; +App::$strings["Everything"] = "Alles"; +App::$strings["Categories"] = "Kategorien"; +App::$strings["%d connection in common"] = array( + 0 => "%d gemeinsame Verbindung", + 1 => "%d gemeinsame Verbindungen", +); +App::$strings["show more"] = "mehr zeigen"; App::$strings["Delete this item?"] = "Dieses Element löschen?"; App::$strings["%s show less"] = "%s weniger anzeigen"; App::$strings["%s expand"] = "%s aufklappen"; @@ -1894,18 +2710,7 @@ App::$strings["about a year"] = "ungefähr ein Jahr"; App::$strings["%d years"] = "%d Jahre"; App::$strings[" "] = " "; App::$strings["timeago.numbers"] = "timeago.numbers"; -App::$strings["January"] = "Januar"; -App::$strings["February"] = "Februar"; -App::$strings["March"] = "März"; -App::$strings["April"] = "April"; App::$strings["__ctx:long__ May"] = "Mai"; -App::$strings["June"] = "Juni"; -App::$strings["July"] = "Juli"; -App::$strings["August"] = "August"; -App::$strings["September"] = "September"; -App::$strings["October"] = "Oktober"; -App::$strings["November"] = "November"; -App::$strings["December"] = "Dezember"; App::$strings["Jan"] = "Jan"; App::$strings["Feb"] = "Feb"; App::$strings["Mar"] = "Mär"; @@ -1918,13 +2723,6 @@ App::$strings["Sep"] = "Sep"; App::$strings["Oct"] = "Okt"; App::$strings["Nov"] = "Nov"; App::$strings["Dec"] = "Dez"; -App::$strings["Sunday"] = "Sonntag"; -App::$strings["Monday"] = "Montag"; -App::$strings["Tuesday"] = "Dienstag"; -App::$strings["Wednesday"] = "Mittwoch"; -App::$strings["Thursday"] = "Donnerstag"; -App::$strings["Friday"] = "Freitag"; -App::$strings["Saturday"] = "Samstag"; App::$strings["Sun"] = "So"; App::$strings["Mon"] = "Mo"; App::$strings["Tue"] = "Di"; @@ -1937,6 +2735,80 @@ App::$strings["__ctx:calendar__ month"] = "Monat"; App::$strings["__ctx:calendar__ week"] = "Woche"; App::$strings["__ctx:calendar__ day"] = "Tag"; App::$strings["__ctx:calendar__ All day"] = "Ganztägig"; +App::$strings["view full size"] = "In Vollbildansicht anschauen"; +App::$strings["No Subject"] = "Kein Betreff"; +App::$strings["OStatus"] = "OStatus"; +App::$strings["GNU-Social"] = "GNU-Social"; +App::$strings["RSS/Atom"] = "RSS/Atom"; +App::$strings["Facebook"] = "Facebook"; +App::$strings["Zot"] = "Zot!"; +App::$strings["LinkedIn"] = "LinkedIn"; +App::$strings["XMPP/IM"] = "XMPP/IM"; +App::$strings["MySpace"] = "MySpace"; +App::$strings["Tags"] = "Schlagwörter"; +App::$strings["Keywords"] = "Schlüsselwörter"; +App::$strings["have"] = "habe"; +App::$strings["has"] = "hat"; +App::$strings["want"] = "will"; +App::$strings["wants"] = "will"; +App::$strings["likes"] = "gefällt"; +App::$strings["dislikes"] = "missfällt"; +App::$strings["Cannot create a duplicate channel identifier on this system. Import failed."] = "Kann keinen doppelten Kanal-Identifikator auf diesem System erzeugen (Spitzname oder Hash schon belegt). Import fehlgeschlagen."; +App::$strings["Channel clone failed. Import failed."] = "Klonen des Kanals fehlgeschlagen. Import fehlgeschlagen."; +App::$strings["Unable to import element \""] = "Element konnte nicht importiert werden."; +App::$strings["guest:"] = "Gast:"; +App::$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."] = "Das Security-Token des Formulars war nicht korrekt. Das ist wahrscheinlich passiert, weil das Formular zu lange (>3 Stunden) offen war, bevor es abgeschickt wurde."; +App::$strings["Invalid data packet"] = "Ungültiges Datenpaket"; +App::$strings["Unable to verify channel signature"] = "Konnte die Signatur des Kanals nicht verifizieren"; +App::$strings["Unable to verify site signature for %s"] = "Kann die Signatur der Seite von %s nicht verifizieren"; +App::$strings["invalid target signature"] = "Ungültige Signatur des Ziels"; +App::$strings["(Unknown)"] = "(Unbekannt)"; +App::$strings["Visible to anybody on the internet."] = "Für jeden im Internet sichtbar."; +App::$strings["Visible to you only."] = "Nur für Dich sichtbar."; +App::$strings["Visible to anybody in this network."] = "Für jedes \$Projectname-Mitglied sichtbar."; +App::$strings["Visible to anybody authenticated."] = "Für jeden sichtbar, der angemeldet ist."; +App::$strings["Visible to anybody on %s."] = "Für jeden auf %s sichtbar."; +App::$strings["Visible to all connections."] = "Für alle Verbindungen sichtbar."; +App::$strings["Visible to approved connections."] = "Nur für akzeptierte Verbindungen sichtbar."; +App::$strings["Visible to specific connections."] = "Sichtbar für bestimmte Verbindungen."; +App::$strings["Privacy group is empty."] = "Gruppe ist leer."; +App::$strings["Privacy group: %s"] = "Gruppe: %s"; +App::$strings["Connection not found."] = "Die Verbindung wurde nicht gefunden."; +App::$strings["profile photo"] = "Profilfoto"; +App::$strings["[Edited %s]"] = "[%s wurde bearbeitet]"; +App::$strings["__ctx:edit_activity__ Post"] = "Beitrag"; +App::$strings["__ctx:edit_activity__ Comment"] = "Kommentar"; +App::$strings["Logged out."] = "Ausgeloggt."; +App::$strings["Failed authentication"] = "Authentifizierung fehlgeschlagen"; +App::$strings[" and "] = "und"; +App::$strings["public profile"] = "öffentliches Profil"; +App::$strings["%1\$s changed %2\$s to “%3\$s”"] = "%1\$s hat %2\$s auf “%3\$s” geändert"; +App::$strings["Visit %1\$s's %2\$s"] = "Besuche %1\$s's %2\$s"; +App::$strings["%1\$s has an updated %2\$s, changing %3\$s."] = "%1\$s hat ein aktualisiertes %2\$s, %3\$s wurde verändert."; +App::$strings["Item was not found."] = "Beitrag wurde nicht gefunden."; +App::$strings["No source file."] = "Keine Quelldatei."; +App::$strings["Cannot locate file to replace"] = "Kann Datei zum Ersetzen nicht finden"; +App::$strings["Cannot locate file to revise/update"] = "Kann Datei zum Prüfen/Aktualisieren nicht finden"; +App::$strings["File exceeds size limit of %d"] = "Datei überschreitet das Größen-Limit von %d"; +App::$strings["You have reached your limit of %1$.0f Mbytes attachment storage."] = "Die Größe Deiner Datei-Anhänge hat das Maximum von %1$.0f MByte erreicht."; +App::$strings["File upload failed. Possible system limit or action terminated."] = "Datei-Upload fehlgeschlagen. Mögliche Systembegrenzung oder abgebrochener Prozess."; +App::$strings["Stored file could not be verified. Upload failed."] = "Gespeichert Datei konnte nicht verifiziert werden. Upload abgebrochen."; +App::$strings["Path not available."] = "Pfad nicht verfügbar."; +App::$strings["Empty pathname"] = "Leere Pfadangabe"; +App::$strings["duplicate filename or path"] = "doppelter Dateiname oder Pfad"; +App::$strings["Path not found."] = "Pfad nicht gefunden."; +App::$strings["mkdir failed."] = "mkdir fehlgeschlagen."; +App::$strings["database storage failed."] = "Speichern in der Datenbank fehlgeschlagen."; +App::$strings["Empty path"] = "Leere Pfadangabe"; +App::$strings["l F d, Y \\@ g:i A"] = "l, d. F Y, H:i"; +App::$strings["Starts:"] = "Beginnt:"; +App::$strings["Finishes:"] = "Endet:"; +App::$strings["This event has been added to your calendar."] = "Dieser Termin wurde zu Deinem Kalender hinzugefügt"; +App::$strings["Not specified"] = "Keine Angabe"; +App::$strings["Needs Action"] = "Aktion erforderlich"; +App::$strings["Completed"] = "Abgeschlossen"; +App::$strings["In Process"] = "In Bearbeitung"; +App::$strings["Cancelled"] = "gestrichen"; App::$strings["Channel is blocked on this site."] = "Der Kanal ist auf dieser Seite blockiert "; App::$strings["Channel location missing."] = "Adresse des Kanals fehlt."; App::$strings["Response from remote channel was incomplete."] = "Antwort des entfernten Kanals war unvollständig."; @@ -1944,83 +2816,102 @@ App::$strings["Channel was deleted and no longer exists."] = "Kanal wurde gelös App::$strings["Protocol disabled."] = "Protokoll deaktiviert."; App::$strings["Channel discovery failed."] = "Kanalsuche fehlgeschlagen"; App::$strings["Cannot connect to yourself."] = "Du kannst Dich nicht mit Dir selbst verbinden."; +App::$strings["A deleted group with this name was revived. Existing item permissions may apply to this group and any future members. If this is not what you intended, please create another group with a different name."] = "Es hat früher schon einmal eine Gruppe mit diesem Namen existiert, die gelöscht wurde. Es könnten von damals noch Elemente (Beiträge, Dateien etc.) vorhanden sein, die allen jetzigen und zukünftigen Mitgliedern dieser Gruppe den Zugriff erlauben. Wenn das nicht Deine Absicht ist, erstelle bitte eine neue Gruppe mit einem anderen Namen."; +App::$strings["Add new connections to this privacy group"] = "Neue Verbindung zu dieser Gruppe hinzufügen"; +App::$strings["edit"] = "Bearbeiten"; +App::$strings["Edit group"] = "Gruppe ändern"; +App::$strings["Add privacy group"] = "Gruppe hinzufügen"; +App::$strings["Channels not in any privacy group"] = "Kanäle, die in keiner Gruppe sind"; +App::$strings["add"] = "hinzufügen"; +App::$strings["Select an alternate language"] = "Wähle eine alternative Sprache"; +App::$strings["Image exceeds website size limit of %lu bytes"] = "Bild überschreitet das Webseitenlimit von %lu Bytes"; +App::$strings["Image file is empty."] = "Bilddatei ist leer."; +App::$strings["Photo storage failed."] = "Fotospeicherung fehlgeschlagen."; +App::$strings["a new photo"] = "ein neues Foto"; +App::$strings["__ctx:photo_upload__ %1\$s posted %2\$s to %3\$s"] = "%1\$s hat %2\$s auf %3\$s veröffentlicht"; +App::$strings["Photo Albums"] = "Fotoalben"; +App::$strings["Upload New Photos"] = "Neue Fotos hochladen"; +App::$strings["System"] = "System"; +App::$strings["New App"] = "Neue App"; +App::$strings["Suggestions"] = "Vorschläge"; +App::$strings["See more..."] = "Mehr anzeigen …"; +App::$strings["You have %1$.0f of %2$.0f allowed connections."] = "Du bist %1$.0f von maximal %2$.0f erlaubten Verbindungen eingegangen."; +App::$strings["Add New Connection"] = "Neue Verbindung hinzufügen"; +App::$strings["Enter channel address"] = "Adresse des Kanals eingeben"; +App::$strings["Examples: bob@example.com, https://example.com/barbara"] = "Beispiele: bob@beispiel.com, http://beispiel.com/barbara"; +App::$strings["Notes"] = "Notizen"; +App::$strings["Remove term"] = "Eintrag löschen"; +App::$strings["Archives"] = "Archive"; +App::$strings["Refresh"] = "Aktualisieren"; +App::$strings["Account settings"] = "Konto-Einstellungen"; +App::$strings["Channel settings"] = "Kanal-Einstellungen"; +App::$strings["Additional features"] = "Zusätzliche Funktionen"; +App::$strings["Feature/Addon settings"] = "Plugin-Einstellungen"; +App::$strings["Display settings"] = "Anzeige-Einstellungen"; +App::$strings["Manage locations"] = "Klon-Adressen verwalten"; +App::$strings["Export channel"] = "Kanal exportieren"; +App::$strings["Connected apps"] = "Verbundene Apps"; +App::$strings["Premium Channel Settings"] = "Premium-Kanal-Einstellungen"; +App::$strings["Private Mail Menu"] = "Private Nachrichten"; +App::$strings["Combined View"] = "Kombinierte Anzeige"; +App::$strings["Conversations"] = "Konversationen"; +App::$strings["Received Messages"] = "Erhaltene Nachrichten"; +App::$strings["Sent Messages"] = "Gesendete Nachrichten"; +App::$strings["No messages."] = "Keine Nachrichten."; +App::$strings["Delete conversation"] = "Unterhaltung löschen"; +App::$strings["Events Tools"] = "Kalenderwerkzeuge"; +App::$strings["Export Calendar"] = "Kalender exportieren"; +App::$strings["Import Calendar"] = "Kalender importieren"; +App::$strings["Chatrooms"] = "Chaträume"; +App::$strings["Overview"] = "Übersicht"; +App::$strings["Chat Members"] = "Chatmitglieder"; +App::$strings["Wiki List"] = "Wikiliste"; +App::$strings["Create new wiki"] = "Neues Wiki erstellen"; +App::$strings["Send notification"] = "Benachrichtigung senden"; +App::$strings["Wiki Pages"] = "Wikiseiten"; +App::$strings["Add new page"] = "Neue Seite hinzufügen"; +App::$strings["Page name"] = "Seitenname"; +App::$strings["Bookmarked Chatrooms"] = "Gespeicherte Chatrooms"; +App::$strings["Suggested Chatrooms"] = "Chatraum-Vorschläge"; +App::$strings["photo/image"] = "Foto/Bild"; +App::$strings["Click to show more"] = "Klick, um mehr anzuzeigen"; +App::$strings["Rating Tools"] = "Bewertungswerkzeuge"; +App::$strings["Rate Me"] = "Bewerte mich"; +App::$strings["View Ratings"] = "Bewertungen ansehen"; +App::$strings["Forums"] = "Foren"; +App::$strings["Tasks"] = "Aufgaben"; +App::$strings["Documentation"] = "Dokumentation"; +App::$strings["Member registrations waiting for confirmation"] = "Nutzer-Anmeldungen, die auf Bestätigung warten"; +App::$strings["Inspect queue"] = "Warteschlange kontrollieren"; +App::$strings["DB updates"] = "DB-Aktualisierungen"; +App::$strings["Plugin Features"] = "Plug-In Funktionen"; App::$strings["Who can see this?"] = "Wer kann das sehen?"; App::$strings["Custom selection"] = "Benutzerdefinierte Auswahl"; App::$strings["Select \"Show\" to allow viewing. \"Don't show\" lets you override and limit the scope of \"Show\"."] = "Wähle \"Anzeigen\", um Betrachtung zuzulassen. \"Nicht anzeigen\" überstimmt und limitiert den Aktionsradius von \"Anzeigen\" für Ausnahmen."; App::$strings["Show"] = "Anzeigen"; App::$strings["Don't show"] = "Nicht anzeigen"; App::$strings["Post permissions %s cannot be changed %s after a post is shared.
        These permissions set who is allowed to view the post."] = "Beitragsberechtigungen %s können nicht geändert werden %s, nachdem der Beitrag gesendet wurde.
        Diese Berechtigungen bestimmen, wer den Beitrag sehen kann."; -App::$strings["Unable to obtain identity information from database"] = "Kann keine Identitäts-Informationen aus Datenbank beziehen"; -App::$strings["Empty name"] = "Namensfeld leer"; -App::$strings["Name too long"] = "Name ist zu lang"; -App::$strings["No account identifier"] = "Keine Account-Kennung"; -App::$strings["Nickname is required."] = "Spitzname ist erforderlich."; -App::$strings["Reserved nickname. Please choose another."] = "Reservierter Kurzname. Bitte wähle einen anderen."; -App::$strings["Nickname has unsupported characters or is already being used on this site."] = "Der Spitzname enthält nicht-unterstütze Zeichen oder wird bereits auf dieser Seite genutzt."; -App::$strings["Unable to retrieve created identity"] = "Kann die erstellte Identität nicht empfangen"; -App::$strings["Default Profile"] = "Standard-Profil"; -App::$strings["Requested channel is not available."] = "Angeforderte Kanal nicht verfügbar."; -App::$strings["Create New Profile"] = "Neues Profil erstellen"; -App::$strings["Visible to everybody"] = "Für jeden sichtbar"; -App::$strings["Gender:"] = "Geschlecht:"; -App::$strings["Status:"] = "Status:"; -App::$strings["Homepage:"] = "Homepage:"; -App::$strings["Online Now"] = "gerade online"; -App::$strings["Like this channel"] = "Dieser Kanal gefällt mir"; -App::$strings["j F, Y"] = "j. F Y"; -App::$strings["j F"] = "j. F"; -App::$strings["Birthday:"] = "Geburtstag:"; -App::$strings["for %1\$d %2\$s"] = "seit %1\$d %2\$s"; -App::$strings["Sexual Preference:"] = "Sexuelle Orientierung:"; -App::$strings["Tags:"] = "Schlagworte:"; -App::$strings["Political Views:"] = "Politische Ansichten:"; -App::$strings["Religion:"] = "Religion:"; -App::$strings["Hobbies/Interests:"] = "Hobbys/Interessen:"; -App::$strings["Likes:"] = "Gefällt:"; -App::$strings["Dislikes:"] = "Gefällt nicht:"; -App::$strings["Contact information and Social Networks:"] = "Kontaktinformation und soziale Netzwerke:"; -App::$strings["My other channels:"] = "Meine anderen Kanäle:"; -App::$strings["Musical interests:"] = "Musikalische Interessen:"; -App::$strings["Books, literature:"] = "Bücher, Literatur:"; -App::$strings["Television:"] = "Fernsehen:"; -App::$strings["Film/dance/culture/entertainment:"] = "Film/Tanz/Kultur/Unterhaltung:"; -App::$strings["Love/Romance:"] = "Liebe/Romantik:"; -App::$strings["Work/employment:"] = "Arbeit/Anstellung:"; -App::$strings["School/education:"] = "Schule/Ausbildung:"; -App::$strings["Like this thing"] = "Gefällt mir"; -App::$strings["New window"] = "Neues Fenster"; -App::$strings["Open the selected location in a different window or browser tab"] = "Öffne die markierte Adresse in einem neuen Browserfenster oder Tab"; -App::$strings["User '%s' deleted"] = "Benutzer '%s' gelöscht"; -App::$strings["%d invitation available"] = array( - 0 => "%d Einladung verfügbar", - 1 => "%d Einladungen verfügbar", -); -App::$strings["Find Channels"] = "Finde Kanäle"; -App::$strings["Enter name or interest"] = "Name oder Interessen eingeben"; -App::$strings["Connect/Follow"] = "Verbinden/Folgen"; -App::$strings["Examples: Robert Morgenstein, Fishing"] = "Beispiele: Robert Morgenstein, Angeln"; -App::$strings["Random Profile"] = "Zufallsprofil"; -App::$strings["Invite Friends"] = "Lade Freunde ein"; -App::$strings["Advanced example: name=fred and country=iceland"] = "Fortgeschrittenes Beispiel: name=fred and country=iceland"; -App::$strings["Saved Folders"] = "Gespeicherte Ordner"; -App::$strings["Everything"] = "Alles"; -App::$strings["Categories"] = "Kategorien"; -App::$strings["%d connection in common"] = array( - 0 => "%d gemeinsame Verbindung", - 1 => "%d gemeinsame Verbindungen", -); -App::$strings["show more"] = "mehr zeigen"; -App::$strings["Logged out."] = "Ausgeloggt."; -App::$strings["Failed authentication"] = "Authentifizierung fehlgeschlagen"; -App::$strings["Login failed."] = "Login fehlgeschlagen."; -App::$strings[" and "] = "und"; -App::$strings["public profile"] = "öffentliches Profil"; -App::$strings["%1\$s changed %2\$s to “%3\$s”"] = "%1\$s hat %2\$s auf “%3\$s” geändert"; -App::$strings["Visit %1\$s's %2\$s"] = "Besuche %1\$s's %2\$s"; -App::$strings["%1\$s has an updated %2\$s, changing %3\$s."] = "%1\$s hat ein aktualisiertes %2\$s, %3\$s wurde verändert."; +App::$strings[" by "] = "von"; +App::$strings[" on "] = "am"; +App::$strings["Embedded content"] = "Eingebetteter Inhalt"; +App::$strings["Embedding disabled"] = "Einbetten deaktiviert"; +App::$strings["Attachments:"] = "Anhänge:"; +App::$strings["\$Projectname event notification:"] = "\$Projectname-Terminbenachrichtigung:"; +App::$strings["Can view my normal stream and posts"] = "Kann meine normalen Beiträge sehen"; +App::$strings["Can view my webpages"] = "Kann meine Webseiten sehen"; +App::$strings["Can post on my channel page (\"wall\")"] = "Kann auf meiner Kanal-Seite (\"wall\") Beiträge veröffentlichen"; +App::$strings["Can like/dislike stuff"] = "Kann andere Elemente mögen/nicht mögen"; +App::$strings["Profiles and things other than posts/comments"] = "Profile und alles außer Beiträge und Kommentare"; +App::$strings["Can forward to all my channel contacts via post @mentions"] = "Kann an alle meine Kontakte via @-Erwähnung Nachrichten weiterleiten"; +App::$strings["Advanced - useful for creating group forum channels"] = "Fortgeschritten - sinnvoll, um Gruppen-Kanäle/-Foren zu erstellen"; +App::$strings["Can chat with me (when available)"] = "Kann mit mir chatten (wenn verfügbar)"; +App::$strings["Can write to my file storage and photos"] = "Kann in meine Datei- und Bilderordner schreiben"; +App::$strings["Can edit my webpages"] = "Kann meine Webseiten bearbeiten"; +App::$strings["Somewhat advanced - very useful in open communities"] = "Etwas fortgeschritten – sehr nützlich in offenen Gemeinschaften"; +App::$strings["Can administer my channel resources"] = "Kann meine Kanäle administrieren"; +App::$strings["Extremely advanced. Leave this alone unless you know what you are doing"] = "Sehr fortgeschritten. Bearbeite das nur, wenn Du genau weißt, was Du tust"; App::$strings["%1\$s is now connected with %2\$s"] = "%1\$s ist jetzt mit %2\$s verbunden"; App::$strings["%1\$s poked %2\$s"] = "%1\$s stupste %2\$s an"; -App::$strings["poked"] = "stupste"; App::$strings["View %s's profile @ %s"] = "%ss Profil auf %s ansehen"; App::$strings["Categories:"] = "Kategorien:"; App::$strings["Filed under:"] = "Gespeichert unter:"; @@ -2080,7 +2971,6 @@ App::$strings["Status Messages and Posts"] = "Statusnachrichten und Beiträge"; App::$strings["About"] = "Über"; App::$strings["Profile Details"] = "Profil-Details"; App::$strings["Files and Storage"] = "Dateien und Speicher"; -App::$strings["Chatrooms"] = "Chaträume"; App::$strings["Saved Bookmarks"] = "Gespeicherte Lesezeichen"; App::$strings["Manage Webpages"] = "Webseiten verwalten"; App::$strings["__ctx:noun__ Attending"] = array( @@ -2111,215 +3001,14 @@ App::$strings["__ctx:relative_date__ second"] = array( 0 => "Sekunde", 1 => "Sekunden", ); -App::$strings["Tags"] = "Schlagwörter"; -App::$strings["Keywords"] = "Schlüsselwörter"; -App::$strings["have"] = "habe"; -App::$strings["has"] = "hat"; -App::$strings["want"] = "will"; -App::$strings["wants"] = "will"; -App::$strings["likes"] = "gefällt"; -App::$strings["dislikes"] = "missfällt"; -App::$strings["prev"] = "vorherige"; -App::$strings["first"] = "erste"; -App::$strings["last"] = "letzte"; -App::$strings["next"] = "nächste"; -App::$strings["older"] = "älter"; -App::$strings["newer"] = "neuer"; -App::$strings["No connections"] = "Keine Verbindungen"; -App::$strings["View all %s connections"] = "Alle Verbindungen von %s anzeigen"; -App::$strings["poke"] = "anstupsen"; -App::$strings["ping"] = "anpingen"; -App::$strings["pinged"] = "pingte"; -App::$strings["prod"] = "knuffen"; -App::$strings["prodded"] = "knuffte"; -App::$strings["slap"] = "ohrfeigen"; -App::$strings["slapped"] = "ohrfeigte"; -App::$strings["finger"] = "befummeln"; -App::$strings["fingered"] = "befummelte"; -App::$strings["rebuff"] = "eine Abfuhr erteilen"; -App::$strings["rebuffed"] = "zurückgewiesen"; -App::$strings["happy"] = "glücklich"; -App::$strings["sad"] = "traurig"; -App::$strings["mellow"] = "sanft"; -App::$strings["tired"] = "müde"; -App::$strings["perky"] = "frech"; -App::$strings["angry"] = "sauer"; -App::$strings["stupefied"] = "verblüfft"; -App::$strings["puzzled"] = "verwirrt"; -App::$strings["interested"] = "interessiert"; -App::$strings["bitter"] = "verbittert"; -App::$strings["cheerful"] = "fröhlich"; -App::$strings["alive"] = "lebendig"; -App::$strings["annoyed"] = "verärgert"; -App::$strings["anxious"] = "unruhig"; -App::$strings["cranky"] = "schrullig"; -App::$strings["disturbed"] = "verstört"; -App::$strings["frustrated"] = "frustriert"; -App::$strings["depressed"] = "deprimiert"; -App::$strings["motivated"] = "motiviert"; -App::$strings["relaxed"] = "entspannt"; -App::$strings["surprised"] = "überrascht"; -App::$strings["May"] = "Mai"; -App::$strings["Unknown Attachment"] = "Unbekannter Anhang"; -App::$strings["unknown"] = "unbekannt"; -App::$strings["remove category"] = "Kategorie entfernen"; -App::$strings["remove from file"] = "aus der Datei entfernen"; -App::$strings["default"] = "Standard"; -App::$strings["Page layout"] = "Seiten-Layout"; -App::$strings["You can create your own with the layouts tool"] = "Mit dem Gestaltungswerkzeug kannst Du Deine eigenen Layouts erstellen"; -App::$strings["Page content type"] = "Art des Seiteninhalts"; -App::$strings["Select an alternate language"] = "Wähle eine alternative Sprache"; -App::$strings["activity"] = "Aktivität"; -App::$strings["Design Tools"] = "Gestaltungswerkzeuge"; -App::$strings["Pages"] = "Seiten"; -App::$strings["Import website..."] = "Webseite importieren..."; -App::$strings["Select folder to import"] = "Ordner zum Importieren auswählen"; -App::$strings["Import from a zipped folder:"] = "Aus einem gezippten Ordner importieren:"; -App::$strings["Import from cloud files:"] = "Aus Cloud-Dateien importieren:"; -App::$strings["/cloud/channel/path/to/folder"] = "/Cloud/Kanal/Pfad/zum/Ordner"; -App::$strings["Enter path to website files"] = "Pfad zu Webseitendateien eingeben"; -App::$strings["Select folder"] = "Ordner auswählen"; -App::$strings["Export website..."] = "Webseite exportieren..."; -App::$strings["Export to a zip file"] = "In eine ZIP-Datei exportieren"; -App::$strings["website.zip"] = "website.zip"; -App::$strings["Enter a name for the zip file."] = "Geben Sie einen für die ZIP-Datei ein."; -App::$strings["Export to cloud files"] = "In Cloud-Dateien exportieren"; -App::$strings["/path/to/export/folder"] = "/Pfad/zum/exportierenden/Ordner"; -App::$strings["Enter a path to a cloud files destination."] = "Gib den Pfad zu einem Datei-Speicherort in der Cloud ein."; -App::$strings["Specify folder"] = "Ordner angeben"; -App::$strings["Public Timeline"] = "Öffentliche Zeitleiste"; -App::$strings["Directory Options"] = "Verzeichnisoptionen"; -App::$strings["Safe Mode"] = "Sicherer Modus"; -App::$strings["Public Forums Only"] = "Nur öffentliche Foren"; -App::$strings["This Website Only"] = "Nur dieser Hub"; -App::$strings["No recipient provided."] = "Kein Empfänger angegeben"; -App::$strings["[no subject]"] = "[no subject]"; -App::$strings["Unable to determine sender."] = "Kann Absender nicht bestimmen."; -App::$strings["Stored post could not be verified."] = "Gespeicherter Beitrag konnten nicht überprüft werden."; -App::$strings["System"] = "System"; -App::$strings["New App"] = "Neue App"; -App::$strings["Suggestions"] = "Vorschläge"; -App::$strings["See more..."] = "Mehr anzeigen …"; -App::$strings["You have %1$.0f of %2$.0f allowed connections."] = "Du bist %1$.0f von maximal %2$.0f erlaubten Verbindungen eingegangen."; -App::$strings["Add New Connection"] = "Neue Verbindung hinzufügen"; -App::$strings["Enter channel address"] = "Adresse des Kanals eingeben"; -App::$strings["Examples: bob@example.com, https://example.com/barbara"] = "Beispiele: bob@beispiel.com, http://beispiel.com/barbara"; -App::$strings["Notes"] = "Notizen"; -App::$strings["Remove term"] = "Eintrag löschen"; -App::$strings["Saved Searches"] = "Gespeicherte Suchanfragen"; -App::$strings["Archives"] = "Archive"; -App::$strings["Refresh"] = "Aktualisieren"; -App::$strings["Account settings"] = "Konto-Einstellungen"; -App::$strings["Channel settings"] = "Kanal-Einstellungen"; -App::$strings["Additional features"] = "Zusätzliche Funktionen"; -App::$strings["Feature/Addon settings"] = "Plugin-Einstellungen"; -App::$strings["Display settings"] = "Anzeige-Einstellungen"; -App::$strings["Manage locations"] = "Klon-Adressen verwalten"; -App::$strings["Export channel"] = "Kanal exportieren"; -App::$strings["Connected apps"] = "Verbundene Apps"; -App::$strings["Premium Channel Settings"] = "Premium-Kanal-Einstellungen"; -App::$strings["Private Mail Menu"] = "Private Nachrichten"; -App::$strings["Combined View"] = "Kombinierte Anzeige"; -App::$strings["Conversations"] = "Konversationen"; -App::$strings["Received Messages"] = "Erhaltene Nachrichten"; -App::$strings["Sent Messages"] = "Gesendete Nachrichten"; -App::$strings["No messages."] = "Keine Nachrichten."; -App::$strings["Delete conversation"] = "Unterhaltung löschen"; -App::$strings["Events Tools"] = "Kalenderwerkzeuge"; -App::$strings["Export Calendar"] = "Kalender exportieren"; -App::$strings["Import Calendar"] = "Kalender importieren"; -App::$strings["Overview"] = "Übersicht"; -App::$strings["Chat Members"] = "Chatmitglieder"; -App::$strings["Wiki List"] = "Wikiliste"; -App::$strings["Wiki Pages"] = "Wikiseiten"; -App::$strings["Bookmarked Chatrooms"] = "Gespeicherte Chatrooms"; -App::$strings["Suggested Chatrooms"] = "Chatraum-Vorschläge"; -App::$strings["photo/image"] = "Foto/Bild"; -App::$strings["Click to show more"] = "Klick, um mehr anzuzeigen"; -App::$strings["Rating Tools"] = "Bewertungswerkzeuge"; -App::$strings["Rate Me"] = "Bewerte mich"; -App::$strings["View Ratings"] = "Bewertungen ansehen"; -App::$strings["Forums"] = "Foren"; -App::$strings["Tasks"] = "Aufgaben"; -App::$strings["Documentation"] = "Dokumentation"; -App::$strings["Member registrations waiting for confirmation"] = "Nutzer-Anmeldungen, die auf Bestätigung warten"; -App::$strings["Inspect queue"] = "Warteschlange kontrollieren"; -App::$strings["DB updates"] = "DB-Aktualisierungen"; -App::$strings["Plugin Features"] = "Plug-In Funktionen"; -App::$strings["Invalid data packet"] = "Ungültiges Datenpaket"; -App::$strings["Unable to verify channel signature"] = "Konnte die Signatur des Kanals nicht verifizieren"; -App::$strings["Unable to verify site signature for %s"] = "Kann die Signatur der Seite von %s nicht verifizieren"; -App::$strings["invalid target signature"] = "Ungültige Signatur des Ziels"; -App::$strings["General Features"] = "Allgemeine Funktionen"; -App::$strings["Content Expiration"] = "Verfall von Inhalten"; -App::$strings["Remove posts/comments and/or private messages at a future time"] = "Ermöglicht das automatische Löschen von Beiträgen, Kommentaren und/oder privaten Nachrichten zu einem zukünftigen Datum."; -App::$strings["Multiple Profiles"] = "Mehrfachprofile"; -App::$strings["Ability to create multiple profiles"] = "Ermöglicht das Anlegen mehrerer Profile pro Kanal"; -App::$strings["Advanced Profiles"] = "Erweiterte Profile"; -App::$strings["Additional profile sections and selections"] = "Stellt zusätzliche Bereiche und Felder im Profil zur Verfügung"; -App::$strings["Profile Import/Export"] = "Profil-Import/Export"; -App::$strings["Save and load profile details across sites/channels"] = "Ermöglicht das Speichern von Profilen, um sie in einen anderen Kanal zu importieren"; -App::$strings["Web Pages"] = "Webseiten"; -App::$strings["Provide managed web pages on your channel"] = "Ermöglicht das Erstellen von Webseiten in Deinem Kanal"; -App::$strings["Provide a wiki for your channel"] = "Stelle ein Wiki in Deinem Kanal zur Verfügung"; -App::$strings["Private Notes"] = "Private Notizen"; -App::$strings["Enables a tool to store notes and reminders (note: not encrypted)"] = "Aktiviert ein Werkzeug mit dem Notizen und Erinnerungen gespeichert werden können (Hinweis: nicht verschlüsselt)"; -App::$strings["Navigation Channel Select"] = "Kanal-Auswahl in der Navigationsleiste"; -App::$strings["Change channels directly from within the navigation dropdown menu"] = "Ermöglicht den direkten Wechsel zu anderen Kanälen über das Navigationsmenü"; -App::$strings["Photo Location"] = "Aufnahmeort"; -App::$strings["If location data is available on uploaded photos, link this to a map."] = "Verlinkt den Aufnahmeort von Fotos (falls verfügbar) auf einer Karte"; -App::$strings["Access Controlled Chatrooms"] = "Zugriffskontrollierte Chaträume"; -App::$strings["Provide chatrooms and chat services with access control."] = "Bieten Sie Chaträume und Chatdienste mit Zugriffskontrolle an."; -App::$strings["Smart Birthdays"] = "Smarte Geburtstage"; -App::$strings["Make birthday events timezone aware in case your friends are scattered across the planet."] = "Stellt für Geburtstage einen Zeitzonenbezug her, falls deine Freunde über den ganzen Planeten verstreut sind."; -App::$strings["Post Composition Features"] = "Nachbearbeitungsfunktionen"; -App::$strings["Large Photos"] = "Große Fotos"; -App::$strings["Include large (1024px) photo thumbnails in posts. If not enabled, use small (640px) photo thumbnails"] = "Große Vorschaubilder (1024px) in Beiträgen anzeigen. Falls nicht aktiviert, werden kleine Vorschaubilder (640px) verwendet."; -App::$strings["Automatically import channel content from other channels or feeds"] = "Ermöglicht den automatischen Import von Inhalten für diesen Kanal von anderen Kanälen oder Feeds"; -App::$strings["Even More Encryption"] = "Noch mehr Verschlüsselung"; -App::$strings["Allow optional encryption of content end-to-end with a shared secret key"] = "Ermöglicht optional die zusätzliche Verschlüsselung von Inhalten (Ende-zu-Ende mit geteiltem Schlüssel)"; -App::$strings["Enable Voting Tools"] = "Umfragewerkzeuge aktivieren"; -App::$strings["Provide a class of post which others can vote on"] = "Aktiviert die Umfragewerkzeuge, um anderen die Möglichkeit zu geben, einem Beitrag zuzustimmen, ihn abzulehnen oder sich zu enthalten. (Muss im Beitrag selbst noch aktiviert werden.)"; -App::$strings["Disable Comments"] = "Kommentare deaktivieren"; -App::$strings["Provide the option to disable comments for a post"] = "Ermöglicht, die Kommentarfunktion für einzelne Beiträge abzuschalten"; -App::$strings["Delayed Posting"] = "Verzögertes Senden"; -App::$strings["Allow posts to be published at a later date"] = "Ermöglicht es, Beiträge zu einem späteren Zeitpunkt zu veröffentlichen"; -App::$strings["Suppress Duplicate Posts/Comments"] = "Doppelte Beiträge unterdrücken"; -App::$strings["Prevent posts with identical content to be published with less than two minutes in between submissions."] = "Verhindert, dass innerhalb von zwei Minuten Beiträge mit identischem Inhalt veröffentlicht werden."; -App::$strings["Network and Stream Filtering"] = "Netzwerk- und Stream-Filter"; -App::$strings["Search by Date"] = "Suche nach Datum"; -App::$strings["Ability to select posts by date ranges"] = "Möglichkeit, Beiträge nach Zeiträumen auszuwählen"; -App::$strings["Enable management and selection of privacy groups"] = "Auswahl und Verwaltung von Gruppen für Kanäle aktivieren"; -App::$strings["Save search terms for re-use"] = "Ermöglicht das Abspeichern von Suchbegriffen zur Wiederverwendung"; -App::$strings["Network Personal Tab"] = "Persönlicher Netzwerkreiter"; -App::$strings["Enable tab to display only Network posts that you've interacted on"] = "Aktiviert einen Reiter in der Grid-Ansicht, der nur Netzwerk-Beiträge anzeigt, mit denen Du interagiert hast"; -App::$strings["Network New Tab"] = "Netzwerkreiter Neu"; -App::$strings["Enable tab to display all new Network activity"] = "Aktiviert einen Reiter in der Grid-Ansicht, der alle neuen Netzwerkaktivitäten anzeigt"; -App::$strings["Affinity Tool"] = "Beziehungs-Tool"; -App::$strings["Filter stream activity by depth of relationships"] = "Aktiviert ein Werkzeug in der Grid-Ansicht, das den Stream nach Grad der Beziehung filtern kann"; -App::$strings["Show friend and connection suggestions"] = "Freund- und Verbindungsvorschläge anzeigen"; -App::$strings["Post/Comment Tools"] = "Beitrag-/Kommentar-Tools"; -App::$strings["Community Tagging"] = "Gemeinschaftliches Verschlagworten"; -App::$strings["Ability to tag existing posts"] = "Ermöglicht das Verschlagworten existierender Beiträge"; -App::$strings["Post Categories"] = "Beitrags-Kategorien"; -App::$strings["Add categories to your posts"] = "Aktiviert Kategorien für Beiträge"; -App::$strings["Emoji Reactions"] = "Emoji Reaktionen"; -App::$strings["Add emoji reaction ability to posts"] = "Aktiviert Emoji-Reaktionen für Beiträge"; -App::$strings["Ability to file posts under folders"] = "Möglichkeit, Beiträge in Verzeichnissen zu sammeln"; -App::$strings["Dislike Posts"] = "Gefällt-mir-nicht-Beiträge"; -App::$strings["Ability to dislike posts/comments"] = "Aktiviert die „Gefällt mir nicht“-Schaltfläche"; -App::$strings["Star Posts"] = "Beiträge mit Sternchen versehen"; -App::$strings["Ability to mark special posts with a star indicator"] = "Ermöglicht die lokale Markierung spezieller Beiträge mit einem Sternchen-Symbol"; -App::$strings["Tag Cloud"] = "Schlagwort-Wolke"; -App::$strings["Provide a personal tag cloud on your channel page"] = "Aktiviert die Anzeige einer Schlagwort-Wolke (Tag Cloud) auf Deiner Kanal-Seite"; -App::$strings["Connection Filtering"] = "Filter für Verbindungen"; -App::$strings["Filter incoming posts from connections based on keywords/content"] = "Ermöglicht die Filterung eingehender Beiträge anhand von Schlüsselwörtern (muss an der Verbindung konfiguriert werden)"; -App::$strings["Premium Channel"] = "Premium-Kanal"; -App::$strings["Allows you to set restrictions and terms on those that connect with your channel"] = "Ermöglicht es, Einschränkungen und Bedingungen für Verbindungen dieses Kanals festzulegen"; -App::$strings["Advanced Directory Search"] = "Erweiterte Verzeichnissuche"; -App::$strings["Allows creation of complex directory search queries"] = "Ermöglicht die Erstellung komplexer Verzeichnis-Suchabfragen"; -App::$strings["Advanced Theme and Layout Settings"] = "Erweiterte Design- und Layout-Einstellungen"; -App::$strings["Allows fine tuning of themes and page layouts"] = "Erlaubt die Feineinstellung von Designs und Seitenlayouts"; +App::$strings["Image/photo"] = "Bild/Foto"; +App::$strings["Encrypted content"] = "Verschlüsselter Inhalt"; +App::$strings["Install %s element: "] = "Element %s installieren: "; +App::$strings["This post contains an installable %s element, however you lack permissions to install it on this site."] = "Dieser Beitrag beinhaltet ein installierbares %s Element, aber Du hast nicht die nötigen Rechte, um es auf diesem Hub zu installieren."; +App::$strings["%1\$s wrote the following %2\$s %3\$s"] = "%1\$s schrieb den folgenden %2\$s %3\$s"; +App::$strings["Click to open/close"] = "Klicke zum Öffnen/Schließen"; +App::$strings["spoiler"] = "Spoiler"; +App::$strings["$1 wrote:"] = "$1 schrieb:"; App::$strings["Focus (Hubzilla default)"] = "Focus (Voreinstellung für Hubzilla)"; App::$strings["Theme settings"] = "Theme-Einstellungen"; App::$strings["Narrow navbar"] = "Schmale Navigationsleiste"; diff --git a/view/en-au/hstrings.php b/view/en-au/hstrings.php new file mode 100644 index 000000000..95f8c4e00 --- /dev/null +++ b/view/en-au/hstrings.php @@ -0,0 +1,5 @@ +, 2015 # inboxwall , 2015 -# jeroenpraat , 2015 +# jeroenpraat , 2015 # Manuel Jiménez Friaza , 2015-2016 # Rafael, 2015 # tony baldwin , 2014 @@ -13,8 +13,8 @@ msgid "" msgstr "" "Project-Id-Version: Redmatrix\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-09-30 00:02-0700\n" -"PO-Revision-Date: 2016-10-05 11:10+0000\n" +"POT-Creation-Date: 2016-12-16 00:04-0800\n" +"PO-Revision-Date: 2016-12-17 11:37+0000\n" "Last-Translator: Manuel Jiménez Friaza \n" "Language-Team: Spanish (Spain) (http://www.transifex.com/Friendica/red-matrix/language/es_ES/)\n" "MIME-Version: 1.0\n" @@ -23,274 +23,294 @@ msgstr "" "Language: es_ES\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../Zotlabs/Access/PermissionRoles.php:182 +#: ../../Zotlabs/Access/PermissionRoles.php:227 #: ../../include/permissions.php:945 msgid "Social Networking" msgstr "Redes sociales" -#: ../../Zotlabs/Access/PermissionRoles.php:183 +#: ../../Zotlabs/Access/PermissionRoles.php:228 #: ../../include/permissions.php:945 msgid "Social - Mostly Public" msgstr "Social - Público en su mayor parte" -#: ../../Zotlabs/Access/PermissionRoles.php:184 +#: ../../Zotlabs/Access/PermissionRoles.php:229 #: ../../include/permissions.php:945 msgid "Social - Restricted" msgstr "Social - Restringido" -#: ../../Zotlabs/Access/PermissionRoles.php:185 +#: ../../Zotlabs/Access/PermissionRoles.php:230 #: ../../include/permissions.php:945 msgid "Social - Private" msgstr "Social - Privado" -#: ../../Zotlabs/Access/PermissionRoles.php:188 +#: ../../Zotlabs/Access/PermissionRoles.php:233 #: ../../include/permissions.php:946 msgid "Community Forum" msgstr "Foro de discusión" -#: ../../Zotlabs/Access/PermissionRoles.php:189 +#: ../../Zotlabs/Access/PermissionRoles.php:234 #: ../../include/permissions.php:946 msgid "Forum - Mostly Public" msgstr "Foro - Público en su mayor parte" -#: ../../Zotlabs/Access/PermissionRoles.php:190 +#: ../../Zotlabs/Access/PermissionRoles.php:235 #: ../../include/permissions.php:946 msgid "Forum - Restricted" msgstr "Foro - Restringido" -#: ../../Zotlabs/Access/PermissionRoles.php:191 +#: ../../Zotlabs/Access/PermissionRoles.php:236 #: ../../include/permissions.php:946 msgid "Forum - Private" msgstr "Foro - Privado" -#: ../../Zotlabs/Access/PermissionRoles.php:194 +#: ../../Zotlabs/Access/PermissionRoles.php:239 #: ../../include/permissions.php:947 msgid "Feed Republish" msgstr "Republicar un \"feed\"" -#: ../../Zotlabs/Access/PermissionRoles.php:195 +#: ../../Zotlabs/Access/PermissionRoles.php:240 #: ../../include/permissions.php:947 msgid "Feed - Mostly Public" msgstr "Feed - Público en su mayor parte" -#: ../../Zotlabs/Access/PermissionRoles.php:196 +#: ../../Zotlabs/Access/PermissionRoles.php:241 #: ../../include/permissions.php:947 msgid "Feed - Restricted" msgstr "Feed - Restringido" -#: ../../Zotlabs/Access/PermissionRoles.php:199 +#: ../../Zotlabs/Access/PermissionRoles.php:244 #: ../../include/permissions.php:948 msgid "Special Purpose" msgstr "Propósito especial" -#: ../../Zotlabs/Access/PermissionRoles.php:200 +#: ../../Zotlabs/Access/PermissionRoles.php:245 #: ../../include/permissions.php:948 msgid "Special - Celebrity/Soapbox" msgstr "Especial - Celebridad / Tribuna improvisada" -#: ../../Zotlabs/Access/PermissionRoles.php:201 +#: ../../Zotlabs/Access/PermissionRoles.php:246 #: ../../include/permissions.php:948 msgid "Special - Group Repository" msgstr "Especial - Repositorio de grupo" -#: ../../Zotlabs/Access/PermissionRoles.php:204 -#: ../../Zotlabs/Module/New_channel.php:132 +#: ../../Zotlabs/Access/PermissionRoles.php:249 #: ../../Zotlabs/Module/Register.php:213 -#: ../../Zotlabs/Module/Settings/Channel.php:442 -#: ../../include/permissions.php:949 ../../include/selectors.php:49 -#: ../../include/selectors.php:66 ../../include/selectors.php:104 -#: ../../include/selectors.php:140 +#: ../../Zotlabs/Module/New_channel.php:132 +#: ../../Zotlabs/Module/Settings/Channel.php:445 +#: ../../extend/addon/addon/cdav/cdav.php:277 +#: ../../extend/addon/addon/cdav/cdav.php:284 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1148 +#: ../../include/selectors.php:49 ../../include/selectors.php:66 +#: ../../include/selectors.php:104 ../../include/selectors.php:140 +#: ../../include/permissions.php:949 msgid "Other" msgstr "Otro" -#: ../../Zotlabs/Access/PermissionRoles.php:205 +#: ../../Zotlabs/Access/PermissionRoles.php:250 #: ../../include/permissions.php:949 msgid "Custom/Expert Mode" msgstr "Modo personalizado/experto" -#: ../../Zotlabs/Access/Permissions.php:30 +#: ../../Zotlabs/Access/Permissions.php:46 msgid "Can view my channel stream and posts" msgstr "Pueden verse la actividad y publicaciones de mi canal" -#: ../../Zotlabs/Access/Permissions.php:31 ../../include/permissions.php:42 +#: ../../Zotlabs/Access/Permissions.php:47 ../../include/permissions.php:42 msgid "Can send me their channel stream and posts" msgstr "Se me pueden enviar entradas y contenido de un canal" -#: ../../Zotlabs/Access/Permissions.php:32 ../../include/permissions.php:36 +#: ../../Zotlabs/Access/Permissions.php:48 ../../include/permissions.php:36 msgid "Can view my default channel profile" msgstr "Puede verse mi perfil de canal predeterminado." -#: ../../Zotlabs/Access/Permissions.php:33 ../../include/permissions.php:37 +#: ../../Zotlabs/Access/Permissions.php:49 ../../include/permissions.php:37 msgid "Can view my connections" msgstr "Pueden verse mis conexiones" -#: ../../Zotlabs/Access/Permissions.php:34 ../../include/permissions.php:38 +#: ../../Zotlabs/Access/Permissions.php:50 ../../include/permissions.php:38 msgid "Can view my file storage and photos" msgstr "Pueden verse mi repositorio de ficheros y mis fotos" -#: ../../Zotlabs/Access/Permissions.php:35 +#: ../../Zotlabs/Access/Permissions.php:51 msgid "Can upload/modify my file storage and photos" msgstr "Se pueden subir / modificar elementos en mi repositorio de ficheros y fotos" -#: ../../Zotlabs/Access/Permissions.php:36 +#: ../../Zotlabs/Access/Permissions.php:52 msgid "Can view my channel webpages" msgstr "Pueden verse las páginas personales de mi canal" -#: ../../Zotlabs/Access/Permissions.php:37 +#: ../../Zotlabs/Access/Permissions.php:53 msgid "Can create/edit my channel webpages" msgstr "Pueden crearse / modificarse páginas personales en mi canal" -#: ../../Zotlabs/Access/Permissions.php:38 +#: ../../Zotlabs/Access/Permissions.php:54 msgid "Can post on my channel (wall) page" msgstr "Pueden crearse entradas en mi página de inicio del canal (“muro”)" -#: ../../Zotlabs/Access/Permissions.php:39 ../../include/permissions.php:44 +#: ../../Zotlabs/Access/Permissions.php:55 ../../include/permissions.php:44 msgid "Can comment on or like my posts" msgstr "Pueden publicarse comentarios en mis publicaciones o marcar mis entradas con 'me gusta'." -#: ../../Zotlabs/Access/Permissions.php:40 ../../include/permissions.php:45 +#: ../../Zotlabs/Access/Permissions.php:56 ../../include/permissions.php:45 msgid "Can send me private mail messages" msgstr "Se me pueden enviar mensajes privados" -#: ../../Zotlabs/Access/Permissions.php:41 +#: ../../Zotlabs/Access/Permissions.php:57 msgid "Can like/dislike profiles and profile things" msgstr "Se puede mostrar agrado o desagrado (Me gusta / No me gusta) en mis perfiles y sus distintos apartados" -#: ../../Zotlabs/Access/Permissions.php:42 +#: ../../Zotlabs/Access/Permissions.php:58 msgid "Can forward to all my channel connections via @+ mentions in posts" msgstr "Pueden reenviarse publicaciones a todas las conexiones de mi canal a través de @+ menciones en las entradas" -#: ../../Zotlabs/Access/Permissions.php:43 +#: ../../Zotlabs/Access/Permissions.php:59 msgid "Can chat with me" msgstr "Se puede chatear conmigo" -#: ../../Zotlabs/Access/Permissions.php:44 ../../include/permissions.php:53 +#: ../../Zotlabs/Access/Permissions.php:60 ../../include/permissions.php:53 msgid "Can source my public posts in derived channels" -msgstr "Pueden utilizarse mis publicaciones públicas como origen de contenidos en canales derivados" +msgstr "Pueden utilizarse mis entradas públicas como origen de contenidos en canales derivados" -#: ../../Zotlabs/Access/Permissions.php:45 +#: ../../Zotlabs/Access/Permissions.php:61 msgid "Can administer my channel" msgstr "Se puede administrar mi canal" -#: ../../Zotlabs/Storage/Browser.php:107 ../../Zotlabs/Storage/Browser.php:238 +#: ../../Zotlabs/Storage/Browser.php:106 ../../Zotlabs/Storage/Browser.php:237 msgid "parent" msgstr "padre" -#: ../../Zotlabs/Storage/Browser.php:131 ../../include/text.php:2711 +#: ../../Zotlabs/Storage/Browser.php:130 ../../include/text.php:2682 msgid "Collection" msgstr "Colección" -#: ../../Zotlabs/Storage/Browser.php:134 +#: ../../Zotlabs/Storage/Browser.php:133 msgid "Principal" msgstr "Principal" -#: ../../Zotlabs/Storage/Browser.php:137 +#: ../../Zotlabs/Storage/Browser.php:136 msgid "Addressbook" msgstr "Libreta de direcciones" -#: ../../Zotlabs/Storage/Browser.php:140 +#: ../../Zotlabs/Storage/Browser.php:139 msgid "Calendar" msgstr "Calendario" -#: ../../Zotlabs/Storage/Browser.php:143 +#: ../../Zotlabs/Storage/Browser.php:142 msgid "Schedule Inbox" msgstr "Programar bandeja de entrada" -#: ../../Zotlabs/Storage/Browser.php:146 +#: ../../Zotlabs/Storage/Browser.php:145 msgid "Schedule Outbox" msgstr "Programar bandeja de salida" -#: ../../Zotlabs/Storage/Browser.php:164 ../../Zotlabs/Module/Photos.php:789 +#: ../../Zotlabs/Storage/Browser.php:163 ../../Zotlabs/Module/Photos.php:789 #: ../../Zotlabs/Module/Photos.php:1249 -#: ../../Zotlabs/Module/Embedphotos.php:147 ../../Zotlabs/Lib/Apps.php:490 -#: ../../Zotlabs/Lib/Apps.php:565 ../../include/conversation.php:1031 -#: ../../include/widgets.php:1683 +#: ../../Zotlabs/Module/Embedphotos.php:145 ../../Zotlabs/Lib/Apps.php:526 +#: ../../Zotlabs/Lib/Apps.php:603 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:745 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:746 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:753 +#: ../../include/widgets.php:1684 ../../include/conversation.php:1029 msgid "Unknown" msgstr "Desconocido" -#: ../../Zotlabs/Storage/Browser.php:225 ../../Zotlabs/Module/Fbrowser.php:85 -#: ../../Zotlabs/Lib/Apps.php:217 ../../include/nav.php:96 -#: ../../include/conversation.php:1679 +#: ../../Zotlabs/Storage/Browser.php:224 ../../Zotlabs/Module/Fbrowser.php:85 +#: ../../Zotlabs/Lib/Apps.php:219 ../../include/nav.php:96 +#: ../../include/conversation.php:1681 msgid "Files" msgstr "Ficheros" -#: ../../Zotlabs/Storage/Browser.php:226 +#: ../../Zotlabs/Storage/Browser.php:225 msgid "Total" msgstr "Total" -#: ../../Zotlabs/Storage/Browser.php:228 +#: ../../Zotlabs/Storage/Browser.php:227 msgid "Shared" msgstr "Compartido" -#: ../../Zotlabs/Storage/Browser.php:229 ../../Zotlabs/Storage/Browser.php:321 +#: ../../Zotlabs/Storage/Browser.php:228 ../../Zotlabs/Storage/Browser.php:321 #: ../../Zotlabs/Module/Menu.php:118 ../../Zotlabs/Module/New_channel.php:147 #: ../../Zotlabs/Module/Blocks.php:159 ../../Zotlabs/Module/Layouts.php:184 #: ../../Zotlabs/Module/Webpages.php:239 +#: ../../extend/addon/addon/cdav/include/widgets.php:127 +#: ../../extend/addon/addon/cdav/include/widgets.php:164 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1151 msgid "Create" msgstr "Crear" -#: ../../Zotlabs/Storage/Browser.php:230 ../../Zotlabs/Storage/Browser.php:323 +#: ../../Zotlabs/Storage/Browser.php:229 ../../Zotlabs/Storage/Browser.php:323 #: ../../Zotlabs/Module/Cover_photo.php:357 #: ../../Zotlabs/Module/Photos.php:816 ../../Zotlabs/Module/Photos.php:1370 -#: ../../Zotlabs/Module/Profile_photo.php:390 -#: ../../Zotlabs/Module/Embedphotos.php:159 ../../include/widgets.php:1696 +#: ../../Zotlabs/Module/Profile_photo.php:410 +#: ../../Zotlabs/Module/Embedphotos.php:157 +#: ../../extend/addon/addon/cdav/include/widgets.php:132 +#: ../../extend/addon/addon/cdav/include/widgets.php:168 +#: ../../include/widgets.php:1697 msgid "Upload" msgstr "Subir" -#: ../../Zotlabs/Storage/Browser.php:234 -#: ../../Zotlabs/Module/Admin/Channels.php:163 -#: ../../Zotlabs/Module/Sharedwithme.php:99 ../../Zotlabs/Module/Chat.php:250 +#: ../../Zotlabs/Storage/Browser.php:233 +#: ../../Zotlabs/Module/Admin/Channels.php:159 +#: ../../Zotlabs/Module/Sharedwithme.php:99 ../../Zotlabs/Module/Wiki.php:151 #: ../../Zotlabs/Module/Settings/Oauth.php:89 #: ../../Zotlabs/Module/Settings/Oauth.php:115 +#: ../../Zotlabs/Module/Chat.php:250 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1136 +#: ../../extend/addon/addon/rendezvous/rendezvous.php:164 msgid "Name" msgstr "Nombre" -#: ../../Zotlabs/Storage/Browser.php:235 +#: ../../Zotlabs/Storage/Browser.php:234 ../../Zotlabs/Module/Wiki.php:152 msgid "Type" msgstr "Tipo" -#: ../../Zotlabs/Storage/Browser.php:236 -#: ../../Zotlabs/Module/Sharedwithme.php:101 ../../include/text.php:1372 +#: ../../Zotlabs/Storage/Browser.php:235 +#: ../../Zotlabs/Module/Sharedwithme.php:101 ../../include/text.php:1390 msgid "Size" msgstr "Tamaño" -#: ../../Zotlabs/Storage/Browser.php:237 +#: ../../Zotlabs/Storage/Browser.php:236 #: ../../Zotlabs/Module/Sharedwithme.php:102 msgid "Last Modified" msgstr "Última modificación" -#: ../../Zotlabs/Storage/Browser.php:239 -#: ../../Zotlabs/Module/Admin/Profs.php:154 +#: ../../Zotlabs/Storage/Browser.php:238 #: ../../Zotlabs/Module/Connections.php:290 #: ../../Zotlabs/Module/Connections.php:310 -#: ../../Zotlabs/Module/Editblock.php:109 +#: ../../Zotlabs/Module/Admin/Profs.php:154 #: ../../Zotlabs/Module/Editlayout.php:114 #: ../../Zotlabs/Module/Editwebpage.php:145 ../../Zotlabs/Module/Menu.php:112 +#: ../../Zotlabs/Module/Editblock.php:109 ../../Zotlabs/Module/Editpost.php:84 #: ../../Zotlabs/Module/Blocks.php:160 ../../Zotlabs/Module/Layouts.php:192 -#: ../../Zotlabs/Module/Webpages.php:240 ../../Zotlabs/Module/Editpost.php:84 -#: ../../Zotlabs/Module/Thing.php:260 +#: ../../Zotlabs/Module/Webpages.php:240 ../../Zotlabs/Module/Wiki.php:144 +#: ../../Zotlabs/Module/Wiki.php:246 #: ../../Zotlabs/Module/Settings/Oauth.php:149 -#: ../../Zotlabs/Lib/ThreadItem.php:106 ../../Zotlabs/Lib/Apps.php:341 -#: ../../include/channel.php:959 ../../include/channel.php:963 +#: ../../Zotlabs/Module/Thing.php:260 ../../Zotlabs/Lib/ThreadItem.php:106 +#: ../../Zotlabs/Lib/Apps.php:346 +#: ../../extend/addon/addon/cdav/include/widgets.php:125 +#: ../../extend/addon/addon/cdav/include/widgets.php:161 +#: ../../include/channel.php:961 ../../include/channel.php:965 #: ../../include/page_widgets.php:9 ../../include/page_widgets.php:39 #: ../../include/menu.php:113 msgid "Edit" msgstr "Editar" -#: ../../Zotlabs/Storage/Browser.php:240 -#: ../../Zotlabs/Module/Admin/Accounts.php:174 -#: ../../Zotlabs/Module/Admin/Channels.php:153 -#: ../../Zotlabs/Module/Admin/Profs.php:155 +#: ../../Zotlabs/Storage/Browser.php:239 ../../Zotlabs/Module/Connedit.php:635 #: ../../Zotlabs/Module/Connections.php:263 -#: ../../Zotlabs/Module/Connedit.php:607 -#: ../../Zotlabs/Module/Editblock.php:134 +#: ../../Zotlabs/Module/Admin/Profs.php:155 +#: ../../Zotlabs/Module/Admin/Accounts.php:173 +#: ../../Zotlabs/Module/Admin/Channels.php:149 #: ../../Zotlabs/Module/Editlayout.php:137 -#: ../../Zotlabs/Module/Editwebpage.php:170 ../../Zotlabs/Module/Group.php:177 +#: ../../Zotlabs/Module/Editwebpage.php:170 +#: ../../Zotlabs/Module/Editblock.php:134 ../../Zotlabs/Module/Group.php:177 #: ../../Zotlabs/Module/Photos.php:1179 ../../Zotlabs/Module/Blocks.php:162 -#: ../../Zotlabs/Module/Webpages.php:242 ../../Zotlabs/Module/Thing.php:261 +#: ../../Zotlabs/Module/Webpages.php:242 #: ../../Zotlabs/Module/Settings/Oauth.php:150 -#: ../../Zotlabs/Lib/ThreadItem.php:126 ../../Zotlabs/Lib/Apps.php:342 -#: ../../include/conversation.php:660 +#: ../../Zotlabs/Module/Thing.php:261 ../../Zotlabs/Lib/ThreadItem.php:126 +#: ../../Zotlabs/Lib/Apps.php:347 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:864 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1153 +#: ../../include/conversation.php:656 msgid "Delete" msgstr "Eliminar" @@ -320,82 +340,90 @@ msgstr "Subir fichero" msgid "Drop files here to immediately upload" msgstr "Arrastre los ficheros aquí para subirlos de forma inmediata" -#: ../../Zotlabs/Web/Router.php:65 ../../Zotlabs/Web/WebServer.php:128 +#: ../../Zotlabs/Web/Router.php:67 ../../Zotlabs/Web/WebServer.php:128 #: ../../Zotlabs/Module/Achievements.php:34 -#: ../../Zotlabs/Module/Network.php:15 ../../Zotlabs/Module/Channel.php:104 -#: ../../Zotlabs/Module/Channel.php:229 ../../Zotlabs/Module/Channel.php:270 +#: ../../Zotlabs/Module/Register.php:77 ../../Zotlabs/Module/Connedit.php:397 #: ../../Zotlabs/Module/Authtest.php:16 ../../Zotlabs/Module/Bookmarks.php:61 -#: ../../Zotlabs/Module/Page.php:35 ../../Zotlabs/Module/Page.php:91 -#: ../../Zotlabs/Module/Mail.php:121 ../../Zotlabs/Module/Connections.php:33 +#: ../../Zotlabs/Module/Locs.php:87 ../../Zotlabs/Module/Page.php:35 +#: ../../Zotlabs/Module/Page.php:91 ../../Zotlabs/Module/Manage.php:10 +#: ../../Zotlabs/Module/Connections.php:33 #: ../../Zotlabs/Module/Cover_photo.php:277 #: ../../Zotlabs/Module/Cover_photo.php:290 -#: ../../Zotlabs/Module/Connedit.php:395 ../../Zotlabs/Module/Editblock.php:67 #: ../../Zotlabs/Module/Editlayout.php:67 #: ../../Zotlabs/Module/Editlayout.php:90 #: ../../Zotlabs/Module/Editwebpage.php:68 #: ../../Zotlabs/Module/Editwebpage.php:89 #: ../../Zotlabs/Module/Editwebpage.php:104 -#: ../../Zotlabs/Module/Editwebpage.php:126 ../../Zotlabs/Module/Menu.php:78 -#: ../../Zotlabs/Module/Appman.php:75 ../../Zotlabs/Module/Api.php:12 -#: ../../Zotlabs/Module/Pdledit.php:29 ../../Zotlabs/Module/Filestorage.php:23 +#: ../../Zotlabs/Module/Editwebpage.php:126 +#: ../../Zotlabs/Module/Channel.php:107 ../../Zotlabs/Module/Channel.php:237 +#: ../../Zotlabs/Module/Channel.php:277 ../../Zotlabs/Module/Network.php:15 +#: ../../Zotlabs/Module/Menu.php:78 ../../Zotlabs/Module/Appman.php:76 +#: ../../Zotlabs/Module/Filestorage.php:23 #: ../../Zotlabs/Module/Filestorage.php:78 #: ../../Zotlabs/Module/Filestorage.php:93 -#: ../../Zotlabs/Module/Filestorage.php:120 ../../Zotlabs/Module/Manage.php:10 -#: ../../Zotlabs/Module/Group.php:13 ../../Zotlabs/Module/Block.php:26 -#: ../../Zotlabs/Module/Block.php:76 ../../Zotlabs/Module/Invite.php:17 -#: ../../Zotlabs/Module/Invite.php:91 ../../Zotlabs/Module/Locs.php:87 -#: ../../Zotlabs/Module/Rate.php:113 ../../Zotlabs/Module/Like.php:181 -#: ../../Zotlabs/Module/Profiles.php:203 ../../Zotlabs/Module/Profiles.php:601 +#: ../../Zotlabs/Module/Filestorage.php:120 ../../Zotlabs/Module/Item.php:220 +#: ../../Zotlabs/Module/Item.php:230 ../../Zotlabs/Module/Item.php:1064 +#: ../../Zotlabs/Module/Settings.php:59 ../../Zotlabs/Module/Mail.php:163 +#: ../../Zotlabs/Module/Block.php:26 ../../Zotlabs/Module/Block.php:76 +#: ../../Zotlabs/Module/Invite.php:17 ../../Zotlabs/Module/Invite.php:94 +#: ../../Zotlabs/Module/Editblock.php:67 ../../Zotlabs/Module/Group.php:13 #: ../../Zotlabs/Module/Mitem.php:115 ../../Zotlabs/Module/Message.php:18 -#: ../../Zotlabs/Module/Setup.php:220 ../../Zotlabs/Module/Mood.php:116 -#: ../../Zotlabs/Module/Photos.php:73 ../../Zotlabs/Module/New_channel.php:77 +#: ../../Zotlabs/Module/Mood.php:116 ../../Zotlabs/Module/Photos.php:73 +#: ../../Zotlabs/Module/Setup.php:212 ../../Zotlabs/Module/Editpost.php:17 +#: ../../Zotlabs/Module/New_channel.php:77 #: ../../Zotlabs/Module/New_channel.php:104 -#: ../../Zotlabs/Module/Notifications.php:70 ../../Zotlabs/Module/Poke.php:137 +#: ../../Zotlabs/Module/Notifications.php:11 ../../Zotlabs/Module/Poke.php:137 +#: ../../Zotlabs/Module/Profiles.php:197 ../../Zotlabs/Module/Profiles.php:595 #: ../../Zotlabs/Module/Profile.php:68 ../../Zotlabs/Module/Profile.php:76 #: ../../Zotlabs/Module/Blocks.php:73 ../../Zotlabs/Module/Blocks.php:80 #: ../../Zotlabs/Module/Layouts.php:71 ../../Zotlabs/Module/Layouts.php:78 -#: ../../Zotlabs/Module/Layouts.php:89 -#: ../../Zotlabs/Module/Profile_photo.php:265 -#: ../../Zotlabs/Module/Profile_photo.php:278 -#: ../../Zotlabs/Module/Common.php:39 ../../Zotlabs/Module/Settings.php:59 -#: ../../Zotlabs/Module/Register.php:77 ../../Zotlabs/Module/Regmod.php:21 -#: ../../Zotlabs/Module/Webpages.php:116 ../../Zotlabs/Module/Editpost.php:17 -#: ../../Zotlabs/Module/Events.php:264 +#: ../../Zotlabs/Module/Layouts.php:89 ../../Zotlabs/Module/Rate.php:113 +#: ../../Zotlabs/Module/Like.php:181 +#: ../../Zotlabs/Module/Profile_photo.php:273 +#: ../../Zotlabs/Module/Profile_photo.php:286 +#: ../../Zotlabs/Module/Common.php:39 ../../Zotlabs/Module/Api.php:24 +#: ../../Zotlabs/Module/Regmod.php:21 ../../Zotlabs/Module/Pdledit.php:29 #: ../../Zotlabs/Module/Service_limits.php:11 -#: ../../Zotlabs/Module/Thing.php:274 ../../Zotlabs/Module/Thing.php:294 -#: ../../Zotlabs/Module/Thing.php:335 ../../Zotlabs/Module/Item.php:214 -#: ../../Zotlabs/Module/Item.php:222 ../../Zotlabs/Module/Item.php:1068 -#: ../../Zotlabs/Module/Sharedwithme.php:11 -#: ../../Zotlabs/Module/Sources.php:74 ../../Zotlabs/Module/Suggest.php:30 +#: ../../Zotlabs/Module/Webpages.php:116 +#: ../../Zotlabs/Module/Sharedwithme.php:11 ../../Zotlabs/Module/Wiki.php:189 +#: ../../Zotlabs/Module/Wiki.php:286 ../../Zotlabs/Module/Sources.php:74 +#: ../../Zotlabs/Module/Suggest.php:30 ../../Zotlabs/Module/Thing.php:274 +#: ../../Zotlabs/Module/Thing.php:294 ../../Zotlabs/Module/Thing.php:335 #: ../../Zotlabs/Module/Viewconnections.php:28 #: ../../Zotlabs/Module/Viewconnections.php:33 #: ../../Zotlabs/Module/Viewsrc.php:18 ../../Zotlabs/Module/Chat.php:100 -#: ../../Zotlabs/Module/Chat.php:105 ../../Zotlabs/Lib/Chatroom.php:137 -#: ../../include/photos.php:27 ../../include/items.php:3506 -#: ../../include/attach.php:142 ../../include/attach.php:190 -#: ../../include/attach.php:253 ../../include/attach.php:267 -#: ../../include/attach.php:274 ../../include/attach.php:339 -#: ../../include/attach.php:353 ../../include/attach.php:360 -#: ../../include/attach.php:440 ../../include/attach.php:909 -#: ../../include/attach.php:980 ../../include/attach.php:1132 +#: ../../Zotlabs/Module/Chat.php:105 ../../Zotlabs/Module/Events.php:267 +#: ../../Zotlabs/Lib/Chatroom.php:137 +#: ../../extend/addon/addon/friendica/dfrn_confirm.php:55 +#: ../../extend/addon/addon/keepout/keepout.php:36 +#: ../../extend/addon/addon/pumpio/pumpio.php:40 +#: ../../extend/addon/addon/openid/Mod_Id.php:53 +#: ../../extend/addon/addon/diaspora_reconnect/diaspora_reconnect.php:58 +#: ../../include/items.php:3422 ../../include/attach.php:142 +#: ../../include/attach.php:189 ../../include/attach.php:253 +#: ../../include/attach.php:267 ../../include/attach.php:274 +#: ../../include/attach.php:341 ../../include/attach.php:355 +#: ../../include/attach.php:362 ../../include/attach.php:439 +#: ../../include/attach.php:906 ../../include/attach.php:977 +#: ../../include/attach.php:1135 ../../include/photos.php:27 msgid "Permission denied." msgstr "Acceso denegado." -#: ../../Zotlabs/Web/Router.php:146 ../../include/help.php:56 -msgid "Not Found" -msgstr "No encontrado" - -#: ../../Zotlabs/Web/Router.php:149 ../../Zotlabs/Module/Page.php:94 -#: ../../Zotlabs/Module/Block.php:79 ../../Zotlabs/Module/Display.php:120 -#: ../../include/help.php:59 +#: ../../Zotlabs/Web/Router.php:157 ../../Zotlabs/Module/Page.php:94 +#: ../../Zotlabs/Module/Display.php:120 ../../Zotlabs/Module/Block.php:79 +#: ../../include/help.php:66 msgid "Page not found." msgstr "Página no encontrada." -#: ../../Zotlabs/Web/WebServer.php:127 ../../Zotlabs/Module/Group.php:72 -#: ../../Zotlabs/Module/Dreport.php:10 ../../Zotlabs/Module/Dreport.php:66 -#: ../../Zotlabs/Module/Import_items.php:114 ../../Zotlabs/Module/Like.php:283 -#: ../../Zotlabs/Module/Profperm.php:28 ../../Zotlabs/Module/Subthread.php:62 -#: ../../include/items.php:403 +#: ../../Zotlabs/Web/WebServer.php:127 ../../Zotlabs/Module/Dreport.php:10 +#: ../../Zotlabs/Module/Dreport.php:68 +#: ../../Zotlabs/Module/Import_items.php:114 ../../Zotlabs/Module/Group.php:72 +#: ../../Zotlabs/Module/Profperm.php:28 ../../Zotlabs/Module/Like.php:283 +#: ../../Zotlabs/Module/Subthread.php:62 +#: ../../extend/addon/addon/frphotos/frphotos.php:81 +#: ../../extend/addon/addon/redfiles/redfiles.php:109 +#: ../../extend/addon/addon/redphotos/redphotos.php:119 +#: ../../include/items.php:327 msgid "Permission denied" msgstr "Permiso denegado" @@ -405,19 +433,21 @@ msgid "" " 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." -#: ../../Zotlabs/Zot/Auth.php:246 +#: ../../Zotlabs/Zot/Auth.php:250 +#: ../../extend/addon/addon/openid/Mod_Openid.php:76 +#: ../../extend/addon/addon/openid/Mod_Openid.php:183 #, php-format msgid "Welcome %s. Remote authentication successful." msgstr "Bienvenido %s. La identificación desde su servidor se ha llevado a cabo correctamente." #: ../../Zotlabs/Module/Achievements.php:15 -#: ../../Zotlabs/Module/Editblock.php:31 -#: ../../Zotlabs/Module/Editlayout.php:31 +#: ../../Zotlabs/Module/Connect.php:17 ../../Zotlabs/Module/Editlayout.php:31 #: ../../Zotlabs/Module/Editwebpage.php:32 -#: ../../Zotlabs/Module/Filestorage.php:59 ../../Zotlabs/Module/Connect.php:17 -#: ../../Zotlabs/Module/Hcard.php:12 ../../Zotlabs/Module/Profile.php:20 -#: ../../Zotlabs/Module/Blocks.php:33 ../../Zotlabs/Module/Layouts.php:31 -#: ../../Zotlabs/Module/Webpages.php:33 ../../include/channel.php:859 +#: ../../Zotlabs/Module/Filestorage.php:59 +#: ../../Zotlabs/Module/Editblock.php:31 ../../Zotlabs/Module/Hcard.php:12 +#: ../../Zotlabs/Module/Profile.php:20 ../../Zotlabs/Module/Blocks.php:33 +#: ../../Zotlabs/Module/Layouts.php:31 ../../Zotlabs/Module/Webpages.php:33 +#: ../../include/channel.php:862 msgid "Requested profile is not available." msgstr "El perfil solicitado no está disponible." @@ -433,261 +463,9 @@ msgstr "Ausente" msgid "Online" msgstr "Conectado/a" -#: ../../Zotlabs/Module/Network.php:95 -msgid "No such group" -msgstr "No se encuentra el grupo" - -#: ../../Zotlabs/Module/Network.php:135 -msgid "No such channel" -msgstr "No se encuentra el canal" - -#: ../../Zotlabs/Module/Network.php:140 -msgid "forum" -msgstr "foro" - -#: ../../Zotlabs/Module/Network.php:152 -msgid "Search Results For:" -msgstr "Buscar resultados para:" - -#: ../../Zotlabs/Module/Network.php:218 -msgid "Privacy group is empty" -msgstr "El grupo de canales está vacío" - -#: ../../Zotlabs/Module/Network.php:227 -msgid "Privacy group: " -msgstr "Grupo de canales: " - -#: ../../Zotlabs/Module/Network.php:253 -msgid "Invalid connection." -msgstr "Conexión no válida." - -#: ../../Zotlabs/Module/Probe.php:28 ../../Zotlabs/Module/Probe.php:32 -#, php-format -msgid "Fetching URL returns error: %1$s" -msgstr "Al intentar obtener la dirección, retorna el error: %1$s" - -#: ../../Zotlabs/Module/Acl.php:313 -msgid "network" -msgstr "red" - -#: ../../Zotlabs/Module/Acl.php:323 -msgid "RSS" -msgstr "RSS" - -#: ../../Zotlabs/Module/Channel.php:28 ../../Zotlabs/Module/Wiki.php:20 -#: ../../Zotlabs/Module/Chat.php:25 -msgid "You must be logged in to see this page." -msgstr "Debe haber iniciado sesión para poder ver esta página." - -#: ../../Zotlabs/Module/Channel.php:40 -msgid "Posts and comments" -msgstr "Publicaciones y comentarios" - -#: ../../Zotlabs/Module/Channel.php:41 -msgid "Only posts" -msgstr "Solo publicaciones" - -#: ../../Zotlabs/Module/Channel.php:101 -msgid "Insufficient permissions. Request redirected to profile page." -msgstr "Permisos insuficientes. Petición redirigida a la página del perfil." - -#: ../../Zotlabs/Module/Import.php:33 -#, php-format -msgid "Your service plan only allows %d channels." -msgstr "Su paquete de servicios solo permite %d canales." - -#: ../../Zotlabs/Module/Import.php:71 ../../Zotlabs/Module/Import_items.php:42 -msgid "Nothing to import." -msgstr "No hay nada para importar." - -#: ../../Zotlabs/Module/Import.php:95 ../../Zotlabs/Module/Import_items.php:66 -msgid "Unable to download data from old server" -msgstr "No se han podido descargar datos de su antiguo servidor" - -#: ../../Zotlabs/Module/Import.php:101 -#: ../../Zotlabs/Module/Import_items.php:72 -msgid "Imported file is empty." -msgstr "El fichero importado está vacío." - -#: ../../Zotlabs/Module/Import.php:123 -#: ../../Zotlabs/Module/Import_items.php:88 -#, 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." - -#: ../../Zotlabs/Module/Import.php:153 ../../include/import.php:107 -msgid "Cloned channel not found. Import failed." -msgstr "No se ha podido importar el canal porque el canal clonado no se ha encontrado." - -#: ../../Zotlabs/Module/Import.php:163 -msgid "No channel. Import failed." -msgstr "No hay canal. La importación ha fallado" - -#: ../../Zotlabs/Module/Import.php:520 -#: ../../include/Import/import_diaspora.php:142 -msgid "Import completed." -msgstr "Importación completada." - -#: ../../Zotlabs/Module/Import.php:542 -msgid "You must be logged in to use this feature." -msgstr "Debe estar registrado para poder usar esta funcionalidad." - -#: ../../Zotlabs/Module/Import.php:547 -msgid "Import Channel" -msgstr "Importar canal" - -#: ../../Zotlabs/Module/Import.php:548 -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." - -#: ../../Zotlabs/Module/Import.php:549 -#: ../../Zotlabs/Module/Import_items.php:121 -msgid "File to Upload" -msgstr "Fichero para subir" - -#: ../../Zotlabs/Module/Import.php:550 -msgid "Or provide the old server/hub details" -msgstr "O proporcione los detalles de su antiguo servidor/hub" - -#: ../../Zotlabs/Module/Import.php:551 -msgid "Your old identity address (xyz@example.com)" -msgstr "Su identidad en el antiguo servidor (canal@ejemplo.com)" - -#: ../../Zotlabs/Module/Import.php:552 -msgid "Your old login email address" -msgstr "Su antigua dirección de correo electrónico" - -#: ../../Zotlabs/Module/Import.php:553 -msgid "Your old login password" -msgstr "Su antigua contraseña" - -#: ../../Zotlabs/Module/Import.php:554 -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 direcció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." - -#: ../../Zotlabs/Module/Import.php:555 -msgid "Make this hub my primary location" -msgstr "Convertir este servidor en mi ubicación primaria" - -#: ../../Zotlabs/Module/Import.php:556 -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" - -#: ../../Zotlabs/Module/Import.php:557 -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." - -#: ../../Zotlabs/Module/Import.php:560 -#: ../../Zotlabs/Module/Admin/Accounts.php:167 -#: ../../Zotlabs/Module/Admin/Channels.php:151 -#: ../../Zotlabs/Module/Admin/Features.php:66 -#: ../../Zotlabs/Module/Admin/Logs.php:84 -#: ../../Zotlabs/Module/Admin/Plugins.php:429 -#: ../../Zotlabs/Module/Admin/Profs.php:157 -#: ../../Zotlabs/Module/Admin/Security.php:104 -#: ../../Zotlabs/Module/Admin/Site.php:267 -#: ../../Zotlabs/Module/Admin/Themes.php:156 ../../Zotlabs/Module/Mail.php:370 -#: ../../Zotlabs/Module/Connedit.php:779 ../../Zotlabs/Module/Appman.php:126 -#: ../../Zotlabs/Module/Pdledit.php:74 -#: ../../Zotlabs/Module/Filestorage.php:165 -#: ../../Zotlabs/Module/Connect.php:98 ../../Zotlabs/Module/Group.php:85 -#: ../../Zotlabs/Module/Import_items.php:122 -#: ../../Zotlabs/Module/Invite.php:146 ../../Zotlabs/Module/Locs.php:121 -#: ../../Zotlabs/Module/Rate.php:166 ../../Zotlabs/Module/Profiles.php:687 -#: ../../Zotlabs/Module/Mitem.php:243 ../../Zotlabs/Module/Setup.php:317 -#: ../../Zotlabs/Module/Setup.php:365 ../../Zotlabs/Module/Mood.php:139 -#: ../../Zotlabs/Module/Photos.php:668 ../../Zotlabs/Module/Photos.php:1058 -#: ../../Zotlabs/Module/Photos.php:1098 ../../Zotlabs/Module/Photos.php:1216 -#: ../../Zotlabs/Module/Poke.php:186 ../../Zotlabs/Module/Pconfig.php:107 -#: ../../Zotlabs/Module/Cal.php:338 ../../Zotlabs/Module/Events.php:484 -#: ../../Zotlabs/Module/Thing.php:320 ../../Zotlabs/Module/Thing.php:370 -#: ../../Zotlabs/Module/Sources.php:114 ../../Zotlabs/Module/Sources.php:149 -#: ../../Zotlabs/Module/Chat.php:196 ../../Zotlabs/Module/Chat.php:241 -#: ../../Zotlabs/Module/Xchan.php:15 -#: ../../Zotlabs/Module/Settings/Account.php:126 -#: ../../Zotlabs/Module/Settings/Channel.php:452 -#: ../../Zotlabs/Module/Settings/Display.php:194 -#: ../../Zotlabs/Module/Settings/Features.php:47 -#: ../../Zotlabs/Module/Settings/Oauth.php:87 -#: ../../Zotlabs/Module/Settings/Tokens.php:167 -#: ../../Zotlabs/Lib/ThreadItem.php:725 ../../include/js_strings.php:22 -#: ../../include/widgets.php:796 ../../view/theme/redbasic/php/config.php:106 -msgid "Submit" -msgstr "Enviar" - -#: ../../Zotlabs/Module/Bookmarks.php:53 -msgid "Bookmark added" -msgstr "Marcador añadido" - -#: ../../Zotlabs/Module/Bookmarks.php:75 -msgid "My Bookmarks" -msgstr "Mis marcadores" - -#: ../../Zotlabs/Module/Bookmarks.php:86 -msgid "My Connections Bookmarks" -msgstr "Marcadores de mis conexiones" - -#: ../../Zotlabs/Module/Admin/Accounts.php:36 -#, 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" - -#: ../../Zotlabs/Module/Admin/Accounts.php:43 -#, php-format -msgid "%s account deleted" -msgid_plural "%s accounts deleted" -msgstr[0] "%s cuentas eliminadas" -msgstr[1] "%s cuentas eliminadas" - -#: ../../Zotlabs/Module/Admin/Accounts.php:79 -msgid "Account not found" -msgstr "Cuenta no encontrada" - -#: ../../Zotlabs/Module/Admin/Accounts.php:90 -#, php-format -msgid "Account '%s' deleted" -msgstr "La cuenta '%s' ha sido eliminada" - -#: ../../Zotlabs/Module/Admin/Accounts.php:98 -#, php-format -msgid "Account '%s' blocked" -msgstr "La cuenta '%s' ha sido bloqueada" - -#: ../../Zotlabs/Module/Admin/Accounts.php:106 -#, php-format -msgid "Account '%s' unblocked" -msgstr "La cuenta '%s' ha sido desbloqueada" - -#: ../../Zotlabs/Module/Admin/Accounts.php:165 -#: ../../Zotlabs/Module/Admin/Channels.php:149 -#: ../../Zotlabs/Module/Admin/Logs.php:82 -#: ../../Zotlabs/Module/Admin/Plugins.php:336 -#: ../../Zotlabs/Module/Admin/Plugins.php:427 -#: ../../Zotlabs/Module/Admin/Security.php:86 -#: ../../Zotlabs/Module/Admin/Site.php:265 -#: ../../Zotlabs/Module/Admin/Themes.php:120 -#: ../../Zotlabs/Module/Admin/Themes.php:154 -#: ../../Zotlabs/Module/Admin.php:141 -msgid "Administration" -msgstr "Administración" - -#: ../../Zotlabs/Module/Admin/Accounts.php:166 -#: ../../Zotlabs/Module/Admin/Accounts.php:179 ../../include/widgets.php:1561 -msgid "Accounts" -msgstr "Cuentas" +#: ../../Zotlabs/Module/Register.php:49 +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." #: ../../Zotlabs/Module/Admin/Accounts.php:168 #: ../../Zotlabs/Module/Admin/Channels.php:152 @@ -760,147 +538,1182 @@ msgid "" " 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?" -#: ../../Zotlabs/Module/Admin/Accounts.php:190 -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?" +#: ../../Zotlabs/Module/Register.php:221 ../../Zotlabs/Module/Siteinfo.php:27 +msgid "Terms of Service" +msgstr "Términos del servicio" -#: ../../Zotlabs/Module/Admin/Channels.php:30 +#: ../../Zotlabs/Module/Register.php:227 #, 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" -#: ../../Zotlabs/Module/Admin/Channels.php:39 +#: ../../Zotlabs/Module/Register.php:229 #, 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" +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" -#: ../../Zotlabs/Module/Admin/Channels.php:45 -#, php-format -msgid "%s channel deleted" -msgid_plural "%s channels deleted" -msgstr[0] "%s canales eliminados" -msgstr[1] "%s canales eliminados" +#: ../../Zotlabs/Module/Register.php:233 +msgid "Your email address" +msgstr "Su dirección de correo electrónico" -#: ../../Zotlabs/Module/Admin/Channels.php:66 -msgid "Channel not found" -msgstr "Canal no encontrado" +#: ../../Zotlabs/Module/Register.php:234 +msgid "Choose a password" +msgstr "Elija una contraseña" -#: ../../Zotlabs/Module/Admin/Channels.php:76 -#, php-format -msgid "Channel '%s' deleted" -msgstr "Canal '%s' eliminado" +#: ../../Zotlabs/Module/Register.php:235 +msgid "Please re-enter your password" +msgstr "Por favor, vuelva a escribir su contraseña" -#: ../../Zotlabs/Module/Admin/Channels.php:88 -#, php-format -msgid "Channel '%s' censored" -msgstr "Canal '%s' censurado" +#: ../../Zotlabs/Module/Register.php:236 +msgid "Please enter your invitation code" +msgstr "Por favor, introduzca el código de su invitación" -#: ../../Zotlabs/Module/Admin/Channels.php:88 -#, php-format -msgid "Channel '%s' uncensored" -msgstr "Canal '%s' no censurado" +#: ../../Zotlabs/Module/Register.php:237 +#: ../../Zotlabs/Module/New_channel.php:134 +msgid "Name or caption" +msgstr "Nombre o descripción" -#: ../../Zotlabs/Module/Admin/Channels.php:99 -#, php-format -msgid "Channel '%s' code allowed" -msgstr "Código permitido al canal '%s'" +#: ../../Zotlabs/Module/Register.php:237 +#: ../../Zotlabs/Module/New_channel.php:134 +msgid "Examples: \"Bob Jameson\", \"Lisa and her Horses\", \"Soccer\", \"Aviation Group\"" +msgstr "Ejemplos: \"Juan García\", \"Luisa y sus caballos\", \"Fútbol\", \"Grupo de aviación\"" -#: ../../Zotlabs/Module/Admin/Channels.php:99 +#: ../../Zotlabs/Module/Register.php:239 +#: ../../Zotlabs/Module/New_channel.php:136 +msgid "Choose a short nickname" +msgstr "Elija un alias corto" + +#: ../../Zotlabs/Module/Register.php:239 +#: ../../Zotlabs/Module/New_channel.php:136 #, php-format msgid "Channel '%s' code disallowed" msgstr "Código no permitido al canal '%s'" -#: ../../Zotlabs/Module/Admin/Channels.php:150 ../../include/widgets.php:1562 -msgid "Channels" -msgstr "Canales" +#: ../../Zotlabs/Module/Register.php:240 +#: ../../Zotlabs/Module/New_channel.php:137 +msgid "Channel role and privacy" +msgstr "Clase de canal y privacidad" -#: ../../Zotlabs/Module/Admin/Channels.php:154 -msgid "Censor" -msgstr "Censurar" +#: ../../Zotlabs/Module/Register.php:240 +#: ../../Zotlabs/Module/New_channel.php:137 +msgid "Select a channel role with your privacy requirements." +msgstr "Seleccione un tipo de canal con sus requisitos de privacidad" -#: ../../Zotlabs/Module/Admin/Channels.php:155 -msgid "Uncensor" -msgstr "No censurar" +#: ../../Zotlabs/Module/Register.php:240 +#: ../../Zotlabs/Module/New_channel.php:137 +msgid "Read more about roles" +msgstr "Leer más sobre los roles" -#: ../../Zotlabs/Module/Admin/Channels.php:156 -msgid "Allow Code" -msgstr "Permitir código" +#: ../../Zotlabs/Module/Register.php:241 +msgid "no" +msgstr "no" -#: ../../Zotlabs/Module/Admin/Channels.php:157 -msgid "Disallow Code" -msgstr "No permitir código" +#: ../../Zotlabs/Module/Register.php:241 +msgid "yes" +msgstr "sí" -#: ../../Zotlabs/Module/Admin/Channels.php:158 -#: ../../include/conversation.php:1651 -msgid "Channel" -msgstr "Canal" +#: ../../Zotlabs/Module/Register.php:253 +#: ../../Zotlabs/Module/Admin/Site.php:261 +msgid "Registration" +msgstr "Registro" -#: ../../Zotlabs/Module/Admin/Channels.php:162 -msgid "UID" -msgstr "UID" +#: ../../Zotlabs/Module/Register.php:258 +msgid "Membership on this site is by invitation only." +msgstr "Para registrarse en este sitio es necesaria una invitación." -#: ../../Zotlabs/Module/Admin/Channels.php:164 -#: ../../Zotlabs/Module/Locs.php:118 ../../Zotlabs/Module/Profiles.php:470 -msgid "Address" -msgstr "Dirección" +#: ../../Zotlabs/Module/Register.php:270 ../../include/nav.php:150 +#: ../../boot.php:1702 +msgid "Register" +msgstr "Registrarse" -#: ../../Zotlabs/Module/Admin/Channels.php:166 +#: ../../Zotlabs/Module/Register.php:271 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?" -#: ../../Zotlabs/Module/Admin/Channels.php:167 +#: ../../Zotlabs/Module/Probe.php:28 ../../Zotlabs/Module/Probe.php:32 +#, php-format +msgid "Fetching URL returns error: %1$s" +msgstr "Al intentar obtener la dirección, retorna el error: %1$s" + +#: ../../Zotlabs/Module/Match.php:26 +msgid "Profile Match" +msgstr "Perfil compatible" + +#: ../../Zotlabs/Module/Match.php:35 +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." + +#: ../../Zotlabs/Module/Match.php:67 +msgid "is interested in:" +msgstr "está interesado en:" + +#: ../../Zotlabs/Module/Match.php:68 ../../Zotlabs/Module/Directory.php:328 +#: ../../Zotlabs/Module/Suggest.php:56 ../../include/channel.php:1036 +#: ../../include/connections.php:78 ../../include/widgets.php:147 +#: ../../include/widgets.php:184 ../../include/conversation.php:937 +msgid "Connect" +msgstr "Conectar" + +#: ../../Zotlabs/Module/Match.php:74 +msgid "No matches" +msgstr "No se han encontrado perfiles compatibles" + +#: ../../Zotlabs/Module/Connedit.php:82 +msgid "Could not access contact record." +msgstr "No se ha podido acceder al registro de contacto." + +#: ../../Zotlabs/Module/Connedit.php:106 +msgid "Could not locate selected profile." +msgstr "No se ha podido localizar el perfil seleccionado." + +#: ../../Zotlabs/Module/Connedit.php:258 +msgid "Connection updated." +msgstr "Conexión actualizada." + +#: ../../Zotlabs/Module/Connedit.php:260 +msgid "Failed to update connection record." +msgstr "Error al actualizar el registro de la conexión." + +#: ../../Zotlabs/Module/Connedit.php:310 +msgid "is now connected to" +msgstr "ahora está conectado/a" + +#: ../../Zotlabs/Module/Connedit.php:411 ../../Zotlabs/Module/Connedit.php:716 +#: ../../Zotlabs/Module/Admin/Site.php:218 ../../Zotlabs/Module/Menu.php:100 +#: ../../Zotlabs/Module/Menu.php:157 ../../Zotlabs/Module/Filestorage.php:160 +#: ../../Zotlabs/Module/Filestorage.php:168 ../../Zotlabs/Module/Mitem.php:162 +#: ../../Zotlabs/Module/Mitem.php:163 ../../Zotlabs/Module/Mitem.php:240 +#: ../../Zotlabs/Module/Mitem.php:241 ../../Zotlabs/Module/Photos.php:653 +#: ../../Zotlabs/Module/Profiles.php:641 ../../Zotlabs/Module/Api.php:97 +#: ../../Zotlabs/Module/Removeme.php:63 ../../Zotlabs/Module/Wiki.php:159 +#: ../../Zotlabs/Module/Settings/Channel.php:289 +#: ../../Zotlabs/Module/Settings/Display.php:103 +#: ../../Zotlabs/Module/Events.php:463 ../../Zotlabs/Module/Events.php:464 +#: ../../extend/addon/addon/dwpost/dwpost.php:73 +#: ../../extend/addon/addon/dwpost/dwpost.php:85 +#: ../../extend/addon/addon/flattrwidget/flattrwidget.php:120 +#: ../../extend/addon/addon/friendica/dfrn_request.php:865 +#: ../../extend/addon/addon/ijpost/ijpost.php:73 +#: ../../extend/addon/addon/ijpost/ijpost.php:85 +#: ../../extend/addon/addon/jappixmini/jappixmini.php:309 +#: ../../extend/addon/addon/jappixmini/jappixmini.php:313 +#: ../../extend/addon/addon/jappixmini/jappixmini.php:343 +#: ../../extend/addon/addon/jappixmini/jappixmini.php:351 +#: ../../extend/addon/addon/jappixmini/jappixmini.php:355 +#: ../../extend/addon/addon/jappixmini/jappixmini.php:359 +#: ../../extend/addon/addon/libertree/libertree.php:69 +#: ../../extend/addon/addon/libertree/libertree.php:81 +#: ../../extend/addon/addon/ljpost/ljpost.php:70 +#: ../../extend/addon/addon/ljpost/ljpost.php:82 +#: ../../extend/addon/addon/nofed/nofed.php:72 +#: ../../extend/addon/addon/nofed/nofed.php:76 +#: ../../extend/addon/addon/nsabait/nsabait.php:157 +#: ../../extend/addon/addon/nsfw/nsfw.php:84 +#: ../../extend/addon/addon/planets/planets.php:153 +#: ../../extend/addon/addon/pumpio/pumpio.php:219 +#: ../../extend/addon/addon/pumpio/pumpio.php:223 +#: ../../extend/addon/addon/pumpio/pumpio.php:227 +#: ../../extend/addon/addon/pumpio/pumpio.php:231 +#: ../../extend/addon/addon/rainbowtag/rainbowtag.php:81 +#: ../../extend/addon/addon/redred/redred.php:95 +#: ../../extend/addon/addon/redred/redred.php:99 +#: ../../extend/addon/addon/rtof/rtof.php:81 +#: ../../extend/addon/addon/rtof/rtof.php:85 +#: ../../extend/addon/addon/smileybutton/smileybutton.php:273 +#: ../../extend/addon/addon/smileybutton/smileybutton.php:277 +#: ../../extend/addon/addon/statusnet/statusnet.php:389 +#: ../../extend/addon/addon/statusnet/statusnet.php:411 +#: ../../extend/addon/addon/statusnet/statusnet.php:415 +#: ../../extend/addon/addon/statusnet/statusnet.php:424 +#: ../../extend/addon/addon/twitter/twitter.php:242 +#: ../../extend/addon/addon/twitter/twitter.php:246 +#: ../../extend/addon/addon/twitter/twitter.php:255 +#: ../../extend/addon/addon/visage/visage.php:166 +#: ../../extend/addon/addon/wppost/wppost.php:82 +#: ../../extend/addon/addon/wppost/wppost.php:105 +#: ../../extend/addon/addon/wppost/wppost.php:109 +#: ../../extend/addon/addon/xmpp/xmpp.php:53 +#: ../../extend/addon/addon/cdav/cdav.php:234 ../../include/dir_fns.php:143 +#: ../../include/dir_fns.php:144 ../../include/dir_fns.php:145 +#: ../../view/theme/redbasic/php/config.php:111 +#: ../../view/theme/redbasic/php/config.php:136 ../../boot.php:1724 +msgid "No" +msgstr "No" + +#: ../../Zotlabs/Module/Connedit.php:411 +#: ../../Zotlabs/Module/Admin/Site.php:220 ../../Zotlabs/Module/Menu.php:100 +#: ../../Zotlabs/Module/Menu.php:157 ../../Zotlabs/Module/Filestorage.php:160 +#: ../../Zotlabs/Module/Filestorage.php:168 ../../Zotlabs/Module/Mitem.php:162 +#: ../../Zotlabs/Module/Mitem.php:163 ../../Zotlabs/Module/Mitem.php:240 +#: ../../Zotlabs/Module/Mitem.php:241 ../../Zotlabs/Module/Photos.php:653 +#: ../../Zotlabs/Module/Profiles.php:641 ../../Zotlabs/Module/Api.php:96 +#: ../../Zotlabs/Module/Removeme.php:63 ../../Zotlabs/Module/Wiki.php:159 +#: ../../Zotlabs/Module/Settings/Channel.php:289 +#: ../../Zotlabs/Module/Settings/Display.php:103 +#: ../../Zotlabs/Module/Events.php:463 ../../Zotlabs/Module/Events.php:464 +#: ../../extend/addon/addon/dwpost/dwpost.php:73 +#: ../../extend/addon/addon/dwpost/dwpost.php:85 +#: ../../extend/addon/addon/flattrwidget/flattrwidget.php:120 +#: ../../extend/addon/addon/friendica/dfrn_request.php:865 +#: ../../extend/addon/addon/ijpost/ijpost.php:73 +#: ../../extend/addon/addon/ijpost/ijpost.php:85 +#: ../../extend/addon/addon/jappixmini/jappixmini.php:309 +#: ../../extend/addon/addon/jappixmini/jappixmini.php:313 +#: ../../extend/addon/addon/jappixmini/jappixmini.php:343 +#: ../../extend/addon/addon/jappixmini/jappixmini.php:351 +#: ../../extend/addon/addon/jappixmini/jappixmini.php:355 +#: ../../extend/addon/addon/jappixmini/jappixmini.php:359 +#: ../../extend/addon/addon/libertree/libertree.php:69 +#: ../../extend/addon/addon/libertree/libertree.php:81 +#: ../../extend/addon/addon/ljpost/ljpost.php:70 +#: ../../extend/addon/addon/ljpost/ljpost.php:82 +#: ../../extend/addon/addon/nofed/nofed.php:72 +#: ../../extend/addon/addon/nofed/nofed.php:76 +#: ../../extend/addon/addon/nsabait/nsabait.php:157 +#: ../../extend/addon/addon/nsfw/nsfw.php:84 +#: ../../extend/addon/addon/planets/planets.php:153 +#: ../../extend/addon/addon/pumpio/pumpio.php:219 +#: ../../extend/addon/addon/pumpio/pumpio.php:223 +#: ../../extend/addon/addon/pumpio/pumpio.php:227 +#: ../../extend/addon/addon/pumpio/pumpio.php:231 +#: ../../extend/addon/addon/rainbowtag/rainbowtag.php:81 +#: ../../extend/addon/addon/redred/redred.php:95 +#: ../../extend/addon/addon/redred/redred.php:99 +#: ../../extend/addon/addon/rtof/rtof.php:81 +#: ../../extend/addon/addon/rtof/rtof.php:85 +#: ../../extend/addon/addon/smileybutton/smileybutton.php:273 +#: ../../extend/addon/addon/smileybutton/smileybutton.php:277 +#: ../../extend/addon/addon/statusnet/statusnet.php:389 +#: ../../extend/addon/addon/statusnet/statusnet.php:411 +#: ../../extend/addon/addon/statusnet/statusnet.php:415 +#: ../../extend/addon/addon/statusnet/statusnet.php:424 +#: ../../extend/addon/addon/twitter/twitter.php:242 +#: ../../extend/addon/addon/twitter/twitter.php:246 +#: ../../extend/addon/addon/twitter/twitter.php:255 +#: ../../extend/addon/addon/visage/visage.php:166 +#: ../../extend/addon/addon/wppost/wppost.php:82 +#: ../../extend/addon/addon/wppost/wppost.php:105 +#: ../../extend/addon/addon/wppost/wppost.php:109 +#: ../../extend/addon/addon/xmpp/xmpp.php:53 +#: ../../extend/addon/addon/cdav/cdav.php:234 ../../include/dir_fns.php:143 +#: ../../include/dir_fns.php:144 ../../include/dir_fns.php:145 +#: ../../view/theme/redbasic/php/config.php:111 +#: ../../view/theme/redbasic/php/config.php:136 ../../boot.php:1724 +msgid "Yes" +msgstr "Sí" + +#: ../../Zotlabs/Module/Connedit.php:443 +msgid "Could not access address book record." +msgstr "No se pudo acceder al registro en su libreta de direcciones." + +#: ../../Zotlabs/Module/Connedit.php:463 +msgid "Refresh failed - channel is currently unavailable." +msgstr "Recarga fallida - no se puede encontrar el canal en este momento." + +#: ../../Zotlabs/Module/Connedit.php:478 ../../Zotlabs/Module/Connedit.php:487 +#: ../../Zotlabs/Module/Connedit.php:496 ../../Zotlabs/Module/Connedit.php:505 +#: ../../Zotlabs/Module/Connedit.php:518 +msgid "Unable to set address book parameters." +msgstr "No ha sido posible establecer los parámetros de la libreta de direcciones." + +#: ../../Zotlabs/Module/Connedit.php:542 +msgid "Connection has been removed." +msgstr "La conexión ha sido eliminada." + +#: ../../Zotlabs/Module/Connedit.php:582 ../../Zotlabs/Lib/Apps.php:223 +#: ../../extend/addon/addon/openclipatar/openclipatar.php:56 +#: ../../include/nav.php:89 ../../include/conversation.php:935 +msgid "View Profile" +msgstr "Ver el perfil" + +#: ../../Zotlabs/Module/Connedit.php:585 +#, php-format +msgid "View %s's profile" +msgstr "Ver el perfil de %s" + +#: ../../Zotlabs/Module/Connedit.php:589 +msgid "Refresh Permissions" +msgstr "Recargar los permisos" + +#: ../../Zotlabs/Module/Connedit.php:592 +msgid "Fetch updated permissions" +msgstr "Obtener los permisos actualizados" + +#: ../../Zotlabs/Module/Connedit.php:596 +msgid "Recent Activity" +msgstr "Actividad reciente" + +#: ../../Zotlabs/Module/Connedit.php:599 +msgid "View recent posts and comments" +msgstr "Ver publicaciones y comentarios recientes" + +#: ../../Zotlabs/Module/Connedit.php:603 +#: ../../Zotlabs/Module/Admin/Accounts.php:175 +msgid "Unblock" +msgstr "Desbloquear" + +#: ../../Zotlabs/Module/Connedit.php:603 +#: ../../Zotlabs/Module/Admin/Accounts.php:174 +msgid "Block" +msgstr "Bloquear" + +#: ../../Zotlabs/Module/Connedit.php:606 +msgid "Block (or Unblock) all communications with this connection" +msgstr "Bloquear (o desbloquear) todas las comunicaciones con esta conexión" + +#: ../../Zotlabs/Module/Connedit.php:607 +msgid "This connection is blocked!" +msgstr "¡Esta conexión está bloqueada!" + +#: ../../Zotlabs/Module/Connedit.php:611 +msgid "Unignore" +msgstr "Dejar de ignorar" + +#: ../../Zotlabs/Module/Connedit.php:611 +#: ../../Zotlabs/Module/Connections.php:277 +msgid "Ignore" +msgstr "Ignorar" + +#: ../../Zotlabs/Module/Connedit.php:614 +msgid "Ignore (or Unignore) all inbound communications from this connection" +msgstr "Ignorar (o dejar de ignorar) todas las comunicaciones entrantes de esta conexión" + +#: ../../Zotlabs/Module/Connedit.php:615 +msgid "This connection is ignored!" +msgstr "¡Esta conexión es ignorada!" + +#: ../../Zotlabs/Module/Connedit.php:619 +msgid "Unarchive" +msgstr "Desarchivar" + +#: ../../Zotlabs/Module/Connedit.php:619 +msgid "Archive" +msgstr "Archivar" + +#: ../../Zotlabs/Module/Connedit.php:622 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?" +"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" -#: ../../Zotlabs/Module/Admin/Dbsync.php:19 -msgid "Update has been marked successful" -msgstr "La actualización ha sido marcada como exitosa" +#: ../../Zotlabs/Module/Connedit.php:623 +msgid "This connection is archived!" +msgstr "¡Esta conexión esta archivada!" -#: ../../Zotlabs/Module/Admin/Dbsync.php:29 +#: ../../Zotlabs/Module/Connedit.php:627 +msgid "Unhide" +msgstr "Mostrar" + +#: ../../Zotlabs/Module/Connedit.php:627 +msgid "Hide" +msgstr "Ocultar" + +#: ../../Zotlabs/Module/Connedit.php:630 +msgid "Hide or Unhide this connection from your other connections" +msgstr "Ocultar o mostrar esta conexión a sus otras conexiones" + +#: ../../Zotlabs/Module/Connedit.php:631 +msgid "This connection is hidden!" +msgstr "¡Esta conexión está oculta!" + +#: ../../Zotlabs/Module/Connedit.php:638 +msgid "Delete this connection" +msgstr "Eliminar esta conexión" + +#: ../../Zotlabs/Module/Connedit.php:655 ../../include/widgets.php:529 +msgid "Me" +msgstr "Yo" + +#: ../../Zotlabs/Module/Connedit.php:656 ../../include/widgets.php:530 +msgid "Family" +msgstr "Familia" + +#: ../../Zotlabs/Module/Connedit.php:657 +#: ../../Zotlabs/Module/Settings/Channel.php:61 +#: ../../Zotlabs/Module/Settings/Channel.php:65 +#: ../../Zotlabs/Module/Settings/Channel.php:66 +#: ../../Zotlabs/Module/Settings/Channel.php:69 +#: ../../Zotlabs/Module/Settings/Channel.php:80 +#: ../../include/selectors.php:123 ../../include/channel.php:402 +#: ../../include/channel.php:403 ../../include/channel.php:410 +#: ../../include/widgets.php:531 +msgid "Friends" +msgstr "Amigos/as" + +#: ../../Zotlabs/Module/Connedit.php:658 ../../include/widgets.php:532 +msgid "Acquaintances" +msgstr "Conocidos/as" + +#: ../../Zotlabs/Module/Connedit.php:659 +#: ../../Zotlabs/Module/Connections.php:92 +#: ../../Zotlabs/Module/Connections.php:107 ../../include/widgets.php:533 +msgid "All" +msgstr "Todos/as" + +#: ../../Zotlabs/Module/Connedit.php:716 +msgid "Approve this connection" +msgstr "Aprobar esta conexión" + +#: ../../Zotlabs/Module/Connedit.php:716 +msgid "Accept connection to allow communication" +msgstr "Aceptar la conexión para permitir la comunicación" + +#: ../../Zotlabs/Module/Connedit.php:721 +msgid "Set Affinity" +msgstr "Ajustar la afinidad" + +#: ../../Zotlabs/Module/Connedit.php:724 +msgid "Set Profile" +msgstr "Ajustar el perfil" + +#: ../../Zotlabs/Module/Connedit.php:727 +msgid "Set Affinity & Profile" +msgstr "Ajustar la afinidad y el perfil" + +#: ../../Zotlabs/Module/Connedit.php:776 +msgid "none" +msgstr "-" + +#: ../../Zotlabs/Module/Connedit.php:780 ../../include/widgets.php:656 +msgid "Connection Default Permissions" +msgstr "Permisos predeterminados de conexión" + +#: ../../Zotlabs/Module/Connedit.php:780 ../../include/items.php:3909 #, php-format -msgid "Executing %s failed. Check system logs." -msgstr "La ejecución de %s ha fallado. Mirar en los informes del sistema." +msgid "Connection: %s" +msgstr "Conexión: %s" -#: ../../Zotlabs/Module/Admin/Dbsync.php:32 +#: ../../Zotlabs/Module/Connedit.php:781 +msgid "Apply these permissions automatically" +msgstr "Aplicar estos permisos automaticamente" + +#: ../../Zotlabs/Module/Connedit.php:781 +msgid "Connection requests will be approved without your interaction" +msgstr "Las solicitudes de conexión serán aprobadas sin su intervención" + +#: ../../Zotlabs/Module/Connedit.php:784 +msgid "This connection's primary address is" +msgstr "La dirección primaria de esta conexión es" + +#: ../../Zotlabs/Module/Connedit.php:785 +msgid "Available locations:" +msgstr "Ubicaciones disponibles:" + +#: ../../Zotlabs/Module/Connedit.php:789 +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." + +#: ../../Zotlabs/Module/Connedit.php:790 +msgid "Connection Tools" +msgstr "Gestión de las conexiones" + +#: ../../Zotlabs/Module/Connedit.php:792 +msgid "Slide to adjust your degree of friendship" +msgstr "Deslizar para ajustar el grado de amistad" + +#: ../../Zotlabs/Module/Connedit.php:793 ../../Zotlabs/Module/Rate.php:155 +#: ../../include/js_strings.php:20 +msgid "Rating" +msgstr "Valoración" + +#: ../../Zotlabs/Module/Connedit.php:794 +msgid "Slide to adjust your rating" +msgstr "Deslizar para ajustar su valoración" + +#: ../../Zotlabs/Module/Connedit.php:795 ../../Zotlabs/Module/Connedit.php:800 +msgid "Optionally explain your rating" +msgstr "Opcionalmente, puede explicar su valoración" + +#: ../../Zotlabs/Module/Connedit.php:797 +msgid "Custom Filter" +msgstr "Filtro personalizado" + +#: ../../Zotlabs/Module/Connedit.php:798 +msgid "Only import posts with this text" +msgstr "Importar solo entradas que contengan este texto" + +#: ../../Zotlabs/Module/Connedit.php:798 ../../Zotlabs/Module/Connedit.php:799 +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" + +#: ../../Zotlabs/Module/Connedit.php:799 +msgid "Do not import posts with this text" +msgstr "No importar entradas que contengan este texto" + +#: ../../Zotlabs/Module/Connedit.php:801 +msgid "This information is public!" +msgstr "¡Esta información es pública!" + +#: ../../Zotlabs/Module/Connedit.php:806 +msgid "Connection Pending Approval" +msgstr "Conexión pendiente de aprobación" + +#: ../../Zotlabs/Module/Connedit.php:809 +#: ../../Zotlabs/Module/Settings/Tokens.php:163 +msgid "inherited" +msgstr "heredado" + +#: ../../Zotlabs/Module/Connedit.php:810 ../../Zotlabs/Module/Locs.php:121 +#: ../../Zotlabs/Module/Connect.php:98 +#: ../../Zotlabs/Module/Admin/Features.php:66 +#: ../../Zotlabs/Module/Admin/Logs.php:84 +#: ../../Zotlabs/Module/Admin/Plugins.php:429 +#: ../../Zotlabs/Module/Admin/Profs.php:157 +#: ../../Zotlabs/Module/Admin/Security.php:104 +#: ../../Zotlabs/Module/Admin/Themes.php:156 +#: ../../Zotlabs/Module/Admin/Account_edit.php:74 +#: ../../Zotlabs/Module/Admin/Accounts.php:166 +#: ../../Zotlabs/Module/Admin/Channels.php:147 +#: ../../Zotlabs/Module/Admin/Site.php:260 ../../Zotlabs/Module/Appman.php:127 +#: ../../Zotlabs/Module/Filestorage.php:165 ../../Zotlabs/Module/Mail.php:412 +#: ../../Zotlabs/Module/Import_items.php:122 +#: ../../Zotlabs/Module/Invite.php:149 ../../Zotlabs/Module/Group.php:85 +#: ../../Zotlabs/Module/Mitem.php:243 ../../Zotlabs/Module/Mood.php:139 +#: ../../Zotlabs/Module/Photos.php:668 ../../Zotlabs/Module/Photos.php:1058 +#: ../../Zotlabs/Module/Photos.php:1098 ../../Zotlabs/Module/Photos.php:1216 +#: ../../Zotlabs/Module/Setup.php:309 ../../Zotlabs/Module/Setup.php:357 +#: ../../Zotlabs/Module/Poke.php:186 ../../Zotlabs/Module/Profiles.php:681 +#: ../../Zotlabs/Module/Pconfig.php:107 ../../Zotlabs/Module/Rate.php:166 +#: ../../Zotlabs/Module/Pdledit.php:74 ../../Zotlabs/Module/Cal.php:342 +#: ../../Zotlabs/Module/Wiki.php:148 ../../Zotlabs/Module/Sources.php:114 +#: ../../Zotlabs/Module/Sources.php:149 +#: ../../Zotlabs/Module/Settings/Features.php:47 +#: ../../Zotlabs/Module/Settings/Oauth.php:87 +#: ../../Zotlabs/Module/Settings/Tokens.php:167 +#: ../../Zotlabs/Module/Settings/Account.php:118 +#: ../../Zotlabs/Module/Settings/Channel.php:455 +#: ../../Zotlabs/Module/Settings/Display.php:196 +#: ../../Zotlabs/Module/Thing.php:320 ../../Zotlabs/Module/Thing.php:370 +#: ../../Zotlabs/Module/Import.php:543 ../../Zotlabs/Module/Chat.php:196 +#: ../../Zotlabs/Module/Chat.php:241 ../../Zotlabs/Module/Xchan.php:15 +#: ../../Zotlabs/Module/Events.php:484 ../../Zotlabs/Lib/ThreadItem.php:729 +#: ../../extend/addon/addon/chords/Mod_Chords.php:60 +#: ../../extend/addon/addon/diaspora/diaspora.php:710 +#: ../../extend/addon/addon/dwpost/dwpost.php:89 +#: ../../extend/addon/addon/flattrwidget/flattrwidget.php:124 +#: ../../extend/addon/addon/friendica/friendica.php:128 +#: ../../extend/addon/addon/frphotos/frphotos.php:96 +#: ../../extend/addon/addon/gnusoc/gnusoc.php:129 +#: ../../extend/addon/addon/hubwall/hubwall.php:95 +#: ../../extend/addon/addon/ijpost/ijpost.php:89 +#: ../../extend/addon/addon/irc/irc.php:53 +#: ../../extend/addon/addon/jappixmini/jappixmini.php:371 +#: ../../extend/addon/addon/libertree/libertree.php:85 +#: ../../extend/addon/addon/ljpost/ljpost.php:86 +#: ../../extend/addon/addon/logrot/logrot.php:35 +#: ../../extend/addon/addon/mailhost/mailhost.php:40 +#: ../../extend/addon/addon/nofed/nofed.php:80 +#: ../../extend/addon/addon/nsabait/nsabait.php:161 +#: ../../extend/addon/addon/nsfw/nsfw.php:92 +#: ../../extend/addon/addon/openclipatar/openclipatar.php:52 +#: ../../extend/addon/addon/openstreetmap/openstreetmap.php:168 +#: ../../extend/addon/addon/pageheader/pageheader.php:48 +#: ../../extend/addon/addon/piwik/piwik.php:95 +#: ../../extend/addon/addon/planets/planets.php:157 +#: ../../extend/addon/addon/pumpio/pumpio.php:237 +#: ../../extend/addon/addon/rainbowtag/rainbowtag.php:85 +#: ../../extend/addon/addon/redfiles/redfiles.php:124 +#: ../../extend/addon/addon/redphotos/redphotos.php:136 +#: ../../extend/addon/addon/redred/redred.php:119 +#: ../../extend/addon/addon/rtof/rtof.php:101 +#: ../../extend/addon/addon/skeleton/skeleton.php:65 +#: ../../extend/addon/addon/smileybutton/smileybutton.php:281 +#: ../../extend/addon/addon/startpage/startpage.php:113 +#: ../../extend/addon/addon/statusnet/statusnet.php:322 +#: ../../extend/addon/addon/statusnet/statusnet.php:380 +#: ../../extend/addon/addon/statusnet/statusnet.php:432 +#: ../../extend/addon/addon/statusnet/statusnet.php:899 +#: ../../extend/addon/addon/superblock/superblock.php:118 +#: ../../extend/addon/addon/twitter/twitter.php:217 +#: ../../extend/addon/addon/twitter/twitter.php:259 +#: ../../extend/addon/addon/visage/visage.php:170 +#: ../../extend/addon/addon/wppost/wppost.php:113 +#: ../../extend/addon/addon/xmpp/xmpp.php:69 +#: ../../extend/addon/addon/cdav/cdav.php:246 +#: ../../extend/addon/addon/likebanner/likebanner.php:57 +#: ../../extend/addon/addon/mailtest/mailtest.php:100 +#: ../../include/js_strings.php:22 ../../include/widgets.php:796 +#: ../../view/theme/redbasic/php/config.php:106 +msgid "Submit" +msgstr "Enviar" + +#: ../../Zotlabs/Module/Connedit.php:811 #, php-format -msgid "Update %s was successfully applied." -msgstr "La actualización de %s se ha realizado exitosamente." +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." -#: ../../Zotlabs/Module/Admin/Dbsync.php:36 +#: ../../Zotlabs/Module/Connedit.php:813 +#: ../../Zotlabs/Module/Settings/Tokens.php:160 +msgid "Their Settings" +msgstr "Sus ajustes" + +#: ../../Zotlabs/Module/Connedit.php:814 +#: ../../Zotlabs/Module/Settings/Tokens.php:161 +msgid "My Settings" +msgstr "Mis ajustes" + +#: ../../Zotlabs/Module/Connedit.php:816 +#: ../../Zotlabs/Module/Settings/Tokens.php:165 +msgid "Individual Permissions" +msgstr "Permisos individuales" + +#: ../../Zotlabs/Module/Connedit.php:817 +#: ../../Zotlabs/Module/Settings/Tokens.php:166 +msgid "" +"Some permissions may be inherited from your channel's privacy settings, which have higher " +"priority than individual settings. You can not change those" +" settings here." +msgstr "Algunos permisos pueden ser heredados de los ajustes de privacidad de sus canales, los cuales tienen una prioridad más alta que los ajustes individuales. No puede cambiar estos ajustes aquí." + +#: ../../Zotlabs/Module/Connedit.php:818 +msgid "" +"Some permissions may be inherited from your channel's privacy settings, 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 "Algunos permisos pueden ser heredados de los ajustes de privacidad 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." + +#: ../../Zotlabs/Module/Connedit.php:819 +msgid "Last update:" +msgstr "Última actualización:" + +#: ../../Zotlabs/Module/Dreport.php:45 +msgid "Invalid message" +msgstr "Mensaje no válido" + +#: ../../Zotlabs/Module/Dreport.php:78 +msgid "no results" +msgstr "sin resultados" + +#: ../../Zotlabs/Module/Dreport.php:93 +msgid "channel sync processed" +msgstr "se ha realizado la sincronización del canal" + +#: ../../Zotlabs/Module/Dreport.php:97 +msgid "queued" +msgstr "encolado" + +#: ../../Zotlabs/Module/Dreport.php:101 +msgid "posted" +msgstr "enviado" + +#: ../../Zotlabs/Module/Dreport.php:105 +msgid "accepted for delivery" +msgstr "aceptado para el envío" + +#: ../../Zotlabs/Module/Dreport.php:109 +msgid "updated" +msgstr "actualizado" + +#: ../../Zotlabs/Module/Dreport.php:112 +msgid "update ignored" +msgstr "actualización ignorada" + +#: ../../Zotlabs/Module/Dreport.php:115 +msgid "permission denied" +msgstr "permiso denegado" + +#: ../../Zotlabs/Module/Dreport.php:119 +msgid "recipient not found" +msgstr "destinatario no encontrado" + +#: ../../Zotlabs/Module/Dreport.php:122 +msgid "mail recalled" +msgstr "mensaje de correo revocado" + +#: ../../Zotlabs/Module/Dreport.php:125 +msgid "duplicate mail received" +msgstr "se ha recibido mensaje duplicado" + +#: ../../Zotlabs/Module/Dreport.php:128 +msgid "mail delivered" +msgstr "correo enviado" + +#: ../../Zotlabs/Module/Dreport.php:148 #, 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." +msgid "Delivery report for %1$s" +msgstr "Informe de entrega para %1$s" -#: ../../Zotlabs/Module/Admin/Dbsync.php:39 +#: ../../Zotlabs/Module/Dreport.php:151 +msgid "Options" +msgstr "Opciones" + +#: ../../Zotlabs/Module/Dreport.php:152 +msgid "Redeliver" +msgstr "Volver a enviar" + +#: ../../Zotlabs/Module/Bookmarks.php:53 +msgid "Bookmark added" +msgstr "Marcador añadido" + +#: ../../Zotlabs/Module/Bookmarks.php:75 +msgid "My Bookmarks" +msgstr "Mis marcadores" + +#: ../../Zotlabs/Module/Bookmarks.php:86 +msgid "My Connections Bookmarks" +msgstr "Marcadores de mis conexiones" + +#: ../../Zotlabs/Module/Acl.php:313 +msgid "network" +msgstr "red" + +#: ../../Zotlabs/Module/Acl.php:323 +msgid "RSS" +msgstr "RSS" + +#: ../../Zotlabs/Module/Locs.php:25 ../../Zotlabs/Module/Locs.php:54 +msgid "Location not found." +msgstr "Dirección no encontrada." + +#: ../../Zotlabs/Module/Locs.php:62 +msgid "Location lookup failed." +msgstr "Ha fallado la búsqueda de la dirección." + +#: ../../Zotlabs/Module/Locs.php:66 +msgid "" +"Please select another location to become primary before removing the primary" +" location." +msgstr "Por favor, seleccione una copia de su canal (un clon) para convertirlo en primario antes de eliminar su canal principal." + +#: ../../Zotlabs/Module/Locs.php:95 +msgid "Syncing locations" +msgstr "Sincronizando ubicaciones" + +#: ../../Zotlabs/Module/Locs.php:105 +msgid "No locations found." +msgstr "No encontrada ninguna dirección." + +#: ../../Zotlabs/Module/Locs.php:116 +msgid "Manage Channel Locations" +msgstr "Gestionar las direcciones del canal" + +#: ../../Zotlabs/Module/Locs.php:117 ../../Zotlabs/Module/Pubsites.php:51 +#: ../../Zotlabs/Module/Profiles.php:471 ../../Zotlabs/Module/Profiles.php:692 +#: ../../Zotlabs/Module/Events.php:468 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:839 +#: ../../include/js_strings.php:25 +msgid "Location" +msgstr "Ubicación" + +#: ../../Zotlabs/Module/Locs.php:118 +#: ../../Zotlabs/Module/Admin/Channels.php:160 +#: ../../Zotlabs/Module/Profiles.php:464 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1143 +msgid "Address" +msgstr "Dirección" + +#: ../../Zotlabs/Module/Locs.php:119 +msgid "Primary" +msgstr "Primario" + +#: ../../Zotlabs/Module/Locs.php:120 ../../Zotlabs/Module/Menu.php:113 +msgid "Drop" +msgstr "Eliminar" + +#: ../../Zotlabs/Module/Locs.php:122 +msgid "Sync Now" +msgstr "Sincronizar ahora" + +#: ../../Zotlabs/Module/Locs.php:123 +msgid "Please wait several minutes between consecutive operations." +msgstr "Por favor, espere algunos minutos entre operaciones consecutivas." + +#: ../../Zotlabs/Module/Locs.php:124 +msgid "" +"When possible, drop a location by logging into that website/hub and removing" +" your channel." +msgstr "Cuando sea posible, elimine una ubicación iniciando sesión en el sitio web o \"hub\" y borrando su canal." + +#: ../../Zotlabs/Module/Locs.php:125 +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." + +#: ../../Zotlabs/Module/Connect.php:61 ../../Zotlabs/Module/Connect.php:109 +msgid "Continue" +msgstr "Continuar" + +#: ../../Zotlabs/Module/Connect.php:90 +msgid "Premium Channel Setup" +msgstr "Configuración del canal premium" + +#: ../../Zotlabs/Module/Connect.php:92 +msgid "Enable premium channel connection restrictions" +msgstr "Habilitar restricciones de conexión del canal premium" + +#: ../../Zotlabs/Module/Connect.php:93 +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." + +#: ../../Zotlabs/Module/Connect.php:95 ../../Zotlabs/Module/Connect.php:115 +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:" + +#: ../../Zotlabs/Module/Connect.php:96 +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:" + +#: ../../Zotlabs/Module/Connect.php:97 ../../Zotlabs/Module/Connect.php:118 +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." + +#: ../../Zotlabs/Module/Connect.php:106 +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.)" + +#: ../../Zotlabs/Module/Connect.php:114 +msgid "Restricted or Premium Channel" +msgstr "Canal premium o restringido" + +#: ../../Zotlabs/Module/Page.php:40 ../../Zotlabs/Module/Block.php:31 +msgid "Invalid item." +msgstr "Elemento no válido." + +#: ../../Zotlabs/Module/Page.php:56 ../../Zotlabs/Module/Chanview.php:96 +#: ../../Zotlabs/Module/Block.php:43 ../../Zotlabs/Module/Cal.php:62 +#: ../../Zotlabs/Module/Wall_upload.php:31 +msgid "Channel not found." +msgstr "Canal no encontrado." + +#: ../../Zotlabs/Module/Page.php:131 +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." + +#: ../../Zotlabs/Module/Filer.php:52 +msgid "Save to Folder:" +msgstr "Guardar en carpeta:" + +#: ../../Zotlabs/Module/Filer.php:52 +msgid "- select -" +msgstr "- seleccionar -" + +#: ../../Zotlabs/Module/Filer.php:53 ../../Zotlabs/Module/Admin/Profs.php:74 +#: ../../Zotlabs/Module/Admin/Profs.php:94 ../../Zotlabs/Module/Rbmark.php:32 +#: ../../Zotlabs/Module/Rbmark.php:104 ../../include/text.php:987 +#: ../../include/text.php:999 ../../include/widgets.php:201 +msgid "Save" +msgstr "Guardar" + +#: ../../Zotlabs/Module/Manage.php:136 +#: ../../Zotlabs/Module/New_channel.php:121 #, php-format -msgid "Update function %s could not be found." -msgstr "No se encuentra la función de actualización de %s." +msgid "You have created %1$.0f of %2$.0f allowed channels." +msgstr "Ha creado %1$.0f de %2$.0f canales permitidos." -#: ../../Zotlabs/Module/Admin/Dbsync.php:55 -msgid "No failed updates." -msgstr "No ha fallado ninguna actualización." +#: ../../Zotlabs/Module/Manage.php:143 +msgid "Create a new channel" +msgstr "Crear un nuevo canal" -#: ../../Zotlabs/Module/Admin/Dbsync.php:59 -msgid "Failed Updates" -msgstr "Han fallado las actualizaciones" +#: ../../Zotlabs/Module/Manage.php:143 ../../Zotlabs/Module/Profiles.php:772 +#: ../../Zotlabs/Module/Wiki.php:147 ../../Zotlabs/Module/Chat.php:255 +msgid "Create New" +msgstr "Crear" -#: ../../Zotlabs/Module/Admin/Dbsync.php:61 -msgid "Mark success (if update was manually applied)" -msgstr "Marcar como exitosa (si la actualización se ha hecho manualmente)" +#: ../../Zotlabs/Module/Manage.php:164 ../../Zotlabs/Lib/Apps.php:216 +#: ../../include/nav.php:209 +msgid "Channel Manager" +msgstr "Administración de canales" -#: ../../Zotlabs/Module/Admin/Dbsync.php:62 -msgid "Attempt to execute this update step automatically" -msgstr "Intentar ejecutar este paso de actualización automáticamente" +#: ../../Zotlabs/Module/Manage.php:165 +msgid "Current Channel" +msgstr "Canal actual" + +#: ../../Zotlabs/Module/Manage.php:167 +msgid "Switch to one of your channels by selecting it." +msgstr "Cambiar a uno de sus canales seleccionándolo." + +#: ../../Zotlabs/Module/Manage.php:168 +msgid "Default Channel" +msgstr "Canal principal" + +#: ../../Zotlabs/Module/Manage.php:169 +msgid "Make Default" +msgstr "Convertir en predeterminado" + +#: ../../Zotlabs/Module/Manage.php:172 +#, php-format +msgid "%d new messages" +msgstr "%d mensajes nuevos" + +#: ../../Zotlabs/Module/Manage.php:173 +#, php-format +msgid "%d new introductions" +msgstr "%d nuevas solicitudes de conexión" + +#: ../../Zotlabs/Module/Manage.php:175 +msgid "Delegated Channel" +msgstr "Canal delegado" + +#: ../../Zotlabs/Module/Connections.php:56 +#: ../../Zotlabs/Module/Connections.php:161 +#: ../../Zotlabs/Module/Connections.php:242 +msgid "Blocked" +msgstr "Bloqueadas" + +#: ../../Zotlabs/Module/Connections.php:61 +#: ../../Zotlabs/Module/Connections.php:168 +#: ../../Zotlabs/Module/Connections.php:241 +msgid "Ignored" +msgstr "Ignoradas" + +#: ../../Zotlabs/Module/Connections.php:66 +#: ../../Zotlabs/Module/Connections.php:182 +#: ../../Zotlabs/Module/Connections.php:240 +msgid "Hidden" +msgstr "Ocultas" + +#: ../../Zotlabs/Module/Connections.php:71 +#: ../../Zotlabs/Module/Connections.php:175 +#: ../../Zotlabs/Module/Connections.php:239 +msgid "Archived" +msgstr "Archivadas" + +#: ../../Zotlabs/Module/Connections.php:76 +#: ../../Zotlabs/Module/Connections.php:86 ../../Zotlabs/Module/Menu.php:116 +#: ../../include/conversation.php:1576 +msgid "New" +msgstr "Nuevas" + +#: ../../Zotlabs/Module/Connections.php:138 +msgid "New Connections" +msgstr "Nuevas conexiones" + +#: ../../Zotlabs/Module/Connections.php:141 +msgid "Show pending (new) connections" +msgstr "Mostrar conexiones (nuevas) pendientes" + +#: ../../Zotlabs/Module/Connections.php:145 +#: ../../Zotlabs/Module/Profperm.php:144 +msgid "All Connections" +msgstr "Todas las conexiones" + +#: ../../Zotlabs/Module/Connections.php:148 +msgid "Show all connections" +msgstr "Mostrar todas las conexiones" + +#: ../../Zotlabs/Module/Connections.php:164 +msgid "Only show blocked connections" +msgstr "Mostrar solo las conexiones bloqueadas" + +#: ../../Zotlabs/Module/Connections.php:171 +msgid "Only show ignored connections" +msgstr "Mostrar solo conexiones ignoradas" + +#: ../../Zotlabs/Module/Connections.php:178 +msgid "Only show archived connections" +msgstr "Mostrar solo las conexiones archivadas" + +#: ../../Zotlabs/Module/Connections.php:185 +msgid "Only show hidden connections" +msgstr "Mostrar solo las conexiones ocultas" + +#: ../../Zotlabs/Module/Connections.php:238 +msgid "Pending approval" +msgstr "Pendiente de aprobación" + +#: ../../Zotlabs/Module/Connections.php:254 +#, php-format +msgid "%1$s [%2$s]" +msgstr "%1$s [%2$s]" + +#: ../../Zotlabs/Module/Connections.php:255 +msgid "Edit connection" +msgstr "Editar conexión" + +#: ../../Zotlabs/Module/Connections.php:256 +msgid "Delete connection" +msgstr "Eliminar conexión" + +#: ../../Zotlabs/Module/Connections.php:265 +msgid "Channel address" +msgstr "Dirección del canal" + +#: ../../Zotlabs/Module/Connections.php:267 +msgid "Network" +msgstr "Red" + +#: ../../Zotlabs/Module/Connections.php:270 +msgid "Status" +msgstr "Estado" + +#: ../../Zotlabs/Module/Connections.php:272 +msgid "Connected" +msgstr "Conectado/a" + +#: ../../Zotlabs/Module/Connections.php:274 +msgid "Approve connection" +msgstr "Aprobar esta conexión" + +#: ../../Zotlabs/Module/Connections.php:275 +#: ../../Zotlabs/Module/Admin/Accounts.php:171 +msgid "Approve" +msgstr "Aprobar" + +#: ../../Zotlabs/Module/Connections.php:276 +msgid "Ignore connection" +msgstr "Ignorar esta conexión" + +#: ../../Zotlabs/Module/Connections.php:278 +msgid "Recent activity" +msgstr "Actividad reciente" + +#: ../../Zotlabs/Module/Connections.php:302 ../../Zotlabs/Lib/Apps.php:211 +#: ../../include/nav.php:189 ../../include/text.php:916 +msgid "Connections" +msgstr "Conexiones" + +#: ../../Zotlabs/Module/Connections.php:306 ../../Zotlabs/Module/Search.php:44 +#: ../../Zotlabs/Lib/Apps.php:232 ../../include/nav.php:168 +#: ../../include/text.php:986 ../../include/text.php:998 +#: ../../include/acl_selectors.php:203 ../../include/widgets.php:315 +msgid "Search" +msgstr "Buscar" + +#: ../../Zotlabs/Module/Connections.php:307 +msgid "Search your connections" +msgstr "Buscar sus conexiones" + +#: ../../Zotlabs/Module/Connections.php:308 +msgid "Connections search" +msgstr "Buscar conexiones" + +#: ../../Zotlabs/Module/Connections.php:309 +#: ../../Zotlabs/Module/Directory.php:391 +#: ../../Zotlabs/Module/Directory.php:396 ../../include/contact_widgets.php:23 +msgid "Find" +msgstr "Encontrar" + +#: ../../Zotlabs/Module/Cover_photo.php:58 +#: ../../Zotlabs/Module/Profile_photo.php:61 +msgid "Image uploaded but image cropping failed." +msgstr "Imagen actualizada, pero el recorte de la imagen ha fallado. " + +#: ../../Zotlabs/Module/Cover_photo.php:134 +#: ../../Zotlabs/Module/Cover_photo.php:181 +msgid "Cover Photos" +msgstr "Imágenes de portada del perfil" + +#: ../../Zotlabs/Module/Cover_photo.php:154 +#: ../../Zotlabs/Module/Profile_photo.php:135 +msgid "Image resize failed." +msgstr "El ajuste del tamaño de la imagen ha fallado." + +#: ../../Zotlabs/Module/Cover_photo.php:168 +#: ../../Zotlabs/Module/Profile_photo.php:196 ../../include/photos.php:149 +msgid "Unable to process image" +msgstr "No ha sido posible procesar la imagen" + +#: ../../Zotlabs/Module/Cover_photo.php:192 +#: ../../Zotlabs/Module/Profile_photo.php:231 +msgid "Image upload failed." +msgstr "La carga de la imagen ha fallado." + +#: ../../Zotlabs/Module/Cover_photo.php:210 +#: ../../Zotlabs/Module/Profile_photo.php:250 +msgid "Unable to process image." +msgstr "No ha sido posible procesar la imagen." + +#: ../../Zotlabs/Module/Cover_photo.php:233 ../../include/items.php:4253 +msgid "female" +msgstr "mujer" + +#: ../../Zotlabs/Module/Cover_photo.php:234 ../../include/items.php:4254 +#, php-format +msgid "%1$s updated her %2$s" +msgstr "%1$s ha actualizado su %2$s" + +#: ../../Zotlabs/Module/Cover_photo.php:235 ../../include/items.php:4255 +msgid "male" +msgstr "hombre" + +#: ../../Zotlabs/Module/Cover_photo.php:236 ../../include/items.php:4256 +#, php-format +msgid "%1$s updated his %2$s" +msgstr "%1$s ha actualizado su %2$s" + +#: ../../Zotlabs/Module/Cover_photo.php:238 ../../include/items.php:4258 +#, php-format +msgid "%1$s updated their %2$s" +msgstr "%1$s ha actualizado su %2$s" + +#: ../../Zotlabs/Module/Cover_photo.php:240 ../../include/channel.php:1677 +msgid "cover photo" +msgstr "Imagen de portada del perfil" + +#: ../../Zotlabs/Module/Cover_photo.php:303 +#: ../../Zotlabs/Module/Cover_photo.php:318 +#: ../../Zotlabs/Module/Profile_photo.php:311 +#: ../../Zotlabs/Module/Profile_photo.php:352 +msgid "Photo not available." +msgstr "Foto no disponible." + +#: ../../Zotlabs/Module/Cover_photo.php:354 +#: ../../Zotlabs/Module/Profile_photo.php:407 +msgid "Upload File:" +msgstr "Subir fichero:" + +#: ../../Zotlabs/Module/Cover_photo.php:355 +#: ../../Zotlabs/Module/Profile_photo.php:408 +msgid "Select a profile:" +msgstr "Seleccionar un perfil:" + +#: ../../Zotlabs/Module/Cover_photo.php:356 +msgid "Upload Cover Photo" +msgstr "Subir imagen de portada del perfil" + +#: ../../Zotlabs/Module/Cover_photo.php:361 +#: ../../Zotlabs/Module/Profile_photo.php:416 +#: ../../Zotlabs/Module/Settings/Channel.php:399 +msgid "or" +msgstr "o" + +#: ../../Zotlabs/Module/Cover_photo.php:361 +#: ../../Zotlabs/Module/Profile_photo.php:416 +msgid "skip this step" +msgstr "Omitir este paso" + +#: ../../Zotlabs/Module/Cover_photo.php:361 +#: ../../Zotlabs/Module/Profile_photo.php:416 +msgid "select a photo from your photo albums" +msgstr "Seleccione una foto de sus álbumes de fotos" + +#: ../../Zotlabs/Module/Cover_photo.php:377 +#: ../../Zotlabs/Module/Profile_photo.php:435 +msgid "Crop Image" +msgstr "Recortar imagen" + +#: ../../Zotlabs/Module/Cover_photo.php:378 +#: ../../Zotlabs/Module/Profile_photo.php:436 +msgid "Please adjust the image cropping for optimum viewing." +msgstr "Por favor ajuste el recorte de la imagen para una visión óptima." + +#: ../../Zotlabs/Module/Cover_photo.php:380 +#: ../../Zotlabs/Module/Profile_photo.php:438 +msgid "Done Editing" +msgstr "Edición completada" #: ../../Zotlabs/Module/Admin/Features.php:55 #: ../../Zotlabs/Module/Admin/Features.php:56 @@ -927,8 +1740,20 @@ msgstr "Gestionar las funcionalidades" msgid "Log settings updated." msgstr "Actualizado el informe de configuraciones." -#: ../../Zotlabs/Module/Admin/Logs.php:83 ../../include/widgets.php:1587 -#: ../../include/widgets.php:1597 +#: ../../Zotlabs/Module/Admin/Logs.php:82 +#: ../../Zotlabs/Module/Admin/Plugins.php:336 +#: ../../Zotlabs/Module/Admin/Plugins.php:427 +#: ../../Zotlabs/Module/Admin/Security.php:86 +#: ../../Zotlabs/Module/Admin/Themes.php:120 +#: ../../Zotlabs/Module/Admin/Themes.php:154 +#: ../../Zotlabs/Module/Admin/Accounts.php:164 +#: ../../Zotlabs/Module/Admin/Channels.php:145 +#: ../../Zotlabs/Module/Admin/Site.php:258 ../../Zotlabs/Module/Admin.php:137 +msgid "Administration" +msgstr "Administración" + +#: ../../Zotlabs/Module/Admin/Logs.php:83 ../../include/widgets.php:1588 +#: ../../include/widgets.php:1598 msgid "Logs" msgstr "Informes" @@ -957,8 +1782,8 @@ msgstr "Nivel de depuración" #: ../../Zotlabs/Module/Admin/Plugins.php:254 #: ../../Zotlabs/Module/Admin/Themes.php:69 #: ../../Zotlabs/Module/Filestorage.php:32 ../../Zotlabs/Module/Display.php:40 -#: ../../Zotlabs/Module/Admin.php:62 ../../Zotlabs/Module/Thing.php:89 -#: ../../Zotlabs/Module/Viewsrc.php:24 ../../include/items.php:3427 +#: ../../Zotlabs/Module/Admin.php:60 ../../Zotlabs/Module/Thing.php:89 +#: ../../Zotlabs/Module/Viewsrc.php:24 ../../include/items.php:3343 msgid "Item not found." msgstr "Elemento no encontrado." @@ -983,7 +1808,7 @@ msgid "Enable" msgstr "Activar" #: ../../Zotlabs/Module/Admin/Plugins.php:337 -#: ../../Zotlabs/Module/Admin/Plugins.php:428 ../../include/widgets.php:1565 +#: ../../Zotlabs/Module/Admin/Plugins.php:428 ../../include/widgets.php:1566 msgid "Plugins" msgstr "Extensiones (plugins)" @@ -993,8 +1818,8 @@ msgid "Toggle" msgstr "Cambiar" #: ../../Zotlabs/Module/Admin/Plugins.php:339 -#: ../../Zotlabs/Module/Admin/Themes.php:123 ../../Zotlabs/Lib/Apps.php:216 -#: ../../include/nav.php:213 ../../include/widgets.php:680 +#: ../../Zotlabs/Module/Admin/Themes.php:123 ../../Zotlabs/Lib/Apps.php:218 +#: ../../include/nav.php:211 ../../include/widgets.php:680 msgid "Settings" msgstr "Ajustes" @@ -1057,17 +1882,21 @@ msgstr "Descargar el repositorio" msgid "Install new repo" msgstr "Instalar un nuevo repositorio" -#: ../../Zotlabs/Module/Admin/Plugins.php:413 ../../Zotlabs/Lib/Apps.php:334 +#: ../../Zotlabs/Module/Admin/Plugins.php:413 ../../Zotlabs/Lib/Apps.php:339 msgid "Install" msgstr "Instalar" #: ../../Zotlabs/Module/Admin/Plugins.php:414 #: ../../Zotlabs/Module/Fbrowser.php:66 ../../Zotlabs/Module/Fbrowser.php:88 -#: ../../Zotlabs/Module/Wiki.php:171 ../../Zotlabs/Module/Wiki.php:211 -#: ../../Zotlabs/Module/Tagrm.php:15 ../../Zotlabs/Module/Tagrm.php:138 +#: ../../Zotlabs/Module/Wiki.php:238 ../../Zotlabs/Module/Wiki.php:261 #: ../../Zotlabs/Module/Settings/Oauth.php:88 #: ../../Zotlabs/Module/Settings/Oauth.php:114 -#: ../../include/conversation.php:1248 ../../include/conversation.php:1297 +#: ../../Zotlabs/Module/Tagrm.php:15 ../../Zotlabs/Module/Tagrm.php:138 +#: ../../extend/addon/addon/friendica/dfrn_request.php:879 +#: ../../extend/addon/addon/js_upload/js_upload.php:46 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:866 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1154 +#: ../../include/conversation.php:1246 ../../include/conversation.php:1295 msgid "Cancel" msgstr "Cancelar" @@ -1085,7 +1914,8 @@ msgstr "Instalar un nuevo repositorio de plugins" #: ../../Zotlabs/Module/Admin/Plugins.php:443 #: ../../Zotlabs/Module/Settings/Oauth.php:42 -#: ../../Zotlabs/Module/Settings/Oauth.php:113 ../../Zotlabs/Lib/Apps.php:334 +#: ../../Zotlabs/Module/Settings/Oauth.php:113 ../../Zotlabs/Lib/Apps.php:339 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1152 msgid "Update" msgstr "Actualizar" @@ -1095,6 +1925,7 @@ msgstr "Cambiar la rama" #: ../../Zotlabs/Module/Admin/Plugins.php:445 #: ../../Zotlabs/Module/Photos.php:989 ../../Zotlabs/Module/Tagrm.php:137 +#: ../../extend/addon/addon/superblock/superblock.php:114 msgid "Remove" msgstr "Eliminar" @@ -1137,14 +1968,6 @@ msgstr "Texto de ayuda" msgid "Additional info (optional)" msgstr "Información adicional (opcional)" -#: ../../Zotlabs/Module/Admin/Profs.php:74 -#: ../../Zotlabs/Module/Admin/Profs.php:94 ../../Zotlabs/Module/Filer.php:53 -#: ../../Zotlabs/Module/Rbmark.php:32 ../../Zotlabs/Module/Rbmark.php:104 -#: ../../include/text.php:972 ../../include/text.php:984 -#: ../../include/widgets.php:201 -msgid "Save" -msgstr "Guardar" - #: ../../Zotlabs/Module/Admin/Profs.php:83 msgid "Field definition not found" msgstr "Definición del campo no encontrada" @@ -1153,7 +1976,7 @@ msgstr "Definición del campo no encontrada" msgid "Edit Profile Field" msgstr "Modificar el campo del perfil" -#: ../../Zotlabs/Module/Admin/Profs.php:147 ../../include/widgets.php:1568 +#: ../../Zotlabs/Module/Admin/Profs.php:147 ../../include/widgets.php:1569 msgid "Profile Fields" msgstr "Campos del perfil" @@ -1233,7 +2056,7 @@ msgid "" "embedded content from that site is explicitly blocked." msgstr "El resto del contenido incrustado se filtrará, excepto si el contenido incorporado desde ese sitio está bloqueado de forma explícita." -#: ../../Zotlabs/Module/Admin/Security.php:87 ../../include/widgets.php:1563 +#: ../../Zotlabs/Module/Admin/Security.php:87 ../../include/widgets.php:1564 msgid "Security" msgstr "Seguridad" @@ -1321,412 +2144,6 @@ msgstr "Un sitio por línea. El contenido incorporado se filtra de forma predete msgid "Block embedded HTML from these domains" msgstr "Bloquear contenido con HTML incorporado desde estos dominios" -#: ../../Zotlabs/Module/Admin/Site.php:135 -msgid "Site settings updated." -msgstr "Ajustes del sitio actualizados." - -#: ../../Zotlabs/Module/Admin/Site.php:162 ../../include/text.php:2942 -msgid "Default" -msgstr "Predeterminado" - -#: ../../Zotlabs/Module/Admin/Site.php:172 -#: ../../Zotlabs/Module/Settings/Display.php:141 -msgid "mobile" -msgstr "móvil" - -#: ../../Zotlabs/Module/Admin/Site.php:174 -msgid "experimental" -msgstr "experimental" - -#: ../../Zotlabs/Module/Admin/Site.php:176 -msgid "unsupported" -msgstr "no soportado" - -#: ../../Zotlabs/Module/Admin/Site.php:221 -#: ../../Zotlabs/Module/Connedit.php:408 ../../Zotlabs/Module/Connedit.php:686 -#: ../../Zotlabs/Module/Menu.php:100 ../../Zotlabs/Module/Menu.php:157 -#: ../../Zotlabs/Module/Api.php:85 ../../Zotlabs/Module/Filestorage.php:160 -#: ../../Zotlabs/Module/Filestorage.php:168 -#: ../../Zotlabs/Module/Profiles.php:647 ../../Zotlabs/Module/Mitem.php:162 -#: ../../Zotlabs/Module/Mitem.php:163 ../../Zotlabs/Module/Mitem.php:240 -#: ../../Zotlabs/Module/Mitem.php:241 ../../Zotlabs/Module/Removeme.php:63 -#: ../../Zotlabs/Module/Photos.php:653 ../../Zotlabs/Module/Events.php:462 -#: ../../Zotlabs/Module/Events.php:463 ../../Zotlabs/Module/Events.php:472 -#: ../../Zotlabs/Module/Settings/Channel.php:289 -#: ../../Zotlabs/Module/Settings/Display.php:101 ../../include/dir_fns.php:143 -#: ../../include/dir_fns.php:144 ../../include/dir_fns.php:145 -#: ../../view/theme/redbasic/php/config.php:111 -#: ../../view/theme/redbasic/php/config.php:136 ../../boot.php:1743 -msgid "No" -msgstr "No" - -#: ../../Zotlabs/Module/Admin/Site.php:222 -msgid "Yes - with approval" -msgstr "Sí - con aprobación" - -#: ../../Zotlabs/Module/Admin/Site.php:223 -#: ../../Zotlabs/Module/Connedit.php:408 ../../Zotlabs/Module/Menu.php:100 -#: ../../Zotlabs/Module/Menu.php:157 ../../Zotlabs/Module/Api.php:84 -#: ../../Zotlabs/Module/Filestorage.php:160 -#: ../../Zotlabs/Module/Filestorage.php:168 -#: ../../Zotlabs/Module/Profiles.php:647 ../../Zotlabs/Module/Mitem.php:162 -#: ../../Zotlabs/Module/Mitem.php:163 ../../Zotlabs/Module/Mitem.php:240 -#: ../../Zotlabs/Module/Mitem.php:241 ../../Zotlabs/Module/Removeme.php:63 -#: ../../Zotlabs/Module/Photos.php:653 ../../Zotlabs/Module/Events.php:462 -#: ../../Zotlabs/Module/Events.php:463 ../../Zotlabs/Module/Events.php:472 -#: ../../Zotlabs/Module/Settings/Channel.php:289 -#: ../../Zotlabs/Module/Settings/Display.php:101 ../../include/dir_fns.php:143 -#: ../../include/dir_fns.php:144 ../../include/dir_fns.php:145 -#: ../../view/theme/redbasic/php/config.php:111 -#: ../../view/theme/redbasic/php/config.php:136 ../../boot.php:1743 -msgid "Yes" -msgstr "Sí" - -#: ../../Zotlabs/Module/Admin/Site.php:228 -msgid "My site is not a public server" -msgstr "Mi sitio no es un servidor público" - -#: ../../Zotlabs/Module/Admin/Site.php:229 -msgid "My site has paid access only" -msgstr "Mi sitio es un servicio de pago" - -#: ../../Zotlabs/Module/Admin/Site.php:230 -msgid "My site has free access only" -msgstr "Mi sitio es un servicio gratuito" - -#: ../../Zotlabs/Module/Admin/Site.php:231 -msgid "My site offers free accounts with optional paid upgrades" -msgstr "Mi sitio ofrece cuentas gratuitas con opciones extra de pago" - -#: ../../Zotlabs/Module/Admin/Site.php:242 ../../Zotlabs/Module/Setup.php:336 -msgid "Basic/Minimal Social Networking" -msgstr "Red social básica o mínima" - -#: ../../Zotlabs/Module/Admin/Site.php:243 ../../Zotlabs/Module/Setup.php:337 -msgid "Standard Configuration (default)" -msgstr "Configuración estándar (por defecto)" - -#: ../../Zotlabs/Module/Admin/Site.php:244 ../../Zotlabs/Module/Setup.php:338 -msgid "Professional" -msgstr "Profesional" - -#: ../../Zotlabs/Module/Admin/Site.php:249 -#: ../../Zotlabs/Module/Settings/Account.php:105 -msgid "Beginner/Basic" -msgstr "Principiante / Básico" - -#: ../../Zotlabs/Module/Admin/Site.php:250 -#: ../../Zotlabs/Module/Settings/Account.php:106 -msgid "Novice - not skilled but willing to learn" -msgstr "Novato: no cualificado, pero dispuesto a aprender" - -#: ../../Zotlabs/Module/Admin/Site.php:251 -#: ../../Zotlabs/Module/Settings/Account.php:107 -msgid "Intermediate - somewhat comfortable" -msgstr "Intermedio: bastante cómodo" - -#: ../../Zotlabs/Module/Admin/Site.php:252 -#: ../../Zotlabs/Module/Settings/Account.php:108 -msgid "Advanced - very comfortable" -msgstr "Avanzado: muy cómodo" - -#: ../../Zotlabs/Module/Admin/Site.php:253 -#: ../../Zotlabs/Module/Settings/Account.php:109 -msgid "Expert - I can write computer code" -msgstr "Experto: puedo escribir código informático" - -#: ../../Zotlabs/Module/Admin/Site.php:254 -#: ../../Zotlabs/Module/Settings/Account.php:110 -msgid "Wizard - I probably know more than you do" -msgstr "Asistente: probablemente sé más que tú" - -#: ../../Zotlabs/Module/Admin/Site.php:266 ../../include/widgets.php:1560 -msgid "Site" -msgstr "Sitio" - -#: ../../Zotlabs/Module/Admin/Site.php:268 -#: ../../Zotlabs/Module/Register.php:253 -msgid "Registration" -msgstr "Registro" - -#: ../../Zotlabs/Module/Admin/Site.php:269 -msgid "File upload" -msgstr "Subir fichero" - -#: ../../Zotlabs/Module/Admin/Site.php:270 -msgid "Policies" -msgstr "Políticas" - -#: ../../Zotlabs/Module/Admin/Site.php:271 -#: ../../include/contact_widgets.php:16 -msgid "Advanced" -msgstr "Avanzado" - -#: ../../Zotlabs/Module/Admin/Site.php:275 -msgid "Site name" -msgstr "Nombre del sitio" - -#: ../../Zotlabs/Module/Admin/Site.php:277 ../../Zotlabs/Module/Setup.php:359 -msgid "Server Configuration/Role" -msgstr "Configuración del servidor" - -#: ../../Zotlabs/Module/Admin/Site.php:279 -msgid "Site default technical skill level" -msgstr "Nivel de habilidad técnica predeterminado del sitio" - -#: ../../Zotlabs/Module/Admin/Site.php:279 -msgid "Used to provide a member experience matched to technical comfort level" -msgstr "Se utiliza para proporcionar la experiencia de los miembros adaptada al nivel de comodidad" - -#: ../../Zotlabs/Module/Admin/Site.php:281 -msgid "Lock the technical skill level setting" -msgstr "Bloquear el ajuste del nivel de habilidad técnica" - -#: ../../Zotlabs/Module/Admin/Site.php:281 -msgid "Members can set their own technical comfort level by default" -msgstr "Los miembros pueden configurar por defecto su nivel de comodidad técnica" - -#: ../../Zotlabs/Module/Admin/Site.php:284 -msgid "Banner/Logo" -msgstr "Banner/Logo" - -#: ../../Zotlabs/Module/Admin/Site.php:285 -msgid "Administrator Information" -msgstr "Información del Administrador" - -#: ../../Zotlabs/Module/Admin/Site.php:285 -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" - -#: ../../Zotlabs/Module/Admin/Site.php:286 -msgid "System language" -msgstr "Idioma del sistema" - -#: ../../Zotlabs/Module/Admin/Site.php:287 -msgid "System theme" -msgstr "Tema gráfico del sistema" - -#: ../../Zotlabs/Module/Admin/Site.php:287 -msgid "" -"Default system theme - may be over-ridden by user profiles - change theme settings" -msgstr "Tema del sistema por defecto - se puede cambiar por cada perfil de usuario - modificar los ajustes del tema" - -#: ../../Zotlabs/Module/Admin/Site.php:288 -msgid "Mobile system theme" -msgstr "Tema del sistema para móviles" - -#: ../../Zotlabs/Module/Admin/Site.php:288 -msgid "Theme for mobile devices" -msgstr "Tema para dispositivos móviles" - -#: ../../Zotlabs/Module/Admin/Site.php:290 -msgid "Allow Feeds as Connections" -msgstr "Permitir contenidos RSS como conexiones" - -#: ../../Zotlabs/Module/Admin/Site.php:290 -msgid "(Heavy system resource usage)" -msgstr "(Uso intenso de los recursos del sistema)" - -#: ../../Zotlabs/Module/Admin/Site.php:291 -msgid "Maximum image size" -msgstr "Tamaño máximo de la imagen" - -#: ../../Zotlabs/Module/Admin/Site.php:291 -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." - -#: ../../Zotlabs/Module/Admin/Site.php:292 -msgid "Does this site allow new member registration?" -msgstr "¿Debe este sitio permitir el registro de nuevos miembros?" - -#: ../../Zotlabs/Module/Admin/Site.php:293 -msgid "Invitation only" -msgstr "Solo con una invitación" - -#: ../../Zotlabs/Module/Admin/Site.php:293 -msgid "" -"Only allow new member registrations with an invitation code. Above register " -"policy must be set to Yes." -msgstr "Solo se permiten inscripciones de nuevos miembros con un código de invitación. Además, deben aceptarse los términos del registro marcando \"Sí\"." - -#: ../../Zotlabs/Module/Admin/Site.php:294 -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?" - -#: ../../Zotlabs/Module/Admin/Site.php:295 -msgid "Register text" -msgstr "Texto del registro" - -#: ../../Zotlabs/Module/Admin/Site.php:295 -msgid "Will be displayed prominently on the registration page." -msgstr "Se mostrará de forma destacada en la página de registro." - -#: ../../Zotlabs/Module/Admin/Site.php:296 -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)" - -#: ../../Zotlabs/Module/Admin/Site.php:296 -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, 'page/sys/home' para mostrar la página web definida como \"home\" o 'include:home.html' para mostrar el contenido de un fichero." - -#: ../../Zotlabs/Module/Admin/Site.php:297 -msgid "Preserve site homepage URL" -msgstr "Preservar la dirección de la página personal" - -#: ../../Zotlabs/Module/Admin/Site.php:297 -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." - -#: ../../Zotlabs/Module/Admin/Site.php:298 -msgid "Accounts abandoned after x days" -msgstr "Cuentas abandonadas después de x días" - -#: ../../Zotlabs/Module/Admin/Site.php:298 -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." - -#: ../../Zotlabs/Module/Admin/Site.php:299 -msgid "Allowed friend domains" -msgstr "Dominios amigos permitidos" - -#: ../../Zotlabs/Module/Admin/Site.php:299 -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." - -#: ../../Zotlabs/Module/Admin/Site.php:300 -msgid "Verify Email Addresses" -msgstr "Verificar las direcciones de correo electrónico" - -#: ../../Zotlabs/Module/Admin/Site.php:300 -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)." - -#: ../../Zotlabs/Module/Admin/Site.php:301 -msgid "Force publish" -msgstr "Forzar la publicación" - -#: ../../Zotlabs/Module/Admin/Site.php:301 -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." - -#: ../../Zotlabs/Module/Admin/Site.php:302 -msgid "Import Public Streams" -msgstr "Importar contenido público" - -#: ../../Zotlabs/Module/Admin/Site.php:302 -msgid "" -"Import and allow access to public content pulled from other sites. Warning: " -"this content is unmoderated." -msgstr "Importar y permitir acceso al contenido público sacado de otros sitios. Advertencia: este contenido no está moderado, por lo que podría encontrar cosas inapropiadas u ofensivas." - -#: ../../Zotlabs/Module/Admin/Site.php:303 -msgid "Login on Homepage" -msgstr "Iniciar sesión en la página personal" - -#: ../../Zotlabs/Module/Admin/Site.php:303 -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." - -#: ../../Zotlabs/Module/Admin/Site.php:304 -msgid "Enable context help" -msgstr "Habilitar la ayuda contextual" - -#: ../../Zotlabs/Module/Admin/Site.php:304 -msgid "" -"Display contextual help for the current page when the help button is " -"pressed." -msgstr "Ver la ayuda contextual para la página actual cuando se pulse el botón de Ayuda." - -#: ../../Zotlabs/Module/Admin/Site.php:306 -msgid "Directory Server URL" -msgstr "URL del servidor de directorio" - -#: ../../Zotlabs/Module/Admin/Site.php:306 -msgid "Default directory server" -msgstr "Servidor de directorio predeterminado" - -#: ../../Zotlabs/Module/Admin/Site.php:308 -msgid "Proxy user" -msgstr "Usuario del proxy" - -#: ../../Zotlabs/Module/Admin/Site.php:309 -msgid "Proxy URL" -msgstr "Dirección del proxy" - -#: ../../Zotlabs/Module/Admin/Site.php:310 -msgid "Network timeout" -msgstr "Tiempo de espera de la red" - -#: ../../Zotlabs/Module/Admin/Site.php:310 -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)" - -#: ../../Zotlabs/Module/Admin/Site.php:311 -msgid "Delivery interval" -msgstr "Intervalo de entrega" - -#: ../../Zotlabs/Module/Admin/Site.php:311 -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." - -#: ../../Zotlabs/Module/Admin/Site.php:312 -msgid "Deliveries per process" -msgstr "Intentos de envío por proceso" - -#: ../../Zotlabs/Module/Admin/Site.php:312 -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." - -#: ../../Zotlabs/Module/Admin/Site.php:313 -msgid "Poll interval" -msgstr "Intervalo máximo de tiempo entre dos mensajes sucesivos" - -#: ../../Zotlabs/Module/Admin/Site.php:313 -msgid "" -"Delay background polling processes by this many seconds to reduce system " -"load. If 0, use delivery interval." -msgstr "Retrasar el intervalo de envío en segundo plano, en esta cantidad de segundos, para reducir la carga del sistema. Si es 0, usar el intervalo de entrega." - -#: ../../Zotlabs/Module/Admin/Site.php:314 -msgid "Maximum Load Average" -msgstr "Carga media máxima" - -#: ../../Zotlabs/Module/Admin/Site.php:314 -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 entrega y envío se hayan retardado - por defecto, 50." - -#: ../../Zotlabs/Module/Admin/Site.php:315 -msgid "Expiration period in days for imported (grid/network) content" -msgstr "Caducidad del contenido importado de otros sitios (en días)" - -#: ../../Zotlabs/Module/Admin/Site.php:315 -msgid "0 for no expiration of imported content" -msgstr "0 para que no caduque el contenido importado" - #: ../../Zotlabs/Module/Admin/Themes.php:18 msgid "Theme settings updated." msgstr "Ajustes del tema actualizados." @@ -1740,7 +2157,7 @@ msgid "Screenshot" msgstr "Instantánea de pantalla" #: ../../Zotlabs/Module/Admin/Themes.php:121 -#: ../../Zotlabs/Module/Admin/Themes.php:155 ../../include/widgets.php:1566 +#: ../../Zotlabs/Module/Admin/Themes.php:155 ../../include/widgets.php:1567 msgid "Themes" msgstr "Temas" @@ -1752,731 +2169,707 @@ msgstr "[Experimental]" msgid "[Unsupported]" msgstr "[No soportado]" -#: ../../Zotlabs/Module/Fbrowser.php:29 ../../Zotlabs/Lib/Apps.php:222 -#: ../../include/nav.php:95 ../../include/conversation.php:1672 -msgid "Photos" -msgstr "Fotos" - -#: ../../Zotlabs/Module/Page.php:40 ../../Zotlabs/Module/Block.php:31 -msgid "Invalid item." -msgstr "Elemento no válido." - -#: ../../Zotlabs/Module/Page.php:56 ../../Zotlabs/Module/Block.php:43 -#: ../../Zotlabs/Module/Cal.php:62 ../../Zotlabs/Module/Wall_upload.php:33 -msgid "Channel not found." -msgstr "Canal no encontrado." - -#: ../../Zotlabs/Module/Page.php:131 -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." - -#: ../../Zotlabs/Module/Filer.php:52 -msgid "Save to Folder:" -msgstr "Guardar en carpeta:" - -#: ../../Zotlabs/Module/Filer.php:52 -msgid "- select -" -msgstr "- seleccionar -" - -#: ../../Zotlabs/Module/Mail.php:38 -msgid "Unable to lookup recipient." -msgstr "No se puede asociar a un destinatario." - -#: ../../Zotlabs/Module/Mail.php:45 -msgid "Unable to communicate with requested channel." -msgstr "No se puede establecer la comunicación con el canal solicitado." - -#: ../../Zotlabs/Module/Mail.php:52 -msgid "Cannot verify requested channel." -msgstr "No se puede verificar el canal solicitado." - -#: ../../Zotlabs/Module/Mail.php:70 -msgid "Selected channel has private message restrictions. Send failed." -msgstr "El canal seleccionado tiene restricciones sobre los mensajes privados. El envío falló." - -#: ../../Zotlabs/Module/Mail.php:135 -msgid "Messages" -msgstr "Mensajes" - -#: ../../Zotlabs/Module/Mail.php:170 -msgid "Message recalled." -msgstr "Mensaje revocado." - -#: ../../Zotlabs/Module/Mail.php:183 -msgid "Conversation removed." -msgstr "Conversación eliminada." - -#: ../../Zotlabs/Module/Mail.php:197 ../../Zotlabs/Module/Mail.php:306 -#: ../../Zotlabs/Module/Chat.php:205 ../../include/conversation.php:1184 -msgid "Please enter a link URL:" -msgstr "Por favor, introduzca la dirección del enlace:" - -#: ../../Zotlabs/Module/Mail.php:198 ../../Zotlabs/Module/Mail.php:307 -msgid "Expires YYYY-MM-DD HH:MM" -msgstr "Caduca YYYY-MM-DD HH:MM" - -#: ../../Zotlabs/Module/Mail.php:226 -msgid "Requested channel is not in this network" -msgstr "El canal solicitado no existe en esta red" - -#: ../../Zotlabs/Module/Mail.php:234 -msgid "Send Private Message" -msgstr "Enviar un mensaje privado" - -#: ../../Zotlabs/Module/Mail.php:235 ../../Zotlabs/Module/Mail.php:360 -msgid "To:" -msgstr "Para:" - -#: ../../Zotlabs/Module/Mail.php:238 ../../Zotlabs/Module/Mail.php:362 -msgid "Subject:" -msgstr "Asunto:" - -#: ../../Zotlabs/Module/Mail.php:241 ../../Zotlabs/Module/Invite.php:135 -msgid "Your message:" -msgstr "Su mensaje:" - -#: ../../Zotlabs/Module/Mail.php:243 ../../Zotlabs/Module/Mail.php:368 -#: ../../include/conversation.php:1244 -msgid "Attach file" -msgstr "Adjuntar fichero" - -#: ../../Zotlabs/Module/Mail.php:244 ../../Zotlabs/Module/Mail.php:369 -#: ../../Zotlabs/Module/Editblock.php:111 -#: ../../Zotlabs/Module/Editwebpage.php:146 ../../Zotlabs/Module/Chat.php:207 -#: ../../include/conversation.php:1149 -msgid "Insert web link" -msgstr "Insertar enlace web" - -#: ../../Zotlabs/Module/Mail.php:245 -msgid "Send" -msgstr "Enviar" - -#: ../../Zotlabs/Module/Mail.php:248 ../../Zotlabs/Module/Mail.php:373 -#: ../../include/conversation.php:1289 -msgid "Set expiration date" -msgstr "Configurar fecha de caducidad" - -#: ../../Zotlabs/Module/Mail.php:250 ../../Zotlabs/Module/Mail.php:375 -#: ../../Zotlabs/Module/Chat.php:206 ../../Zotlabs/Lib/ThreadItem.php:737 -#: ../../include/conversation.php:1294 -msgid "Encrypt text" -msgstr "Cifrar texto" - -#: ../../Zotlabs/Module/Mail.php:332 -msgid "Delete message" -msgstr "Borrar mensaje" - -#: ../../Zotlabs/Module/Mail.php:333 -msgid "Delivery report" -msgstr "Informe de transmisión" - -#: ../../Zotlabs/Module/Mail.php:334 -msgid "Recall message" -msgstr "Revocar el mensaje" - -#: ../../Zotlabs/Module/Mail.php:336 -msgid "Message has been recalled." -msgstr "El mensaje ha sido revocado." - -#: ../../Zotlabs/Module/Mail.php:353 -msgid "Delete Conversation" -msgstr "Eliminar conversación" - -#: ../../Zotlabs/Module/Mail.php:355 -msgid "" -"No secure communications available. You may be able to " -"respond from the sender's profile page." -msgstr "Comunicación segura no disponible. Pero puede responder desde la página del perfil del remitente." - -#: ../../Zotlabs/Module/Mail.php:359 -msgid "Send Reply" -msgstr "Responder" - -#: ../../Zotlabs/Module/Mail.php:364 +#: ../../Zotlabs/Module/Admin/Account_edit.php:29 #, php-format -msgid "Your message for %s (%s):" -msgstr "Su mensaje para %s (%s):" +msgid "Password changed for account %d." +msgstr "Ha cambiado la contraseña para la cuenta %d." -#: ../../Zotlabs/Module/Connections.php:56 -#: ../../Zotlabs/Module/Connections.php:161 -#: ../../Zotlabs/Module/Connections.php:242 -msgid "Blocked" -msgstr "Bloqueadas" +#: ../../Zotlabs/Module/Admin/Account_edit.php:46 +msgid "Account settings updated." +msgstr "Se han actualizado los ajustes de la cuenta." -#: ../../Zotlabs/Module/Connections.php:61 -#: ../../Zotlabs/Module/Connections.php:168 -#: ../../Zotlabs/Module/Connections.php:241 -msgid "Ignored" -msgstr "Ignoradas" +#: ../../Zotlabs/Module/Admin/Account_edit.php:61 +msgid "Account not found." +msgstr "No se ha encontrado la cuenta." -#: ../../Zotlabs/Module/Connections.php:66 -#: ../../Zotlabs/Module/Connections.php:182 -#: ../../Zotlabs/Module/Connections.php:240 -msgid "Hidden" -msgstr "Ocultas" +#: ../../Zotlabs/Module/Admin/Account_edit.php:68 +msgid "Account Edit" +msgstr "Editar la cuenta" -#: ../../Zotlabs/Module/Connections.php:71 -#: ../../Zotlabs/Module/Connections.php:175 -#: ../../Zotlabs/Module/Connections.php:239 -msgid "Archived" -msgstr "Archivadas" +#: ../../Zotlabs/Module/Admin/Account_edit.php:69 +msgid "New Password" +msgstr "Nueva contraseña" -#: ../../Zotlabs/Module/Connections.php:76 -#: ../../Zotlabs/Module/Connections.php:86 ../../Zotlabs/Module/Menu.php:116 -#: ../../include/conversation.php:1573 -msgid "New" -msgstr "Nuevas" +#: ../../Zotlabs/Module/Admin/Account_edit.php:70 +msgid "New Password again" +msgstr "Nueva contraseña otra vez" -#: ../../Zotlabs/Module/Connections.php:92 -#: ../../Zotlabs/Module/Connections.php:107 -#: ../../Zotlabs/Module/Connedit.php:629 ../../include/widgets.php:533 -msgid "All" -msgstr "Todos/as" +#: ../../Zotlabs/Module/Admin/Account_edit.php:71 +msgid "Technical skill level" +msgstr "Nivel de habilidad técnica" -#: ../../Zotlabs/Module/Connections.php:138 -msgid "New Connections" -msgstr "Nuevas conexiones" +#: ../../Zotlabs/Module/Admin/Account_edit.php:72 +msgid "Account language (for emails)" +msgstr "Idioma de la cuenta (para los correos electrónicos)" -#: ../../Zotlabs/Module/Connections.php:141 -msgid "Show pending (new) connections" -msgstr "Mostrar conexiones (nuevas) pendientes" +#: ../../Zotlabs/Module/Admin/Account_edit.php:73 +msgid "Service class" +msgstr "Clase de servicio" -#: ../../Zotlabs/Module/Connections.php:145 -#: ../../Zotlabs/Module/Profperm.php:144 -msgid "All Connections" -msgstr "Todas las conexiones" - -#: ../../Zotlabs/Module/Connections.php:148 -msgid "Show all connections" -msgstr "Mostrar todas las conexiones" - -#: ../../Zotlabs/Module/Connections.php:164 -msgid "Only show blocked connections" -msgstr "Mostrar solo las conexiones bloqueadas" - -#: ../../Zotlabs/Module/Connections.php:171 -msgid "Only show ignored connections" -msgstr "Mostrar solo conexiones ignoradas" - -#: ../../Zotlabs/Module/Connections.php:178 -msgid "Only show archived connections" -msgstr "Mostrar solo las conexiones archivadas" - -#: ../../Zotlabs/Module/Connections.php:185 -msgid "Only show hidden connections" -msgstr "Mostrar solo las conexiones ocultas" - -#: ../../Zotlabs/Module/Connections.php:238 -msgid "Pending approval" -msgstr "Pendiente de aprobación" - -#: ../../Zotlabs/Module/Connections.php:254 +#: ../../Zotlabs/Module/Admin/Accounts.php:36 #, php-format -msgid "%1$s [%2$s]" -msgstr "%1$s [%2$s]" +msgid "%s account blocked/unblocked" +msgid_plural "%s account blocked/unblocked" +msgstr[0] "%s cuenta bloqueada/desbloqueada" +msgstr[1] "%s cuenta bloqueada/desbloqueada" -#: ../../Zotlabs/Module/Connections.php:255 -msgid "Edit connection" -msgstr "Editar conexión" - -#: ../../Zotlabs/Module/Connections.php:256 -msgid "Delete connection" -msgstr "Eliminar conexión" - -#: ../../Zotlabs/Module/Connections.php:265 -msgid "Channel address" -msgstr "Dirección del canal" - -#: ../../Zotlabs/Module/Connections.php:267 -msgid "Network" -msgstr "Red" - -#: ../../Zotlabs/Module/Connections.php:270 -msgid "Status" -msgstr "Estado" - -#: ../../Zotlabs/Module/Connections.php:272 -msgid "Connected" -msgstr "Conectado/a" - -#: ../../Zotlabs/Module/Connections.php:274 -msgid "Approve connection" -msgstr "Aprobar esta conexión" - -#: ../../Zotlabs/Module/Connections.php:276 -msgid "Ignore connection" -msgstr "Ignorar esta conexión" - -#: ../../Zotlabs/Module/Connections.php:277 -#: ../../Zotlabs/Module/Connedit.php:583 -#: ../../Zotlabs/Module/Notifications.php:55 -msgid "Ignore" -msgstr "Ignorar" - -#: ../../Zotlabs/Module/Connections.php:278 -msgid "Recent activity" -msgstr "Actividad reciente" - -#: ../../Zotlabs/Module/Connections.php:302 ../../Zotlabs/Lib/Apps.php:209 -#: ../../include/text.php:901 ../../include/nav.php:191 -msgid "Connections" -msgstr "Conexiones" - -#: ../../Zotlabs/Module/Connections.php:306 ../../Zotlabs/Module/Search.php:44 -#: ../../Zotlabs/Lib/Apps.php:230 ../../include/text.php:971 -#: ../../include/text.php:983 ../../include/acl_selectors.php:174 -#: ../../include/nav.php:170 ../../include/widgets.php:315 -msgid "Search" -msgstr "Buscar" - -#: ../../Zotlabs/Module/Connections.php:307 -msgid "Search your connections" -msgstr "Buscar sus conexiones" - -#: ../../Zotlabs/Module/Connections.php:308 -msgid "Connections search" -msgstr "Buscar conexiones" - -#: ../../Zotlabs/Module/Connections.php:309 -#: ../../Zotlabs/Module/Directory.php:388 -#: ../../Zotlabs/Module/Directory.php:393 ../../include/contact_widgets.php:23 -msgid "Find" -msgstr "Encontrar" - -#: ../../Zotlabs/Module/Cover_photo.php:58 -#: ../../Zotlabs/Module/Profile_photo.php:61 -msgid "Image uploaded but image cropping failed." -msgstr "Imagen actualizada, pero el recorte de la imagen ha fallado. " - -#: ../../Zotlabs/Module/Cover_photo.php:134 -#: ../../Zotlabs/Module/Cover_photo.php:181 -msgid "Cover Photos" -msgstr "Imágenes de portada del perfil" - -#: ../../Zotlabs/Module/Cover_photo.php:154 -#: ../../Zotlabs/Module/Profile_photo.php:135 -msgid "Image resize failed." -msgstr "El ajuste del tamaño de la imagen ha fallado." - -#: ../../Zotlabs/Module/Cover_photo.php:168 -#: ../../Zotlabs/Module/Profile_photo.php:196 ../../include/photos.php:148 -msgid "Unable to process image" -msgstr "No ha sido posible procesar la imagen" - -#: ../../Zotlabs/Module/Cover_photo.php:192 -#: ../../Zotlabs/Module/Profile_photo.php:223 -msgid "Image upload failed." -msgstr "La carga de la imagen ha fallado." - -#: ../../Zotlabs/Module/Cover_photo.php:210 -#: ../../Zotlabs/Module/Profile_photo.php:242 -msgid "Unable to process image." -msgstr "No ha sido posible procesar la imagen." - -#: ../../Zotlabs/Module/Cover_photo.php:233 ../../include/items.php:4341 -msgid "female" -msgstr "mujer" - -#: ../../Zotlabs/Module/Cover_photo.php:234 ../../include/items.php:4342 +#: ../../Zotlabs/Module/Admin/Accounts.php:43 #, php-format -msgid "%1$s updated her %2$s" -msgstr "%1$s ha actualizado su %2$s" +msgid "%s account deleted" +msgid_plural "%s accounts deleted" +msgstr[0] "%s cuentas eliminadas" +msgstr[1] "%s cuentas eliminadas" -#: ../../Zotlabs/Module/Cover_photo.php:235 ../../include/items.php:4343 -msgid "male" -msgstr "hombre" +#: ../../Zotlabs/Module/Admin/Accounts.php:79 +msgid "Account not found" +msgstr "Cuenta no encontrada" -#: ../../Zotlabs/Module/Cover_photo.php:236 ../../include/items.php:4344 +#: ../../Zotlabs/Module/Admin/Accounts.php:90 #, php-format -msgid "%1$s updated his %2$s" -msgstr "%1$s ha actualizado su %2$s" +msgid "Account '%s' deleted" +msgstr "La cuenta '%s' ha sido eliminada" -#: ../../Zotlabs/Module/Cover_photo.php:238 ../../include/items.php:4346 +#: ../../Zotlabs/Module/Admin/Accounts.php:98 #, php-format -msgid "%1$s updated their %2$s" -msgstr "%1$s ha actualizado su %2$s" +msgid "Account '%s' blocked" +msgstr "La cuenta '%s' ha sido bloqueada" -#: ../../Zotlabs/Module/Cover_photo.php:240 ../../include/channel.php:1731 -msgid "cover photo" -msgstr "Imagen de portada del perfil" - -#: ../../Zotlabs/Module/Cover_photo.php:303 -#: ../../Zotlabs/Module/Cover_photo.php:318 -#: ../../Zotlabs/Module/Profile_photo.php:300 -#: ../../Zotlabs/Module/Profile_photo.php:341 -msgid "Photo not available." -msgstr "Foto no disponible." - -#: ../../Zotlabs/Module/Cover_photo.php:354 -#: ../../Zotlabs/Module/Profile_photo.php:387 -msgid "Upload File:" -msgstr "Subir fichero:" - -#: ../../Zotlabs/Module/Cover_photo.php:355 -#: ../../Zotlabs/Module/Profile_photo.php:388 -msgid "Select a profile:" -msgstr "Seleccionar un perfil:" - -#: ../../Zotlabs/Module/Cover_photo.php:356 -msgid "Upload Cover Photo" -msgstr "Subir imagen de portada del perfil" - -#: ../../Zotlabs/Module/Cover_photo.php:361 -#: ../../Zotlabs/Module/Profile_photo.php:396 -#: ../../Zotlabs/Module/Settings/Channel.php:399 -msgid "or" -msgstr "o" - -#: ../../Zotlabs/Module/Cover_photo.php:361 -#: ../../Zotlabs/Module/Profile_photo.php:396 -msgid "skip this step" -msgstr "Omitir este paso" - -#: ../../Zotlabs/Module/Cover_photo.php:361 -#: ../../Zotlabs/Module/Profile_photo.php:396 -msgid "select a photo from your photo albums" -msgstr "Seleccione una foto de sus álbumes de fotos" - -#: ../../Zotlabs/Module/Cover_photo.php:377 -#: ../../Zotlabs/Module/Profile_photo.php:415 -msgid "Crop Image" -msgstr "Recortar imagen" - -#: ../../Zotlabs/Module/Cover_photo.php:378 -#: ../../Zotlabs/Module/Profile_photo.php:416 -msgid "Please adjust the image cropping for optimum viewing." -msgstr "Por favor ajuste el recorte de la imagen para una visión óptima." - -#: ../../Zotlabs/Module/Cover_photo.php:380 -#: ../../Zotlabs/Module/Profile_photo.php:418 -msgid "Done Editing" -msgstr "Edición completada" - -#: ../../Zotlabs/Module/Rpost.php:138 ../../Zotlabs/Module/Editpost.php:106 -msgid "Edit post" -msgstr "Editar la entrada" - -#: ../../Zotlabs/Module/Connedit.php:80 -msgid "Could not access contact record." -msgstr "No se ha podido acceder al registro de contacto." - -#: ../../Zotlabs/Module/Connedit.php:104 -msgid "Could not locate selected profile." -msgstr "No se ha podido localizar el perfil seleccionado." - -#: ../../Zotlabs/Module/Connedit.php:256 -msgid "Connection updated." -msgstr "Conexión actualizada." - -#: ../../Zotlabs/Module/Connedit.php:258 -msgid "Failed to update connection record." -msgstr "Error al actualizar el registro de la conexión." - -#: ../../Zotlabs/Module/Connedit.php:308 -msgid "is now connected to" -msgstr "ahora está conectado/a" - -#: ../../Zotlabs/Module/Connedit.php:440 -msgid "Could not access address book record." -msgstr "No se pudo acceder al registro en su libreta de direcciones." - -#: ../../Zotlabs/Module/Connedit.php:460 -msgid "Refresh failed - channel is currently unavailable." -msgstr "Recarga fallida - no se puede encontrar el canal en este momento." - -#: ../../Zotlabs/Module/Connedit.php:475 ../../Zotlabs/Module/Connedit.php:484 -#: ../../Zotlabs/Module/Connedit.php:493 ../../Zotlabs/Module/Connedit.php:502 -#: ../../Zotlabs/Module/Connedit.php:515 -msgid "Unable to set address book parameters." -msgstr "No ha sido posible establecer los parámetros de la libreta de direcciones." - -#: ../../Zotlabs/Module/Connedit.php:538 -msgid "Connection has been removed." -msgstr "La conexión ha sido eliminada." - -#: ../../Zotlabs/Module/Connedit.php:554 ../../Zotlabs/Lib/Apps.php:221 -#: ../../include/nav.php:89 ../../include/conversation.php:953 -msgid "View Profile" -msgstr "Ver el perfil" - -#: ../../Zotlabs/Module/Connedit.php:557 +#: ../../Zotlabs/Module/Admin/Accounts.php:106 #, php-format -msgid "View %s's profile" -msgstr "Ver el perfil de %s" +msgid "Account '%s' unblocked" +msgstr "La cuenta '%s' ha sido desbloqueada" -#: ../../Zotlabs/Module/Connedit.php:561 -msgid "Refresh Permissions" -msgstr "Recargar los permisos" +#: ../../Zotlabs/Module/Admin/Accounts.php:165 +#: ../../Zotlabs/Module/Admin/Accounts.php:178 ../../include/widgets.php:1562 +msgid "Accounts" +msgstr "Cuentas" -#: ../../Zotlabs/Module/Connedit.php:564 -msgid "Fetch updated permissions" -msgstr "Obtener los permisos actualizados" +#: ../../Zotlabs/Module/Admin/Accounts.php:167 +#: ../../Zotlabs/Module/Admin/Channels.php:148 +msgid "select all" +msgstr "seleccionar todo" -#: ../../Zotlabs/Module/Connedit.php:568 -msgid "Recent Activity" -msgstr "Actividad reciente" +#: ../../Zotlabs/Module/Admin/Accounts.php:168 +msgid "Registrations waiting for confirm" +msgstr "Inscripciones en espera de confirmación" -#: ../../Zotlabs/Module/Connedit.php:571 -msgid "View recent posts and comments" -msgstr "Ver publicaciones y comentarios recientes" +#: ../../Zotlabs/Module/Admin/Accounts.php:169 +msgid "Request date" +msgstr "Fecha de solicitud" -#: ../../Zotlabs/Module/Connedit.php:578 -msgid "Block (or Unblock) all communications with this connection" -msgstr "Bloquear (o desbloquear) todas las comunicaciones con esta conexión" +#: ../../Zotlabs/Module/Admin/Accounts.php:169 +#: ../../Zotlabs/Module/Admin/Accounts.php:181 +#: ../../extend/addon/addon/redred/redred.php:107 +#: ../../extend/addon/addon/rtof/rtof.php:93 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1140 +#: ../../extend/addon/addon/openid/MysqlProvider.php:56 +#: ../../extend/addon/addon/openid/MysqlProvider.php:57 +#: ../../include/network.php:2237 +msgid "Email" +msgstr "Correo electrónico" -#: ../../Zotlabs/Module/Connedit.php:579 -msgid "This connection is blocked!" -msgstr "¡Esta conexión está bloqueada!" +#: ../../Zotlabs/Module/Admin/Accounts.php:170 +msgid "No registrations." +msgstr "Sin registros." -#: ../../Zotlabs/Module/Connedit.php:583 -msgid "Unignore" -msgstr "Dejar de ignorar" +#: ../../Zotlabs/Module/Admin/Accounts.php:172 +msgid "Deny" +msgstr "Rechazar" -#: ../../Zotlabs/Module/Connedit.php:586 -msgid "Ignore (or Unignore) all inbound communications from this connection" -msgstr "Ignorar (o dejar de ignorar) todas las comunicaciones entrantes de esta conexión" +#: ../../Zotlabs/Module/Admin/Accounts.php:180 +msgid "ID" +msgstr "ID" -#: ../../Zotlabs/Module/Connedit.php:587 -msgid "This connection is ignored!" -msgstr "¡Esta conexión es ignorada!" +#: ../../Zotlabs/Module/Admin/Accounts.php:182 ../../include/group.php:267 +msgid "All Channels" +msgstr "Todos los canales" -#: ../../Zotlabs/Module/Connedit.php:591 -msgid "Unarchive" -msgstr "Desarchivar" +#: ../../Zotlabs/Module/Admin/Accounts.php:183 +msgid "Register date" +msgstr "Fecha de registro" -#: ../../Zotlabs/Module/Connedit.php:591 -msgid "Archive" -msgstr "Archivar" +#: ../../Zotlabs/Module/Admin/Accounts.php:184 +msgid "Last login" +msgstr "Último acceso" -#: ../../Zotlabs/Module/Connedit.php:594 +#: ../../Zotlabs/Module/Admin/Accounts.php:185 +msgid "Expires" +msgstr "Caduca" + +#: ../../Zotlabs/Module/Admin/Accounts.php:186 +msgid "Service Class" +msgstr "Clase de servicio" + +#: ../../Zotlabs/Module/Admin/Accounts.php:188 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" +"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?" -#: ../../Zotlabs/Module/Connedit.php:595 -msgid "This connection is archived!" -msgstr "¡Esta conexión esta archivada!" +#: ../../Zotlabs/Module/Admin/Accounts.php:189 +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?" -#: ../../Zotlabs/Module/Connedit.php:599 -msgid "Unhide" -msgstr "Mostrar" - -#: ../../Zotlabs/Module/Connedit.php:599 -msgid "Hide" -msgstr "Ocultar" - -#: ../../Zotlabs/Module/Connedit.php:602 -msgid "Hide or Unhide this connection from your other connections" -msgstr "Ocultar o mostrar esta conexión a sus otras conexiones" - -#: ../../Zotlabs/Module/Connedit.php:603 -msgid "This connection is hidden!" -msgstr "¡Esta conexión está oculta!" - -#: ../../Zotlabs/Module/Connedit.php:610 -msgid "Delete this connection" -msgstr "Eliminar esta conexión" - -#: ../../Zotlabs/Module/Connedit.php:625 ../../include/widgets.php:529 -msgid "Me" -msgstr "Yo" - -#: ../../Zotlabs/Module/Connedit.php:626 ../../include/widgets.php:530 -msgid "Family" -msgstr "Familia" - -#: ../../Zotlabs/Module/Connedit.php:627 -#: ../../Zotlabs/Module/Settings/Channel.php:61 -#: ../../Zotlabs/Module/Settings/Channel.php:65 -#: ../../Zotlabs/Module/Settings/Channel.php:66 -#: ../../Zotlabs/Module/Settings/Channel.php:69 -#: ../../Zotlabs/Module/Settings/Channel.php:80 -#: ../../include/selectors.php:123 ../../include/channel.php:402 -#: ../../include/channel.php:403 ../../include/channel.php:410 -#: ../../include/widgets.php:531 -msgid "Friends" -msgstr "Amigos/as" - -#: ../../Zotlabs/Module/Connedit.php:628 ../../include/widgets.php:532 -msgid "Acquaintances" -msgstr "Conocidos/as" - -#: ../../Zotlabs/Module/Connedit.php:686 -msgid "Approve this connection" -msgstr "Aprobar esta conexión" - -#: ../../Zotlabs/Module/Connedit.php:686 -msgid "Accept connection to allow communication" -msgstr "Aceptar la conexión para permitir la comunicación" - -#: ../../Zotlabs/Module/Connedit.php:691 -msgid "Set Affinity" -msgstr "Ajustar la afinidad" - -#: ../../Zotlabs/Module/Connedit.php:694 -msgid "Set Profile" -msgstr "Ajustar el perfil" - -#: ../../Zotlabs/Module/Connedit.php:697 -msgid "Set Affinity & Profile" -msgstr "Ajustar la afinidad y el perfil" - -#: ../../Zotlabs/Module/Connedit.php:746 -msgid "none" -msgstr "-" - -#: ../../Zotlabs/Module/Connedit.php:750 ../../include/widgets.php:656 -msgid "Connection Default Permissions" -msgstr "Permisos predeterminados de conexión" - -#: ../../Zotlabs/Module/Connedit.php:750 ../../include/items.php:3993 +#: ../../Zotlabs/Module/Admin/Channels.php:31 #, php-format -msgid "Connection: %s" -msgstr "Conexión: %s" +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" -#: ../../Zotlabs/Module/Connedit.php:751 -msgid "Apply these permissions automatically" -msgstr "Aplicar estos permisos automaticamente" - -#: ../../Zotlabs/Module/Connedit.php:751 -msgid "Connection requests will be approved without your interaction" -msgstr "Las solicitudes de conexión serán aprobadas sin su intervención" - -#: ../../Zotlabs/Module/Connedit.php:753 -msgid "This connection's primary address is" -msgstr "La dirección primaria de esta conexión es" - -#: ../../Zotlabs/Module/Connedit.php:754 -msgid "Available locations:" -msgstr "Ubicaciones disponibles:" - -#: ../../Zotlabs/Module/Connedit.php:758 -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." - -#: ../../Zotlabs/Module/Connedit.php:759 -msgid "Connection Tools" -msgstr "Gestión de las conexiones" - -#: ../../Zotlabs/Module/Connedit.php:761 -msgid "Slide to adjust your degree of friendship" -msgstr "Deslizar para ajustar el grado de amistad" - -#: ../../Zotlabs/Module/Connedit.php:762 ../../Zotlabs/Module/Rate.php:155 -#: ../../include/js_strings.php:20 -msgid "Rating" -msgstr "Valoración" - -#: ../../Zotlabs/Module/Connedit.php:763 -msgid "Slide to adjust your rating" -msgstr "Deslizar para ajustar su valoración" - -#: ../../Zotlabs/Module/Connedit.php:764 ../../Zotlabs/Module/Connedit.php:769 -msgid "Optionally explain your rating" -msgstr "Opcionalmente, puede explicar su valoración" - -#: ../../Zotlabs/Module/Connedit.php:766 -msgid "Custom Filter" -msgstr "Filtro personalizado" - -#: ../../Zotlabs/Module/Connedit.php:767 -msgid "Only import posts with this text" -msgstr "Importar solo entradas que contengan este texto" - -#: ../../Zotlabs/Module/Connedit.php:767 ../../Zotlabs/Module/Connedit.php:768 -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" - -#: ../../Zotlabs/Module/Connedit.php:768 -msgid "Do not import posts with this text" -msgstr "No importar entradas que contengan este texto" - -#: ../../Zotlabs/Module/Connedit.php:770 -msgid "This information is public!" -msgstr "¡Esta información es pública!" - -#: ../../Zotlabs/Module/Connedit.php:775 -msgid "Connection Pending Approval" -msgstr "Conexión pendiente de aprobación" - -#: ../../Zotlabs/Module/Connedit.php:778 -#: ../../Zotlabs/Module/Settings/Tokens.php:163 -msgid "inherited" -msgstr "heredado" - -#: ../../Zotlabs/Module/Connedit.php:780 +#: ../../Zotlabs/Module/Admin/Channels.php:40 #, 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" + +#: ../../Zotlabs/Module/Admin/Channels.php:46 +#, php-format +msgid "%s channel deleted" +msgid_plural "%s channels deleted" +msgstr[0] "%s canales eliminados" +msgstr[1] "%s canales eliminados" + +#: ../../Zotlabs/Module/Admin/Channels.php:65 +msgid "Channel not found" +msgstr "Canal no encontrado" + +#: ../../Zotlabs/Module/Admin/Channels.php:75 +#, php-format +msgid "Channel '%s' deleted" +msgstr "Canal '%s' eliminado" + +#: ../../Zotlabs/Module/Admin/Channels.php:87 +#, php-format +msgid "Channel '%s' censored" +msgstr "Canal '%s' censurado" + +#: ../../Zotlabs/Module/Admin/Channels.php:87 +#, php-format +msgid "Channel '%s' uncensored" +msgstr "Canal '%s' no censurado" + +#: ../../Zotlabs/Module/Admin/Channels.php:98 +#, php-format +msgid "Channel '%s' code allowed" +msgstr "Código permitido al canal '%s'" + +#: ../../Zotlabs/Module/Admin/Channels.php:98 +#, php-format +msgid "Channel '%s' code disallowed" +msgstr "Código no permitido al canal '%s'" + +#: ../../Zotlabs/Module/Admin/Channels.php:146 ../../include/widgets.php:1563 +msgid "Channels" +msgstr "Canales" + +#: ../../Zotlabs/Module/Admin/Channels.php:150 +msgid "Censor" +msgstr "Censurar" + +#: ../../Zotlabs/Module/Admin/Channels.php:151 +msgid "Uncensor" +msgstr "No censurar" + +#: ../../Zotlabs/Module/Admin/Channels.php:152 +msgid "Allow Code" +msgstr "Permitir código" + +#: ../../Zotlabs/Module/Admin/Channels.php:153 +msgid "Disallow Code" +msgstr "No permitir código" + +#: ../../Zotlabs/Module/Admin/Channels.php:154 +#: ../../include/conversation.php:1653 +msgid "Channel" +msgstr "Canal" + +#: ../../Zotlabs/Module/Admin/Channels.php:158 +msgid "UID" +msgstr "UID" + +#: ../../Zotlabs/Module/Admin/Channels.php:162 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." +"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?" -#: ../../Zotlabs/Module/Connedit.php:782 -#: ../../Zotlabs/Module/Settings/Tokens.php:160 -msgid "Their Settings" -msgstr "Sus ajustes" - -#: ../../Zotlabs/Module/Connedit.php:783 -#: ../../Zotlabs/Module/Settings/Tokens.php:161 -msgid "My Settings" -msgstr "Mis ajustes" - -#: ../../Zotlabs/Module/Connedit.php:785 -#: ../../Zotlabs/Module/Settings/Tokens.php:165 -msgid "Individual Permissions" -msgstr "Permisos individuales" - -#: ../../Zotlabs/Module/Connedit.php:786 -#: ../../Zotlabs/Module/Settings/Tokens.php:166 +#: ../../Zotlabs/Module/Admin/Channels.php:163 msgid "" -"Some permissions may be inherited from your channel's privacy settings, which have higher " -"priority than individual settings. You can not change those" -" settings here." -msgstr "Algunos permisos pueden ser heredados de los ajustes de privacidad de sus canales, los cuales tienen una prioridad más alta que los ajustes individuales. No puede cambiar estos ajustes aquí." +"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?" -#: ../../Zotlabs/Module/Connedit.php:787 +#: ../../Zotlabs/Module/Admin/Dbsync.php:19 +msgid "Update has been marked successful" +msgstr "La actualización ha sido marcada como exitosa" + +#: ../../Zotlabs/Module/Admin/Dbsync.php:29 +#, php-format +msgid "Executing %s failed. Check system logs." +msgstr "La ejecución de %s ha fallado. Mirar en los informes del sistema." + +#: ../../Zotlabs/Module/Admin/Dbsync.php:32 +#, php-format +msgid "Update %s was successfully applied." +msgstr "La actualización de %s se ha realizado exitosamente." + +#: ../../Zotlabs/Module/Admin/Dbsync.php:36 +#, 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." + +#: ../../Zotlabs/Module/Admin/Dbsync.php:39 +#, php-format +msgid "Update function %s could not be found." +msgstr "No se encuentra la función de actualización de %s." + +#: ../../Zotlabs/Module/Admin/Dbsync.php:55 +msgid "No failed updates." +msgstr "No ha fallado ninguna actualización." + +#: ../../Zotlabs/Module/Admin/Dbsync.php:59 +msgid "Failed Updates" +msgstr "Han fallado las actualizaciones" + +#: ../../Zotlabs/Module/Admin/Dbsync.php:61 +msgid "Mark success (if update was manually applied)" +msgstr "Marcar como exitosa (si la actualización se ha hecho manualmente)" + +#: ../../Zotlabs/Module/Admin/Dbsync.php:62 +msgid "Attempt to execute this update step automatically" +msgstr "Intentar ejecutar este paso de actualización automáticamente" + +#: ../../Zotlabs/Module/Admin/Site.php:133 +msgid "Site settings updated." +msgstr "Ajustes del sitio actualizados." + +#: ../../Zotlabs/Module/Admin/Site.php:159 ../../include/text.php:2918 +msgid "Default" +msgstr "Predeterminado" + +#: ../../Zotlabs/Module/Admin/Site.php:169 +#: ../../Zotlabs/Module/Settings/Display.php:143 +msgid "mobile" +msgstr "móvil" + +#: ../../Zotlabs/Module/Admin/Site.php:171 +msgid "experimental" +msgstr "experimental" + +#: ../../Zotlabs/Module/Admin/Site.php:173 +msgid "unsupported" +msgstr "no soportado" + +#: ../../Zotlabs/Module/Admin/Site.php:219 +msgid "Yes - with approval" +msgstr "Sí - con aprobación" + +#: ../../Zotlabs/Module/Admin/Site.php:225 +msgid "My site is not a public server" +msgstr "Mi sitio no es un servidor público" + +#: ../../Zotlabs/Module/Admin/Site.php:226 +msgid "My site has paid access only" +msgstr "Mi sitio es un servicio de pago" + +#: ../../Zotlabs/Module/Admin/Site.php:227 +msgid "My site has free access only" +msgstr "Mi sitio es un servicio gratuito" + +#: ../../Zotlabs/Module/Admin/Site.php:228 +msgid "My site offers free accounts with optional paid upgrades" +msgstr "Mi sitio ofrece cuentas gratuitas con opciones extra de pago" + +#: ../../Zotlabs/Module/Admin/Site.php:239 ../../Zotlabs/Module/Setup.php:328 +msgid "Basic/Minimal Social Networking" +msgstr "Red social básica o mínima" + +#: ../../Zotlabs/Module/Admin/Site.php:240 ../../Zotlabs/Module/Setup.php:329 +msgid "Standard Configuration (default)" +msgstr "Configuración estándar (por defecto)" + +#: ../../Zotlabs/Module/Admin/Site.php:241 ../../Zotlabs/Module/Setup.php:330 +msgid "Professional" +msgstr "Profesional" + +#: ../../Zotlabs/Module/Admin/Site.php:245 ../../Zotlabs/Lib/Techlevels.php:10 +msgid "Beginner/Basic" +msgstr "Principiante / Básico" + +#: ../../Zotlabs/Module/Admin/Site.php:246 ../../Zotlabs/Lib/Techlevels.php:11 +msgid "Novice - not skilled but willing to learn" +msgstr "Novato: no cualificado, pero dispuesto a aprender" + +#: ../../Zotlabs/Module/Admin/Site.php:247 ../../Zotlabs/Lib/Techlevels.php:12 +msgid "Intermediate - somewhat comfortable" +msgstr "Intermedio: bastante cómodo" + +#: ../../Zotlabs/Module/Admin/Site.php:248 ../../Zotlabs/Lib/Techlevels.php:13 +msgid "Advanced - very comfortable" +msgstr "Avanzado: muy cómodo" + +#: ../../Zotlabs/Module/Admin/Site.php:249 ../../Zotlabs/Lib/Techlevels.php:14 +msgid "Expert - I can write computer code" +msgstr "Experto: puedo escribir código informático" + +#: ../../Zotlabs/Module/Admin/Site.php:250 ../../Zotlabs/Lib/Techlevels.php:15 +msgid "Wizard - I probably know more than you do" +msgstr "Asistente: probablemente sé más que tú" + +#: ../../Zotlabs/Module/Admin/Site.php:259 ../../include/widgets.php:1561 +msgid "Site" +msgstr "Sitio" + +#: ../../Zotlabs/Module/Admin/Site.php:262 +msgid "File upload" +msgstr "Subir fichero" + +#: ../../Zotlabs/Module/Admin/Site.php:263 +msgid "Policies" +msgstr "Políticas" + +#: ../../Zotlabs/Module/Admin/Site.php:264 +#: ../../include/contact_widgets.php:16 +msgid "Advanced" +msgstr "Avanzado" + +#: ../../Zotlabs/Module/Admin/Site.php:268 +#: ../../extend/addon/addon/statusnet/statusnet.php:890 +msgid "Site name" +msgstr "Nombre del sitio" + +#: ../../Zotlabs/Module/Admin/Site.php:270 ../../Zotlabs/Module/Setup.php:351 +msgid "Server Configuration/Role" +msgstr "Configuración del servidor" + +#: ../../Zotlabs/Module/Admin/Site.php:272 +msgid "Site default technical skill level" +msgstr "Nivel de habilidad técnica predeterminado del sitio" + +#: ../../Zotlabs/Module/Admin/Site.php:272 +msgid "Used to provide a member experience matched to technical comfort level" +msgstr "Se utiliza para proporcionar una experiencia a los miembros adaptada a su nivel de comodidad técnica" + +#: ../../Zotlabs/Module/Admin/Site.php:274 +msgid "Lock the technical skill level setting" +msgstr "Bloquear el ajuste del nivel de habilidad técnica" + +#: ../../Zotlabs/Module/Admin/Site.php:274 +msgid "Members can set their own technical comfort level by default" +msgstr "Los miembros pueden configurar su nivel de comodidad técnica por defecto" + +#: ../../Zotlabs/Module/Admin/Site.php:276 +msgid "Banner/Logo" +msgstr "Banner/Logo" + +#: ../../Zotlabs/Module/Admin/Site.php:277 +msgid "Administrator Information" +msgstr "Información del Administrador" + +#: ../../Zotlabs/Module/Admin/Site.php:277 msgid "" -"Some permissions may be inherited from your channel's privacy settings, 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 "Algunos permisos pueden ser heredados de los ajustes de privacidad 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." +"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" -#: ../../Zotlabs/Module/Connedit.php:788 -msgid "Last update:" -msgstr "Última actualización:" +#: ../../Zotlabs/Module/Admin/Site.php:278 +#: ../../Zotlabs/Module/Siteinfo.php:23 +msgid "Site Information" +msgstr "Información sobre el sitio" + +#: ../../Zotlabs/Module/Admin/Site.php:278 +msgid "" +"Publicly visible description of this site. Displayed on siteinfo page. " +"BBCode can be used here" +msgstr "Descripción pública de este sitio. Visible en la página \"siteinfo\". Se puede usar BBCode" + +#: ../../Zotlabs/Module/Admin/Site.php:279 +msgid "System language" +msgstr "Idioma del sistema" + +#: ../../Zotlabs/Module/Admin/Site.php:280 +msgid "System theme" +msgstr "Tema gráfico del sistema" + +#: ../../Zotlabs/Module/Admin/Site.php:280 +msgid "" +"Default system theme - may be over-ridden by user profiles - change theme settings" +msgstr "Tema del sistema por defecto - se puede cambiar por cada perfil de usuario - modificar los ajustes del tema" + +#: ../../Zotlabs/Module/Admin/Site.php:281 +msgid "Mobile system theme" +msgstr "Tema del sistema para móviles" + +#: ../../Zotlabs/Module/Admin/Site.php:281 +msgid "Theme for mobile devices" +msgstr "Tema para dispositivos móviles" + +#: ../../Zotlabs/Module/Admin/Site.php:283 +msgid "Allow Feeds as Connections" +msgstr "Permitir contenidos RSS como conexiones" + +#: ../../Zotlabs/Module/Admin/Site.php:283 +msgid "(Heavy system resource usage)" +msgstr "(Uso intenso de los recursos del sistema)" + +#: ../../Zotlabs/Module/Admin/Site.php:284 +msgid "Maximum image size" +msgstr "Tamaño máximo de la imagen" + +#: ../../Zotlabs/Module/Admin/Site.php:284 +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." + +#: ../../Zotlabs/Module/Admin/Site.php:285 +msgid "Does this site allow new member registration?" +msgstr "¿Debe este sitio permitir el registro de nuevos miembros?" + +#: ../../Zotlabs/Module/Admin/Site.php:286 +msgid "Invitation only" +msgstr "Solo con una invitación" + +#: ../../Zotlabs/Module/Admin/Site.php:286 +msgid "" +"Only allow new member registrations with an invitation code. Above register " +"policy must be set to Yes." +msgstr "Solo se permiten inscripciones de nuevos miembros con un código de invitación. Además, deben aceptarse los términos del registro marcando \"Sí\"." + +#: ../../Zotlabs/Module/Admin/Site.php:287 +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?" + +#: ../../Zotlabs/Module/Admin/Site.php:288 +msgid "Register text" +msgstr "Texto del registro" + +#: ../../Zotlabs/Module/Admin/Site.php:288 +msgid "Will be displayed prominently on the registration page." +msgstr "Se mostrará de forma destacada en la página de registro." + +#: ../../Zotlabs/Module/Admin/Site.php:289 +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)" + +#: ../../Zotlabs/Module/Admin/Site.php:289 +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, 'page/sys/home' para mostrar la página web definida como \"home\" o 'include:home.html' para mostrar el contenido de un fichero." + +#: ../../Zotlabs/Module/Admin/Site.php:290 +msgid "Preserve site homepage URL" +msgstr "Preservar la dirección de la página personal" + +#: ../../Zotlabs/Module/Admin/Site.php:290 +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." + +#: ../../Zotlabs/Module/Admin/Site.php:291 +msgid "Accounts abandoned after x days" +msgstr "Cuentas abandonadas después de x días" + +#: ../../Zotlabs/Module/Admin/Site.php:291 +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." + +#: ../../Zotlabs/Module/Admin/Site.php:292 +msgid "Allowed friend domains" +msgstr "Dominios amigos permitidos" + +#: ../../Zotlabs/Module/Admin/Site.php:292 +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." + +#: ../../Zotlabs/Module/Admin/Site.php:293 +msgid "Verify Email Addresses" +msgstr "Verificar las direcciones de correo electrónico" + +#: ../../Zotlabs/Module/Admin/Site.php:293 +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)." + +#: ../../Zotlabs/Module/Admin/Site.php:294 +msgid "Force publish" +msgstr "Forzar la publicación" + +#: ../../Zotlabs/Module/Admin/Site.php:294 +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." + +#: ../../Zotlabs/Module/Admin/Site.php:295 +msgid "Import Public Streams" +msgstr "Importar contenido público" + +#: ../../Zotlabs/Module/Admin/Site.php:295 +msgid "" +"Import and allow access to public content pulled from other sites. Warning: " +"this content is unmoderated." +msgstr "Importar y permitir acceso al contenido público sacado de otros sitios. Advertencia: este contenido no está moderado, por lo que podría encontrar cosas inapropiadas u ofensivas." + +#: ../../Zotlabs/Module/Admin/Site.php:296 +msgid "Login on Homepage" +msgstr "Iniciar sesión en la página personal" + +#: ../../Zotlabs/Module/Admin/Site.php:296 +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." + +#: ../../Zotlabs/Module/Admin/Site.php:297 +msgid "Enable context help" +msgstr "Habilitar la ayuda contextual" + +#: ../../Zotlabs/Module/Admin/Site.php:297 +msgid "" +"Display contextual help for the current page when the help button is " +"pressed." +msgstr "Ver la ayuda contextual para la página actual cuando se pulse el botón de Ayuda." + +#: ../../Zotlabs/Module/Admin/Site.php:299 +msgid "Directory Server URL" +msgstr "URL del servidor de directorio" + +#: ../../Zotlabs/Module/Admin/Site.php:299 +msgid "Default directory server" +msgstr "Servidor de directorio predeterminado" + +#: ../../Zotlabs/Module/Admin/Site.php:301 +msgid "Proxy user" +msgstr "Usuario del proxy" + +#: ../../Zotlabs/Module/Admin/Site.php:302 +msgid "Proxy URL" +msgstr "Dirección del proxy" + +#: ../../Zotlabs/Module/Admin/Site.php:303 +msgid "Network timeout" +msgstr "Tiempo de espera de la red" + +#: ../../Zotlabs/Module/Admin/Site.php:303 +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)" + +#: ../../Zotlabs/Module/Admin/Site.php:304 +msgid "Delivery interval" +msgstr "Intervalo de entrega" + +#: ../../Zotlabs/Module/Admin/Site.php:304 +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." + +#: ../../Zotlabs/Module/Admin/Site.php:305 +msgid "Deliveries per process" +msgstr "Intentos de envío por proceso" + +#: ../../Zotlabs/Module/Admin/Site.php:305 +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." + +#: ../../Zotlabs/Module/Admin/Site.php:306 +msgid "Poll interval" +msgstr "Intervalo máximo de tiempo entre dos mensajes sucesivos" + +#: ../../Zotlabs/Module/Admin/Site.php:306 +msgid "" +"Delay background polling processes by this many seconds to reduce system " +"load. If 0, use delivery interval." +msgstr "Retrasar el intervalo de envío en segundo plano, en esta cantidad de segundos, para reducir la carga del sistema. Si es 0, usar el intervalo de entrega." + +#: ../../Zotlabs/Module/Admin/Site.php:307 +msgid "Maximum Load Average" +msgstr "Carga media máxima" + +#: ../../Zotlabs/Module/Admin/Site.php:307 +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 entrega y envío se hayan retardado - por defecto, 50." + +#: ../../Zotlabs/Module/Admin/Site.php:308 +msgid "Expiration period in days for imported (grid/network) content" +msgstr "Caducidad del contenido importado de otros sitios (en días)" + +#: ../../Zotlabs/Module/Admin/Site.php:308 +msgid "0 for no expiration of imported content" +msgstr "0 para que no caduque el contenido importado" + +#: ../../Zotlabs/Module/Pubsites.php:24 ../../include/widgets.php:1385 +msgid "Public Hubs" +msgstr "Servidores públicos" + +#: ../../Zotlabs/Module/Pubsites.php:27 +msgid "" +"The listed hubs allow public registration for the $Projectname network. All " +"hubs in the network are interlinked so membership on any of them conveys " +"membership in the network as a whole. Some hubs may require subscription or " +"provide tiered service plans. The hub itself may 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 mismos hubs pueden proporcionar detalles adicionales." + +#: ../../Zotlabs/Module/Pubsites.php:33 +msgid "Hub URL" +msgstr "Dirección del hub" + +#: ../../Zotlabs/Module/Pubsites.php:33 +msgid "Access Type" +msgstr "Tipo de acceso" + +#: ../../Zotlabs/Module/Pubsites.php:33 +msgid "Registration Policy" +msgstr "Normas de registro" + +#: ../../Zotlabs/Module/Pubsites.php:33 +msgid "Stats" +msgstr "Estadísticas" + +#: ../../Zotlabs/Module/Pubsites.php:33 +msgid "Software" +msgstr "Software" + +#: ../../Zotlabs/Module/Pubsites.php:35 ../../Zotlabs/Module/Ratings.php:97 +#: ../../include/conversation.php:940 +msgid "Ratings" +msgstr "Valoraciones" + +#: ../../Zotlabs/Module/Pubsites.php:48 +msgid "Rate" +msgstr "Valorar" + +#: ../../Zotlabs/Module/Pubsites.php:59 ../../Zotlabs/Module/Blocks.php:166 +#: ../../Zotlabs/Module/Layouts.php:197 ../../Zotlabs/Module/Webpages.php:246 +#: ../../Zotlabs/Module/Wiki.php:146 ../../Zotlabs/Module/Events.php:685 +#: ../../include/page_widgets.php:42 +msgid "View" +msgstr "Ver" -#: ../../Zotlabs/Module/Editblock.php:79 ../../Zotlabs/Module/Editblock.php:95 #: ../../Zotlabs/Module/Editlayout.php:79 #: ../../Zotlabs/Module/Editwebpage.php:80 +#: ../../Zotlabs/Module/Editblock.php:79 ../../Zotlabs/Module/Editblock.php:95 #: ../../Zotlabs/Module/Editpost.php:24 msgid "Item not found" msgstr "Elemento no encontrado" -#: ../../Zotlabs/Module/Editblock.php:108 ../../Zotlabs/Module/Blocks.php:97 -#: ../../Zotlabs/Module/Blocks.php:155 -msgid "Block Name" -msgstr "Nombre del bloque" - -#: ../../Zotlabs/Module/Editblock.php:124 ../../include/conversation.php:1260 -msgid "Title (optional)" -msgstr "Título (opcional)" - -#: ../../Zotlabs/Module/Editblock.php:133 -msgid "Edit Block" -msgstr "Modificar este bloque" - #: ../../Zotlabs/Module/Editlayout.php:127 #: ../../Zotlabs/Module/Layouts.php:128 ../../Zotlabs/Module/Layouts.php:188 msgid "Layout Name" @@ -2495,10 +2888,67 @@ msgstr "Modificar la plantilla" msgid "Page link" msgstr "Enlace de la página" +#: ../../Zotlabs/Module/Editwebpage.php:146 ../../Zotlabs/Module/Mail.php:286 +#: ../../Zotlabs/Module/Mail.php:411 ../../Zotlabs/Module/Editblock.php:111 +#: ../../Zotlabs/Module/Chat.php:207 ../../include/conversation.php:1147 +msgid "Insert web link" +msgstr "Insertar enlace web" + #: ../../Zotlabs/Module/Editwebpage.php:169 msgid "Edit Webpage" msgstr "Editar la página web" +#: ../../Zotlabs/Module/Fbrowser.php:29 ../../Zotlabs/Lib/Apps.php:224 +#: ../../include/nav.php:95 ../../include/conversation.php:1674 +msgid "Photos" +msgstr "Fotos" + +#: ../../Zotlabs/Module/Channel.php:32 ../../Zotlabs/Module/Wiki.php:20 +#: ../../Zotlabs/Module/Chat.php:25 +#: ../../extend/addon/addon/chess/chess.php:400 +msgid "You must be logged in to see this page." +msgstr "Debe haber iniciado sesión para poder ver esta página." + +#: ../../Zotlabs/Module/Channel.php:44 +msgid "Posts and comments" +msgstr "Publicaciones y comentarios" + +#: ../../Zotlabs/Module/Channel.php:45 +msgid "Only posts" +msgstr "Solo publicaciones" + +#: ../../Zotlabs/Module/Channel.php:104 +msgid "Insufficient permissions. Request redirected to profile page." +msgstr "Permisos insuficientes. Petición redirigida a la página del perfil." + +#: ../../Zotlabs/Module/Network.php:96 +msgid "No such group" +msgstr "No se encuentra el grupo" + +#: ../../Zotlabs/Module/Network.php:136 +msgid "No such channel" +msgstr "No se encuentra el canal" + +#: ../../Zotlabs/Module/Network.php:141 +msgid "forum" +msgstr "foro" + +#: ../../Zotlabs/Module/Network.php:153 +msgid "Search Results For:" +msgstr "Buscar resultados para:" + +#: ../../Zotlabs/Module/Network.php:221 +msgid "Privacy group is empty" +msgstr "El grupo de canales está vacío" + +#: ../../Zotlabs/Module/Network.php:230 +msgid "Privacy group: " +msgstr "Grupo de canales: " + +#: ../../Zotlabs/Module/Network.php:256 +msgid "Invalid connection." +msgstr "Conexión no válida." + #: ../../Zotlabs/Module/Menu.php:49 msgid "Unable to update menu." msgstr "No se puede actualizar el menú." @@ -2535,14 +2985,10 @@ msgstr "El menú se puede usar para guardar marcadores" msgid "Submit and proceed" msgstr "Enviar y proceder" -#: ../../Zotlabs/Module/Menu.php:107 ../../include/text.php:2309 +#: ../../Zotlabs/Module/Menu.php:107 ../../include/text.php:2271 msgid "Menus" msgstr "Menús" -#: ../../Zotlabs/Module/Menu.php:113 ../../Zotlabs/Module/Locs.php:120 -msgid "Drop" -msgstr "Eliminar" - #: ../../Zotlabs/Module/Menu.php:114 ../../Zotlabs/Module/Blocks.php:157 #: ../../Zotlabs/Module/Layouts.php:190 ../../Zotlabs/Module/Webpages.php:251 #: ../../include/page_widgets.php:47 @@ -2620,137 +3066,99 @@ msgstr "Aplicación instalada." msgid "Malformed app." msgstr "Aplicación con errores" -#: ../../Zotlabs/Module/Appman.php:104 +#: ../../Zotlabs/Module/Appman.php:105 msgid "Embed code" msgstr "Código incorporado" -#: ../../Zotlabs/Module/Appman.php:110 ../../include/widgets.php:107 +#: ../../Zotlabs/Module/Appman.php:111 ../../include/widgets.php:107 msgid "Edit App" msgstr "Modificar la aplicación" -#: ../../Zotlabs/Module/Appman.php:110 +#: ../../Zotlabs/Module/Appman.php:111 msgid "Create App" msgstr "Crear una aplicación" -#: ../../Zotlabs/Module/Appman.php:115 +#: ../../Zotlabs/Module/Appman.php:116 msgid "Name of app" msgstr "Nombre de la aplicación" -#: ../../Zotlabs/Module/Appman.php:115 ../../Zotlabs/Module/Appman.php:116 -#: ../../Zotlabs/Module/Profiles.php:709 ../../Zotlabs/Module/Profiles.php:713 -#: ../../Zotlabs/Module/Events.php:452 ../../Zotlabs/Module/Events.php:457 -#: ../../include/datetime.php:257 +#: ../../Zotlabs/Module/Appman.php:116 ../../Zotlabs/Module/Appman.php:117 +#: ../../Zotlabs/Module/Profiles.php:703 ../../Zotlabs/Module/Profiles.php:707 +#: ../../Zotlabs/Module/Events.php:453 ../../Zotlabs/Module/Events.php:458 +#: ../../include/datetime.php:259 msgid "Required" msgstr "Obligatorio" -#: ../../Zotlabs/Module/Appman.php:116 +#: ../../Zotlabs/Module/Appman.php:117 msgid "Location (URL) of app" msgstr "Dirección (URL) de la aplicación" -#: ../../Zotlabs/Module/Appman.php:117 ../../Zotlabs/Module/Rbmark.php:101 -#: ../../Zotlabs/Module/Events.php:465 +#: ../../Zotlabs/Module/Appman.php:118 ../../Zotlabs/Module/Rbmark.php:101 +#: ../../Zotlabs/Module/Events.php:466 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:838 +#: ../../extend/addon/addon/rendezvous/rendezvous.php:165 msgid "Description" msgstr "Descripción" -#: ../../Zotlabs/Module/Appman.php:118 +#: ../../Zotlabs/Module/Appman.php:119 msgid "Photo icon URL" msgstr "Dirección del icono" -#: ../../Zotlabs/Module/Appman.php:118 +#: ../../Zotlabs/Module/Appman.php:119 msgid "80 x 80 pixels - optional" msgstr "80 x 80 pixels - opcional" -#: ../../Zotlabs/Module/Appman.php:119 +#: ../../Zotlabs/Module/Appman.php:120 msgid "Categories (optional, comma separated list)" msgstr "Temas (opcional, lista separada por comas)" -#: ../../Zotlabs/Module/Appman.php:120 +#: ../../Zotlabs/Module/Appman.php:121 msgid "Version ID" msgstr "Versión" -#: ../../Zotlabs/Module/Appman.php:121 +#: ../../Zotlabs/Module/Appman.php:122 msgid "Price of app" msgstr "Precio de la aplicación" -#: ../../Zotlabs/Module/Appman.php:122 +#: ../../Zotlabs/Module/Appman.php:123 msgid "Location (URL) to purchase app" msgstr "Dirección (URL) donde adquirir la aplicación" -#: ../../Zotlabs/Module/Pubsites.php:24 ../../include/widgets.php:1392 -msgid "Public Hubs" -msgstr "Servidores públicos" +#: ../../Zotlabs/Module/Rpost.php:138 ../../Zotlabs/Module/Editpost.php:107 +msgid "Edit post" +msgstr "Editar la entrada" -#: ../../Zotlabs/Module/Pubsites.php:27 -msgid "" -"The listed hubs allow public registration for the $Projectname network. All " -"hubs in the network are interlinked so membership on any of them conveys " -"membership in the network as a whole. Some hubs may require subscription or " -"provide tiered service plans. The hub itself may 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 mismos hubs pueden proporcionar detalles adicionales." +#: ../../Zotlabs/Module/Help.php:23 +msgid "Documentation Search" +msgstr "Búsqueda de Documentación" -#: ../../Zotlabs/Module/Pubsites.php:33 -msgid "Hub URL" -msgstr "Dirección del hub" +#: ../../Zotlabs/Module/Help.php:80 ../../include/conversation.php:1665 +msgid "About" +msgstr "Mi perfil" -#: ../../Zotlabs/Module/Pubsites.php:33 -msgid "Access Type" -msgstr "Tipo de acceso" +#: ../../Zotlabs/Module/Help.php:81 ../../Zotlabs/Module/Group.php:197 +msgid "Members" +msgstr "Miembros" -#: ../../Zotlabs/Module/Pubsites.php:33 -msgid "Registration Policy" -msgstr "Normas de registro" +#: ../../Zotlabs/Module/Help.php:82 +msgid "Administrators" +msgstr "Administradores" -#: ../../Zotlabs/Module/Pubsites.php:33 -msgid "Stats" -msgstr "Estadísticas" +#: ../../Zotlabs/Module/Help.php:83 +msgid "Developers" +msgstr "Desarrolladores" -#: ../../Zotlabs/Module/Pubsites.php:33 -msgid "Software" -msgstr "Software" +#: ../../Zotlabs/Module/Help.php:84 +msgid "Tutorials" +msgstr "Tutoriales" -#: ../../Zotlabs/Module/Pubsites.php:35 ../../Zotlabs/Module/Ratings.php:97 -#: ../../include/conversation.php:958 -msgid "Ratings" -msgstr "Valoraciones" +#: ../../Zotlabs/Module/Help.php:93 +msgid "$Projectname Documentation" +msgstr "Documentación de $Projectname" -#: ../../Zotlabs/Module/Pubsites.php:48 -msgid "Rate" -msgstr "Valorar" - -#: ../../Zotlabs/Module/Pubsites.php:51 ../../Zotlabs/Module/Locs.php:117 -#: ../../Zotlabs/Module/Profiles.php:477 ../../Zotlabs/Module/Profiles.php:698 -#: ../../Zotlabs/Module/Events.php:467 ../../include/js_strings.php:25 -msgid "Location" -msgstr "Ubicación" - -#: ../../Zotlabs/Module/Pubsites.php:59 ../../Zotlabs/Module/Blocks.php:166 -#: ../../Zotlabs/Module/Layouts.php:197 ../../Zotlabs/Module/Webpages.php:246 -#: ../../Zotlabs/Module/Events.php:680 ../../include/page_widgets.php:42 -msgid "View" -msgstr "Ver" - -#: ../../Zotlabs/Module/Attach.php:13 -msgid "Item not available." -msgstr "Elemento no disponible" - -#: ../../Zotlabs/Module/Api.php:60 ../../Zotlabs/Module/Api.php:81 -msgid "Authorize application connection" -msgstr "Autorizar una conexión de aplicación" - -#: ../../Zotlabs/Module/Api.php:61 -msgid "Return to your app and insert this Security Code:" -msgstr "Volver a su aplicación e introducir este código de seguridad:" - -#: ../../Zotlabs/Module/Api.php:71 -msgid "Please login to continue." -msgstr "Por favor inicie sesión para continuar." - -#: ../../Zotlabs/Module/Api.php:83 -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?" +#: ../../Zotlabs/Module/Help.php:94 +msgid "Contents" +msgstr "Contenidos" #: ../../Zotlabs/Module/Ffsapi.php:12 msgid "Share content from Firefox to $Projectname" @@ -2760,32 +3168,12 @@ msgstr "Compartir contenido desde Firefox a $Projectname" msgid "Activate the Firefox $Projectname provider" msgstr "Servicio de compartición de Firefox: activar el proveedor $Projectname " -#: ../../Zotlabs/Module/Pdledit.php:21 -msgid "Layout updated." -msgstr "Plantilla actualizada." - -#: ../../Zotlabs/Module/Pdledit.php:34 ../../Zotlabs/Module/Chat.php:218 -msgid "Feature disabled." -msgstr "Funcionalidad deshabilitada." - -#: ../../Zotlabs/Module/Pdledit.php:42 ../../Zotlabs/Module/Pdledit.php:69 -msgid "Edit System Page Description" -msgstr "Editor del Sistema de Descripción de Páginas" - -#: ../../Zotlabs/Module/Pdledit.php:64 -msgid "Layout not found." -msgstr "Plantilla no encontrada" - -#: ../../Zotlabs/Module/Pdledit.php:70 -msgid "Module Name:" -msgstr "Nombre del módulo:" - -#: ../../Zotlabs/Module/Pdledit.php:71 -msgid "Layout Help" -msgstr "Ayuda para el diseño de plantillas de página" +#: ../../Zotlabs/Module/Apps.php:46 ../../include/nav.php:166 +#: ../../include/widgets.php:102 +msgid "Apps" +msgstr "Aplicaciones (apps)" #: ../../Zotlabs/Module/Home.php:74 ../../Zotlabs/Module/Home.php:82 -#: ../../Zotlabs/Module/Siteinfo.php:48 msgid "$Projectname" msgstr "$Projectname" @@ -2794,14 +3182,6 @@ msgstr "$Projectname" msgid "Welcome to %s" msgstr "Bienvenido a %s" -#: ../../Zotlabs/Module/Lockview.php:75 -msgid "Remote privacy information not available." -msgstr "La información privada remota no está disponible." - -#: ../../Zotlabs/Module/Lockview.php:96 -msgid "Visible to:" -msgstr "Visible para:" - #: ../../Zotlabs/Module/Filestorage.php:87 msgid "Permission Denied." msgstr "Permiso denegado" @@ -2817,7 +3197,7 @@ msgstr "Modificar los permisos del fichero" #: ../../Zotlabs/Module/Filestorage.php:152 #: ../../Zotlabs/Module/Photos.php:658 ../../Zotlabs/Module/Photos.php:1047 #: ../../Zotlabs/Module/Thing.php:313 ../../Zotlabs/Module/Thing.php:363 -#: ../../Zotlabs/Module/Chat.php:234 ../../include/acl_selectors.php:179 +#: ../../Zotlabs/Module/Chat.php:234 ../../include/acl_selectors.php:208 msgid "Permissions" msgstr "Permisos" @@ -2853,98 +3233,416 @@ msgstr "Mostrar la dirección de este fichero" msgid "Notify your contacts about this file" msgstr "Avisar a sus contactos sobre este fichero" -#: ../../Zotlabs/Module/Connect.php:61 ../../Zotlabs/Module/Connect.php:109 -msgid "Continue" -msgstr "Continuar" +#: ../../Zotlabs/Module/Directory.php:64 ../../Zotlabs/Module/Display.php:17 +#: ../../Zotlabs/Module/Ratings.php:83 ../../Zotlabs/Module/Photos.php:509 +#: ../../Zotlabs/Module/Search.php:17 +#: ../../Zotlabs/Module/Viewconnections.php:23 +#: ../../extend/addon/addon/friendica/dfrn_request.php:794 +msgid "Public access denied." +msgstr "Acceso público denegado." -#: ../../Zotlabs/Module/Connect.php:90 -msgid "Premium Channel Setup" -msgstr "Configuración del canal premium" - -#: ../../Zotlabs/Module/Connect.php:92 -msgid "Enable premium channel connection restrictions" -msgstr "Habilitar restricciones de conexión del canal premium" - -#: ../../Zotlabs/Module/Connect.php:93 -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." - -#: ../../Zotlabs/Module/Connect.php:95 ../../Zotlabs/Module/Connect.php:115 -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:" - -#: ../../Zotlabs/Module/Connect.php:96 -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:" - -#: ../../Zotlabs/Module/Connect.php:97 ../../Zotlabs/Module/Connect.php:118 -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." - -#: ../../Zotlabs/Module/Connect.php:106 -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.)" - -#: ../../Zotlabs/Module/Connect.php:114 -msgid "Restricted or Premium Channel" -msgstr "Canal premium o restringido" - -#: ../../Zotlabs/Module/Manage.php:136 -#: ../../Zotlabs/Module/New_channel.php:121 +#: ../../Zotlabs/Module/Directory.php:245 #, php-format -msgid "You have created %1$.0f of %2$.0f allowed channels." -msgstr "Ha creado %1$.0f de %2$.0f canales permitidos." +msgid "%d rating" +msgid_plural "%d ratings" +msgstr[0] "%d valoración" +msgstr[1] "%d valoraciones" -#: ../../Zotlabs/Module/Manage.php:143 -msgid "Create a new channel" -msgstr "Crear un nuevo canal" +#: ../../Zotlabs/Module/Directory.php:256 +msgid "Gender: " +msgstr "Género:" -#: ../../Zotlabs/Module/Manage.php:143 ../../Zotlabs/Module/Profiles.php:778 -#: ../../Zotlabs/Module/Chat.php:255 -msgid "Create New" -msgstr "Crear" +#: ../../Zotlabs/Module/Directory.php:258 +msgid "Status: " +msgstr "Estado:" -#: ../../Zotlabs/Module/Manage.php:164 ../../Zotlabs/Lib/Apps.php:214 -#: ../../include/nav.php:211 -msgid "Channel Manager" -msgstr "Administración de canales" +#: ../../Zotlabs/Module/Directory.php:260 +msgid "Homepage: " +msgstr "Página personal:" -#: ../../Zotlabs/Module/Manage.php:165 -msgid "Current Channel" -msgstr "Canal actual" +#: ../../Zotlabs/Module/Directory.php:309 ../../include/channel.php:1215 +msgid "Age:" +msgstr "Edad:" -#: ../../Zotlabs/Module/Manage.php:167 -msgid "Switch to one of your channels by selecting it." -msgstr "Cambiar a uno de sus canales seleccionándolo." +#: ../../Zotlabs/Module/Directory.php:314 ../../include/channel.php:1051 +#: ../../include/bb2diaspora.php:521 ../../include/event.php:52 +#: ../../include/event.php:84 +msgid "Location:" +msgstr "Ubicación:" -#: ../../Zotlabs/Module/Manage.php:168 -msgid "Default Channel" -msgstr "Canal principal" +#: ../../Zotlabs/Module/Directory.php:320 +msgid "Description:" +msgstr "Descripción:" -#: ../../Zotlabs/Module/Manage.php:169 -msgid "Make Default" -msgstr "Convertir en predeterminado" +#: ../../Zotlabs/Module/Directory.php:325 ../../include/channel.php:1231 +msgid "Hometown:" +msgstr "Lugar de nacimiento:" -#: ../../Zotlabs/Module/Manage.php:172 +#: ../../Zotlabs/Module/Directory.php:327 ../../include/channel.php:1239 +msgid "About:" +msgstr "Sobre mí:" + +#: ../../Zotlabs/Module/Directory.php:329 +msgid "Public Forum:" +msgstr "Foro público:" + +#: ../../Zotlabs/Module/Directory.php:332 +msgid "Keywords: " +msgstr "Palabras clave:" + +#: ../../Zotlabs/Module/Directory.php:335 +msgid "Don't suggest" +msgstr "No sugerir:" + +#: ../../Zotlabs/Module/Directory.php:337 +msgid "Common connections:" +msgstr "Conexiones comunes:" + +#: ../../Zotlabs/Module/Directory.php:386 +msgid "Global Directory" +msgstr "Directorio global:" + +#: ../../Zotlabs/Module/Directory.php:386 +msgid "Local Directory" +msgstr "Directorio local:" + +#: ../../Zotlabs/Module/Directory.php:392 +msgid "Finding:" +msgstr "Encontrar:" + +#: ../../Zotlabs/Module/Directory.php:395 ../../Zotlabs/Module/Suggest.php:64 +#: ../../include/contact_widgets.php:24 +msgid "Channel Suggestions" +msgstr "Sugerencias de canales" + +#: ../../Zotlabs/Module/Directory.php:397 +msgid "next page" +msgstr "siguiente página" + +#: ../../Zotlabs/Module/Directory.php:397 +msgid "previous page" +msgstr "página anterior" + +#: ../../Zotlabs/Module/Directory.php:398 +msgid "Sort options" +msgstr "Ordenar opciones" + +#: ../../Zotlabs/Module/Directory.php:399 +msgid "Alphabetic" +msgstr "Alfabético" + +#: ../../Zotlabs/Module/Directory.php:400 +msgid "Reverse Alphabetic" +msgstr "Alfabético inverso" + +#: ../../Zotlabs/Module/Directory.php:401 +msgid "Newest to Oldest" +msgstr "De más nuevo a más antiguo" + +#: ../../Zotlabs/Module/Directory.php:402 +msgid "Oldest to Newest" +msgstr "De más antiguo a más nuevo" + +#: ../../Zotlabs/Module/Directory.php:419 +msgid "No entries (some entries may be hidden)." +msgstr "Sin entradas (algunas entradas pueden estar ocultas)." + +#: ../../Zotlabs/Module/Item.php:184 +msgid "Unable to locate original post." +msgstr "No ha sido posible encontrar la entrada original." + +#: ../../Zotlabs/Module/Item.php:447 +msgid "Empty post discarded." +msgstr "La entrada vacía ha sido desechada." + +#: ../../Zotlabs/Module/Item.php:489 +msgid "Executable content type not permitted to this channel." +msgstr "Contenido de tipo ejecutable no permitido en este canal." + +#: ../../Zotlabs/Module/Item.php:837 +msgid "Duplicate post suppressed." +msgstr "Se ha suprimido la entrada duplicada." + +#: ../../Zotlabs/Module/Item.php:979 +msgid "System error. Post not saved." +msgstr "Error del sistema. La entrada no se ha podido salvar." + +#: ../../Zotlabs/Module/Item.php:1111 +msgid "Unable to obtain post information from database." +msgstr "No ha sido posible obtener información de la entrada en la base de datos." + +#: ../../Zotlabs/Module/Item.php:1118 #, php-format -msgid "%d new messages" -msgstr "%d mensajes nuevos" +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." -#: ../../Zotlabs/Module/Manage.php:173 +#: ../../Zotlabs/Module/Item.php:1125 #, php-format -msgid "%d new introductions" -msgstr "%d nuevas isolicitudes de conexión" +msgid "You have reached your limit of %1$.0f webpages." +msgstr "Ha alcanzado su límite de %1$.0f páginas web." -#: ../../Zotlabs/Module/Manage.php:175 -msgid "Delegated Channel" -msgstr "Canal delegado" +#: ../../Zotlabs/Module/Chanview.php:134 +msgid "toggle full screen mode" +msgstr "cambiar al modo de pantalla completa" + +#: ../../Zotlabs/Module/Follow.php:31 +msgid "Channel added." +msgstr "Canal añadido." + +#: ../../Zotlabs/Module/Mail.php:66 +msgid "Unable to lookup recipient." +msgstr "No se puede asociar a un destinatario." + +#: ../../Zotlabs/Module/Mail.php:73 +msgid "Unable to communicate with requested channel." +msgstr "No se puede establecer la comunicación con el canal solicitado." + +#: ../../Zotlabs/Module/Mail.php:80 +msgid "Cannot verify requested channel." +msgstr "No se puede verificar el canal solicitado." + +#: ../../Zotlabs/Module/Mail.php:98 +msgid "Selected channel has private message restrictions. Send failed." +msgstr "El canal seleccionado tiene restricciones sobre los mensajes privados. El envío falló." + +#: ../../Zotlabs/Module/Mail.php:177 +msgid "Messages" +msgstr "Mensajes" + +#: ../../Zotlabs/Module/Mail.php:212 +msgid "Message recalled." +msgstr "Mensaje revocado." + +#: ../../Zotlabs/Module/Mail.php:225 +msgid "Conversation removed." +msgstr "Conversación eliminada." + +#: ../../Zotlabs/Module/Mail.php:239 ../../Zotlabs/Module/Mail.php:348 +#: ../../Zotlabs/Module/Chat.php:205 ../../include/conversation.php:1182 +msgid "Please enter a link URL:" +msgstr "Por favor, introduzca la dirección del enlace:" + +#: ../../Zotlabs/Module/Mail.php:240 ../../Zotlabs/Module/Mail.php:349 +msgid "Expires YYYY-MM-DD HH:MM" +msgstr "Caduca YYYY-MM-DD HH:MM" + +#: ../../Zotlabs/Module/Mail.php:268 +msgid "Requested channel is not in this network" +msgstr "El canal solicitado no existe en esta red" + +#: ../../Zotlabs/Module/Mail.php:276 +msgid "Send Private Message" +msgstr "Enviar un mensaje privado" + +#: ../../Zotlabs/Module/Mail.php:277 ../../Zotlabs/Module/Mail.php:402 +msgid "To:" +msgstr "Para:" + +#: ../../Zotlabs/Module/Mail.php:280 ../../Zotlabs/Module/Mail.php:404 +msgid "Subject:" +msgstr "Asunto:" + +#: ../../Zotlabs/Module/Mail.php:283 ../../Zotlabs/Module/Invite.php:138 +msgid "Your message:" +msgstr "Su mensaje:" + +#: ../../Zotlabs/Module/Mail.php:285 ../../Zotlabs/Module/Mail.php:410 +#: ../../include/conversation.php:1242 +msgid "Attach file" +msgstr "Adjuntar fichero" + +#: ../../Zotlabs/Module/Mail.php:287 +msgid "Send" +msgstr "Enviar" + +#: ../../Zotlabs/Module/Mail.php:290 ../../Zotlabs/Module/Mail.php:415 +#: ../../include/conversation.php:1287 +msgid "Set expiration date" +msgstr "Configurar fecha de caducidad" + +#: ../../Zotlabs/Module/Mail.php:292 ../../Zotlabs/Module/Mail.php:417 +#: ../../Zotlabs/Module/Chat.php:206 ../../Zotlabs/Lib/ThreadItem.php:741 +#: ../../include/conversation.php:1292 +msgid "Encrypt text" +msgstr "Cifrar texto" + +#: ../../Zotlabs/Module/Mail.php:374 +msgid "Delete message" +msgstr "Borrar mensaje" + +#: ../../Zotlabs/Module/Mail.php:375 +msgid "Delivery report" +msgstr "Informe de transmisión" + +#: ../../Zotlabs/Module/Mail.php:376 +msgid "Recall message" +msgstr "Revocar el mensaje" + +#: ../../Zotlabs/Module/Mail.php:378 +msgid "Message has been recalled." +msgstr "El mensaje ha sido revocado." + +#: ../../Zotlabs/Module/Mail.php:395 +msgid "Delete Conversation" +msgstr "Eliminar conversación" + +#: ../../Zotlabs/Module/Mail.php:397 +msgid "" +"No secure communications available. You may be able to " +"respond from the sender's profile page." +msgstr "Comunicación segura no disponible. Pero puede responder desde la página del perfil del remitente." + +#: ../../Zotlabs/Module/Mail.php:401 +msgid "Send Reply" +msgstr "Responder" + +#: ../../Zotlabs/Module/Mail.php:406 +#, php-format +msgid "Your message for %s (%s):" +msgstr "Su mensaje para %s (%s):" + +#: ../../Zotlabs/Module/Impel.php:41 ../../include/bbcode.php:203 +msgid "webpage" +msgstr "página web" + +#: ../../Zotlabs/Module/Impel.php:46 ../../include/bbcode.php:209 +msgid "block" +msgstr "bloque" + +#: ../../Zotlabs/Module/Impel.php:51 ../../include/bbcode.php:206 +msgid "layout" +msgstr "plantilla" + +#: ../../Zotlabs/Module/Impel.php:58 ../../include/bbcode.php:212 +msgid "menu" +msgstr "menú" + +#: ../../Zotlabs/Module/Impel.php:191 +#, php-format +msgid "%s element installed" +msgstr "%s elemento instalado" + +#: ../../Zotlabs/Module/Impel.php:194 +#, php-format +msgid "%s element installation failed" +msgstr "Elemento con instalación fallida: %s" + +#: ../../Zotlabs/Module/Import_items.php:42 ../../Zotlabs/Module/Import.php:71 +msgid "Nothing to import." +msgstr "No hay nada para importar." + +#: ../../Zotlabs/Module/Import_items.php:66 ../../Zotlabs/Module/Import.php:83 +#: ../../Zotlabs/Module/Import.php:98 +msgid "Unable to download data from old server" +msgstr "No se han podido descargar datos de su antiguo servidor" + +#: ../../Zotlabs/Module/Import_items.php:72 +#: ../../Zotlabs/Module/Import.php:105 +msgid "Imported file is empty." +msgstr "El fichero importado está vacío." + +#: ../../Zotlabs/Module/Import_items.php:88 +#: ../../Zotlabs/Module/Import.php:127 +#, 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." + +#: ../../Zotlabs/Module/Import_items.php:104 +msgid "Import completed" +msgstr "Importación completada" + +#: ../../Zotlabs/Module/Import_items.php:119 +msgid "Import Items" +msgstr "Importar elementos" + +#: ../../Zotlabs/Module/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." + +#: ../../Zotlabs/Module/Import_items.php:121 +#: ../../Zotlabs/Module/Import.php:532 +msgid "File to Upload" +msgstr "Fichero para subir" + +#: ../../Zotlabs/Module/Invite.php:29 +msgid "Total invitation limit exceeded." +msgstr "Se ha superado el límite máximo de invitaciones." + +#: ../../Zotlabs/Module/Invite.php:53 +#, php-format +msgid "%s : Not a valid email address." +msgstr "%s : No es una dirección de correo electrónico válida. " + +#: ../../Zotlabs/Module/Invite.php:67 +msgid "Please join us on $Projectname" +msgstr "Únase a nosotros en $Projectname" + +#: ../../Zotlabs/Module/Invite.php:77 +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." + +#: ../../Zotlabs/Module/Invite.php:82 +#, php-format +msgid "%s : Message delivery failed." +msgstr "%s : Falló el envío del mensaje." + +#: ../../Zotlabs/Module/Invite.php:86 +#, php-format +msgid "%d message sent." +msgid_plural "%d messages sent." +msgstr[0] "%d mensajes enviados." +msgstr[1] "%d mensajes enviados." + +#: ../../Zotlabs/Module/Invite.php:105 +msgid "You have no more invitations available" +msgstr "No tiene más invitaciones disponibles" + +#: ../../Zotlabs/Module/Invite.php:136 +msgid "Send invitations" +msgstr "Enviar invitaciones" + +#: ../../Zotlabs/Module/Invite.php:137 +msgid "Enter email addresses, one per line:" +msgstr "Introduzca las direcciones de correo electrónico, una por línea:" + +#: ../../Zotlabs/Module/Invite.php:139 +msgid "Please join my community on $Projectname." +msgstr "Por favor, únase a mi comunidad en $Projectname." + +#: ../../Zotlabs/Module/Invite.php:141 +msgid "You will need to supply this invitation code:" +msgstr "Tendrá que suministrar este código de invitación:" + +#: ../../Zotlabs/Module/Invite.php:142 +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)" + +#: ../../Zotlabs/Module/Invite.php:144 +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." + +#: ../../Zotlabs/Module/Invite.php:145 +msgid "or visit" +msgstr "o visitar" + +#: ../../Zotlabs/Module/Invite.php:147 +msgid "3. Click [Connect]" +msgstr "3. Pulse [conectar]" + +#: ../../Zotlabs/Module/Editblock.php:108 ../../Zotlabs/Module/Blocks.php:97 +#: ../../Zotlabs/Module/Blocks.php:155 +msgid "Block Name" +msgstr "Nombre del bloque" + +#: ../../Zotlabs/Module/Editblock.php:124 ../../include/conversation.php:1258 +msgid "Title (optional)" +msgstr "Título (opcional)" + +#: ../../Zotlabs/Module/Editblock.php:133 +msgid "Edit Block" +msgstr "Modificar este bloque" #: ../../Zotlabs/Module/Group.php:24 msgid "Privacy group created." @@ -2955,7 +3653,7 @@ msgid "Could not create privacy group." msgstr "No se puede crear el grupo de canales" #: ../../Zotlabs/Module/Group.php:42 ../../Zotlabs/Module/Group.php:141 -#: ../../include/items.php:3960 +#: ../../include/items.php:3876 msgid "Privacy group not found." msgstr "Grupo de canales no encontrado." @@ -2987,10 +3685,6 @@ msgstr "No se puede eliminar el grupo de canales." msgid "Privacy group editor" msgstr "Editor de grupos de canales" -#: ../../Zotlabs/Module/Group.php:197 -msgid "Members" -msgstr "Miembros" - #: ../../Zotlabs/Module/Group.php:199 msgid "All Connected Channels" msgstr "Todos los canales conectados" @@ -2999,635 +3693,48 @@ msgstr "Todos los canales conectados" msgid "Click on a channel to add or remove." msgstr "Haga clic en un canal para agregarlo o quitarlo." -#: ../../Zotlabs/Module/Dreport.php:44 -msgid "Invalid message" -msgstr "Mensaje no válido" +#: ../../Zotlabs/Module/Profperm.php:34 ../../Zotlabs/Module/Profperm.php:63 +msgid "Invalid profile identifier." +msgstr "Identificador del perfil no válido" -#: ../../Zotlabs/Module/Dreport.php:76 -msgid "no results" -msgstr "sin resultados" +#: ../../Zotlabs/Module/Profperm.php:115 +msgid "Profile Visibility Editor" +msgstr "Editor de visibilidad del perfil" -#: ../../Zotlabs/Module/Dreport.php:91 -msgid "channel sync processed" -msgstr "se ha realizado la sincronización del canal" +#: ../../Zotlabs/Module/Profperm.php:117 ../../include/channel.php:1282 +msgid "Profile" +msgstr "Perfil" -#: ../../Zotlabs/Module/Dreport.php:95 -msgid "queued" -msgstr "encolado" +#: ../../Zotlabs/Module/Profperm.php:119 +msgid "Click on a contact to add or remove." +msgstr "Pulsar en un contacto para añadirlo o eliminarlo." -#: ../../Zotlabs/Module/Dreport.php:99 -msgid "posted" -msgstr "enviado" +#: ../../Zotlabs/Module/Profperm.php:128 +msgid "Visible To" +msgstr "Visible para" -#: ../../Zotlabs/Module/Dreport.php:103 -msgid "accepted for delivery" -msgstr "aceptado para el envío" - -#: ../../Zotlabs/Module/Dreport.php:107 -msgid "updated" -msgstr "actualizado" - -#: ../../Zotlabs/Module/Dreport.php:110 -msgid "update ignored" -msgstr "actualización ignorada" - -#: ../../Zotlabs/Module/Dreport.php:113 -msgid "permission denied" -msgstr "permiso denegado" - -#: ../../Zotlabs/Module/Dreport.php:117 -msgid "recipient not found" -msgstr "destinatario no encontrado" - -#: ../../Zotlabs/Module/Dreport.php:120 -msgid "mail recalled" -msgstr "mensaje de correo revocado" - -#: ../../Zotlabs/Module/Dreport.php:123 -msgid "duplicate mail received" -msgstr "se ha recibido mensaje duplicado" - -#: ../../Zotlabs/Module/Dreport.php:126 -msgid "mail delivered" -msgstr "correo enviado" - -#: ../../Zotlabs/Module/Dreport.php:146 -#, php-format -msgid "Delivery report for %1$s" -msgstr "Informe de entrega para %1$s" - -#: ../../Zotlabs/Module/Dreport.php:149 -msgid "Options" -msgstr "Opciones" - -#: ../../Zotlabs/Module/Dreport.php:150 -msgid "Redeliver" -msgstr "Volver a enviar" - -#: ../../Zotlabs/Module/Impel.php:41 ../../include/bbcode.php:192 -msgid "webpage" -msgstr "página web" - -#: ../../Zotlabs/Module/Impel.php:46 ../../include/bbcode.php:198 -msgid "block" -msgstr "bloque" - -#: ../../Zotlabs/Module/Impel.php:51 ../../include/bbcode.php:195 -msgid "layout" -msgstr "plantilla" - -#: ../../Zotlabs/Module/Impel.php:58 ../../include/bbcode.php:201 -msgid "menu" -msgstr "menú" - -#: ../../Zotlabs/Module/Impel.php:191 -#, php-format -msgid "%s element installed" -msgstr "%s elemento instalado" - -#: ../../Zotlabs/Module/Impel.php:194 -#, php-format -msgid "%s element installation failed" -msgstr "Elemento con instalación fallida: %s" - -#: ../../Zotlabs/Module/Import_items.php:104 -msgid "Import completed" -msgstr "Importación completada" - -#: ../../Zotlabs/Module/Import_items.php:119 -msgid "Import Items" -msgstr "Importar elementos" - -#: ../../Zotlabs/Module/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." - -#: ../../Zotlabs/Module/Invite.php:29 -msgid "Total invitation limit exceeded." -msgstr "Se ha superado el límite máximo de invitaciones." - -#: ../../Zotlabs/Module/Invite.php:53 -#, php-format -msgid "%s : Not a valid email address." -msgstr "%s : No es una dirección de correo electrónico válida. " - -#: ../../Zotlabs/Module/Invite.php:63 -msgid "Please join us on $Projectname" -msgstr "Únase a nosotros en $Projectname" - -#: ../../Zotlabs/Module/Invite.php:74 -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." - -#: ../../Zotlabs/Module/Invite.php:79 -#, php-format -msgid "%s : Message delivery failed." -msgstr "%s : Falló el envío del mensaje." - -#: ../../Zotlabs/Module/Invite.php:83 -#, php-format -msgid "%d message sent." -msgid_plural "%d messages sent." -msgstr[0] "%d mensajes enviados." -msgstr[1] "%d mensajes enviados." - -#: ../../Zotlabs/Module/Invite.php:102 -msgid "You have no more invitations available" -msgstr "No tiene más invitaciones disponibles" - -#: ../../Zotlabs/Module/Invite.php:133 -msgid "Send invitations" -msgstr "Enviar invitaciones" - -#: ../../Zotlabs/Module/Invite.php:134 -msgid "Enter email addresses, one per line:" -msgstr "Introduzca las direcciones de correo electrónico, una por línea:" - -#: ../../Zotlabs/Module/Invite.php:136 -msgid "Please join my community on $Projectname." -msgstr "Por favor, únase a mi comunidad en $Projectname." - -#: ../../Zotlabs/Module/Invite.php:138 -msgid "You will need to supply this invitation code:" -msgstr "Tendrá que suministrar este código de invitación:" - -#: ../../Zotlabs/Module/Invite.php:139 -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)" - -#: ../../Zotlabs/Module/Invite.php:141 -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." - -#: ../../Zotlabs/Module/Invite.php:142 -msgid "or visit" -msgstr "o visitar" - -#: ../../Zotlabs/Module/Invite.php:144 -msgid "3. Click [Connect]" -msgstr "3. Pulse [conectar]" - -#: ../../Zotlabs/Module/Locs.php:25 ../../Zotlabs/Module/Locs.php:54 -msgid "Location not found." -msgstr "Dirección no encontrada." - -#: ../../Zotlabs/Module/Locs.php:62 -msgid "Location lookup failed." -msgstr "Ha fallado la búsqueda de la dirección." - -#: ../../Zotlabs/Module/Locs.php:66 -msgid "" -"Please select another location to become primary before removing the primary" -" location." -msgstr "Por favor, seleccione una copia de su canal (un clon) para convertirlo en primario antes de eliminar su canal principal." - -#: ../../Zotlabs/Module/Locs.php:95 -msgid "Syncing locations" -msgstr "Sincronizando ubicaciones" - -#: ../../Zotlabs/Module/Locs.php:105 -msgid "No locations found." -msgstr "No encontrada ninguna dirección." - -#: ../../Zotlabs/Module/Locs.php:116 -msgid "Manage Channel Locations" -msgstr "Gestionar las direcciones del canal" - -#: ../../Zotlabs/Module/Locs.php:119 -msgid "Primary" -msgstr "Primario" - -#: ../../Zotlabs/Module/Locs.php:122 -msgid "Sync Now" -msgstr "Sincronizar ahora" - -#: ../../Zotlabs/Module/Locs.php:123 -msgid "Please wait several minutes between consecutive operations." -msgstr "Por favor, espere algunos minutos entre operaciones consecutivas." - -#: ../../Zotlabs/Module/Locs.php:124 -msgid "" -"When possible, drop a location by logging into that website/hub and removing" -" your channel." -msgstr "Cuando sea posible, elimine una ubicación iniciando sesión en el sitio web o \"hub\" y borrando su canal." - -#: ../../Zotlabs/Module/Locs.php:125 -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." - -#: ../../Zotlabs/Module/Rate.php:156 -msgid "Website:" -msgstr "Sitio web:" - -#: ../../Zotlabs/Module/Rate.php:159 -#, php-format -msgid "Remote Channel [%s] (not yet known on this site)" -msgstr "Canal remoto [%s] (aún no es conocido en este sitio)" - -#: ../../Zotlabs/Module/Rate.php:160 -msgid "Rating (this information is public)" -msgstr "Valoración (esta información es pública)" - -#: ../../Zotlabs/Module/Rate.php:161 -msgid "Optionally explain your rating (this information is public)" -msgstr "Opcionalmente puede explicar su valoración (esta información es pública)" - -#: ../../Zotlabs/Module/Like.php:19 -msgid "Like/Dislike" -msgstr "Me gusta/No me gusta" - -#: ../../Zotlabs/Module/Like.php:24 -msgid "This action is restricted to members." -msgstr "Esta acción está restringida solo para miembros." - -#: ../../Zotlabs/Module/Like.php:25 -msgid "" -"Please login with your $Projectname ID or register as a new $Projectname member to continue." -msgstr "Por favor, identifíquese con su $Projectname ID o rregístrese como un nuevo $Projectname member para continuar." - -#: ../../Zotlabs/Module/Like.php:105 ../../Zotlabs/Module/Like.php:131 -#: ../../Zotlabs/Module/Like.php:169 -msgid "Invalid request." -msgstr "Solicitud incorrecta." - -#: ../../Zotlabs/Module/Like.php:117 ../../include/conversation.php:126 -msgid "channel" -msgstr "el canal" - -#: ../../Zotlabs/Module/Like.php:146 -msgid "thing" -msgstr "elemento" - -#: ../../Zotlabs/Module/Like.php:192 -msgid "Channel unavailable." -msgstr "Canal no disponible." - -#: ../../Zotlabs/Module/Like.php:240 -msgid "Previous action reversed." -msgstr "Acción anterior revocada." - -#: ../../Zotlabs/Module/Like.php:370 ../../Zotlabs/Module/Subthread.php:87 -#: ../../Zotlabs/Module/Tagger.php:47 ../../include/text.php:1991 -#: ../../include/conversation.php:120 -msgid "photo" -msgstr "foto" - -#: ../../Zotlabs/Module/Like.php:370 ../../Zotlabs/Module/Subthread.php:87 -#: ../../include/text.php:1997 ../../include/conversation.php:148 -msgid "status" -msgstr "el mensaje de estado" - -#: ../../Zotlabs/Module/Like.php:372 ../../Zotlabs/Module/Events.php:253 -#: ../../Zotlabs/Module/Tagger.php:51 ../../include/text.php:1994 -#: ../../include/conversation.php:123 ../../include/event.php:961 -msgid "event" -msgstr "evento" - -#: ../../Zotlabs/Module/Like.php:419 ../../include/conversation.php:164 -#, php-format -msgid "%1$s likes %2$s's %3$s" -msgstr "A %1$s le gusta %3$s de %2$s" - -#: ../../Zotlabs/Module/Like.php:421 ../../include/conversation.php:167 -#, 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" - -#: ../../Zotlabs/Module/Like.php:423 -#, php-format -msgid "%1$s agrees with %2$s's %3$s" -msgstr "%3$s de %2$s: %1$s está de acuerdo" - -#: ../../Zotlabs/Module/Like.php:425 -#, php-format -msgid "%1$s doesn't agree with %2$s's %3$s" -msgstr "%3$s de %2$s: %1$s no está de acuerdo" - -#: ../../Zotlabs/Module/Like.php:427 -#, php-format -msgid "%1$s abstains from a decision on %2$s's %3$s" -msgstr "%3$s de %2$s: %1$s se abstiene" - -#: ../../Zotlabs/Module/Like.php:429 -#, php-format -msgid "%1$s is attending %2$s's %3$s" -msgstr "%3$s de %2$s: %1$s participa" - -#: ../../Zotlabs/Module/Like.php:431 -#, php-format -msgid "%1$s is not attending %2$s's %3$s" -msgstr "%3$s de %2$s: %1$s no participa" - -#: ../../Zotlabs/Module/Like.php:433 -#, php-format -msgid "%1$s may attend %2$s's %3$s" -msgstr "%3$s de %2$s: %1$s quizá participe" - -#: ../../Zotlabs/Module/Like.php:538 -msgid "Action completed." -msgstr "Acción completada." - -#: ../../Zotlabs/Module/Like.php:539 -msgid "Thank you." -msgstr "Gracias." - -#: ../../Zotlabs/Module/Profiles.php:24 ../../Zotlabs/Module/Profiles.php:189 -#: ../../Zotlabs/Module/Profiles.php:246 ../../Zotlabs/Module/Profiles.php:625 -msgid "Profile not found." -msgstr "Perfil no encontrado." - -#: ../../Zotlabs/Module/Profiles.php:44 -msgid "Profile deleted." -msgstr "Perfil eliminado." - -#: ../../Zotlabs/Module/Profiles.php:68 ../../Zotlabs/Module/Profiles.php:104 -msgid "Profile-" -msgstr "Perfil-" - -#: ../../Zotlabs/Module/Profiles.php:89 ../../Zotlabs/Module/Profiles.php:132 -msgid "New profile created." -msgstr "El nuevo perfil ha sido creado." - -#: ../../Zotlabs/Module/Profiles.php:110 -msgid "Profile unavailable to clone." -msgstr "Perfil no disponible para clonar." - -#: ../../Zotlabs/Module/Profiles.php:151 -msgid "Profile unavailable to export." -msgstr "Perfil no disponible para exportar." - -#: ../../Zotlabs/Module/Profiles.php:256 -msgid "Profile Name is required." -msgstr "Se necesita el nombre del perfil." - -#: ../../Zotlabs/Module/Profiles.php:427 -msgid "Marital Status" -msgstr "Estado civil" - -#: ../../Zotlabs/Module/Profiles.php:431 -msgid "Romantic Partner" -msgstr "Pareja sentimental" - -#: ../../Zotlabs/Module/Profiles.php:435 ../../Zotlabs/Module/Profiles.php:736 -msgid "Likes" -msgstr "Me gusta" - -#: ../../Zotlabs/Module/Profiles.php:439 ../../Zotlabs/Module/Profiles.php:737 -msgid "Dislikes" -msgstr "No me gusta" - -#: ../../Zotlabs/Module/Profiles.php:443 ../../Zotlabs/Module/Profiles.php:744 -msgid "Work/Employment" -msgstr "Trabajo:" - -#: ../../Zotlabs/Module/Profiles.php:446 -msgid "Religion" -msgstr "Religión" - -#: ../../Zotlabs/Module/Profiles.php:450 -msgid "Political Views" -msgstr "Ideas políticas" - -#: ../../Zotlabs/Module/Profiles.php:454 -msgid "Gender" -msgstr "Género" - -#: ../../Zotlabs/Module/Profiles.php:458 -msgid "Sexual Preference" -msgstr "Preferencia sexual" - -#: ../../Zotlabs/Module/Profiles.php:462 -msgid "Homepage" -msgstr "Página personal" - -#: ../../Zotlabs/Module/Profiles.php:466 -msgid "Interests" -msgstr "Intereses" - -#: ../../Zotlabs/Module/Profiles.php:560 -msgid "Profile updated." -msgstr "Perfil actualizado." - -#: ../../Zotlabs/Module/Profiles.php:644 -msgid "Hide your connections list from viewers of this profile" -msgstr "Ocultar la lista de conexiones a los visitantes del perfil" - -#: ../../Zotlabs/Module/Profiles.php:686 -msgid "Edit Profile Details" -msgstr "Modificar los detalles de este perfil" - -#: ../../Zotlabs/Module/Profiles.php:688 -msgid "View this profile" -msgstr "Ver este perfil" - -#: ../../Zotlabs/Module/Profiles.php:689 ../../Zotlabs/Module/Profiles.php:771 -#: ../../include/channel.php:981 -msgid "Edit visibility" -msgstr "Editar visibilidad" - -#: ../../Zotlabs/Module/Profiles.php:690 -msgid "Profile Tools" -msgstr "Gestión del perfil" - -#: ../../Zotlabs/Module/Profiles.php:691 -msgid "Change cover photo" -msgstr "Cambiar la imagen de portada del perfil" - -#: ../../Zotlabs/Module/Profiles.php:692 ../../include/channel.php:952 -msgid "Change profile photo" -msgstr "Cambiar la foto del perfil" - -#: ../../Zotlabs/Module/Profiles.php:693 -msgid "Create a new profile using these settings" -msgstr "Crear un nuevo perfil usando estos ajustes" - -#: ../../Zotlabs/Module/Profiles.php:694 -msgid "Clone this profile" -msgstr "Clonar este perfil" - -#: ../../Zotlabs/Module/Profiles.php:695 -msgid "Delete this profile" -msgstr "Eliminar este perfil" - -#: ../../Zotlabs/Module/Profiles.php:696 -msgid "Add profile things" -msgstr "Añadir cosas al perfil" - -#: ../../Zotlabs/Module/Profiles.php:697 ../../include/conversation.php:1564 -#: ../../include/widgets.php:105 -msgid "Personal" -msgstr "Personales" - -#: ../../Zotlabs/Module/Profiles.php:699 -msgid "Relation" -msgstr "Relación" - -#: ../../Zotlabs/Module/Profiles.php:700 ../../include/datetime.php:55 -msgid "Miscellaneous" -msgstr "Varios" - -#: ../../Zotlabs/Module/Profiles.php:702 -msgid "Import profile from file" -msgstr "Importar perfil desde un fichero" - -#: ../../Zotlabs/Module/Profiles.php:703 -msgid "Export profile to file" -msgstr "Exportar perfil a un fichero" - -#: ../../Zotlabs/Module/Profiles.php:704 -msgid "Your gender" -msgstr "Género" - -#: ../../Zotlabs/Module/Profiles.php:705 -msgid "Marital status" -msgstr "Estado civil" - -#: ../../Zotlabs/Module/Profiles.php:706 -msgid "Sexual preference" -msgstr "Preferencia sexual" - -#: ../../Zotlabs/Module/Profiles.php:709 -msgid "Profile name" -msgstr "Nombre del perfil" - -#: ../../Zotlabs/Module/Profiles.php:711 -msgid "This is your default profile." -msgstr "Este es su perfil principal." - -#: ../../Zotlabs/Module/Profiles.php:713 -msgid "Your full name" -msgstr "Nombre completo" - -#: ../../Zotlabs/Module/Profiles.php:714 -msgid "Title/Description" -msgstr "Título o descripción" - -#: ../../Zotlabs/Module/Profiles.php:717 -msgid "Street address" -msgstr "Dirección" - -#: ../../Zotlabs/Module/Profiles.php:718 -msgid "Locality/City" -msgstr "Ciudad" - -#: ../../Zotlabs/Module/Profiles.php:719 -msgid "Region/State" -msgstr "Región o Estado" - -#: ../../Zotlabs/Module/Profiles.php:720 -msgid "Postal/Zip code" -msgstr "Código postal" - -#: ../../Zotlabs/Module/Profiles.php:721 -msgid "Country" -msgstr "País" - -#: ../../Zotlabs/Module/Profiles.php:726 -msgid "Who (if applicable)" -msgstr "Quién (si es pertinente)" - -#: ../../Zotlabs/Module/Profiles.php:726 -msgid "Examples: cathy123, Cathy Williams, cathy@example.com" -msgstr "Por ejemplo: ana123, María González, sara@ejemplo.com" - -#: ../../Zotlabs/Module/Profiles.php:727 -msgid "Since (date)" -msgstr "Desde (fecha)" - -#: ../../Zotlabs/Module/Profiles.php:730 -msgid "Tell us about yourself" -msgstr "Háblenos de usted" - -#: ../../Zotlabs/Module/Profiles.php:731 -msgid "Homepage URL" -msgstr "Dirección de la página personal" - -#: ../../Zotlabs/Module/Profiles.php:732 -msgid "Hometown" -msgstr "Lugar de nacimiento" - -#: ../../Zotlabs/Module/Profiles.php:733 -msgid "Political views" -msgstr "Ideas políticas" - -#: ../../Zotlabs/Module/Profiles.php:734 -msgid "Religious views" -msgstr "Creencias religiosas" - -#: ../../Zotlabs/Module/Profiles.php:735 -msgid "Keywords used in directory listings" -msgstr "Palabras clave utilizadas en los listados de directorios" - -#: ../../Zotlabs/Module/Profiles.php:735 -msgid "Example: fishing photography software" -msgstr "Por ejemplo: software de fotografía submarina" - -#: ../../Zotlabs/Module/Profiles.php:738 -msgid "Musical interests" -msgstr "Preferencias musicales" - -#: ../../Zotlabs/Module/Profiles.php:739 -msgid "Books, literature" -msgstr "Libros, literatura" - -#: ../../Zotlabs/Module/Profiles.php:740 -msgid "Television" -msgstr "Televisión" - -#: ../../Zotlabs/Module/Profiles.php:741 -msgid "Film/Dance/Culture/Entertainment" -msgstr "Cine, danza, cultura, entretenimiento" - -#: ../../Zotlabs/Module/Profiles.php:742 -msgid "Hobbies/Interests" -msgstr "Aficiones o intereses" - -#: ../../Zotlabs/Module/Profiles.php:743 -msgid "Love/Romance" -msgstr "Vida sentimental o amorosa" - -#: ../../Zotlabs/Module/Profiles.php:745 -msgid "School/Education" -msgstr "Estudios" - -#: ../../Zotlabs/Module/Profiles.php:746 -msgid "Contact information and social networks" -msgstr "Información de contacto y redes sociales" - -#: ../../Zotlabs/Module/Profiles.php:747 -msgid "My other channels" -msgstr "Mis otros canales" - -#: ../../Zotlabs/Module/Profiles.php:767 ../../include/channel.php:977 -msgid "Profile Image" -msgstr "Imagen del perfil" - -#: ../../Zotlabs/Module/Profiles.php:777 ../../include/channel.php:959 -#: ../../include/nav.php:91 -msgid "Edit Profiles" -msgstr "Editar perfiles" +#: ../../Zotlabs/Module/Magic.php:71 +msgid "Hub not found." +msgstr "Servidor no encontrado" #: ../../Zotlabs/Module/Mitem.php:52 msgid "Unable to create element." msgstr "No se puede crear el elemento." -#: ../../Zotlabs/Module/Setup.php:530 -msgid "Error: mb_string PHP module required but not installed." -msgstr "Error: el módulo PHP mb_string es necesario, pero no está instalado." +#: ../../Zotlabs/Module/Mitem.php:76 +msgid "Unable to update menu element." +msgstr "No es posible actualizar el elemento del menú." -#: ../../Zotlabs/Module/Setup.php:534 -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." +#: ../../Zotlabs/Module/Mitem.php:92 +msgid "Unable to add menu element." +msgstr "No es posible añadir el elemento al menú" #: ../../Zotlabs/Module/Mitem.php:153 ../../Zotlabs/Module/Mitem.php:230 msgid "Menu Item Permissions" msgstr "Permisos del elemento del menú" #: ../../Zotlabs/Module/Mitem.php:154 ../../Zotlabs/Module/Mitem.php:231 -#: ../../Zotlabs/Module/Settings/Channel.php:486 +#: ../../Zotlabs/Module/Settings/Channel.php:489 msgid "(click to open/close)" msgstr "(pulsar para abrir o cerrar)" @@ -3727,502 +3834,25 @@ msgstr "Editar elemento del menú" msgid "Link text" msgstr "Texto del enlace" -#: ../../Zotlabs/Module/Setup.php:184 -msgid "$Projectname Server - Setup" -msgstr "Servidor $Projectname - Instalación" +#: ../../Zotlabs/Module/Ratings.php:70 +msgid "No ratings" +msgstr "Ninguna valoración" -#: ../../Zotlabs/Module/Setup.php:188 -msgid "Could not connect to database." -msgstr "No se ha podido conectar a la base de datos." +#: ../../Zotlabs/Module/Ratings.php:98 +msgid "Rating: " +msgstr "Valoración:" -#: ../../Zotlabs/Module/Setup.php:192 -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." +#: ../../Zotlabs/Module/Ratings.php:99 +msgid "Website: " +msgstr "Sitio web:" -#: ../../Zotlabs/Module/Setup.php:199 -msgid "Could not create table." -msgstr "No se puede crear la tabla." +#: ../../Zotlabs/Module/Ratings.php:101 +msgid "Description: " +msgstr "Descripción:" -#: ../../Zotlabs/Module/Setup.php:204 -msgid "Your site database has been installed." -msgstr "La base de datos del sitio ha sido instalada." - -#: ../../Zotlabs/Module/Setup.php:208 -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." - -#: ../../Zotlabs/Module/Setup.php:209 ../../Zotlabs/Module/Setup.php:271 -#: ../../Zotlabs/Module/Setup.php:734 -msgid "Please see the file \"install/INSTALL.txt\"." -msgstr "Por favor, lea el fichero \"install/INSTALL.txt\"." - -#: ../../Zotlabs/Module/Setup.php:268 -msgid "System check" -msgstr "Verificación del sistema" - -#: ../../Zotlabs/Module/Setup.php:272 ../../Zotlabs/Module/Photos.php:949 -#: ../../Zotlabs/Module/Cal.php:333 ../../Zotlabs/Module/Cal.php:340 -#: ../../Zotlabs/Module/Events.php:676 ../../Zotlabs/Module/Events.php:685 -msgid "Next" -msgstr "Siguiente" - -#: ../../Zotlabs/Module/Setup.php:273 -msgid "Check again" -msgstr "Verificar de nuevo" - -#: ../../Zotlabs/Module/Setup.php:295 -msgid "Database connection" -msgstr "Conexión a la base de datos" - -#: ../../Zotlabs/Module/Setup.php:296 -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." - -#: ../../Zotlabs/Module/Setup.php:297 -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." - -#: ../../Zotlabs/Module/Setup.php:298 -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." - -#: ../../Zotlabs/Module/Setup.php:302 -msgid "Database Server Name" -msgstr "Nombre del servidor de base de datos" - -#: ../../Zotlabs/Module/Setup.php:302 -msgid "Default is 127.0.0.1" -msgstr "De forma predeterminada es 127.0.0.1" - -#: ../../Zotlabs/Module/Setup.php:303 -msgid "Database Port" -msgstr "Puerto de la base de datos" - -#: ../../Zotlabs/Module/Setup.php:303 -msgid "Communication port number - use 0 for default" -msgstr "Número del puerto de comunicaciones - use 0 como valor por defecto" - -#: ../../Zotlabs/Module/Setup.php:304 -msgid "Database Login Name" -msgstr "Usuario de la base de datos" - -#: ../../Zotlabs/Module/Setup.php:305 -msgid "Database Login Password" -msgstr "Contraseña de acceso a la base de datos" - -#: ../../Zotlabs/Module/Setup.php:306 -msgid "Database Name" -msgstr "Nombre de la base de datos" - -#: ../../Zotlabs/Module/Setup.php:307 -msgid "Database Type" -msgstr "Tipo de base de datos" - -#: ../../Zotlabs/Module/Setup.php:309 ../../Zotlabs/Module/Setup.php:355 -msgid "Site administrator email address" -msgstr "Dirección de correo electrónico del administrador del sitio" - -#: ../../Zotlabs/Module/Setup.php:309 ../../Zotlabs/Module/Setup.php:355 -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." - -#: ../../Zotlabs/Module/Setup.php:310 ../../Zotlabs/Module/Setup.php:357 -msgid "Website URL" -msgstr "Dirección del sitio web" - -#: ../../Zotlabs/Module/Setup.php:310 ../../Zotlabs/Module/Setup.php:357 -msgid "Please use SSL (https) URL if available." -msgstr "Por favor, use SSL (https) si está disponible." - -#: ../../Zotlabs/Module/Setup.php:311 ../../Zotlabs/Module/Setup.php:361 -msgid "Please select a default timezone for your website" -msgstr "Por favor, selecciones el huso horario por defecto de su sitio web" - -#: ../../Zotlabs/Module/Setup.php:344 -msgid "Site settings" -msgstr "Ajustes del sitio" - -#: ../../Zotlabs/Module/Setup.php:400 -msgid "PHP version 5.5 or greater is required." -msgstr "Se requiere la versión 5.5, o superior, de PHP." - -#: ../../Zotlabs/Module/Setup.php:401 -msgid "PHP version" -msgstr "Versión de PHP" - -#: ../../Zotlabs/Module/Setup.php:416 -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." - -#: ../../Zotlabs/Module/Setup.php:417 -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á realizar envíos en segundo plano mediante cron." - -#: ../../Zotlabs/Module/Setup.php:421 -msgid "PHP executable path" -msgstr "Ruta del ejecutable PHP" - -#: ../../Zotlabs/Module/Setup.php:421 -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." - -#: ../../Zotlabs/Module/Setup.php:426 -msgid "Command line PHP" -msgstr "PHP en línea de comandos" - -#: ../../Zotlabs/Module/Setup.php:435 -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\"." - -#: ../../Zotlabs/Module/Setup.php:436 -msgid "This is required for message delivery to work." -msgstr "Esto es necesario para que funcione la transmisión de mensajes." - -#: ../../Zotlabs/Module/Setup.php:439 -msgid "PHP register_argc_argv" -msgstr "PHP register_argc_argv" - -#: ../../Zotlabs/Module/Setup.php:457 -#, 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." - -#: ../../Zotlabs/Module/Setup.php:462 -msgid "You can adjust these settings in the servers php.ini." -msgstr "Puede ajustar estos valores en el fichero php.ini de su servidor." - -#: ../../Zotlabs/Module/Setup.php:464 -msgid "PHP upload limits" -msgstr "Límites PHP de subida" - -#: ../../Zotlabs/Module/Setup.php:487 -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." - -#: ../../Zotlabs/Module/Setup.php:488 -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\"." - -#: ../../Zotlabs/Module/Setup.php:491 -msgid "Generate encryption keys" -msgstr "Generar claves de cifrado" - -#: ../../Zotlabs/Module/Setup.php:503 -msgid "libCurl PHP module" -msgstr "módulo libCurl PHP" - -#: ../../Zotlabs/Module/Setup.php:504 -msgid "GD graphics PHP module" -msgstr "módulo PHP GD graphics" - -#: ../../Zotlabs/Module/Setup.php:505 -msgid "OpenSSL PHP module" -msgstr "módulo PHP OpenSSL" - -#: ../../Zotlabs/Module/Setup.php:506 -msgid "mysqli or postgres PHP module" -msgstr "módulo PHP mysqli o postgres" - -#: ../../Zotlabs/Module/Setup.php:507 -msgid "mb_string PHP module" -msgstr "módulo PHP mb_string" - -#: ../../Zotlabs/Module/Setup.php:508 -msgid "xml PHP module" -msgstr "módulo PHP xml" - -#: ../../Zotlabs/Module/Setup.php:512 ../../Zotlabs/Module/Setup.php:514 -msgid "Apache mod_rewrite module" -msgstr "módulo Apache mod_rewrite " - -#: ../../Zotlabs/Module/Setup.php:512 -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." - -#: ../../Zotlabs/Module/Setup.php:518 ../../Zotlabs/Module/Setup.php:521 -msgid "proc_open" -msgstr "proc_open" - -#: ../../Zotlabs/Module/Setup.php:518 -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" - -#: ../../Zotlabs/Module/Setup.php:526 -msgid "Error: libCURL PHP module required but not installed." -msgstr "Error: se necesita el módulo PHP libCURL pero no está instalado." - -#: ../../Zotlabs/Module/Setup.php:530 -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." - -#: ../../Zotlabs/Module/Setup.php:534 -msgid "Error: openssl PHP module required but not installed." -msgstr "Error: el módulo PHP openssl es necesario, pero no está instalado." - -#: ../../Zotlabs/Module/Setup.php:538 -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." - -#: ../../Zotlabs/Module/Setup.php:542 -msgid "Error: mb_string PHP module required but not installed." -msgstr "Error: el módulo PHP mb_string es necesario, pero no está instalado." - -#: ../../Zotlabs/Module/Setup.php:546 -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." - -#: ../../Zotlabs/Module/Setup.php:564 -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." - -#: ../../Zotlabs/Module/Setup.php:565 -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." - -#: ../../Zotlabs/Module/Setup.php:566 -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." - -#: ../../Zotlabs/Module/Setup.php:567 -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." - -#: ../../Zotlabs/Module/Setup.php:570 -msgid ".htconfig.php is writable" -msgstr ".htconfig.php tiene permisos de escritura" - -#: ../../Zotlabs/Module/Setup.php:584 -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." - -#: ../../Zotlabs/Module/Setup.php:585 -#, php-format -msgid "" -"In order to store these compiled templates, the web server needs to have " -"write access to the directory %s under the top level web folder." -msgstr "Para poder guardar las plantillas compiladas, el servidor web necesita permisos para acceder al directorio %s en la carpeta web principal." - -#: ../../Zotlabs/Module/Setup.php:586 ../../Zotlabs/Module/Setup.php:607 -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)." - -#: ../../Zotlabs/Module/Setup.php:587 -#, 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." - -#: ../../Zotlabs/Module/Setup.php:590 -#, php-format -msgid "%s is writable" -msgstr "%s tiene permisos de escritura" - -#: ../../Zotlabs/Module/Setup.php:606 -msgid "" -"This software 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 "Este software utiliza el directorio de almacenamiento para guardar los archivos subidos. El servidor web debe tener acceso de escritura al directorio de almacenamiento en la carpeta de nivel superior" - -#: ../../Zotlabs/Module/Setup.php:610 -msgid "store is writable" -msgstr "\"store\" tiene permisos de escritura" - -#: ../../Zotlabs/Module/Setup.php:643 -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." - -#: ../../Zotlabs/Module/Setup.php:644 -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." - -#: ../../Zotlabs/Module/Setup.php:645 -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." - -#: ../../Zotlabs/Module/Setup.php:646 -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." - -#: ../../Zotlabs/Module/Setup.php:647 -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." - -#: ../../Zotlabs/Module/Setup.php:648 -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." - -#: ../../Zotlabs/Module/Setup.php:650 -msgid "" -"If you are confident that the certificate is valid and signed by a trusted " -"authority, check to see if you have failed to install an intermediate cert. " -"These are not normally required by browsers, but are required for server-to-" -"server communications." -msgstr "Si se tiene la certeza de que el certificado es válido y está firmado por una autoridad de confianza, comprobar para ver si hubo un error al instalar un certificado intermedio. Estos no son normalmente requeridos por los navegadores, pero son necesarios para las comunicaciones de servidor a servidor." - -#: ../../Zotlabs/Module/Setup.php:653 -msgid "SSL certificate validation" -msgstr "validación del certificado SSL" - -#: ../../Zotlabs/Module/Setup.php:659 -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:" - -#: ../../Zotlabs/Module/Setup.php:662 -msgid "Url rewrite is working" -msgstr "La reescritura de las direcciones funciona correctamente" - -#: ../../Zotlabs/Module/Setup.php:671 -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." - -#: ../../Zotlabs/Module/Setup.php:695 -msgid "Errors encountered creating database tables." -msgstr "Se han encontrado errores al crear las tablas de la base de datos." - -#: ../../Zotlabs/Module/Setup.php:732 -msgid "

        What next

        " -msgstr "

        Siguiente paso

        " - -#: ../../Zotlabs/Module/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\"." - -#: ../../Zotlabs/Module/Lostpass.php:19 -msgid "No valid account found." -msgstr "No se ha encontrado una cuenta válida." - -#: ../../Zotlabs/Module/Lostpass.php:33 -msgid "Password reset request issued. Check your email." -msgstr "Se ha recibido una solicitud de restablecimiento de contraseña. Consulte su correo electrónico." - -#: ../../Zotlabs/Module/Lostpass.php:39 ../../Zotlabs/Module/Lostpass.php:107 -#, php-format -msgid "Site Member (%s)" -msgstr "Usuario del sitio (%s)" - -#: ../../Zotlabs/Module/Lostpass.php:44 -#, php-format -msgid "Password reset requested at %s" -msgstr "Se ha solicitado restablecer la contraseña en %s" - -#: ../../Zotlabs/Module/Lostpass.php:67 -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." - -#: ../../Zotlabs/Module/Lostpass.php:90 ../../boot.php:1747 -msgid "Password Reset" -msgstr "Restablecer la contraseña" - -#: ../../Zotlabs/Module/Lostpass.php:91 -msgid "Your password has been reset as requested." -msgstr "Su contraseña ha sido restablecida según lo solicitó." - -#: ../../Zotlabs/Module/Lostpass.php:92 -msgid "Your new password is" -msgstr "Su nueva contraseña es" - -#: ../../Zotlabs/Module/Lostpass.php:93 -msgid "Save or copy your new password - and then" -msgstr "Guarde o copie su nueva contraseña - y después" - -#: ../../Zotlabs/Module/Lostpass.php:94 -msgid "click here to login" -msgstr "pulse aquí para conectarse" - -#: ../../Zotlabs/Module/Lostpass.php:95 -msgid "" -"Your password may be changed from the Settings page after " -"successful login." -msgstr "Puede cambiar la contraseña en la página Ajustes una vez iniciada la sesión." - -#: ../../Zotlabs/Module/Lostpass.php:112 -#, php-format -msgid "Your password has changed at %s" -msgstr "Su contraseña en %s ha sido cambiada" - -#: ../../Zotlabs/Module/Lostpass.php:127 -msgid "Forgot your Password?" -msgstr "¿Ha olvidado su contraseña?" - -#: ../../Zotlabs/Module/Lostpass.php:128 -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." - -#: ../../Zotlabs/Module/Lostpass.php:129 -msgid "Email Address" -msgstr "Dirección de correo electrónico" - -#: ../../Zotlabs/Module/Lostpass.php:130 -msgid "Reset" -msgstr "Reiniciar" +#: ../../Zotlabs/Module/Attach.php:13 +msgid "Item not available." +msgstr "Elemento no disponible" #: ../../Zotlabs/Module/Mood.php:67 ../../include/conversation.php:260 #, php-format @@ -4230,7 +3860,7 @@ msgctxt "mood" msgid "%1$s is %2$s" msgstr "%1$s está %2$s" -#: ../../Zotlabs/Module/Mood.php:135 ../../Zotlabs/Lib/Apps.php:227 +#: ../../Zotlabs/Module/Mood.php:135 ../../Zotlabs/Lib/Apps.php:229 msgid "Mood" msgstr "Estado de ánimo" @@ -4238,103 +3868,24 @@ msgstr "Estado de ánimo" msgid "Set your current mood and tell your friends" msgstr "Describir su estado de ánimo para comunicárselo a sus amigos" -#: ../../Zotlabs/Module/Removeme.php:35 -msgid "" -"Channel removals are not allowed within 48 hours of changing the account " -"password." -msgstr "La eliminación de canales no está permitida hasta pasadas 48 horas desde el último cambio de contraseña." - -#: ../../Zotlabs/Module/Removeme.php:60 -msgid "Remove This Channel" -msgstr "Eliminar este canal" - -#: ../../Zotlabs/Module/Removeme.php:61 -#: ../../Zotlabs/Module/Removeaccount.php:58 -msgid "WARNING: " -msgstr "ATENCIÓN:" - -#: ../../Zotlabs/Module/Removeme.php:61 -msgid "This channel will be completely removed from the network. " -msgstr "Este canal va a ser completamente eliminado de la red. " - -#: ../../Zotlabs/Module/Removeme.php:61 -#: ../../Zotlabs/Module/Removeaccount.php:58 -msgid "This action is permanent and can not be undone!" -msgstr "¡Esta acción tiene carácter definitivo y no se puede deshacer!" - -#: ../../Zotlabs/Module/Removeme.php:62 -#: ../../Zotlabs/Module/Removeaccount.php:59 -msgid "Please enter your password for verification:" -msgstr "Por favor, introduzca su contraseña para su verificación:" - -#: ../../Zotlabs/Module/Removeme.php:63 -msgid "Remove this channel and all its clones from the network" -msgstr "Eliminar este canal y todos sus clones de la red" - -#: ../../Zotlabs/Module/Removeme.php:63 -msgid "" -"By default only the instance of the channel located on this hub will be " -"removed from the network" -msgstr "Por defecto, solo la instancia del canal alojado en este servidor será eliminado de la red" - -#: ../../Zotlabs/Module/Removeme.php:64 -#: ../../Zotlabs/Module/Settings/Channel.php:544 -msgid "Remove Channel" -msgstr "Eliminar el canal" - #: ../../Zotlabs/Module/Notify.php:57 -#: ../../Zotlabs/Module/Notifications.php:98 +#: ../../Zotlabs/Module/Notifications.php:35 msgid "No more system notifications." msgstr "No hay más notificaciones del sistema" #: ../../Zotlabs/Module/Notify.php:61 -#: ../../Zotlabs/Module/Notifications.php:102 +#: ../../Zotlabs/Module/Notifications.php:39 msgid "System Notifications" msgstr "Notificaciones del sistema" -#: ../../Zotlabs/Module/Match.php:26 -msgid "Profile Match" -msgstr "Perfil compatible" - -#: ../../Zotlabs/Module/Match.php:35 -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." - -#: ../../Zotlabs/Module/Match.php:67 -msgid "is interested in:" -msgstr "está interesado en:" - -#: ../../Zotlabs/Module/Match.php:68 ../../Zotlabs/Module/Suggest.php:56 -#: ../../Zotlabs/Module/Directory.php:325 ../../include/channel.php:1034 -#: ../../include/connections.php:78 ../../include/conversation.php:955 -#: ../../include/widgets.php:147 ../../include/widgets.php:184 -msgid "Connect" -msgstr "Conectar" - -#: ../../Zotlabs/Module/Match.php:74 -msgid "No matches" -msgstr "No se han encontrado perfiles compatibles" - -#: ../../Zotlabs/Module/Dirsearch.php:25 ../../Zotlabs/Module/Regdir.php:49 -msgid "This site is not a directory server" -msgstr "Este sitio no es un servidor de directorio" - -#: ../../Zotlabs/Module/Dirsearch.php:33 -msgid "This directory server requires an access token" -msgstr "El servidor de este directorio necesita un \"token\" de acceso" - -#: ../../Zotlabs/Module/Magic.php:71 -msgid "Hub not found." -msgstr "Servidor no encontrado" - #: ../../Zotlabs/Module/Photos.php:82 msgid "Page owner information could not be retrieved." msgstr "La información del propietario de la página no pudo ser recuperada." #: ../../Zotlabs/Module/Photos.php:97 ../../Zotlabs/Module/Photos.php:734 #: ../../Zotlabs/Module/Profile_photo.php:115 -#: ../../Zotlabs/Module/Profile_photo.php:212 -#: ../../Zotlabs/Module/Profile_photo.php:311 +#: ../../Zotlabs/Module/Profile_photo.php:219 +#: ../../extend/addon/addon/openclipatar/openclipatar.php:225 #: ../../include/photo/photo_driver.php:728 msgid "Profile Photos" msgstr "Fotos del perfil" @@ -4358,13 +3909,6 @@ msgstr "Hay varias carpetas con este nombre de álbum, pero dentro de diferentes msgid "Delete Photo" msgstr "Borrar foto" -#: ../../Zotlabs/Module/Photos.php:509 ../../Zotlabs/Module/Display.php:17 -#: ../../Zotlabs/Module/Ratings.php:83 ../../Zotlabs/Module/Search.php:17 -#: ../../Zotlabs/Module/Viewconnections.php:23 -#: ../../Zotlabs/Module/Directory.php:63 -msgid "Public access denied." -msgstr "Acceso público denegado." - #: ../../Zotlabs/Module/Photos.php:520 msgid "No photos selected" msgstr "No hay fotos seleccionadas" @@ -4424,12 +3968,12 @@ msgid "Show Oldest First" msgstr "Mostrar lo más antiguo primero" #: ../../Zotlabs/Module/Photos.php:783 ../../Zotlabs/Module/Photos.php:1337 -#: ../../Zotlabs/Module/Embedphotos.php:141 ../../include/widgets.php:1677 +#: ../../Zotlabs/Module/Embedphotos.php:139 ../../include/widgets.php:1678 msgid "View Photo" msgstr "Ver foto" #: ../../Zotlabs/Module/Photos.php:814 -#: ../../Zotlabs/Module/Embedphotos.php:157 ../../include/widgets.php:1694 +#: ../../Zotlabs/Module/Embedphotos.php:155 ../../include/widgets.php:1695 msgid "Edit Album" msgstr "Editar álbum" @@ -4453,9 +3997,10 @@ msgstr "Usar como imagen de portada del perfil" msgid "Private Photo" msgstr "Foto privada" -#: ../../Zotlabs/Module/Photos.php:940 ../../Zotlabs/Module/Cal.php:332 -#: ../../Zotlabs/Module/Cal.php:339 ../../Zotlabs/Module/Events.php:675 -#: ../../Zotlabs/Module/Events.php:684 +#: ../../Zotlabs/Module/Photos.php:940 ../../Zotlabs/Module/Cal.php:336 +#: ../../Zotlabs/Module/Cal.php:343 ../../Zotlabs/Module/Events.php:680 +#: ../../Zotlabs/Module/Events.php:689 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:846 msgid "Previous" msgstr "Anterior" @@ -4463,6 +4008,13 @@ msgstr "Anterior" msgid "View Full Size" msgstr "Ver tamaño completo" +#: ../../Zotlabs/Module/Photos.php:949 ../../Zotlabs/Module/Setup.php:264 +#: ../../Zotlabs/Module/Cal.php:337 ../../Zotlabs/Module/Cal.php:344 +#: ../../Zotlabs/Module/Events.php:681 ../../Zotlabs/Module/Events.php:690 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:847 +msgid "Next" +msgstr "Siguiente" + #: ../../Zotlabs/Module/Photos.php:1033 msgid "Edit photo" msgstr "Editar foto" @@ -4513,28 +4065,29 @@ msgstr "No me gusta esto (cambiar)" #: ../../Zotlabs/Module/Photos.php:1078 ../../Zotlabs/Module/Blocks.php:161 #: ../../Zotlabs/Module/Layouts.php:193 ../../Zotlabs/Module/Webpages.php:241 -#: ../../include/conversation.php:1232 +#: ../../extend/addon/addon/cdav/include/widgets.php:123 +#: ../../include/conversation.php:1230 msgid "Share" msgstr "Compartir" -#: ../../Zotlabs/Module/Photos.php:1079 ../../Zotlabs/Lib/ThreadItem.php:405 -#: ../../include/conversation.php:741 +#: ../../Zotlabs/Module/Photos.php:1079 ../../Zotlabs/Lib/ThreadItem.php:409 +#: ../../include/conversation.php:737 msgid "Please wait" msgstr "Espere por favor" #: ../../Zotlabs/Module/Photos.php:1095 ../../Zotlabs/Module/Photos.php:1213 -#: ../../Zotlabs/Lib/ThreadItem.php:722 +#: ../../Zotlabs/Lib/ThreadItem.php:726 msgid "This is you" msgstr "Este es usted" #: ../../Zotlabs/Module/Photos.php:1097 ../../Zotlabs/Module/Photos.php:1215 -#: ../../Zotlabs/Lib/ThreadItem.php:724 ../../include/js_strings.php:6 +#: ../../Zotlabs/Lib/ThreadItem.php:728 ../../include/js_strings.php:6 msgid "Comment" msgstr "Comentar" #: ../../Zotlabs/Module/Photos.php:1099 ../../Zotlabs/Module/Webpages.php:247 -#: ../../Zotlabs/Module/Events.php:473 ../../Zotlabs/Lib/ThreadItem.php:734 -#: ../../include/page_widgets.php:43 ../../include/conversation.php:1201 +#: ../../Zotlabs/Module/Events.php:471 ../../Zotlabs/Lib/ThreadItem.php:738 +#: ../../include/page_widgets.php:43 ../../include/conversation.php:1199 msgid "Preview" msgstr "Previsualizar" @@ -4580,13 +4133,13 @@ msgstr "Quizá participe" #: ../../Zotlabs/Module/Photos.php:1132 ../../Zotlabs/Module/Photos.php:1144 #: ../../Zotlabs/Lib/ThreadItem.php:186 ../../Zotlabs/Lib/ThreadItem.php:198 -#: ../../include/conversation.php:1763 +#: ../../include/conversation.php:1765 msgid "View all" msgstr "Ver todo" #: ../../Zotlabs/Module/Photos.php:1136 ../../Zotlabs/Lib/ThreadItem.php:190 -#: ../../include/channel.php:1182 ../../include/conversation.php:1787 -#: ../../include/taxonomy.php:403 +#: ../../include/channel.php:1190 ../../include/taxonomy.php:403 +#: ../../include/conversation.php:1789 msgctxt "noun" msgid "Like" msgid_plural "Likes" @@ -4594,7 +4147,7 @@ msgstr[0] "Me gusta" msgstr[1] "Me gusta" #: ../../Zotlabs/Module/Photos.php:1141 ../../Zotlabs/Lib/ThreadItem.php:195 -#: ../../include/conversation.php:1790 +#: ../../include/conversation.php:1792 msgctxt "noun" msgid "Dislike" msgid_plural "Dislikes" @@ -4613,18 +4166,18 @@ msgstr "En esta foto:" msgid "Map" msgstr "Mapa" -#: ../../Zotlabs/Module/Photos.php:1263 ../../Zotlabs/Lib/ThreadItem.php:394 +#: ../../Zotlabs/Module/Photos.php:1263 ../../Zotlabs/Lib/ThreadItem.php:398 msgctxt "noun" msgid "Likes" msgstr "Me gusta" -#: ../../Zotlabs/Module/Photos.php:1264 ../../Zotlabs/Lib/ThreadItem.php:395 +#: ../../Zotlabs/Module/Photos.php:1264 ../../Zotlabs/Lib/ThreadItem.php:399 msgctxt "noun" msgid "Dislikes" msgstr "No me gusta" -#: ../../Zotlabs/Module/Photos.php:1269 ../../Zotlabs/Lib/ThreadItem.php:400 -#: ../../include/acl_selectors.php:181 +#: ../../Zotlabs/Module/Photos.php:1269 ../../Zotlabs/Lib/ThreadItem.php:404 +#: ../../include/acl_selectors.php:210 msgid "Close" msgstr "Cerrar" @@ -4637,43 +4190,444 @@ msgstr "Ver álbum" msgid "Recent Photos" msgstr "Fotos recientes" -#: ../../Zotlabs/Module/New_channel.php:134 -#: ../../Zotlabs/Module/Register.php:237 -msgid "Name or caption" -msgstr "Nombre o descripción" +#: ../../Zotlabs/Module/Setup.php:176 +msgid "$Projectname Server - Setup" +msgstr "Servidor $Projectname - Instalación" -#: ../../Zotlabs/Module/New_channel.php:134 -#: ../../Zotlabs/Module/Register.php:237 -msgid "Examples: \"Bob Jameson\", \"Lisa and her Horses\", \"Soccer\", \"Aviation Group\"" -msgstr "Ejemplos: \"Juan García\", \"Luisa y sus caballos\", \"Fútbol\", \"Grupo de aviación\"" +#: ../../Zotlabs/Module/Setup.php:180 +msgid "Could not connect to database." +msgstr "No se ha podido conectar a la base de datos." -#: ../../Zotlabs/Module/New_channel.php:136 -#: ../../Zotlabs/Module/Register.php:239 -msgid "Choose a short nickname" -msgstr "Elija un alias corto" +#: ../../Zotlabs/Module/Setup.php:184 +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." -#: ../../Zotlabs/Module/New_channel.php:136 -#: ../../Zotlabs/Module/Register.php:239 +#: ../../Zotlabs/Module/Setup.php:191 +msgid "Could not create table." +msgstr "No se puede crear la tabla." + +#: ../../Zotlabs/Module/Setup.php:196 +msgid "Your site database has been installed." +msgstr "La base de datos del sitio ha sido instalada." + +#: ../../Zotlabs/Module/Setup.php:200 +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." + +#: ../../Zotlabs/Module/Setup.php:201 ../../Zotlabs/Module/Setup.php:263 +#: ../../Zotlabs/Module/Setup.php:745 +msgid "Please see the file \"install/INSTALL.txt\"." +msgstr "Por favor, lea el fichero \"install/INSTALL.txt\"." + +#: ../../Zotlabs/Module/Setup.php:260 +msgid "System check" +msgstr "Verificación del sistema" + +#: ../../Zotlabs/Module/Setup.php:265 +msgid "Check again" +msgstr "Verificar de nuevo" + +#: ../../Zotlabs/Module/Setup.php:287 +msgid "Database connection" +msgstr "Conexión a la base de datos" + +#: ../../Zotlabs/Module/Setup.php:288 +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." + +#: ../../Zotlabs/Module/Setup.php:289 +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." + +#: ../../Zotlabs/Module/Setup.php:290 +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." + +#: ../../Zotlabs/Module/Setup.php:294 +msgid "Database Server Name" +msgstr "Nombre del servidor de base de datos" + +#: ../../Zotlabs/Module/Setup.php:294 +msgid "Default is 127.0.0.1" +msgstr "De forma predeterminada es 127.0.0.1" + +#: ../../Zotlabs/Module/Setup.php:295 +msgid "Database Port" +msgstr "Puerto de la base de datos" + +#: ../../Zotlabs/Module/Setup.php:295 +msgid "Communication port number - use 0 for default" +msgstr "Número del puerto de comunicaciones - use 0 como valor por defecto" + +#: ../../Zotlabs/Module/Setup.php:296 +msgid "Database Login Name" +msgstr "Usuario de la base de datos" + +#: ../../Zotlabs/Module/Setup.php:297 +msgid "Database Login Password" +msgstr "Contraseña de acceso a la base de datos" + +#: ../../Zotlabs/Module/Setup.php:298 +msgid "Database Name" +msgstr "Nombre de la base de datos" + +#: ../../Zotlabs/Module/Setup.php:299 +msgid "Database Type" +msgstr "Tipo de base de datos" + +#: ../../Zotlabs/Module/Setup.php:301 ../../Zotlabs/Module/Setup.php:347 +msgid "Site administrator email address" +msgstr "Dirección de correo electrónico del administrador del sitio" + +#: ../../Zotlabs/Module/Setup.php:301 ../../Zotlabs/Module/Setup.php:347 +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." + +#: ../../Zotlabs/Module/Setup.php:302 ../../Zotlabs/Module/Setup.php:349 +msgid "Website URL" +msgstr "Dirección del sitio web" + +#: ../../Zotlabs/Module/Setup.php:302 ../../Zotlabs/Module/Setup.php:349 +msgid "Please use SSL (https) URL if available." +msgstr "Por favor, use SSL (https) si está disponible." + +#: ../../Zotlabs/Module/Setup.php:303 ../../Zotlabs/Module/Setup.php:353 +msgid "Please select a default timezone for your website" +msgstr "Por favor, selecciones el huso horario por defecto de su sitio web" + +#: ../../Zotlabs/Module/Setup.php:336 +msgid "Site settings" +msgstr "Ajustes del sitio" + +#: ../../Zotlabs/Module/Setup.php:392 +msgid "PHP version 5.5 or greater is required." +msgstr "Se requiere la versión 5.5, o superior, de PHP." + +#: ../../Zotlabs/Module/Setup.php:393 +msgid "PHP version" +msgstr "Versión de PHP" + +#: ../../Zotlabs/Module/Setup.php:409 +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." + +#: ../../Zotlabs/Module/Setup.php:410 +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á realizar envíos en segundo plano mediante cron." + +#: ../../Zotlabs/Module/Setup.php:414 +msgid "PHP executable path" +msgstr "Ruta del ejecutable PHP" + +#: ../../Zotlabs/Module/Setup.php:414 +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." + +#: ../../Zotlabs/Module/Setup.php:419 +msgid "Command line PHP" +msgstr "PHP en línea de comandos" + +#: ../../Zotlabs/Module/Setup.php:429 +msgid "" +"Unable to check command line PHP, as shell_exec() is disabled. This is " +"required." +msgstr "No se puede comprobar la línea de comandos PHP, ya que shell_exec() está deshabilitado. Es necesario que esté activado." + +#: ../../Zotlabs/Module/Setup.php:432 +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\"." + +#: ../../Zotlabs/Module/Setup.php:433 +msgid "This is required for message delivery to work." +msgstr "Esto es necesario para que funcione la transmisión de mensajes." + +#: ../../Zotlabs/Module/Setup.php:436 +msgid "PHP register_argc_argv" +msgstr "PHP register_argc_argv" + +#: ../../Zotlabs/Module/Setup.php:454 #, php-format msgid "" -"Your nickname will be used to create an easy to remember channel address " -"e.g. nickname%s" -msgstr "Su alias se usará para crear una dirección de canal fácil de recordar, p. ej.: alias%s" +"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." -#: ../../Zotlabs/Module/New_channel.php:137 -#: ../../Zotlabs/Module/Register.php:240 -msgid "Channel role and privacy" -msgstr "Clase de canal y privacidad" +#: ../../Zotlabs/Module/Setup.php:459 +msgid "You can adjust these settings in the server php.ini file." +msgstr "Puede ajustar estos valores en el fichero php.ini de su servidor." -#: ../../Zotlabs/Module/New_channel.php:137 -#: ../../Zotlabs/Module/Register.php:240 -msgid "Select a channel role with your privacy requirements." -msgstr "Seleccione un tipo de canal con sus requisitos de privacidad" +#: ../../Zotlabs/Module/Setup.php:461 +msgid "PHP upload limits" +msgstr "Límites PHP de subida" -#: ../../Zotlabs/Module/New_channel.php:137 -#: ../../Zotlabs/Module/Register.php:240 -msgid "Read more about roles" -msgstr "Leer más sobre los roles" +#: ../../Zotlabs/Module/Setup.php:484 +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." + +#: ../../Zotlabs/Module/Setup.php:485 +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\"." + +#: ../../Zotlabs/Module/Setup.php:488 +msgid "Generate encryption keys" +msgstr "Generar claves de cifrado" + +#: ../../Zotlabs/Module/Setup.php:500 +msgid "libCurl PHP module" +msgstr "módulo libCurl PHP" + +#: ../../Zotlabs/Module/Setup.php:501 +msgid "GD graphics PHP module" +msgstr "módulo PHP GD graphics" + +#: ../../Zotlabs/Module/Setup.php:502 +msgid "OpenSSL PHP module" +msgstr "módulo PHP OpenSSL" + +#: ../../Zotlabs/Module/Setup.php:503 +msgid "PDO database PHP module" +msgstr "Módulo PHP de la base de datos PDO " + +#: ../../Zotlabs/Module/Setup.php:504 +msgid "mb_string PHP module" +msgstr "módulo PHP mb_string" + +#: ../../Zotlabs/Module/Setup.php:505 +msgid "xml PHP module" +msgstr "módulo PHP xml" + +#: ../../Zotlabs/Module/Setup.php:509 ../../Zotlabs/Module/Setup.php:511 +msgid "Apache mod_rewrite module" +msgstr "módulo Apache mod_rewrite " + +#: ../../Zotlabs/Module/Setup.php:509 +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." + +#: ../../Zotlabs/Module/Setup.php:515 ../../Zotlabs/Module/Setup.php:518 +msgid "exec" +msgstr "ejecutable" + +#: ../../Zotlabs/Module/Setup.php:515 +msgid "" +"Error: exec is required but is either not installed or has been disabled in " +"php.ini" +msgstr "Error: se necesita un ejecutable pero o no se instaló o está deshabilitado en php.ini" + +#: ../../Zotlabs/Module/Setup.php:521 ../../Zotlabs/Module/Setup.php:524 +msgid "shell_exec" +msgstr "shell_exec" + +#: ../../Zotlabs/Module/Setup.php:521 +msgid "" +"Error: shell_exec is required but is either not installed or has been " +"disabled in php.ini" +msgstr "Error: se necesita shell_exec pero o no se instaló o está deshabilitado en php.ini" + +#: ../../Zotlabs/Module/Setup.php:529 +msgid "Error: libCURL PHP module required but not installed." +msgstr "Error: se necesita el módulo PHP libCURL pero no está instalado." + +#: ../../Zotlabs/Module/Setup.php:533 +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." + +#: ../../Zotlabs/Module/Setup.php:537 +msgid "Error: openssl PHP module required but not installed." +msgstr "Error: el módulo PHP openssl es necesario, pero no está instalado." + +#: ../../Zotlabs/Module/Setup.php:541 +msgid "Error: PDO database PHP module required but not installed." +msgstr "Error: se necesita el módulo PHP de la base de datos PDO, pero no está instalado." + +#: ../../Zotlabs/Module/Setup.php:545 +msgid "Error: mb_string PHP module required but not installed." +msgstr "Error: el módulo PHP mb_string es necesario, pero no está instalado." + +#: ../../Zotlabs/Module/Setup.php:549 +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." + +#: ../../Zotlabs/Module/Setup.php:567 +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." + +#: ../../Zotlabs/Module/Setup.php:568 +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." + +#: ../../Zotlabs/Module/Setup.php:569 +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." + +#: ../../Zotlabs/Module/Setup.php:570 +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." + +#: ../../Zotlabs/Module/Setup.php:573 +msgid ".htconfig.php is writable" +msgstr ".htconfig.php tiene permisos de escritura" + +#: ../../Zotlabs/Module/Setup.php:587 +msgid "" +"This software uses the Smarty3 template engine to render its web views. " +"Smarty3 compiles templates to PHP to speed up rendering." +msgstr "Este software hace uso del motor de plantillas Smarty3 para diseñar sus plantillas gráficas. Smarty3 compila las plantillas a PHP para acelerar la renderización." + +#: ../../Zotlabs/Module/Setup.php:588 +#, php-format +msgid "" +"In order to store these compiled templates, the web server needs to have " +"write access to the directory %s under the top level web folder." +msgstr "Para poder guardar las plantillas compiladas, el servidor web necesita permisos para acceder al directorio %s en la carpeta web principal." + +#: ../../Zotlabs/Module/Setup.php:589 ../../Zotlabs/Module/Setup.php:610 +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)." + +#: ../../Zotlabs/Module/Setup.php:590 +#, 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." + +#: ../../Zotlabs/Module/Setup.php:593 +#, php-format +msgid "%s is writable" +msgstr "%s tiene permisos de escritura" + +#: ../../Zotlabs/Module/Setup.php:609 +msgid "" +"This software uses the store directory to save uploaded files. The web " +"server needs to have write access to the store directory under the top level" +" web folder" +msgstr "Este software utiliza el directorio de almacenamiento para guardar los ficheros subidos. El servidor web debe tener acceso de escritura a este directorio en la carpeta de nivel superior" + +#: ../../Zotlabs/Module/Setup.php:613 +msgid "store is writable" +msgstr "\"store\" tiene permisos de escritura" + +#: ../../Zotlabs/Module/Setup.php:646 +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)." + +#: ../../Zotlabs/Module/Setup.php:647 +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." + +#: ../../Zotlabs/Module/Setup.php:648 +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 entradas públicas hagan referencia a imágenes en su propio servidor." + +#: ../../Zotlabs/Module/Setup.php:649 +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." + +#: ../../Zotlabs/Module/Setup.php:650 +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." + +#: ../../Zotlabs/Module/Setup.php:651 +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." + +#: ../../Zotlabs/Module/Setup.php:653 +msgid "" +"Import and allow access to public content pulled from other sites. Warning: " +"this content is unmoderated." +msgstr "Importar y permitir acceso al contenido público sacado de otros sitios. Advertencia: este contenido no está moderado, por lo que podría encontrar cosas inapropiadas u ofensivas." + +#: ../../Zotlabs/Module/Setup.php:655 +msgid "SSL certificate validation" +msgstr "validación del certificado SSL" + +#: ../../Zotlabs/Module/Setup.php:661 +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." + +#: ../../Zotlabs/Module/Setup.php:664 +msgid "Url rewrite is working" +msgstr "La reescritura de las direcciones funciona correctamente" + +#: ../../Zotlabs/Module/Setup.php:678 +msgid "" +"Display contextual help for the current page when the help button is " +"pressed." +msgstr "Ver la ayuda contextual para la página actual cuando se pulse el botón de Ayuda." + +#: ../../Zotlabs/Module/Setup.php:702 +#: ../../extend/addon/addon/cdav/cdav.php:41 +#: ../../extend/addon/addon/rendezvous/rendezvous.php:385 +msgid "Errors encountered creating database tables." +msgstr "Se han encontrado errores al crear las tablas de la base de datos." + +#: ../../Zotlabs/Module/Setup.php:743 +msgid "

        What next

        " +msgstr "

        Siguiente paso

        " + +#: ../../Zotlabs/Module/Setup.php:744 +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\"." + +#: ../../Zotlabs/Module/Editpost.php:35 +msgid "Item is not editable" +msgstr "El elemento no es editable" + +#: ../../Zotlabs/Module/Regdir.php:49 ../../Zotlabs/Module/Dirsearch.php:25 +msgid "This site is not a directory server" +msgstr "Este sitio no es un servidor de directorio" #: ../../Zotlabs/Module/New_channel.php:140 msgid "Create Channel" @@ -4691,40 +4645,12 @@ msgid "" "or import an existing channel from another location." msgstr "O importar un canal existente desde otro lugar." -#: ../../Zotlabs/Module/Ping.php:265 -msgid "sent you a private message" -msgstr "le ha enviado un mensaje privado" - -#: ../../Zotlabs/Module/Ping.php:313 -msgid "added your channel" -msgstr "añadió este canal a sus conexiones" - -#: ../../Zotlabs/Module/Ping.php:323 -msgid "g A l F d" -msgstr "g A l d F" - -#: ../../Zotlabs/Module/Ping.php:346 -msgid "[today]" -msgstr "[hoy]" - -#: ../../Zotlabs/Module/Ping.php:355 -msgid "posted an event" -msgstr "publicó un evento" - -#: ../../Zotlabs/Module/Notifications.php:30 -msgid "Invalid request identifier." -msgstr "Petición inválida del identificador." - -#: ../../Zotlabs/Module/Notifications.php:39 -msgid "Discard" -msgstr "Descartar" - -#: ../../Zotlabs/Module/Notifications.php:103 ../../include/nav.php:196 +#: ../../Zotlabs/Module/Notifications.php:40 ../../include/nav.php:194 msgid "Mark all system notifications seen" msgstr "Marcar todas las notificaciones de sistema como leídas" -#: ../../Zotlabs/Module/Poke.php:168 ../../Zotlabs/Lib/Apps.php:228 -#: ../../include/conversation.php:959 +#: ../../Zotlabs/Module/Poke.php:168 ../../Zotlabs/Lib/Apps.php:230 +#: ../../include/conversation.php:941 msgid "Poke" msgstr "Toques y otras cosas" @@ -4752,10 +4678,285 @@ msgstr "Elegir qué desea enviar al destinatario" msgid "Make this post private" msgstr "Convertir en privado este envío" -#: ../../Zotlabs/Module/Apps.php:46 ../../include/nav.php:168 -#: ../../include/widgets.php:102 -msgid "Apps" -msgstr "Aplicaciones (apps)" +#: ../../Zotlabs/Module/Profiles.php:24 ../../Zotlabs/Module/Profiles.php:183 +#: ../../Zotlabs/Module/Profiles.php:240 ../../Zotlabs/Module/Profiles.php:619 +#: ../../extend/addon/addon/friendica/dfrn_confirm.php:62 +msgid "Profile not found." +msgstr "Perfil no encontrado." + +#: ../../Zotlabs/Module/Profiles.php:44 +msgid "Profile deleted." +msgstr "Perfil eliminado." + +#: ../../Zotlabs/Module/Profiles.php:68 ../../Zotlabs/Module/Profiles.php:104 +msgid "Profile-" +msgstr "Perfil-" + +#: ../../Zotlabs/Module/Profiles.php:89 ../../Zotlabs/Module/Profiles.php:126 +msgid "New profile created." +msgstr "El nuevo perfil ha sido creado." + +#: ../../Zotlabs/Module/Profiles.php:110 +msgid "Profile unavailable to clone." +msgstr "Perfil no disponible para clonar." + +#: ../../Zotlabs/Module/Profiles.php:145 +msgid "Profile unavailable to export." +msgstr "Perfil no disponible para exportar." + +#: ../../Zotlabs/Module/Profiles.php:250 +msgid "Profile Name is required." +msgstr "Se necesita el nombre del perfil." + +#: ../../Zotlabs/Module/Profiles.php:421 +msgid "Marital Status" +msgstr "Estado civil" + +#: ../../Zotlabs/Module/Profiles.php:425 +msgid "Romantic Partner" +msgstr "Pareja sentimental" + +#: ../../Zotlabs/Module/Profiles.php:429 ../../Zotlabs/Module/Profiles.php:730 +msgid "Likes" +msgstr "Me gusta" + +#: ../../Zotlabs/Module/Profiles.php:433 ../../Zotlabs/Module/Profiles.php:731 +msgid "Dislikes" +msgstr "No me gusta" + +#: ../../Zotlabs/Module/Profiles.php:437 ../../Zotlabs/Module/Profiles.php:738 +msgid "Work/Employment" +msgstr "Trabajo:" + +#: ../../Zotlabs/Module/Profiles.php:440 +msgid "Religion" +msgstr "Religión" + +#: ../../Zotlabs/Module/Profiles.php:444 +msgid "Political Views" +msgstr "Ideas políticas" + +#: ../../Zotlabs/Module/Profiles.php:448 +#: ../../extend/addon/addon/openid/MysqlProvider.php:74 +msgid "Gender" +msgstr "Género" + +#: ../../Zotlabs/Module/Profiles.php:452 +msgid "Sexual Preference" +msgstr "Preferencia sexual" + +#: ../../Zotlabs/Module/Profiles.php:456 +msgid "Homepage" +msgstr "Página personal" + +#: ../../Zotlabs/Module/Profiles.php:460 +msgid "Interests" +msgstr "Intereses" + +#: ../../Zotlabs/Module/Profiles.php:554 +msgid "Profile updated." +msgstr "Perfil actualizado." + +#: ../../Zotlabs/Module/Profiles.php:638 +msgid "Hide your connections list from viewers of this profile" +msgstr "Ocultar la lista de conexiones a los visitantes del perfil" + +#: ../../Zotlabs/Module/Profiles.php:680 +msgid "Edit Profile Details" +msgstr "Modificar los detalles de este perfil" + +#: ../../Zotlabs/Module/Profiles.php:682 +msgid "View this profile" +msgstr "Ver este perfil" + +#: ../../Zotlabs/Module/Profiles.php:683 ../../Zotlabs/Module/Profiles.php:765 +#: ../../include/channel.php:983 +msgid "Edit visibility" +msgstr "Editar visibilidad" + +#: ../../Zotlabs/Module/Profiles.php:684 +msgid "Profile Tools" +msgstr "Gestión del perfil" + +#: ../../Zotlabs/Module/Profiles.php:685 +msgid "Change cover photo" +msgstr "Cambiar la imagen de portada del perfil" + +#: ../../Zotlabs/Module/Profiles.php:686 ../../include/channel.php:954 +msgid "Change profile photo" +msgstr "Cambiar la foto del perfil" + +#: ../../Zotlabs/Module/Profiles.php:687 +msgid "Create a new profile using these settings" +msgstr "Crear un nuevo perfil usando estos ajustes" + +#: ../../Zotlabs/Module/Profiles.php:688 +msgid "Clone this profile" +msgstr "Clonar este perfil" + +#: ../../Zotlabs/Module/Profiles.php:689 +msgid "Delete this profile" +msgstr "Eliminar este perfil" + +#: ../../Zotlabs/Module/Profiles.php:690 +msgid "Add profile things" +msgstr "Añadir cosas al perfil" + +#: ../../Zotlabs/Module/Profiles.php:691 ../../include/widgets.php:105 +#: ../../include/conversation.php:1567 +msgid "Personal" +msgstr "Personales" + +#: ../../Zotlabs/Module/Profiles.php:693 +msgid "Relation" +msgstr "Relación" + +#: ../../Zotlabs/Module/Profiles.php:694 ../../include/datetime.php:55 +msgid "Miscellaneous" +msgstr "Varios" + +#: ../../Zotlabs/Module/Profiles.php:696 +msgid "Import profile from file" +msgstr "Importar perfil desde un fichero" + +#: ../../Zotlabs/Module/Profiles.php:697 +msgid "Export profile to file" +msgstr "Exportar perfil a un fichero" + +#: ../../Zotlabs/Module/Profiles.php:698 +msgid "Your gender" +msgstr "Género" + +#: ../../Zotlabs/Module/Profiles.php:699 +msgid "Marital status" +msgstr "Estado civil" + +#: ../../Zotlabs/Module/Profiles.php:700 +msgid "Sexual preference" +msgstr "Preferencia sexual" + +#: ../../Zotlabs/Module/Profiles.php:703 +msgid "Profile name" +msgstr "Nombre del perfil" + +#: ../../Zotlabs/Module/Profiles.php:705 +msgid "This is your default profile." +msgstr "Este es su perfil principal." + +#: ../../Zotlabs/Module/Profiles.php:707 +msgid "Your full name" +msgstr "Nombre completo" + +#: ../../Zotlabs/Module/Profiles.php:708 +msgid "Title/Description" +msgstr "Título o descripción" + +#: ../../Zotlabs/Module/Profiles.php:711 +msgid "Street address" +msgstr "Dirección" + +#: ../../Zotlabs/Module/Profiles.php:712 +msgid "Locality/City" +msgstr "Ciudad" + +#: ../../Zotlabs/Module/Profiles.php:713 +msgid "Region/State" +msgstr "Región o Estado" + +#: ../../Zotlabs/Module/Profiles.php:714 +msgid "Postal/Zip code" +msgstr "Código postal" + +#: ../../Zotlabs/Module/Profiles.php:715 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1161 +msgid "Country" +msgstr "País" + +#: ../../Zotlabs/Module/Profiles.php:720 +msgid "Who (if applicable)" +msgstr "Quién (si es pertinente)" + +#: ../../Zotlabs/Module/Profiles.php:720 +msgid "Examples: cathy123, Cathy Williams, cathy@example.com" +msgstr "Por ejemplo: ana123, María González, sara@ejemplo.com" + +#: ../../Zotlabs/Module/Profiles.php:721 +msgid "Since (date)" +msgstr "Desde (fecha)" + +#: ../../Zotlabs/Module/Profiles.php:724 +msgid "Tell us about yourself" +msgstr "Háblenos de usted" + +#: ../../Zotlabs/Module/Profiles.php:725 +#: ../../extend/addon/addon/openid/MysqlProvider.php:68 +msgid "Homepage URL" +msgstr "Dirección de la página personal" + +#: ../../Zotlabs/Module/Profiles.php:726 +msgid "Hometown" +msgstr "Lugar de nacimiento" + +#: ../../Zotlabs/Module/Profiles.php:727 +msgid "Political views" +msgstr "Ideas políticas" + +#: ../../Zotlabs/Module/Profiles.php:728 +msgid "Religious views" +msgstr "Creencias religiosas" + +#: ../../Zotlabs/Module/Profiles.php:729 +msgid "Keywords used in directory listings" +msgstr "Palabras clave utilizadas en los listados de directorios" + +#: ../../Zotlabs/Module/Profiles.php:729 +msgid "Example: fishing photography software" +msgstr "Por ejemplo: software de fotografía submarina" + +#: ../../Zotlabs/Module/Profiles.php:732 +msgid "Musical interests" +msgstr "Preferencias musicales" + +#: ../../Zotlabs/Module/Profiles.php:733 +msgid "Books, literature" +msgstr "Libros, literatura" + +#: ../../Zotlabs/Module/Profiles.php:734 +msgid "Television" +msgstr "Televisión" + +#: ../../Zotlabs/Module/Profiles.php:735 +msgid "Film/Dance/Culture/Entertainment" +msgstr "Cine, danza, cultura, entretenimiento" + +#: ../../Zotlabs/Module/Profiles.php:736 +msgid "Hobbies/Interests" +msgstr "Aficiones o intereses" + +#: ../../Zotlabs/Module/Profiles.php:737 +msgid "Love/Romance" +msgstr "Vida sentimental o amorosa" + +#: ../../Zotlabs/Module/Profiles.php:739 +msgid "School/Education" +msgstr "Estudios" + +#: ../../Zotlabs/Module/Profiles.php:740 +msgid "Contact information and social networks" +msgstr "Información de contacto y redes sociales" + +#: ../../Zotlabs/Module/Profiles.php:741 +msgid "My other channels" +msgstr "Mis otros canales" + +#: ../../Zotlabs/Module/Profiles.php:761 ../../include/channel.php:979 +msgid "Profile Image" +msgstr "Imagen del perfil" + +#: ../../Zotlabs/Module/Profiles.php:771 ../../include/channel.php:961 +#: ../../include/nav.php:91 +msgid "Edit Profiles" +msgstr "Editar perfiles" #: ../../Zotlabs/Module/Oexchange.php:27 msgid "Unable to find your hub." @@ -4765,26 +4966,6 @@ msgstr "No se puede encontrar su servidor." msgid "Post successful." msgstr "Enviado con éxito." -#: ../../Zotlabs/Module/Profperm.php:34 ../../Zotlabs/Module/Profperm.php:63 -msgid "Invalid profile identifier." -msgstr "Identificador del perfil no válido" - -#: ../../Zotlabs/Module/Profperm.php:115 -msgid "Profile Visibility Editor" -msgstr "Editor de visibilidad del perfil" - -#: ../../Zotlabs/Module/Profperm.php:117 ../../include/channel.php:1274 -msgid "Profile" -msgstr "Perfil" - -#: ../../Zotlabs/Module/Profperm.php:119 -msgid "Click on a contact to add or remove." -msgstr "Pulsar en un contacto para añadirlo o eliminarlo." - -#: ../../Zotlabs/Module/Profperm.php:128 -msgid "Visible To" -msgstr "Visible para" - #: ../../Zotlabs/Module/Pconfig.php:26 ../../Zotlabs/Module/Pconfig.php:59 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." @@ -4800,85 +4981,7 @@ msgid "" " 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." -#: ../../Zotlabs/Module/Api.php:60 ../../Zotlabs/Module/Api.php:81 -msgid "Authorize application connection" -msgstr "Autorizar una conexión de aplicación" - -#: ../../Zotlabs/Module/Api.php:61 -msgid "Return to your app and insert this Security Code:" -msgstr "Volver a su aplicación e introducir este código de seguridad:" - -#: ../../Zotlabs/Module/Api.php:71 -msgid "Please login to continue." -msgstr "Por favor inicie sesión para continuar." - -#: ../../Zotlabs/Module/Api.php:83 -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." - -#: ../../Zotlabs/Module/Siteinfo.php:19 -#, php-format -msgid "Version %s" -msgstr "Versión %s" - -#: ../../Zotlabs/Module/Siteinfo.php:34 -msgid "Installed plugins/addons/apps:" -msgstr "Extensiones (plugins), complementos o aplicaciones (apps) instaladas:" - -#: ../../Zotlabs/Module/Siteinfo.php:36 -msgid "No installed plugins/addons/apps" -msgstr "No hay instalada ninguna extensión (plugin), complemento o aplicación (app)" - -#: ../../Zotlabs/Module/Siteinfo.php:49 -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." - -#: ../../Zotlabs/Module/Siteinfo.php:51 -msgid "Tag: " -msgstr "Etiqueta:" - -#: ../../Zotlabs/Module/Siteinfo.php:53 -msgid "Last background fetch: " -msgstr "Última actualización en segundo plano:" - -#: ../../Zotlabs/Module/Siteinfo.php:55 -msgid "Current load average: " -msgstr "Carga media actual:" - -#: ../../Zotlabs/Module/Siteinfo.php:58 -msgid "Running at web location" -msgstr "Corriendo en el sitio web" - -#: ../../Zotlabs/Module/Siteinfo.php:59 -msgid "" -"Please visit hubzilla.org to learn more " -"about $Projectname." -msgstr "Por favor, visite hubzilla.org para más información sobre $Projectname." - -#: ../../Zotlabs/Module/Siteinfo.php:60 -msgid "Bug reports and issues: please visit" -msgstr "Informes de errores e incidencias: por favor visite" - -#: ../../Zotlabs/Module/Siteinfo.php:62 -msgid "$projectname issues" -msgstr "Problemas en $projectname" - -#: ../../Zotlabs/Module/Siteinfo.php:63 -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" - -#: ../../Zotlabs/Module/Siteinfo.php:65 -msgid "Site Administrators" -msgstr "Administradores del sitio" - -#: ../../Zotlabs/Module/Blocks.php:154 ../../include/text.php:2308 +#: ../../Zotlabs/Module/Blocks.php:154 ../../include/text.php:2270 msgid "Blocks" msgstr "Bloques" @@ -4886,13 +4989,13 @@ msgstr "Bloques" msgid "Block Title" msgstr "Título del bloque" -#: ../../Zotlabs/Module/Layouts.php:183 ../../include/text.php:2310 +#: ../../Zotlabs/Module/Layouts.php:183 ../../include/text.php:2272 msgid "Layouts" msgstr "Plantillas" -#: ../../Zotlabs/Module/Layouts.php:185 ../../Zotlabs/Lib/Apps.php:225 -#: ../../include/help.php:47 ../../include/help.php:52 -#: ../../include/nav.php:164 +#: ../../Zotlabs/Module/Layouts.php:185 ../../Zotlabs/Lib/Apps.php:227 +#: ../../include/nav.php:162 ../../include/help.php:53 +#: ../../include/help.php:59 msgid "Help" msgstr "Ayuda" @@ -4908,99 +5011,158 @@ msgstr "Descripción de la plantilla" msgid "Download PDL file" msgstr "Descargar el fichero PDL" -#: ../../Zotlabs/Module/Admin.php:97 -msgid "# Accounts" -msgstr "# Cuentas" +#: ../../Zotlabs/Module/Rate.php:156 +msgid "Website:" +msgstr "Sitio web:" -#: ../../Zotlabs/Module/Admin.php:98 -msgid "# blocked accounts" -msgstr "# cuentas bloqueadas" +#: ../../Zotlabs/Module/Rate.php:159 +#, php-format +msgid "Remote Channel [%s] (not yet known on this site)" +msgstr "Canal remoto [%s] (aún no es conocido en este sitio)" -#: ../../Zotlabs/Module/Admin.php:99 -msgid "# expired accounts" -msgstr "# cuentas caducadas" +#: ../../Zotlabs/Module/Rate.php:160 +msgid "Rating (this information is public)" +msgstr "Valoración (esta información es pública)" -#: ../../Zotlabs/Module/Admin.php:100 -msgid "# expiring accounts" -msgstr "# cuentas que caducan" +#: ../../Zotlabs/Module/Rate.php:161 +msgid "Optionally explain your rating (this information is public)" +msgstr "Opcionalmente puede explicar su valoración (esta información es pública)" -#: ../../Zotlabs/Module/Admin.php:111 -msgid "# Channels" -msgstr "# Canales" +#: ../../Zotlabs/Module/Like.php:19 +msgid "Like/Dislike" +msgstr "Me gusta/No me gusta" -#: ../../Zotlabs/Module/Admin.php:112 -msgid "# primary" -msgstr "# primario" +#: ../../Zotlabs/Module/Like.php:24 +msgid "This action is restricted to members." +msgstr "Esta acción está restringida solo para miembros." -#: ../../Zotlabs/Module/Admin.php:113 -msgid "# clones" -msgstr "# clones" +#: ../../Zotlabs/Module/Like.php:25 +msgid "" +"Please login with your $Projectname ID or register as a new $Projectname member to continue." +msgstr "Por favor, identifíquese con su $Projectname ID o rregístrese como un nuevo $Projectname member para continuar." -#: ../../Zotlabs/Module/Admin.php:119 -msgid "Message queues" -msgstr "Mensajes en cola" +#: ../../Zotlabs/Module/Like.php:105 ../../Zotlabs/Module/Like.php:131 +#: ../../Zotlabs/Module/Like.php:169 +msgid "Invalid request." +msgstr "Solicitud incorrecta." -#: ../../Zotlabs/Module/Admin.php:136 -msgid "Your software should be updated" -msgstr "Debe actualizar su software" +#: ../../Zotlabs/Module/Like.php:117 ../../include/conversation.php:126 +msgid "channel" +msgstr "el canal" -#: ../../Zotlabs/Module/Admin.php:142 -msgid "Summary" -msgstr "Sumario" +#: ../../Zotlabs/Module/Like.php:146 +msgid "thing" +msgstr "elemento" -#: ../../Zotlabs/Module/Admin.php:145 -msgid "Registered accounts" -msgstr "Cuentas registradas" +#: ../../Zotlabs/Module/Like.php:192 +msgid "Channel unavailable." +msgstr "Canal no disponible." -#: ../../Zotlabs/Module/Admin.php:146 -msgid "Pending registrations" -msgstr "Registros pendientes" +#: ../../Zotlabs/Module/Like.php:240 +msgid "Previous action reversed." +msgstr "Acción anterior revocada." -#: ../../Zotlabs/Module/Admin.php:147 -msgid "Registered channels" -msgstr "Canales registrados" +#: ../../Zotlabs/Module/Like.php:370 ../../Zotlabs/Module/Subthread.php:87 +#: ../../Zotlabs/Module/Tagger.php:47 +#: ../../extend/addon/addon/diaspora/inbound.php:1794 +#: ../../extend/addon/addon/redphotos/redphotohelper.php:74 +#: ../../include/text.php:1940 ../../include/conversation.php:120 +msgid "photo" +msgstr "foto" -#: ../../Zotlabs/Module/Admin.php:148 -msgid "Active plugins" -msgstr "Extensiones (plugins) activas" +#: ../../Zotlabs/Module/Like.php:370 ../../Zotlabs/Module/Subthread.php:87 +#: ../../extend/addon/addon/diaspora/inbound.php:1794 +#: ../../include/text.php:1946 ../../include/conversation.php:148 +msgid "status" +msgstr "el mensaje de estado" -#: ../../Zotlabs/Module/Admin.php:149 -msgid "Version" -msgstr "Versión" +#: ../../Zotlabs/Module/Like.php:372 ../../Zotlabs/Module/Tagger.php:51 +#: ../../Zotlabs/Module/Events.php:256 ../../include/text.php:1943 +#: ../../include/event.php:961 ../../include/conversation.php:123 +msgid "event" +msgstr "evento" -#: ../../Zotlabs/Module/Admin.php:150 -msgid "Repository version (master)" -msgstr "Versión del repositorio (master)" +#: ../../Zotlabs/Module/Like.php:419 +#: ../../extend/addon/addon/diaspora/inbound.php:1823 +#: ../../include/conversation.php:164 +#, php-format +msgid "%1$s likes %2$s's %3$s" +msgstr "A %1$s le gusta %3$s de %2$s" -#: ../../Zotlabs/Module/Admin.php:151 -msgid "Repository version (dev)" -msgstr "Versión del repositorio (dev)" +#: ../../Zotlabs/Module/Like.php:421 ../../include/conversation.php:167 +#, 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" -#: ../../Zotlabs/Module/Profile_photo.php:115 -#: ../../Zotlabs/Module/Profile_photo.php:212 -#: ../../Zotlabs/Module/Profile_photo.php:311 -#: ../../Zotlabs/Module/Photos.php:97 ../../Zotlabs/Module/Photos.php:745 -#: ../../include/photo/photo_driver.php:718 -msgid "Profile Photos" -msgstr "Fotos del perfil" +#: ../../Zotlabs/Module/Like.php:423 +#, php-format +msgid "%1$s agrees with %2$s's %3$s" +msgstr "%3$s de %2$s: %1$s está de acuerdo" + +#: ../../Zotlabs/Module/Like.php:425 +#, php-format +msgid "%1$s doesn't agree with %2$s's %3$s" +msgstr "%3$s de %2$s: %1$s no está de acuerdo" + +#: ../../Zotlabs/Module/Like.php:427 +#, php-format +msgid "%1$s abstains from a decision on %2$s's %3$s" +msgstr "%3$s de %2$s: %1$s se abstiene" + +#: ../../Zotlabs/Module/Like.php:429 +#, php-format +msgid "%1$s is attending %2$s's %3$s" +msgstr "%3$s de %2$s: %1$s participa" + +#: ../../Zotlabs/Module/Like.php:431 +#, php-format +msgid "%1$s is not attending %2$s's %3$s" +msgstr "%3$s de %2$s: %1$s no participa" + +#: ../../Zotlabs/Module/Like.php:433 +#, php-format +msgid "%1$s may attend %2$s's %3$s" +msgstr "%3$s de %2$s: %1$s quizá participe" + +#: ../../Zotlabs/Module/Like.php:538 +msgid "Action completed." +msgstr "Acción completada." + +#: ../../Zotlabs/Module/Like.php:539 +msgid "Thank you." +msgstr "Gracias." #: ../../Zotlabs/Module/Profile_photo.php:186 +#: ../../extend/addon/addon/openclipatar/openclipatar.php:293 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." -#: ../../Zotlabs/Module/Profile_photo.php:389 +#: ../../Zotlabs/Module/Profile_photo.php:409 +msgid "Use Photo for Profile" +msgstr "Usar la fotografía para el perfil" + +#: ../../Zotlabs/Module/Profile_photo.php:409 msgid "Upload Profile Photo" msgstr "Subir foto de perfil" -#: ../../Zotlabs/Module/Cal.php:69 -msgid "Permissions denied." -msgstr "Permisos denegados." +#: ../../Zotlabs/Module/Profile_photo.php:410 +#: ../../extend/addon/addon/openclipatar/openclipatar.php:181 +#: ../../extend/addon/addon/openclipatar/openclipatar.php:193 +msgid "Use" +msgstr "Usar" -#: ../../Zotlabs/Module/Cal.php:337 ../../include/text.php:2286 -msgid "Import" -msgstr "Importar" +#: ../../Zotlabs/Module/Search.php:223 +#, php-format +msgid "Items tagged with: %s" +msgstr "elementos etiquetados con: %s" + +#: ../../Zotlabs/Module/Search.php:225 +#, php-format +msgid "Search results for: %s" +msgstr "Resultados de la búsqueda para: %s" #: ../../Zotlabs/Module/Common.php:14 msgid "No channel." @@ -5014,113 +5176,154 @@ msgstr "Conexiones comunes" msgid "No connections in common." msgstr "Ninguna conexión en común." -#: ../../Zotlabs/Module/Rmagic.php:35 -msgid "Authentication failed." -msgstr "Falló la autenticación." +#: ../../Zotlabs/Module/Api.php:72 ../../Zotlabs/Module/Api.php:93 +msgid "Authorize application connection" +msgstr "Autorizar una conexión de aplicación" -#: ../../Zotlabs/Module/Rmagic.php:75 -msgid "Remote Authentication" -msgstr "Acceso desde su servidor" +#: ../../Zotlabs/Module/Api.php:73 +msgid "Return to your app and insert this Security Code:" +msgstr "Vuelva a su aplicación e introduzca este código de seguridad: " -#: ../../Zotlabs/Module/Rmagic.php:76 -msgid "Enter your channel address (e.g. channel@example.com)" -msgstr "Introduzca la dirección del canal (p.ej. canal@ejemplo.com)" +#: ../../Zotlabs/Module/Api.php:83 +msgid "Please login to continue." +msgstr "Por favor inicie sesión para continuar." -#: ../../Zotlabs/Module/Rmagic.php:77 -msgid "Authenticate" -msgstr "Acceder" - -#: ../../Zotlabs/Module/Ratings.php:73 -msgid "No ratings" -msgstr "Ninguna valoración" - -#: ../../Zotlabs/Module/Ratings.php:104 -msgid "Rating: " -msgstr "Valoración:" - -#: ../../Zotlabs/Module/Ratings.php:105 -msgid "Website: " -msgstr "Sitio web:" - -#: ../../Zotlabs/Module/Ratings.php:107 -msgid "Description: " -msgstr "Descripción:" - -#: ../../Zotlabs/Module/Apps.php:47 ../../include/widgets.php:102 -#: ../../include/nav.php:167 -msgid "Apps" -msgstr "Aplicaciones (apps)" - -#: ../../Zotlabs/Module/Network.php:94 -msgid "No such group" -msgstr "No se encuentra el grupo" - -#: ../../Zotlabs/Module/Network.php:134 -msgid "No such channel" -msgstr "No se encuentra el canal" - -#: ../../Zotlabs/Module/Network.php:139 -msgid "forum" -msgstr "foro" - -#: ../../Zotlabs/Module/Network.php:151 -msgid "Search Results For:" -msgstr "Buscar resultados para:" - -#: ../../Zotlabs/Module/Network.php:216 -msgid "Privacy group is empty" -msgstr "El grupo de canales está vacío" - -#: ../../Zotlabs/Module/Network.php:225 -msgid "Privacy group: " -msgstr "Grupo de canales: " - -#: ../../Zotlabs/Module/Network.php:251 -msgid "Invalid connection." -msgstr "Conexión no válida." - -#: ../../Zotlabs/Module/Connect.php:61 ../../Zotlabs/Module/Connect.php:109 -msgid "Continue" -msgstr "Continuar" - -#: ../../Zotlabs/Module/Connect.php:90 -msgid "Premium Channel Setup" -msgstr "Configuración del canal premium" - -#: ../../Zotlabs/Module/Connect.php:92 -msgid "Enable premium channel connection restrictions" -msgstr "Habilitar restricciones de conexión del canal premium" - -#: ../../Zotlabs/Module/Connect.php:93 +#: ../../Zotlabs/Module/Api.php:95 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." +"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?" -#: ../../Zotlabs/Module/Connect.php:95 ../../Zotlabs/Module/Connect.php:115 +#: ../../Zotlabs/Module/Ping.php:254 +msgid "sent you a private message" +msgstr "le ha enviado un mensaje privado" + +#: ../../Zotlabs/Module/Ping.php:302 +msgid "added your channel" +msgstr "añadió este canal a sus conexiones" + +#: ../../Zotlabs/Module/Ping.php:312 +msgid "g A l F d" +msgstr "g A l d F" + +#: ../../Zotlabs/Module/Ping.php:330 +msgid "[today]" +msgstr "[hoy]" + +#: ../../Zotlabs/Module/Ping.php:339 +msgid "posted an event" +msgstr "publicó un evento" + +#: ../../Zotlabs/Module/Siteinfo.php:20 +msgid "About this site" +msgstr "Acerca de este sitio" + +#: ../../Zotlabs/Module/Siteinfo.php:21 +msgid "Site Name" +msgstr "Nombre del sitio" + +#: ../../Zotlabs/Module/Siteinfo.php:25 ../../include/network.php:1962 +msgid "Administrator" +msgstr "Administrador" + +#: ../../Zotlabs/Module/Siteinfo.php:28 +msgid "Software and Project information" +msgstr "Información sobre el software y el proyecto" + +#: ../../Zotlabs/Module/Siteinfo.php:29 +msgid "This site is powered by $Projectname" +msgstr "Este sitio funciona con $Projectname" + +#: ../../Zotlabs/Module/Siteinfo.php:30 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:" +"Federated and decentralised networking and identity services provided by Zot" +msgstr "Servicios federados y descentralizados de identidad y redes proporcionados por Zot" -#: ../../Zotlabs/Module/Connect.php:96 +#: ../../Zotlabs/Module/Siteinfo.php:32 +#, php-format +msgid "Version %s" +msgstr "Versión %s" + +#: ../../Zotlabs/Module/Siteinfo.php:33 +msgid "Project homepage" +msgstr "Página principal del proyecto" + +#: ../../Zotlabs/Module/Siteinfo.php:34 +msgid "Developer homepage" +msgstr "Página principal del desarrollador" + +#: ../../Zotlabs/Module/Lostpass.php:19 +msgid "No valid account found." +msgstr "No se ha encontrado una cuenta válida." + +#: ../../Zotlabs/Module/Lostpass.php:33 +msgid "Password reset request issued. Check your email." +msgstr "Se ha recibido una solicitud de restablecimiento de contraseña. Consulte su correo electrónico." + +#: ../../Zotlabs/Module/Lostpass.php:39 ../../Zotlabs/Module/Lostpass.php:108 +#, php-format +msgid "Site Member (%s)" +msgstr "Usuario del sitio (%s)" + +#: ../../Zotlabs/Module/Lostpass.php:44 ../../Zotlabs/Module/Lostpass.php:49 +#, php-format +msgid "Password reset requested at %s" +msgstr "Se ha solicitado restablecer la contraseña en %s" + +#: ../../Zotlabs/Module/Lostpass.php:68 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:" +"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." -#: ../../Zotlabs/Module/Connect.php:97 ../../Zotlabs/Module/Connect.php:118 +#: ../../Zotlabs/Module/Lostpass.php:91 ../../boot.php:1728 +msgid "Password Reset" +msgstr "Restablecer la contraseña" + +#: ../../Zotlabs/Module/Lostpass.php:92 +msgid "Your password has been reset as requested." +msgstr "Su contraseña ha sido restablecida según lo solicitó." + +#: ../../Zotlabs/Module/Lostpass.php:93 +msgid "Your new password is" +msgstr "Su nueva contraseña es" + +#: ../../Zotlabs/Module/Lostpass.php:94 +msgid "Save or copy your new password - and then" +msgstr "Guarde o copie su nueva contraseña - y después" + +#: ../../Zotlabs/Module/Lostpass.php:95 +msgid "click here to login" +msgstr "pulse aquí para conectarse" + +#: ../../Zotlabs/Module/Lostpass.php:96 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." +"Your password may be changed from the Settings page after " +"successful login." +msgstr "Puede cambiar la contraseña en la página Ajustes una vez iniciada la sesión." -#: ../../Zotlabs/Module/Connect.php:106 -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.)" +#: ../../Zotlabs/Module/Lostpass.php:117 +#, php-format +msgid "Your password has changed at %s" +msgstr "Su contraseña en %s ha sido cambiada" -#: ../../Zotlabs/Module/Connect.php:114 -msgid "Restricted or Premium Channel" -msgstr "Canal premium o restringido" +#: ../../Zotlabs/Module/Lostpass.php:130 +msgid "Forgot your Password?" +msgstr "¿Ha olvidado su contraseña?" + +#: ../../Zotlabs/Module/Lostpass.php:131 +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." + +#: ../../Zotlabs/Module/Lostpass.php:132 +msgid "Email Address" +msgstr "Dirección de correo electrónico" + +#: ../../Zotlabs/Module/Lostpass.php:133 +msgid "Reset" +msgstr "Reiniciar" #: ../../Zotlabs/Module/Rbmark.php:94 msgid "Select a bookmark folder" @@ -5138,261 +5341,9 @@ msgstr "Dirección del marcador" msgid "Or enter new bookmark folder name" msgstr "O introduzca un nuevo nombre para la carpeta de marcadores" -#: ../../Zotlabs/Module/Photos.php:82 -msgid "Page owner information could not be retrieved." -msgstr "La información del propietario de la página no pudo ser recuperada." - -#: ../../Zotlabs/Module/Photos.php:103 ../../Zotlabs/Module/Photos.php:147 -msgid "Album not found." -msgstr "Álbum no encontrado." - -#: ../../Zotlabs/Module/Photos.php:130 -msgid "Delete Album" -msgstr "Borrar álbum" - -#: ../../Zotlabs/Module/Photos.php:151 -msgid "" -"Multiple storage folders exist with this album name, but within different " -"directories. Please remove the desired folder or folders using the Files " -"manager" -msgstr "Hay varias carpetas con este nombre de álbum, pero dentro de diferentes directorios. Por favor, elimine la carpeta o carpetas que desee utilizando el administrador de ficheros" - -#: ../../Zotlabs/Module/Photos.php:208 ../../Zotlabs/Module/Photos.php:1059 -msgid "Delete Photo" -msgstr "Borrar foto" - -#: ../../Zotlabs/Module/Photos.php:531 -msgid "No photos selected" -msgstr "No hay fotos seleccionadas" - -#: ../../Zotlabs/Module/Photos.php:580 -msgid "Access to this item is restricted." -msgstr "El acceso a este elemento está restringido." - -#: ../../Zotlabs/Module/Photos.php:619 -#, php-format -msgid "%1$.2f MB of %2$.2f MB photo storage used." -msgstr "%1$.2f MB de %2$.2f MB de almacenamiento de fotos utilizado." - -#: ../../Zotlabs/Module/Photos.php:622 -#, php-format -msgid "%1$.2f MB photo storage used." -msgstr "%1$.2f MB de almacenamiento de fotos utilizado." - -#: ../../Zotlabs/Module/Photos.php:658 -msgid "Upload Photos" -msgstr "Subir fotos" - -#: ../../Zotlabs/Module/Photos.php:662 -msgid "Enter an album name" -msgstr "Introducir un nombre de álbum" - -#: ../../Zotlabs/Module/Photos.php:663 -msgid "or select an existing album (doubleclick)" -msgstr "o seleccionar uno existente (doble click)" - -#: ../../Zotlabs/Module/Photos.php:664 -msgid "Create a status post for this upload" -msgstr "Crear un mensaje de estado para esta subida" - -#: ../../Zotlabs/Module/Photos.php:665 -msgid "Caption (optional):" -msgstr "Título (opcional):" - -#: ../../Zotlabs/Module/Photos.php:666 -msgid "Description (optional):" -msgstr "Descripción (opcional):" - -#: ../../Zotlabs/Module/Photos.php:697 -msgid "Album name could not be decoded" -msgstr "El nombre del álbum no ha podido ser descifrado" - -#: ../../Zotlabs/Module/Cal.php:69 -msgid "Permissions denied." -msgstr "Permisos denegados." - -#: ../../Zotlabs/Module/Cal.php:259 ../../Zotlabs/Module/Events.php:597 -msgid "l, F j" -msgstr "l j F" - -#: ../../Zotlabs/Module/Cal.php:308 ../../Zotlabs/Module/Events.php:646 -#: ../../include/text.php:1762 -msgid "Link to Source" -msgstr "Enlazar con la entrada en su ubicación original" - -#: ../../Zotlabs/Module/Cal.php:331 ../../Zotlabs/Module/Events.php:674 -msgid "Edit Event" -msgstr "Editar el evento" - -#: ../../Zotlabs/Module/Cal.php:331 ../../Zotlabs/Module/Events.php:674 -msgid "Create Event" -msgstr "Crear un evento" - -#: ../../Zotlabs/Module/Cal.php:334 ../../Zotlabs/Module/Events.php:677 -msgid "Export" -msgstr "Exportar" - -#: ../../Zotlabs/Module/Cal.php:337 ../../include/text.php:2332 -msgid "Import" -msgstr "Importar" - -#: ../../Zotlabs/Module/Cal.php:341 ../../Zotlabs/Module/Events.php:686 -msgid "Today" -msgstr "Hoy" - -#: ../../Zotlabs/Module/Photos.php:1040 -msgid "Enter a new album name" -msgstr "Introducir un nuevo nombre de álbum" - -#: ../../Zotlabs/Module/Photos.php:1041 -msgid "or select an existing one (doubleclick)" -msgstr "o seleccionar uno (doble click) existente" - -#: ../../Zotlabs/Module/Photos.php:1044 -msgid "Caption" -msgstr "Título" - -#: ../../Zotlabs/Module/Ratings.php:70 -msgid "No ratings" -msgstr "Ninguna valoración" - -#: ../../Zotlabs/Module/Ratings.php:98 -msgid "Rating: " -msgstr "Valoración:" - -#: ../../Zotlabs/Module/Ratings.php:99 -msgid "Website: " -msgstr "Sitio web:" - -#: ../../Zotlabs/Module/Ratings.php:101 -msgid "Description: " -msgstr "Descripción:" - -#: ../../Zotlabs/Module/Photos.php:1077 ../../Zotlabs/Lib/ThreadItem.php:263 -msgid "I don't like this (toggle)" -msgstr "No me gusta esto (cambiar)" - -#: ../../Zotlabs/Module/Photos.php:1079 ../../Zotlabs/Lib/ThreadItem.php:398 -#: ../../include/conversation.php:743 -msgid "Please wait" -msgstr "Espere por favor" - -#: ../../Zotlabs/Module/Photos.php:1095 ../../Zotlabs/Module/Photos.php:1213 -#: ../../Zotlabs/Lib/ThreadItem.php:708 -msgid "This is you" -msgstr "Este es usted" - -#: ../../Zotlabs/Module/Photos.php:1097 ../../Zotlabs/Module/Photos.php:1215 -#: ../../Zotlabs/Lib/ThreadItem.php:710 ../../include/js_strings.php:6 -msgid "Comment" -msgstr "Comentar" - -#: ../../Zotlabs/Module/Photos.php:1113 ../../include/conversation.php:577 -msgctxt "title" -msgid "Likes" -msgstr "Me gusta" - -#: ../../Zotlabs/Module/Photos.php:1113 ../../include/conversation.php:577 -msgctxt "title" -msgid "Dislikes" -msgstr "No me gusta" - -#: ../../Zotlabs/Module/Photos.php:1114 ../../include/conversation.php:578 -msgctxt "title" -msgid "Agree" -msgstr "De acuerdo" - -#: ../../Zotlabs/Module/Photos.php:1114 ../../include/conversation.php:578 -msgctxt "title" -msgid "Disagree" -msgstr "En desacuerdo" - -#: ../../Zotlabs/Module/Photos.php:1114 ../../include/conversation.php:578 -msgctxt "title" -msgid "Abstain" -msgstr "Abstención" - -#: ../../Zotlabs/Module/Photos.php:1115 ../../include/conversation.php:579 -msgctxt "title" -msgid "Attending" -msgstr "Participaré" - -#: ../../Zotlabs/Module/Register.php:221 -msgid "Terms of Service" -msgstr "Términos del servicio" - -#: ../../Zotlabs/Module/Register.php:227 -#, php-format -msgid "I accept the %s for this website" -msgstr "Acepto los %s de este sitio" - -#: ../../Zotlabs/Module/Register.php:229 -#, 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" - -#: ../../Zotlabs/Module/Register.php:233 -msgid "Your email address" -msgstr "Su dirección de correo electrónico" - -#: ../../Zotlabs/Module/Register.php:234 -msgid "Choose a password" -msgstr "Elija una contraseña" - -#: ../../Zotlabs/Module/Register.php:235 -msgid "Please re-enter your password" -msgstr "Por favor, vuelva a escribir su contraseña" - -#: ../../Zotlabs/Module/Register.php:236 -msgid "Please enter your invitation code" -msgstr "Por favor, introduzca el código de su invitación" - -#: ../../Zotlabs/Module/Register.php:241 -msgid "no" -msgstr "no" - -#: ../../Zotlabs/Module/Register.php:241 -msgid "yes" -msgstr "sí" - -#: ../../Zotlabs/Module/Register.php:258 -msgid "Membership on this site is by invitation only." -msgstr "Para registrarse en este sitio es necesaria una invitación." - -#: ../../Zotlabs/Module/Register.php:270 ../../include/nav.php:152 -#: ../../boot.php:1721 -msgid "Register" -msgstr "Registrarse" - -#: ../../Zotlabs/Module/Register.php:271 -msgid "" -"This site may require email verification after submitting this form. If you " -"are returned to a login page, please check your email for instructions." -msgstr "Este sitio puede requerir una verificación de correo electrónico después de enviar este formulario. Si es devuelto a una página de inicio de sesión, compruebe su email para recibir y leer las instrucciones." - -#: ../../Zotlabs/Module/Help.php:27 -msgid "Documentation Search" -msgstr "Búsqueda de Documentación" - -#: ../../Zotlabs/Module/Help.php:57 -msgid "$Projectname Documentation" -msgstr "Documentación de $Projectname" - -#: ../../Zotlabs/Module/Rbmark.php:94 -msgid "Select a bookmark folder" -msgstr "Seleccionar una carpeta de marcadores" - -#: ../../Zotlabs/Module/Rbmark.php:99 -msgid "Save Bookmark" -msgstr "Guardar marcador" - -#: ../../Zotlabs/Module/Rbmark.php:100 -msgid "URL of bookmark" -msgstr "Dirección del marcador" - -#: ../../Zotlabs/Module/Rbmark.php:105 -msgid "Or enter new bookmark folder name" -msgstr "O introduzca un nuevo nombre para la carpeta de marcadores" +#: ../../Zotlabs/Module/Dirsearch.php:33 +msgid "This directory server requires an access token" +msgstr "El servidor de este directorio necesita un \"token\" de acceso" #: ../../Zotlabs/Module/Rmagic.php:35 msgid "Authentication failed." @@ -5424,12 +5375,27 @@ msgstr "La eliminación de cuentas no está permitida hasta después de que haya msgid "Remove This Account" msgstr "Eliminar esta cuenta" +#: ../../Zotlabs/Module/Removeaccount.php:58 +#: ../../Zotlabs/Module/Removeme.php:61 +msgid "WARNING: " +msgstr "ATENCIÓN:" + #: ../../Zotlabs/Module/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." +#: ../../Zotlabs/Module/Removeaccount.php:58 +#: ../../Zotlabs/Module/Removeme.php:61 +msgid "This action is permanent and can not be undone!" +msgstr "¡Esta acción tiene carácter definitivo y no se puede deshacer!" + +#: ../../Zotlabs/Module/Removeaccount.php:59 +#: ../../Zotlabs/Module/Removeme.php:62 +msgid "Please enter your password for verification:" +msgstr "Por favor, introduzca su contraseña para su verificación:" + #: ../../Zotlabs/Module/Removeaccount.php:60 msgid "" "Remove this account, all its channels and all its channel clones from the " @@ -5443,62 +5409,33 @@ msgid "" msgstr "Por defecto, solo las instancias de los canales ubicados en este servidor serán eliminados de la red" #: ../../Zotlabs/Module/Removeaccount.php:61 -#: ../../Zotlabs/Module/Settings/Account.php:128 +#: ../../Zotlabs/Module/Settings/Account.php:120 msgid "Remove Account" msgstr "Eliminar cuenta" -#: ../../Zotlabs/Module/Webpages.php:52 -msgid "Import Webpage Elements" -msgstr "Importar elementos de una página web" +#: ../../Zotlabs/Module/Pdledit.php:21 +msgid "Layout updated." +msgstr "Plantilla actualizada." -#: ../../Zotlabs/Module/Webpages.php:53 -msgid "Import selected" -msgstr "Importar elementos seleccionados" +#: ../../Zotlabs/Module/Pdledit.php:34 ../../Zotlabs/Module/Chat.php:218 +msgid "Feature disabled." +msgstr "Funcionalidad deshabilitada." -#: ../../Zotlabs/Module/Webpages.php:76 -msgid "Export Webpage Elements" -msgstr "Exportar elementos de una página web" +#: ../../Zotlabs/Module/Pdledit.php:42 ../../Zotlabs/Module/Pdledit.php:69 +msgid "Edit System Page Description" +msgstr "Editor del Sistema de Descripción de Páginas" -#: ../../Zotlabs/Module/Webpages.php:77 -msgid "Export selected" -msgstr "Exportar elementos seleccionados" +#: ../../Zotlabs/Module/Pdledit.php:64 +msgid "Layout not found." +msgstr "Plantilla no encontrada" -#: ../../Zotlabs/Module/Webpages.php:237 ../../Zotlabs/Lib/Apps.php:218 -#: ../../include/nav.php:109 ../../include/conversation.php:1725 -msgid "Webpages" -msgstr "Páginas web" +#: ../../Zotlabs/Module/Pdledit.php:70 +msgid "Module Name:" +msgstr "Nombre del módulo:" -#: ../../Zotlabs/Module/Webpages.php:248 ../../include/page_widgets.php:44 -msgid "Actions" -msgstr "Acciones" - -#: ../../Zotlabs/Module/Webpages.php:249 ../../include/page_widgets.php:45 -msgid "Page Link" -msgstr "Vínculo de la página" - -#: ../../Zotlabs/Module/Webpages.php:250 -msgid "Page Title" -msgstr "Título de página" - -#: ../../Zotlabs/Module/Webpages.php:280 -msgid "Invalid file type." -msgstr "Tipo de fichero no válido." - -#: ../../Zotlabs/Module/Webpages.php:292 -msgid "Error opening zip file" -msgstr "Error al abrir el fichero comprimido zip" - -#: ../../Zotlabs/Module/Webpages.php:303 -msgid "Invalid folder path." -msgstr "La ruta de la carpeta no es válida." - -#: ../../Zotlabs/Module/Webpages.php:330 -msgid "No webpage elements detected." -msgstr "No se han detectado elementos de ninguna página web." - -#: ../../Zotlabs/Module/Webpages.php:405 -msgid "Import complete." -msgstr "Importación completada." +#: ../../Zotlabs/Module/Pdledit.php:71 +msgid "Layout Help" +msgstr "Ayuda para el diseño de plantillas de página" #: ../../Zotlabs/Module/Uexport.php:55 ../../Zotlabs/Module/Uexport.php:56 msgid "Export Channel" @@ -5558,241 +5495,201 @@ msgid "" " please import or restore these in date order (oldest first)." msgstr "Estos ficheros pueden ser importados o restaurados visitando %2$s 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)." -#: ../../Zotlabs/Module/Editpost.php:35 -msgid "Item is not editable" -msgstr "El elemento no es editable" +#: ../../Zotlabs/Module/Cal.php:69 +msgid "Permissions denied." +msgstr "Permisos denegados." -#: ../../Zotlabs/Module/Search.php:216 -#, php-format -msgid "Items tagged with: %s" -msgstr "elementos etiquetados con: %s" +#: ../../Zotlabs/Module/Cal.php:263 ../../Zotlabs/Module/Events.php:596 +msgid "l, F j" +msgstr "l j F" -#: ../../Zotlabs/Module/Search.php:218 -#, php-format -msgid "Search results for: %s" -msgstr "Resultados de la búsqueda para: %s" +#: ../../Zotlabs/Module/Cal.php:312 ../../Zotlabs/Module/Events.php:651 +#: ../../include/text.php:1748 +msgid "Link to Source" +msgstr "Enlazar con la entrada en su ubicación original" -#: ../../Zotlabs/Module/Events.php:25 -msgid "Calendar entries imported." -msgstr "Entradas de calendario importadas." +#: ../../Zotlabs/Module/Cal.php:335 ../../Zotlabs/Module/Events.php:679 +msgid "Edit Event" +msgstr "Editar el evento" -#: ../../Zotlabs/Module/Events.php:27 -msgid "No calendar entries found." -msgstr "No se han encontrado entradas de calendario." +#: ../../Zotlabs/Module/Cal.php:335 ../../Zotlabs/Module/Events.php:679 +msgid "Create Event" +msgstr "Crear un evento" -#: ../../Zotlabs/Module/Events.php:104 -msgid "Event can not end before it has started." -msgstr "Un evento no puede terminar antes de que haya comenzado." +#: ../../Zotlabs/Module/Cal.php:338 ../../Zotlabs/Module/Events.php:682 +msgid "Export" +msgstr "Exportar" -#: ../../Zotlabs/Module/Events.php:106 ../../Zotlabs/Module/Events.php:115 -#: ../../Zotlabs/Module/Events.php:135 -msgid "Unable to generate preview." -msgstr "No se puede crear la vista previa." +#: ../../Zotlabs/Module/Cal.php:341 ../../include/text.php:2294 +msgid "Import" +msgstr "Importar" -#: ../../Zotlabs/Module/Events.php:113 -msgid "Event title and start time are required." -msgstr "Se requieren el título del evento y su hora de inicio." +#: ../../Zotlabs/Module/Cal.php:345 ../../Zotlabs/Module/Events.php:691 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:848 +msgid "Today" +msgstr "Hoy" -#: ../../Zotlabs/Module/Events.php:133 ../../Zotlabs/Module/Events.php:258 -msgid "Event not found." -msgstr "Evento no encontrado." +#: ../../Zotlabs/Module/Admin.php:94 +msgid "# Accounts" +msgstr "# Cuentas" -#: ../../Zotlabs/Module/Events.php:452 -msgid "Edit event title" -msgstr "Editar el título del evento" +#: ../../Zotlabs/Module/Admin.php:95 +msgid "# blocked accounts" +msgstr "# cuentas bloqueadas" -#: ../../Zotlabs/Module/Events.php:452 -msgid "Event title" -msgstr "Título del evento" +#: ../../Zotlabs/Module/Admin.php:96 +msgid "# expired accounts" +msgstr "# cuentas caducadas" -#: ../../Zotlabs/Module/Events.php:454 -msgid "Categories (comma-separated list)" -msgstr "Temas (lista separada por comas)" +#: ../../Zotlabs/Module/Admin.php:97 +msgid "# expiring accounts" +msgstr "# cuentas que caducan" -#: ../../Zotlabs/Module/Events.php:455 -msgid "Edit Category" -msgstr "Modificar el tema" +#: ../../Zotlabs/Module/Admin.php:108 +msgid "# Channels" +msgstr "# Canales" -#: ../../Zotlabs/Module/Events.php:455 -msgid "Category" -msgstr "Tema" +#: ../../Zotlabs/Module/Admin.php:109 +msgid "# primary" +msgstr "# primario" -#: ../../Zotlabs/Module/Events.php:458 -msgid "Edit start date and time" -msgstr "Modificar la fecha y hora de comienzo" +#: ../../Zotlabs/Module/Admin.php:110 +msgid "# clones" +msgstr "# clones" -#: ../../Zotlabs/Module/Events.php:458 -msgid "Start date and time" -msgstr "Fecha y hora de comienzo" +#: ../../Zotlabs/Module/Admin.php:116 +msgid "Message queues" +msgstr "Mensajes en cola" -#: ../../Zotlabs/Module/Events.php:459 ../../Zotlabs/Module/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" +#: ../../Zotlabs/Module/Admin.php:133 +msgid "Your software should be updated" +msgstr "Debe actualizar su software" -#: ../../Zotlabs/Module/Events.php:461 -msgid "Edit finish date and time" -msgstr "Modificar la fecha y hora de terminación" +#: ../../Zotlabs/Module/Admin.php:138 +msgid "Summary" +msgstr "Sumario" -#: ../../Zotlabs/Module/Events.php:461 -msgid "Finish date and time" -msgstr "Fecha y hora de terminación" +#: ../../Zotlabs/Module/Admin.php:141 +msgid "Registered accounts" +msgstr "Cuentas registradas" -#: ../../Zotlabs/Module/Events.php:463 ../../Zotlabs/Module/Events.php:464 -msgid "Adjust for viewer timezone" -msgstr "Ajustar para obtener el visor de los husos horarios" +#: ../../Zotlabs/Module/Admin.php:142 +msgid "Pending registrations" +msgstr "Registros pendientes" -#: ../../Zotlabs/Module/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." +#: ../../Zotlabs/Module/Admin.php:143 +msgid "Registered channels" +msgstr "Canales registrados" -#: ../../Zotlabs/Module/Events.php:465 -msgid "Edit Description" -msgstr "Editar la descripción" +#: ../../Zotlabs/Module/Admin.php:144 +msgid "Active plugins" +msgstr "Extensiones (plugins) activas" -#: ../../Zotlabs/Module/Events.php:467 -msgid "Edit Location" -msgstr "Modificar la dirección" +#: ../../Zotlabs/Module/Admin.php:145 +msgid "Version" +msgstr "Versión" -#: ../../Zotlabs/Module/Events.php:470 ../../Zotlabs/Module/Events.php:472 -msgid "Share this event" -msgstr "Compartir este evento" +#: ../../Zotlabs/Module/Admin.php:146 +msgid "Repository version (master)" +msgstr "Versión del repositorio (master)" -#: ../../Zotlabs/Module/Events.php:474 ../../include/conversation.php:1264 -msgid "Permission settings" -msgstr "Configuración de permisos" +#: ../../Zotlabs/Module/Admin.php:147 +msgid "Repository version (dev)" +msgstr "Versión del repositorio (dev)" -#: ../../Zotlabs/Module/Events.php:485 -msgid "Advanced Options" -msgstr "Opciones avanzadas" +#: ../../Zotlabs/Module/Lockview.php:75 +msgid "Remote privacy information not available." +msgstr "La información privada remota no está disponible." -#: ../../Zotlabs/Module/Events.php:619 -msgid "Edit event" -msgstr "Editar evento" - -#: ../../Zotlabs/Module/Events.php:621 -msgid "Delete event" -msgstr "Borrar evento" - -#: ../../Zotlabs/Module/Events.php:655 -msgid "calendar" -msgstr "calendario" - -#: ../../Zotlabs/Module/Events.php:681 -msgid "Month" -msgstr "Mes" - -#: ../../Zotlabs/Module/Events.php:682 -msgid "Week" -msgstr "Semana" - -#: ../../Zotlabs/Module/Events.php:683 -msgid "Day" -msgstr "Día" - -#: ../../Zotlabs/Module/Events.php:717 -msgid "Event removed" -msgstr "Evento borrado" - -#: ../../Zotlabs/Module/Events.php:720 -msgid "Failed to remove event" -msgstr "Error al eliminar el evento" +#: ../../Zotlabs/Module/Lockview.php:96 +msgid "Visible to:" +msgstr "Visible para:" #: ../../Zotlabs/Module/Service_limits.php:23 msgid "No service class restrictions found." msgstr "No se han encontrado restricciones sobre esta clase de servicio." -#: ../../Zotlabs/Module/Thing.php:114 -msgid "Thing updated" -msgstr "Elemento actualizado." +#: ../../Zotlabs/Module/Webpages.php:52 +msgid "Import Webpage Elements" +msgstr "Importar elementos de una página web" -#: ../../Zotlabs/Module/Thing.php:166 -msgid "Object store: failed" -msgstr "Guardar objeto: ha fallado" +#: ../../Zotlabs/Module/Webpages.php:53 +msgid "Import selected" +msgstr "Importar elementos seleccionados" -#: ../../Zotlabs/Module/Thing.php:170 -msgid "Thing added" -msgstr "Elemento añadido" +#: ../../Zotlabs/Module/Webpages.php:76 +msgid "Export Webpage Elements" +msgstr "Exportar elementos de una página web" -#: ../../Zotlabs/Module/Thing.php:196 -#, php-format -msgid "OBJ: %1$s %2$s %3$s" -msgstr "OBJ: %1$s %2$s %3$s" +#: ../../Zotlabs/Module/Webpages.php:77 +msgid "Export selected" +msgstr "Exportar los elementos seleccionados" -#: ../../Zotlabs/Module/Thing.php:259 -msgid "Show Thing" -msgstr "Mostrar elemento" +#: ../../Zotlabs/Module/Webpages.php:237 ../../Zotlabs/Lib/Apps.php:220 +#: ../../include/nav.php:109 ../../include/conversation.php:1727 +msgid "Webpages" +msgstr "Páginas web" -#: ../../Zotlabs/Module/Thing.php:266 -msgid "item not found." -msgstr "elemento no encontrado." +#: ../../Zotlabs/Module/Webpages.php:248 ../../include/page_widgets.php:44 +msgid "Actions" +msgstr "Acciones" -#: ../../Zotlabs/Module/Thing.php:299 -msgid "Edit Thing" -msgstr "Editar elemento" +#: ../../Zotlabs/Module/Webpages.php:249 ../../include/page_widgets.php:45 +msgid "Page Link" +msgstr "Vínculo de la página" -#: ../../Zotlabs/Module/Thing.php:301 ../../Zotlabs/Module/Thing.php:355 -msgid "Select a profile" -msgstr "Seleccionar un perfil" +#: ../../Zotlabs/Module/Webpages.php:250 +msgid "Page Title" +msgstr "Título de página" -#: ../../Zotlabs/Module/Thing.php:305 ../../Zotlabs/Module/Thing.php:358 -msgid "Post an activity" -msgstr "Publicar una actividad" +#: ../../Zotlabs/Module/Webpages.php:280 +msgid "Invalid file type." +msgstr "Tipo de fichero no válido." -#: ../../Zotlabs/Module/Thing.php:305 ../../Zotlabs/Module/Thing.php:358 -msgid "Only sends to viewers of the applicable profile" -msgstr "Sólo enviar a espectadores del perfil pertinente." +#: ../../Zotlabs/Module/Webpages.php:292 +msgid "Error opening zip file" +msgstr "Error al abrir el fichero comprimido zip" -#: ../../Zotlabs/Module/Thing.php:307 ../../Zotlabs/Module/Thing.php:360 -msgid "Name of thing e.g. something" -msgstr "Nombre del elemento, p. ej.:. \"algo\"" +#: ../../Zotlabs/Module/Webpages.php:303 +msgid "Invalid folder path." +msgstr "La ruta de la carpeta no es válida." -#: ../../Zotlabs/Module/Thing.php:309 ../../Zotlabs/Module/Thing.php:361 -msgid "URL of thing (optional)" -msgstr "Dirección del elemento (opcional)" +#: ../../Zotlabs/Module/Webpages.php:330 +msgid "No webpage elements detected." +msgstr "No se han detectado elementos de ninguna página web." -#: ../../Zotlabs/Module/Thing.php:311 ../../Zotlabs/Module/Thing.php:362 -msgid "URL for photo of thing (optional)" -msgstr "Dirección para la foto o elemento (opcional)" +#: ../../Zotlabs/Module/Webpages.php:405 +msgid "Import complete." +msgstr "Importación completada." -#: ../../Zotlabs/Module/Thing.php:353 -msgid "Add Thing to your Profile" -msgstr "Añadir alguna cosa a su perfil" +#: ../../Zotlabs/Module/Removeme.php:35 +msgid "" +"Channel removals are not allowed within 48 hours of changing the account " +"password." +msgstr "La eliminación de canales no está permitida hasta pasadas 48 horas desde el último cambio de contraseña." -#: ../../Zotlabs/Module/Item.php:180 -msgid "Unable to locate original post." -msgstr "No ha sido posible encontrar la entrada original." +#: ../../Zotlabs/Module/Removeme.php:60 +msgid "Remove This Channel" +msgstr "Eliminar este canal" -#: ../../Zotlabs/Module/Item.php:433 -msgid "Empty post discarded." -msgstr "La entrada vacía ha sido desechada." +#: ../../Zotlabs/Module/Removeme.php:61 +msgid "This channel will be completely removed from the network. " +msgstr "Este canal va a ser completamente eliminado de la red. " -#: ../../Zotlabs/Module/Item.php:473 -msgid "Executable content type not permitted to this channel." -msgstr "Contenido de tipo ejecutable no permitido en este canal." +#: ../../Zotlabs/Module/Removeme.php:63 +msgid "Remove this channel and all its clones from the network" +msgstr "Eliminar este canal y todos sus clones de la red" -#: ../../Zotlabs/Module/Item.php:851 -msgid "Duplicate post suppressed." -msgstr "Se ha suprimido la entrada duplicada." +#: ../../Zotlabs/Module/Removeme.php:63 +msgid "" +"By default only the instance of the channel located on this hub will be " +"removed from the network" +msgstr "Por defecto, solo la instancia del canal alojado en este servidor será eliminado de la red" -#: ../../Zotlabs/Module/Item.php:986 -msgid "System error. Post not saved." -msgstr "Error del sistema. La entrada no se ha podido salvar." - -#: ../../Zotlabs/Module/Item.php:1107 -msgid "Unable to obtain post information from database." -msgstr "No ha sido posible obtener información de la entrada en la base de datos." - -#: ../../Zotlabs/Module/Item.php:1114 -#, 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." - -#: ../../Zotlabs/Module/Item.php:1121 -#, php-format -msgid "You have reached your limit of %1$.0f webpages." -msgstr "Ha alcanzado su límite de %1$.0f páginas web." +#: ../../Zotlabs/Module/Removeme.php:64 +#: ../../Zotlabs/Module/Settings/Channel.php:549 +msgid "Remove Channel" +msgstr "Eliminar el canal" #: ../../Zotlabs/Module/Sharedwithme.php:98 msgid "Files: shared with me" @@ -5814,79 +5711,124 @@ msgstr "Eliminar este fichero" msgid "Not found" msgstr "No encontrado" -#: ../../Zotlabs/Module/Wiki.php:97 ../../Zotlabs/Lib/Apps.php:219 -#: ../../include/features.php:99 ../../include/nav.php:111 -#: ../../include/conversation.php:1735 ../../include/conversation.php:1738 -msgid "Wiki" -msgstr "Wiki" - -#: ../../Zotlabs/Module/Wiki.php:98 -msgid "Sandbox" -msgstr "Entorno de edición" +#: ../../Zotlabs/Module/Wiki.php:55 +msgid "Invalid channel" +msgstr "Canal no válido" #: ../../Zotlabs/Module/Wiki.php:100 -msgid "" -"\"# Wiki Sandbox\\n\\nContent you **edit** and **preview** here *will not be" -" saved*.\"" -msgstr "\"# Entorno de edición del Wiki\\n\\nEl contenido que se **edite** y **previsualizce** aquí *no se guardará*.\"" +msgid "Error retrieving wiki" +msgstr "Error al recuperar el wiki" -#: ../../Zotlabs/Module/Wiki.php:169 +#: ../../Zotlabs/Module/Wiki.php:107 +msgid "Error creating zip file export folder" +msgstr "Error al crear el fichero comprimido zip de la carpeta a exportar" + +#: ../../Zotlabs/Module/Wiki.php:125 +msgid "Error downloading wiki: " +msgstr "Error al descargar el wiki: " + +#: ../../Zotlabs/Module/Wiki.php:139 ../../include/nav.php:111 +#: ../../include/conversation.php:1737 +msgid "Wikis" +msgstr "Wikis" + +#: ../../Zotlabs/Module/Wiki.php:145 +msgid "Download" +msgstr "Descargar" + +#: ../../Zotlabs/Module/Wiki.php:149 +msgid "Wiki name" +msgstr "Nombre del wiki" + +#: ../../Zotlabs/Module/Wiki.php:150 +msgid "Content type" +msgstr "Tipo de contenido" + +#: ../../Zotlabs/Module/Wiki.php:159 +msgid "Create a status post for this wiki" +msgstr "Crear un mensaje de estado para este wiki" + +#: ../../Zotlabs/Module/Wiki.php:178 +msgid "Wiki not found" +msgstr "Wiki no encontrado" + +#: ../../Zotlabs/Module/Wiki.php:203 +msgid "Rename page" +msgstr "Renombrar la página" + +#: ../../Zotlabs/Module/Wiki.php:207 +msgid "Error retrieving page content" +msgstr "Error al recuperar el contenido de la página" + +#: ../../Zotlabs/Module/Wiki.php:236 msgid "Revision Comparison" msgstr "Comparación de revisiones" -#: ../../Zotlabs/Module/Wiki.php:170 +#: ../../Zotlabs/Module/Wiki.php:237 msgid "Revert" msgstr "Revertir" -#: ../../Zotlabs/Module/Wiki.php:201 -msgid "Enter the name of your new wiki:" -msgstr "Nombre de su nuevo wiki:" +#: ../../Zotlabs/Module/Wiki.php:246 +msgid "Source" +msgstr "Fuente" -#: ../../Zotlabs/Module/Wiki.php:202 -msgid "Enter the name of the new page:" -msgstr "Nombre de la nueva página:" +#: ../../Zotlabs/Module/Wiki.php:254 +msgid "New page name" +msgstr "Nombre de la nueva página" -#: ../../Zotlabs/Module/Wiki.php:203 -msgid "Enter the new name:" -msgstr "Nuevo nombre:" - -#: ../../Zotlabs/Module/Wiki.php:209 ../../include/conversation.php:1153 +#: ../../Zotlabs/Module/Wiki.php:259 ../../include/conversation.php:1151 msgid "Embed image from photo albums" msgstr "Incluir una imagen de los álbumes de fotos" -#: ../../Zotlabs/Module/Wiki.php:210 ../../include/conversation.php:1247 +#: ../../Zotlabs/Module/Wiki.php:260 ../../include/conversation.php:1245 msgid "Embed an image from your albums" msgstr "Incluir una imagen de sus álbumes" -#: ../../Zotlabs/Module/Wiki.php:212 ../../include/conversation.php:1249 -#: ../../include/conversation.php:1296 +#: ../../Zotlabs/Module/Wiki.php:262 ../../include/conversation.php:1247 +#: ../../include/conversation.php:1294 msgid "OK" msgstr "OK" -#: ../../Zotlabs/Module/Wiki.php:213 ../../include/conversation.php:1189 +#: ../../Zotlabs/Module/Wiki.php:263 ../../include/conversation.php:1187 msgid "Choose images to embed" msgstr "Elegir imágenes para incluir" -#: ../../Zotlabs/Module/Wiki.php:214 ../../include/conversation.php:1190 +#: ../../Zotlabs/Module/Wiki.php:264 ../../include/conversation.php:1188 msgid "Choose an album" msgstr "Elegir un álbum" -#: ../../Zotlabs/Module/Wiki.php:215 ../../include/conversation.php:1191 -msgid "Choose a different album..." +#: ../../Zotlabs/Module/Wiki.php:265 +msgid "Choose a different album" msgstr "Elegir un álbum diferente..." -#: ../../Zotlabs/Module/Wiki.php:216 ../../include/conversation.php:1192 +#: ../../Zotlabs/Module/Wiki.php:266 ../../include/conversation.php:1190 msgid "Error getting album list" msgstr "Error al obtener la lista de álbumes" -#: ../../Zotlabs/Module/Wiki.php:217 ../../include/conversation.php:1193 +#: ../../Zotlabs/Module/Wiki.php:267 ../../include/conversation.php:1191 msgid "Error getting photo link" msgstr "Error al obtener el enlace de la foto" -#: ../../Zotlabs/Module/Wiki.php:218 ../../include/conversation.php:1194 +#: ../../Zotlabs/Module/Wiki.php:268 ../../include/conversation.php:1192 msgid "Error getting album" msgstr "Error al obtener el álbum" +#: ../../Zotlabs/Module/Wiki.php:332 +msgid "Error creating wiki. Invalid name." +msgstr "Error al crear el wiki: el nombre no es válido." + +#: ../../Zotlabs/Module/Wiki.php:343 +msgid "Wiki created, but error creating Home page." +msgstr "Se ha creado el wiki, pero se ha producido un error al crear la página de inicio." + +#: ../../Zotlabs/Module/Wiki.php:348 +msgid "Error creating wiki" +msgstr "Error al crear el wiki" + +#: ../../Zotlabs/Module/Wiki.php:394 +msgid "New page created" +msgstr "Se ha creado la nueva página" + #: ../../Zotlabs/Module/Sources.php:37 msgid "Failed to create source. No channel selected." msgstr "No se ha podido crear el origen de los contenidos. No ha sido seleccionado ningún canal." @@ -5985,16 +5927,11 @@ msgstr "No hay sugerencias disponibles. Si es un sitio nuevo, espere 24 horas y msgid "Ignore/Hide" msgstr "Ignorar/Ocultar" -#: ../../Zotlabs/Module/Suggest.php:64 ../../Zotlabs/Module/Directory.php:392 -#: ../../include/contact_widgets.php:24 -msgid "Channel Suggestions" -msgstr "Sugerencias de canales" - -#: ../../Zotlabs/Module/Tagger.php:55 ../../include/bbcode.php:263 +#: ../../Zotlabs/Module/Tagger.php:55 ../../include/bbcode.php:274 msgid "post" msgstr "la entrada" -#: ../../Zotlabs/Module/Tagger.php:57 ../../include/text.php:1999 +#: ../../Zotlabs/Module/Tagger.php:57 ../../include/text.php:1948 #: ../../include/conversation.php:150 msgid "comment" msgstr "el comentario" @@ -6004,744 +5941,6 @@ msgstr "el comentario" msgid "%1$s tagged %2$s's %3$s with %4$s" msgstr "%1$s ha etiquetado %3$s de %2$s con %4$s" -#: ../../Zotlabs/Module/Tagrm.php:48 ../../Zotlabs/Module/Tagrm.php:98 -msgid "Tag removed" -msgstr "Etiqueta eliminada." - -#: ../../Zotlabs/Module/Tagrm.php:123 -msgid "Remove Item Tag" -msgstr "Eliminar etiqueta del elemento." - -#: ../../Zotlabs/Module/Tagrm.php:125 -msgid "Select a tag to remove: " -msgstr "Seleccionar una etiqueta para eliminar:" - -#: ../../Zotlabs/Module/Follow.php:34 -msgid "Channel added." -msgstr "Canal añadido." - -#: ../../Zotlabs/Module/Viewconnections.php:65 -msgid "No connections." -msgstr "Sin conexiones." - -#: ../../Zotlabs/Module/Viewconnections.php:78 -#, php-format -msgid "Visit %s's profile [%s]" -msgstr "Visitar el perfil de %s [%s]" - -#: ../../Zotlabs/Module/Viewconnections.php:107 -msgid "View Connections" -msgstr "Ver conexiones" - -#: ../../Zotlabs/Module/Viewsrc.php:44 -msgid "Source of Item" -msgstr "Origen del elemento" - -#: ../../Zotlabs/Module/Chat.php:181 -msgid "Room not found" -msgstr "Sala no encontrada" - -#: ../../Zotlabs/Module/Chat.php:197 -msgid "Leave Room" -msgstr "Abandonar la sala" - -#: ../../Zotlabs/Module/Chat.php:198 -msgid "Delete Room" -msgstr "Eliminar esta sala" - -#: ../../Zotlabs/Module/Chat.php:199 -msgid "I am away right now" -msgstr "Estoy ausente momentáneamente" - -#: ../../Zotlabs/Module/Chat.php:200 -msgid "I am online" -msgstr "Estoy conectado/a" - -#: ../../Zotlabs/Module/Chat.php:202 -msgid "Bookmark this room" -msgstr "Añadir esta sala a Marcadores" - -#: ../../Zotlabs/Module/Chat.php:231 -msgid "New Chatroom" -msgstr "Nueva sala de chat" - -#: ../../Zotlabs/Module/Chat.php:232 -msgid "Chatroom name" -msgstr "Nombre de la sala de chat" - -#: ../../Zotlabs/Module/Chat.php:233 -msgid "Expiration of chats (minutes)" -msgstr "Caducidad de los mensajes en los chats (en minutos)" - -#: ../../Zotlabs/Module/Chat.php:249 -#, php-format -msgid "%1$s's Chatrooms" -msgstr "Salas de chat de %1$s" - -#: ../../Zotlabs/Module/Chat.php:254 -msgid "No chatrooms available" -msgstr "No hay salas de chat disponibles" - -#: ../../Zotlabs/Module/Chat.php:258 -msgid "Expiration" -msgstr "Caducidad" - -#: ../../Zotlabs/Module/Chat.php:259 -msgid "min" -msgstr "min" - -#: ../../Zotlabs/Module/Xchan.php:10 -msgid "Xchan Lookup" -msgstr "Búsqueda de canales" - -#: ../../Zotlabs/Module/Xchan.php:13 -msgid "Lookup xchan beginning with (or webbie): " -msgstr "Buscar un canal (o un \"webbie\") que comience por:" - -#: ../../Zotlabs/Module/Directory.php:243 -#, php-format -msgid "%d rating" -msgid_plural "%d ratings" -msgstr[0] "%d valoración" -msgstr[1] "%d valoraciones" - -#: ../../Zotlabs/Module/Directory.php:254 -msgid "Gender: " -msgstr "Género:" - -#: ../../Zotlabs/Module/Directory.php:256 -msgid "Status: " -msgstr "Estado:" - -#: ../../Zotlabs/Module/Directory.php:258 -msgid "Homepage: " -msgstr "Página personal:" - -#: ../../Zotlabs/Module/Directory.php:306 ../../include/channel.php:1207 -msgid "Age:" -msgstr "Edad:" - -#: ../../Zotlabs/Module/Directory.php:311 ../../include/channel.php:1049 -#: ../../include/bb2diaspora.php:507 ../../include/event.php:52 -#: ../../include/event.php:84 -msgid "Location:" -msgstr "Ubicación:" - -#: ../../Zotlabs/Module/Directory.php:317 -msgid "Description:" -msgstr "Descripción:" - -#: ../../Zotlabs/Module/Directory.php:322 ../../include/channel.php:1223 -msgid "Hometown:" -msgstr "Lugar de nacimiento:" - -#: ../../Zotlabs/Module/Directory.php:324 ../../include/channel.php:1231 -msgid "About:" -msgstr "Sobre mí:" - -#: ../../Zotlabs/Module/Directory.php:326 -msgid "Public Forum:" -msgstr "Foro público:" - -#: ../../Zotlabs/Module/Directory.php:329 -msgid "Keywords: " -msgstr "Palabras clave:" - -#: ../../Zotlabs/Module/Directory.php:332 -msgid "Don't suggest" -msgstr "No sugerir:" - -#: ../../Zotlabs/Module/Directory.php:334 -msgid "Common connections:" -msgstr "Conexiones comunes:" - -#: ../../Zotlabs/Module/Directory.php:383 -msgid "Global Directory" -msgstr "Directorio global:" - -#: ../../Zotlabs/Module/Directory.php:383 -msgid "Local Directory" -msgstr "Directorio local:" - -#: ../../Zotlabs/Module/Directory.php:389 -msgid "Finding:" -msgstr "Encontrar:" - -#: ../../Zotlabs/Module/Directory.php:394 -msgid "next page" -msgstr "siguiente página" - -#: ../../Zotlabs/Module/Directory.php:394 -msgid "previous page" -msgstr "página anterior" - -#: ../../Zotlabs/Module/Directory.php:395 -msgid "Sort options" -msgstr "Ordenar opciones" - -#: ../../Zotlabs/Module/Directory.php:396 -msgid "Alphabetic" -msgstr "Alfabético" - -#: ../../Zotlabs/Module/Directory.php:397 -msgid "Reverse Alphabetic" -msgstr "Alfabético inverso" - -#: ../../Zotlabs/Module/Directory.php:398 -msgid "Newest to Oldest" -msgstr "De más nuevo a más antiguo" - -#: ../../Zotlabs/Module/Directory.php:399 -msgid "Oldest to Newest" -msgstr "De más antiguo a más nuevo" - -#: ../../Zotlabs/Module/Directory.php:416 -msgid "No entries (some entries may be hidden)." -msgstr "Sin entradas (algunas entradas pueden estar ocultas)." - -#: ../../Zotlabs/Module/Settings/Account.php:20 -msgid "Not valid email." -msgstr "Correo electrónico no válido." - -#: ../../Zotlabs/Module/Settings/Account.php:23 -msgid "Protected email address. Cannot change to that email." -msgstr "Dirección de correo electrónico protegida. No se puede cambiar a ella." - -#: ../../Zotlabs/Module/Settings/Account.php:32 -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." - -#: ../../Zotlabs/Module/Settings/Account.php:40 -msgid "Technical skill level updated" -msgstr "Nivel de habilidad técnica actualizado" - -#: ../../Zotlabs/Module/Settings/Account.php:56 -msgid "Password verification failed." -msgstr "La comprobación de la contraseña ha fallado." - -#: ../../Zotlabs/Module/Settings/Account.php:63 -msgid "Passwords do not match. Password unchanged." -msgstr "Las contraseñas no coinciden. La contraseña no se ha cambiado." - -#: ../../Zotlabs/Module/Settings/Account.php:67 -msgid "Empty passwords are not allowed. Password unchanged." -msgstr "No se permiten contraseñas vacías. La contraseña no se ha cambiado." - -#: ../../Zotlabs/Module/Settings/Account.php:81 -msgid "Password changed." -msgstr "Contraseña cambiada." - -#: ../../Zotlabs/Module/Settings/Account.php:83 -msgid "Password update failed. Please try again." -msgstr "La actualización de la contraseña ha fallado. Por favor, inténtalo de nuevo." - -#: ../../Zotlabs/Module/Settings/Account.php:120 -msgid "Account Settings" -msgstr "Configuración de la cuenta" - -#: ../../Zotlabs/Module/Settings/Account.php:121 -msgid "Current Password" -msgstr "Contraseña actual" - -#: ../../Zotlabs/Module/Settings/Account.php:122 -msgid "Enter New Password" -msgstr "Escribir una nueva contraseña" - -#: ../../Zotlabs/Module/Settings/Account.php:123 -msgid "Confirm New Password" -msgstr "Confirmar la nueva contraseña" - -#: ../../Zotlabs/Module/Settings/Account.php:123 -msgid "Leave password fields blank unless changing" -msgstr "Dejar en blanco la contraseña a menos que desee cambiarla." - -#: ../../Zotlabs/Module/Settings/Account.php:124 -msgid "Your technical skill level" -msgstr "Su nivel de habilidad técnica" - -#: ../../Zotlabs/Module/Settings/Account.php:124 -msgid "Used to provide a member experience matched to your comfort level" -msgstr "Se utiliza para proporcionar la experiencia de los miembros adaptada a su nivel de comodidad" - -#: ../../Zotlabs/Module/Settings/Account.php:127 -#: ../../Zotlabs/Module/Settings/Channel.php:459 -msgid "Email Address:" -msgstr "Dirección de correo electrónico:" - -#: ../../Zotlabs/Module/Settings/Account.php:129 -msgid "Remove this account including all its channels" -msgstr "Eliminar esta cuenta incluyendo todos sus canales" - -#: ../../Zotlabs/Module/Settings/Channel.php:246 -msgid "Settings updated." -msgstr "Ajustes actualizados." - -#: ../../Zotlabs/Module/Settings/Channel.php:307 -msgid "Nobody except yourself" -msgstr "Nadie excepto usted" - -#: ../../Zotlabs/Module/Settings/Channel.php:308 -msgid "Only those you specifically allow" -msgstr "Solo aquellos a los que usted permita explícitamente" - -#: ../../Zotlabs/Module/Settings/Channel.php:309 -msgid "Approved connections" -msgstr "Conexiones aprobadas" - -#: ../../Zotlabs/Module/Settings/Channel.php:310 -msgid "Any connections" -msgstr "Cualquier conexión" - -#: ../../Zotlabs/Module/Settings/Channel.php:311 -msgid "Anybody on this website" -msgstr "Cualquiera en este sitio web" - -#: ../../Zotlabs/Module/Settings/Channel.php:312 -msgid "Anybody in this network" -msgstr "Cualquiera en esta red" - -#: ../../Zotlabs/Module/Settings/Channel.php:313 -msgid "Anybody authenticated" -msgstr "Cualquiera que esté autenticado" - -#: ../../Zotlabs/Module/Settings/Channel.php:314 -msgid "Anybody on the internet" -msgstr "Cualquiera en internet" - -#: ../../Zotlabs/Module/Settings/Channel.php:390 -msgid "Publish your default profile in the network directory" -msgstr "Publicar su perfil principal en el directorio de la red" - -#: ../../Zotlabs/Module/Settings/Channel.php:395 -msgid "Allow us to suggest you as a potential friend to new members?" -msgstr "¿Nos permite sugerirle como amigo potencial a los nuevos miembros?" - -#: ../../Zotlabs/Module/Settings/Channel.php:404 -msgid "Your channel address is" -msgstr "Su dirección de canal es" - -#: ../../Zotlabs/Module/Settings/Channel.php:450 -msgid "Channel Settings" -msgstr "Ajustes del canal" - -#: ../../Zotlabs/Module/Settings/Channel.php:457 -msgid "Basic Settings" -msgstr "Configuración básica" - -#: ../../Zotlabs/Module/Settings/Channel.php:458 -#: ../../include/channel.php:1164 -msgid "Full Name:" -msgstr "Nombre completo:" - -#: ../../Zotlabs/Module/Settings/Channel.php:460 -msgid "Your Timezone:" -msgstr "Su huso horario:" - -#: ../../Zotlabs/Module/Settings/Channel.php:461 -msgid "Default Post Location:" -msgstr "Localización geográfica predeterminada para sus publicaciones:" - -#: ../../Zotlabs/Module/Settings/Channel.php:461 -msgid "Geographical location to display on your posts" -msgstr "Localización geográfica que debe mostrarse en sus publicaciones" - -#: ../../Zotlabs/Module/Settings/Channel.php:462 -msgid "Use Browser Location:" -msgstr "Usar la localización geográfica del navegador:" - -#: ../../Zotlabs/Module/Settings/Channel.php:464 -msgid "Adult Content" -msgstr "Contenido solo para adultos" - -#: ../../Zotlabs/Module/Settings/Channel.php:464 -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)" - -#: ../../Zotlabs/Module/Settings/Channel.php:466 -msgid "Security and Privacy Settings" -msgstr "Configuración de seguridad y privacidad" - -#: ../../Zotlabs/Module/Settings/Channel.php:469 -msgid "Your permissions are already configured. Click to view/adjust" -msgstr "Sus permisos ya están configurados. Pulse para ver/ajustar" - -#: ../../Zotlabs/Module/Settings/Channel.php:471 -msgid "Hide my online presence" -msgstr "Ocultar mi presencia en línea" - -#: ../../Zotlabs/Module/Settings/Channel.php:471 -msgid "Prevents displaying in your profile that you are online" -msgstr "Evitar mostrar en su perfil que está en línea" - -#: ../../Zotlabs/Module/Settings/Channel.php:473 -msgid "Simple Privacy Settings:" -msgstr "Configuración de privacidad sencilla:" - -#: ../../Zotlabs/Module/Settings/Channel.php:474 -msgid "" -"Very Public - extremely permissive (should be used with caution)" -msgstr "Muy Público - extremadamente permisivo (debería ser usado con precaución)" - -#: ../../Zotlabs/Module/Settings/Channel.php:475 -msgid "" -"Typical - default public, privacy when desired (similar to social " -"network permissions but with improved privacy)" -msgstr "Típico - por defecto público, privado cuando se desee (similar a los permisos de una red social pero con privacidad mejorada)" - -#: ../../Zotlabs/Module/Settings/Channel.php:476 -msgid "Private - default private, never open or public" -msgstr "Privado - por defecto, privado, nunca abierto o público" - -#: ../../Zotlabs/Module/Settings/Channel.php:477 -msgid "Blocked - default blocked to/from everybody" -msgstr "Bloqueado - por defecto, bloqueado/a para cualquiera" - -#: ../../Zotlabs/Module/Settings/Channel.php:479 -msgid "Allow others to tag your posts" -msgstr "Permitir a otros etiquetar sus publicaciones" - -#: ../../Zotlabs/Module/Settings/Channel.php:479 -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." - -#: ../../Zotlabs/Module/Settings/Channel.php:481 -msgid "Channel Permission Limits" -msgstr "Límites de los permisos del canal" - -#: ../../Zotlabs/Module/Settings/Channel.php:483 -msgid "Expire other channel content after this many days" -msgstr "Caducar contenido de otros canales después de este número de días" - -#: ../../Zotlabs/Module/Settings/Channel.php:483 -msgid "0 or blank to use the website limit." -msgstr "0 o en blanco para usar el límite del sitio web." - -#: ../../Zotlabs/Module/Settings/Channel.php:483 -#, php-format -msgid "This website expires after %d days." -msgstr "Este sitio web caduca después de %d días." - -#: ../../Zotlabs/Module/Settings/Channel.php:483 -msgid "This website does not expire imported content." -msgstr "Este sitio web no caduca el contenido importado." - -#: ../../Zotlabs/Module/Settings/Channel.php:483 -msgid "The website limit takes precedence if lower than your limit." -msgstr "El límite del sitio web tiene prioridad si es inferior a su propio límite." - -#: ../../Zotlabs/Module/Settings/Channel.php:484 -msgid "Maximum Friend Requests/Day:" -msgstr "Máximo de solicitudes de amistad por día:" - -#: ../../Zotlabs/Module/Settings/Channel.php:484 -msgid "May reduce spam activity" -msgstr "Podría reducir la actividad de spam" - -#: ../../Zotlabs/Module/Settings/Channel.php:485 -msgid "Default Access Control List (ACL)" -msgstr "Lista de control de acceso (ACL) por defecto" - -#: ../../Zotlabs/Module/Settings/Channel.php:487 -msgid "Use my default audience setting for the type of object published" -msgstr "Usar los ajustes de mi audiencia predeterminada para el tipo de publicación" - -#: ../../Zotlabs/Module/Settings/Channel.php:494 -msgid "Channel permissions category:" -msgstr "Categoría de los permisos del canal:" - -#: ../../Zotlabs/Module/Settings/Channel.php:500 -msgid "Maximum private messages per day from unknown people:" -msgstr "Máximo de mensajes privados por día de gente desconocida:" - -#: ../../Zotlabs/Module/Settings/Channel.php:500 -msgid "Useful to reduce spamming" -msgstr "Útil para reducir el envío de correo no deseado" - -#: ../../Zotlabs/Module/Settings/Channel.php:503 -msgid "Notification Settings" -msgstr "Configuración de las notificaciones" - -#: ../../Zotlabs/Module/Settings/Channel.php:504 -msgid "By default post a status message when:" -msgstr "Por defecto, enviar un mensaje de estado cuando:" - -#: ../../Zotlabs/Module/Settings/Channel.php:505 -msgid "accepting a friend request" -msgstr "Acepte una solicitud de amistad" - -#: ../../Zotlabs/Module/Settings/Channel.php:506 -msgid "joining a forum/community" -msgstr "al unirse a un foro o comunidad" - -#: ../../Zotlabs/Module/Settings/Channel.php:507 -msgid "making an interesting profile change" -msgstr "Realice un cambio interesante en su perfil" - -#: ../../Zotlabs/Module/Settings/Channel.php:508 -msgid "Send a notification email when:" -msgstr "Enviar una notificación por correo electrónico cuando:" - -#: ../../Zotlabs/Module/Settings/Channel.php:509 -msgid "You receive a connection request" -msgstr "Reciba una solicitud de conexión" - -#: ../../Zotlabs/Module/Settings/Channel.php:510 -msgid "Your connections are confirmed" -msgstr "Sus conexiones hayan sido confirmadas" - -#: ../../Zotlabs/Module/Settings/Channel.php:511 -msgid "Someone writes on your profile wall" -msgstr "Alguien escriba en la página de su perfil (\"muro\")" - -#: ../../Zotlabs/Module/Settings/Channel.php:512 -msgid "Someone writes a followup comment" -msgstr "Alguien escriba un comentario sobre sus publicaciones" - -#: ../../Zotlabs/Module/Settings/Channel.php:513 -msgid "You receive a private message" -msgstr "Reciba un mensaje privado" - -#: ../../Zotlabs/Module/Settings/Channel.php:514 -msgid "You receive a friend suggestion" -msgstr "Reciba una sugerencia de amistad" - -#: ../../Zotlabs/Module/Settings/Channel.php:515 -msgid "You are tagged in a post" -msgstr "Usted sea etiquetado en una publicación" - -#: ../../Zotlabs/Module/Settings/Channel.php:516 -msgid "You are poked/prodded/etc. in a post" -msgstr "Reciba un toque o incitación en una publicación" - -#: ../../Zotlabs/Module/Settings/Channel.php:519 -msgid "Show visual notifications including:" -msgstr "Mostrar notificaciones visuales que incluyan:" - -#: ../../Zotlabs/Module/Settings/Channel.php:521 -msgid "Unseen grid activity" -msgstr "Nueva actividad en la red" - -#: ../../Zotlabs/Module/Settings/Channel.php:522 -msgid "Unseen channel activity" -msgstr "Actividad no vista en el canal" - -#: ../../Zotlabs/Module/Settings/Channel.php:523 -msgid "Unseen private messages" -msgstr "Mensajes privados no leídos" - -#: ../../Zotlabs/Module/Settings/Channel.php:523 -#: ../../Zotlabs/Module/Settings/Channel.php:528 -#: ../../Zotlabs/Module/Settings/Channel.php:529 -#: ../../Zotlabs/Module/Settings/Channel.php:530 -msgid "Recommended" -msgstr "Recomendado" - -#: ../../Zotlabs/Module/Settings/Channel.php:524 -msgid "Upcoming events" -msgstr "Próximos eventos" - -#: ../../Zotlabs/Module/Settings/Channel.php:525 -msgid "Events today" -msgstr "Eventos de hoy" - -#: ../../Zotlabs/Module/Settings/Channel.php:526 -msgid "Upcoming birthdays" -msgstr "Próximos cumpleaños" - -#: ../../Zotlabs/Module/Settings/Channel.php:526 -msgid "Not available in all themes" -msgstr "No disponible en todos los temas" - -#: ../../Zotlabs/Module/Settings/Channel.php:527 -msgid "System (personal) notifications" -msgstr "Notificaciones del sistema (personales)" - -#: ../../Zotlabs/Module/Settings/Channel.php:528 -msgid "System info messages" -msgstr "Mensajes de información del sistema" - -#: ../../Zotlabs/Module/Settings/Channel.php:529 -msgid "System critical alerts" -msgstr "Alertas críticas del sistema" - -#: ../../Zotlabs/Module/Settings/Channel.php:530 -msgid "New connections" -msgstr "Nuevas conexiones" - -#: ../../Zotlabs/Module/Settings/Channel.php:531 -msgid "System Registrations" -msgstr "Registros del sistema" - -#: ../../Zotlabs/Module/Settings/Channel.php:532 -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" - -#: ../../Zotlabs/Module/Settings/Channel.php:534 -msgid "Notify me of events this many days in advance" -msgstr "Avisarme de los eventos con algunos días de antelación" - -#: ../../Zotlabs/Module/Settings/Channel.php:534 -msgid "Must be greater than 0" -msgstr "Debe ser mayor que 0" - -#: ../../Zotlabs/Module/Settings/Channel.php:536 -msgid "Advanced Account/Page Type Settings" -msgstr "Ajustes avanzados de la cuenta y de los tipos de página" - -#: ../../Zotlabs/Module/Settings/Channel.php:537 -msgid "Change the behaviour of this account for special situations" -msgstr "Cambiar el comportamiento de esta cuenta en situaciones especiales" - -#: ../../Zotlabs/Module/Settings/Channel.php:539 -msgid "Miscellaneous Settings" -msgstr "Ajustes diversos" - -#: ../../Zotlabs/Module/Settings/Channel.php:540 -msgid "Default photo upload folder" -msgstr "Carpeta por defecto de las fotos subidas" - -#: ../../Zotlabs/Module/Settings/Channel.php:540 -#: ../../Zotlabs/Module/Settings/Channel.php:541 -msgid "%Y - current year, %m - current month" -msgstr "%Y - año en curso, %m - mes actual" - -#: ../../Zotlabs/Module/Settings/Channel.php:541 -msgid "Default file upload folder" -msgstr "Carpeta por defecto de los archivos subidos" - -#: ../../Zotlabs/Module/Settings/Channel.php:543 -msgid "Personal menu to display in your channel pages" -msgstr "Menú personal que debe mostrarse en las páginas de su canal" - -#: ../../Zotlabs/Module/Settings/Channel.php:545 -msgid "Remove this channel." -msgstr "Eliminar este canal." - -#: ../../Zotlabs/Module/Settings/Channel.php:546 -msgid "Firefox Share $Projectname provider" -msgstr "Servicio de compartición de Firefox: proveedor $Projectname" - -#: ../../Zotlabs/Module/Settings/Channel.php:547 -msgid "Start calendar week on monday" -msgstr "Comenzar el calendario semanal por el lunes" - -#: ../../Zotlabs/Module/Settings/Display.php:135 -msgid "No special theme for mobile devices" -msgstr "Sin tema especial para dispositivos móviles" - -#: ../../Zotlabs/Module/Settings/Display.php:138 -#, php-format -msgid "%s - (Experimental)" -msgstr "%s - (Experimental)" - -#: ../../Zotlabs/Module/Settings/Display.php:189 -msgid "Display Settings" -msgstr "Ajustes de visualización" - -#: ../../Zotlabs/Module/Settings/Display.php:190 -msgid "Theme Settings" -msgstr "Ajustes del tema" - -#: ../../Zotlabs/Module/Settings/Display.php:191 -msgid "Custom Theme Settings" -msgstr "Ajustes personalizados del tema" - -#: ../../Zotlabs/Module/Settings/Display.php:192 -msgid "Content Settings" -msgstr "Ajustes del contenido" - -#: ../../Zotlabs/Module/Settings/Display.php:198 -msgid "Display Theme:" -msgstr "Tema gráfico del perfil:" - -#: ../../Zotlabs/Module/Settings/Display.php:199 -msgid "Select scheme" -msgstr "Elegir un esquema" - -#: ../../Zotlabs/Module/Settings/Display.php:201 -msgid "Mobile Theme:" -msgstr "Tema para el móvil:" - -#: ../../Zotlabs/Module/Settings/Display.php:202 -msgid "Preload images before rendering the page" -msgstr "Carga previa de las imágenes antes de generar la página" - -#: ../../Zotlabs/Module/Settings/Display.php:202 -msgid "" -"The subjective page load time will be longer but the page will be ready when" -" displayed" -msgstr "El tiempo subjetivo de carga de la página será más largo, pero la página estará lista cuando se muestre." - -#: ../../Zotlabs/Module/Settings/Display.php:203 -msgid "Enable user zoom on mobile devices" -msgstr "Habilitar zoom de usuario en dispositivos móviles" - -#: ../../Zotlabs/Module/Settings/Display.php:204 -msgid "Update browser every xx seconds" -msgstr "Actualizar navegador cada xx segundos" - -#: ../../Zotlabs/Module/Settings/Display.php:204 -msgid "Minimum of 10 seconds, no maximum" -msgstr "Mínimo de 10 segundos, sin máximo" - -#: ../../Zotlabs/Module/Settings/Display.php:205 -msgid "Maximum number of conversations to load at any time:" -msgstr "Máximo número de conversaciones a cargar en cualquier momento:" - -#: ../../Zotlabs/Module/Settings/Display.php:205 -msgid "Maximum of 100 items" -msgstr "Máximo de 100 elementos" - -#: ../../Zotlabs/Module/Settings/Display.php:206 -msgid "Show emoticons (smilies) as images" -msgstr "Mostrar emoticonos (smilies) como imágenes" - -#: ../../Zotlabs/Module/Settings/Display.php:207 -msgid "Link post titles to source" -msgstr "Enlazar título de la publicación a la fuente original" - -#: ../../Zotlabs/Module/Settings/Display.php:208 -msgid "System Page Layout Editor - (advanced)" -msgstr "Editor de plantilla de página del sistema - (avanzado)" - -#: ../../Zotlabs/Module/Settings/Display.php:211 -msgid "Use blog/list mode on channel page" -msgstr "Usar modo blog/lista en la página de inicio del canal" - -#: ../../Zotlabs/Module/Settings/Display.php:211 -#: ../../Zotlabs/Module/Settings/Display.php:212 -msgid "(comments displayed separately)" -msgstr "(comentarios mostrados de forma separada)" - -#: ../../Zotlabs/Module/Settings/Display.php:212 -msgid "Use blog/list mode on grid page" -msgstr "Mostrar mi red en modo blog" - -#: ../../Zotlabs/Module/Settings/Display.php:213 -msgid "Channel page max height of content (in pixels)" -msgstr "Altura máxima del contenido de la página del canal (en píxeles)" - -#: ../../Zotlabs/Module/Settings/Display.php:213 -#: ../../Zotlabs/Module/Settings/Display.php:214 -msgid "click to expand content exceeding this height" -msgstr "Pulsar para expandir el contenido que exceda de esta altura" - -#: ../../Zotlabs/Module/Settings/Display.php:214 -msgid "Grid page max height of content (in pixels)" -msgstr "Altura máxima del contenido de mi red (en píxeles)" - -#: ../../Zotlabs/Module/Settings/Featured.php:24 -msgid "No feature settings configured" -msgstr "No se ha establecido la configuración de los complementos" - -#: ../../Zotlabs/Module/Settings/Featured.php:31 -msgid "Feature/Addon Settings" -msgstr "Ajustes de los complementos" - #: ../../Zotlabs/Module/Settings/Features.php:45 msgid "Additional Features" msgstr "Funcionalidades" @@ -6766,6 +5965,8 @@ msgstr "Nombre de la aplicación" #: ../../Zotlabs/Module/Settings/Oauth.php:90 #: ../../Zotlabs/Module/Settings/Oauth.php:116 +#: ../../extend/addon/addon/statusnet/statusnet.php:893 +#: ../../extend/addon/addon/twitter/twitter.php:775 msgid "Consumer Key" msgstr "Consumer Key" @@ -6776,6 +5977,8 @@ msgstr "Generado automáticamente - si lo desea, cámbielo. Longitud máxima: 2 #: ../../Zotlabs/Module/Settings/Oauth.php:91 #: ../../Zotlabs/Module/Settings/Oauth.php:117 +#: ../../extend/addon/addon/statusnet/statusnet.php:892 +#: ../../extend/addon/addon/twitter/twitter.php:776 msgid "Consumer Secret" msgstr "Consumer Secret" @@ -6858,6 +6061,921 @@ msgstr "Contraseña de inicio de sesión" msgid "Expires (yyyy-mm-dd)" msgstr "Expira (aaaa-mm-dd)" +#: ../../Zotlabs/Module/Settings/Account.php:20 +msgid "Not valid email." +msgstr "Correo electrónico no válido." + +#: ../../Zotlabs/Module/Settings/Account.php:23 +msgid "Protected email address. Cannot change to that email." +msgstr "Dirección de correo electrónico protegida. No se puede cambiar a ella." + +#: ../../Zotlabs/Module/Settings/Account.php:32 +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." + +#: ../../Zotlabs/Module/Settings/Account.php:40 +msgid "Technical skill level updated" +msgstr "Se ha actualizado el nivel de habilidad técnica" + +#: ../../Zotlabs/Module/Settings/Account.php:56 +msgid "Password verification failed." +msgstr "La comprobación de la contraseña ha fallado." + +#: ../../Zotlabs/Module/Settings/Account.php:63 +msgid "Passwords do not match. Password unchanged." +msgstr "Las contraseñas no coinciden. La contraseña no se ha cambiado." + +#: ../../Zotlabs/Module/Settings/Account.php:67 +msgid "Empty passwords are not allowed. Password unchanged." +msgstr "No se permiten contraseñas vacías. La contraseña no se ha cambiado." + +#: ../../Zotlabs/Module/Settings/Account.php:81 +msgid "Password changed." +msgstr "Contraseña cambiada." + +#: ../../Zotlabs/Module/Settings/Account.php:83 +msgid "Password update failed. Please try again." +msgstr "La actualización de la contraseña ha fallado. Por favor, inténtalo de nuevo." + +#: ../../Zotlabs/Module/Settings/Account.php:112 +msgid "Account Settings" +msgstr "Configuración de la cuenta" + +#: ../../Zotlabs/Module/Settings/Account.php:113 +msgid "Current Password" +msgstr "Contraseña actual" + +#: ../../Zotlabs/Module/Settings/Account.php:114 +msgid "Enter New Password" +msgstr "Escribir una nueva contraseña" + +#: ../../Zotlabs/Module/Settings/Account.php:115 +msgid "Confirm New Password" +msgstr "Confirmar la nueva contraseña" + +#: ../../Zotlabs/Module/Settings/Account.php:115 +msgid "Leave password fields blank unless changing" +msgstr "Dejar en blanco la contraseña a menos que desee cambiarla." + +#: ../../Zotlabs/Module/Settings/Account.php:116 +msgid "Your technical skill level" +msgstr "Su nivel de habilidad técnica" + +#: ../../Zotlabs/Module/Settings/Account.php:116 +msgid "Used to provide a member experience matched to your comfort level" +msgstr "Se utiliza para proporcionar la experiencia de los miembros adaptada a su nivel de comodidad" + +#: ../../Zotlabs/Module/Settings/Account.php:119 +#: ../../Zotlabs/Module/Settings/Channel.php:462 +msgid "Email Address:" +msgstr "Dirección de correo electrónico:" + +#: ../../Zotlabs/Module/Settings/Account.php:121 +msgid "Remove this account including all its channels" +msgstr "Eliminar esta cuenta incluyendo todos sus canales" + +#: ../../Zotlabs/Module/Settings/Channel.php:246 +#: ../../extend/addon/addon/logrot/logrot.php:54 +#: ../../extend/addon/addon/msgfooter/msgfooter.php:54 +#: ../../extend/addon/addon/openstreetmap/openstreetmap.php:184 +#: ../../extend/addon/addon/piwik/piwik.php:116 +#: ../../extend/addon/addon/twitter/twitter.php:766 +#: ../../extend/addon/addon/xmpp/xmpp.php:102 +#: ../../extend/addon/addon/rendezvous/rendezvous.php:82 +msgid "Settings updated." +msgstr "Ajustes actualizados." + +#: ../../Zotlabs/Module/Settings/Channel.php:307 +msgid "Nobody except yourself" +msgstr "Nadie excepto usted" + +#: ../../Zotlabs/Module/Settings/Channel.php:308 +msgid "Only those you specifically allow" +msgstr "Solo aquellos a los que usted permita explícitamente" + +#: ../../Zotlabs/Module/Settings/Channel.php:309 +msgid "Approved connections" +msgstr "Conexiones aprobadas" + +#: ../../Zotlabs/Module/Settings/Channel.php:310 +msgid "Any connections" +msgstr "Cualquier conexión" + +#: ../../Zotlabs/Module/Settings/Channel.php:311 +msgid "Anybody on this website" +msgstr "Cualquiera en este sitio web" + +#: ../../Zotlabs/Module/Settings/Channel.php:312 +msgid "Anybody in this network" +msgstr "Cualquiera en esta red" + +#: ../../Zotlabs/Module/Settings/Channel.php:313 +msgid "Anybody authenticated" +msgstr "Cualquiera que esté autenticado" + +#: ../../Zotlabs/Module/Settings/Channel.php:314 +msgid "Anybody on the internet" +msgstr "Cualquiera en internet" + +#: ../../Zotlabs/Module/Settings/Channel.php:390 +msgid "Publish your default profile in the network directory" +msgstr "Publicar su perfil principal en el directorio de la red" + +#: ../../Zotlabs/Module/Settings/Channel.php:395 +msgid "Allow us to suggest you as a potential friend to new members?" +msgstr "¿Nos permite sugerirle como amigo potencial a los nuevos miembros?" + +#: ../../Zotlabs/Module/Settings/Channel.php:404 +msgid "Your channel address is" +msgstr "Su dirección de canal es" + +#: ../../Zotlabs/Module/Settings/Channel.php:407 +msgid "Your files/photos are accessible via WebDAV at" +msgstr "Sus archivos y fotos son accesibles a través de WebDAV en " + +#: ../../Zotlabs/Module/Settings/Channel.php:453 +msgid "Channel Settings" +msgstr "Ajustes del canal" + +#: ../../Zotlabs/Module/Settings/Channel.php:460 +msgid "Basic Settings" +msgstr "Configuración básica" + +#: ../../Zotlabs/Module/Settings/Channel.php:461 +#: ../../include/channel.php:1172 +msgid "Full Name:" +msgstr "Nombre completo:" + +#: ../../Zotlabs/Module/Settings/Channel.php:463 +msgid "Your Timezone:" +msgstr "Su huso horario:" + +#: ../../Zotlabs/Module/Settings/Channel.php:464 +msgid "Default Post Location:" +msgstr "Localización geográfica predeterminada para sus publicaciones:" + +#: ../../Zotlabs/Module/Settings/Channel.php:464 +msgid "Geographical location to display on your posts" +msgstr "Localización geográfica que debe mostrarse en sus publicaciones" + +#: ../../Zotlabs/Module/Settings/Channel.php:465 +msgid "Use Browser Location:" +msgstr "Usar la localización geográfica del navegador:" + +#: ../../Zotlabs/Module/Settings/Channel.php:467 +msgid "Adult Content" +msgstr "Contenido solo para adultos" + +#: ../../Zotlabs/Module/Settings/Channel.php:467 +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)" + +#: ../../Zotlabs/Module/Settings/Channel.php:469 +msgid "Security and Privacy Settings" +msgstr "Configuración de seguridad y privacidad" + +#: ../../Zotlabs/Module/Settings/Channel.php:472 +msgid "Your permissions are already configured. Click to view/adjust" +msgstr "Sus permisos ya están configurados. Pulse para ver/ajustar" + +#: ../../Zotlabs/Module/Settings/Channel.php:474 +msgid "Hide my online presence" +msgstr "Ocultar mi presencia en línea" + +#: ../../Zotlabs/Module/Settings/Channel.php:474 +msgid "Prevents displaying in your profile that you are online" +msgstr "Evitar mostrar en su perfil que está en línea" + +#: ../../Zotlabs/Module/Settings/Channel.php:476 +msgid "Simple Privacy Settings:" +msgstr "Configuración de privacidad sencilla:" + +#: ../../Zotlabs/Module/Settings/Channel.php:477 +msgid "" +"Very Public - extremely permissive (should be used with caution)" +msgstr "Muy Público - extremadamente permisivo (debería ser usado con precaución)" + +#: ../../Zotlabs/Module/Settings/Channel.php:478 +msgid "" +"Typical - default public, privacy when desired (similar to social " +"network permissions but with improved privacy)" +msgstr "Típico - por defecto público, privado cuando se desee (similar a los permisos de una red social pero con privacidad mejorada)" + +#: ../../Zotlabs/Module/Settings/Channel.php:479 +msgid "Private - default private, never open or public" +msgstr "Privado - por defecto, privado, nunca abierto o público" + +#: ../../Zotlabs/Module/Settings/Channel.php:480 +msgid "Blocked - default blocked to/from everybody" +msgstr "Bloqueado - por defecto, bloqueado/a para cualquiera" + +#: ../../Zotlabs/Module/Settings/Channel.php:482 +msgid "Allow others to tag your posts" +msgstr "Permitir a otros etiquetar sus publicaciones" + +#: ../../Zotlabs/Module/Settings/Channel.php:482 +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." + +#: ../../Zotlabs/Module/Settings/Channel.php:484 +msgid "Channel Permission Limits" +msgstr "Límites de los permisos del canal" + +#: ../../Zotlabs/Module/Settings/Channel.php:486 +msgid "Expire other channel content after this many days" +msgstr "Caducar contenido de otros canales después de este número de días" + +#: ../../Zotlabs/Module/Settings/Channel.php:486 +msgid "0 or blank to use the website limit." +msgstr "0 o en blanco para usar el límite del sitio web." + +#: ../../Zotlabs/Module/Settings/Channel.php:486 +#, php-format +msgid "This website expires after %d days." +msgstr "Este sitio web caduca después de %d días." + +#: ../../Zotlabs/Module/Settings/Channel.php:486 +msgid "This website does not expire imported content." +msgstr "Este sitio web no caduca el contenido importado." + +#: ../../Zotlabs/Module/Settings/Channel.php:486 +msgid "The website limit takes precedence if lower than your limit." +msgstr "El límite del sitio web tiene prioridad si es inferior a su propio límite." + +#: ../../Zotlabs/Module/Settings/Channel.php:487 +msgid "Maximum Friend Requests/Day:" +msgstr "Máximo de solicitudes de amistad por día:" + +#: ../../Zotlabs/Module/Settings/Channel.php:487 +msgid "May reduce spam activity" +msgstr "Podría reducir la actividad de spam" + +#: ../../Zotlabs/Module/Settings/Channel.php:488 +msgid "Default Access Control List (ACL)" +msgstr "Lista de control de acceso (ACL) por defecto" + +#: ../../Zotlabs/Module/Settings/Channel.php:490 +msgid "Use my default audience setting for the type of object published" +msgstr "Usar los ajustes de mi audiencia predeterminada para el tipo de publicación" + +#: ../../Zotlabs/Module/Settings/Channel.php:497 +msgid "Channel permissions category:" +msgstr "Categoría de los permisos del canal:" + +#: ../../Zotlabs/Module/Settings/Channel.php:503 +msgid "Maximum private messages per day from unknown people:" +msgstr "Máximo de mensajes privados por día de gente desconocida:" + +#: ../../Zotlabs/Module/Settings/Channel.php:503 +msgid "Useful to reduce spamming" +msgstr "Útil para reducir el envío de correo no deseado" + +#: ../../Zotlabs/Module/Settings/Channel.php:506 +msgid "Notification Settings" +msgstr "Configuración de las notificaciones" + +#: ../../Zotlabs/Module/Settings/Channel.php:507 +msgid "By default post a status message when:" +msgstr "Por defecto, enviar un mensaje de estado cuando:" + +#: ../../Zotlabs/Module/Settings/Channel.php:508 +msgid "accepting a friend request" +msgstr "Acepte una solicitud de amistad" + +#: ../../Zotlabs/Module/Settings/Channel.php:509 +msgid "joining a forum/community" +msgstr "al unirse a un foro o comunidad" + +#: ../../Zotlabs/Module/Settings/Channel.php:510 +msgid "making an interesting profile change" +msgstr "Realice un cambio interesante en su perfil" + +#: ../../Zotlabs/Module/Settings/Channel.php:511 +msgid "Send a notification email when:" +msgstr "Enviar una notificación por correo electrónico cuando:" + +#: ../../Zotlabs/Module/Settings/Channel.php:512 +msgid "You receive a connection request" +msgstr "Reciba una solicitud de conexión" + +#: ../../Zotlabs/Module/Settings/Channel.php:513 +msgid "Your connections are confirmed" +msgstr "Sus conexiones hayan sido confirmadas" + +#: ../../Zotlabs/Module/Settings/Channel.php:514 +msgid "Someone writes on your profile wall" +msgstr "Alguien escriba en la página de su perfil (\"muro\")" + +#: ../../Zotlabs/Module/Settings/Channel.php:515 +msgid "Someone writes a followup comment" +msgstr "Alguien escriba un comentario sobre sus publicaciones" + +#: ../../Zotlabs/Module/Settings/Channel.php:516 +msgid "You receive a private message" +msgstr "Reciba un mensaje privado" + +#: ../../Zotlabs/Module/Settings/Channel.php:517 +msgid "You receive a friend suggestion" +msgstr "Reciba una sugerencia de amistad" + +#: ../../Zotlabs/Module/Settings/Channel.php:518 +msgid "You are tagged in a post" +msgstr "Usted sea etiquetado en una publicación" + +#: ../../Zotlabs/Module/Settings/Channel.php:519 +msgid "You are poked/prodded/etc. in a post" +msgstr "Reciba un toque o incitación en una publicación" + +#: ../../Zotlabs/Module/Settings/Channel.php:521 +msgid "Someone likes your post/comment" +msgstr "Alguien muestre agrado por su entrada o comentario" + +#: ../../Zotlabs/Module/Settings/Channel.php:524 +msgid "Show visual notifications including:" +msgstr "Mostrar notificaciones visuales que incluyan:" + +#: ../../Zotlabs/Module/Settings/Channel.php:526 +msgid "Unseen grid activity" +msgstr "Nueva actividad en la red" + +#: ../../Zotlabs/Module/Settings/Channel.php:527 +msgid "Unseen channel activity" +msgstr "Actividad no vista en el canal" + +#: ../../Zotlabs/Module/Settings/Channel.php:528 +msgid "Unseen private messages" +msgstr "Mensajes privados no leídos" + +#: ../../Zotlabs/Module/Settings/Channel.php:528 +#: ../../Zotlabs/Module/Settings/Channel.php:533 +#: ../../Zotlabs/Module/Settings/Channel.php:534 +#: ../../Zotlabs/Module/Settings/Channel.php:535 +#: ../../extend/addon/addon/jappixmini/jappixmini.php:343 +msgid "Recommended" +msgstr "Recomendado" + +#: ../../Zotlabs/Module/Settings/Channel.php:529 +msgid "Upcoming events" +msgstr "Próximos eventos" + +#: ../../Zotlabs/Module/Settings/Channel.php:530 +msgid "Events today" +msgstr "Eventos de hoy" + +#: ../../Zotlabs/Module/Settings/Channel.php:531 +msgid "Upcoming birthdays" +msgstr "Próximos cumpleaños" + +#: ../../Zotlabs/Module/Settings/Channel.php:531 +msgid "Not available in all themes" +msgstr "No disponible en todos los temas" + +#: ../../Zotlabs/Module/Settings/Channel.php:532 +msgid "System (personal) notifications" +msgstr "Notificaciones del sistema (personales)" + +#: ../../Zotlabs/Module/Settings/Channel.php:533 +msgid "System info messages" +msgstr "Mensajes de información del sistema" + +#: ../../Zotlabs/Module/Settings/Channel.php:534 +msgid "System critical alerts" +msgstr "Alertas críticas del sistema" + +#: ../../Zotlabs/Module/Settings/Channel.php:535 +msgid "New connections" +msgstr "Nuevas conexiones" + +#: ../../Zotlabs/Module/Settings/Channel.php:536 +msgid "System Registrations" +msgstr "Registros del sistema" + +#: ../../Zotlabs/Module/Settings/Channel.php:537 +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" + +#: ../../Zotlabs/Module/Settings/Channel.php:539 +msgid "Notify me of events this many days in advance" +msgstr "Avisarme de los eventos con algunos días de antelación" + +#: ../../Zotlabs/Module/Settings/Channel.php:539 +msgid "Must be greater than 0" +msgstr "Debe ser mayor que 0" + +#: ../../Zotlabs/Module/Settings/Channel.php:541 +msgid "Advanced Account/Page Type Settings" +msgstr "Ajustes avanzados de la cuenta y de los tipos de página" + +#: ../../Zotlabs/Module/Settings/Channel.php:542 +msgid "Change the behaviour of this account for special situations" +msgstr "Cambiar el comportamiento de esta cuenta en situaciones especiales" + +#: ../../Zotlabs/Module/Settings/Channel.php:544 +msgid "Miscellaneous Settings" +msgstr "Ajustes diversos" + +#: ../../Zotlabs/Module/Settings/Channel.php:545 +msgid "Default photo upload folder" +msgstr "Carpeta por defecto de las fotos subidas" + +#: ../../Zotlabs/Module/Settings/Channel.php:545 +#: ../../Zotlabs/Module/Settings/Channel.php:546 +msgid "%Y - current year, %m - current month" +msgstr "%Y - año en curso, %m - mes actual" + +#: ../../Zotlabs/Module/Settings/Channel.php:546 +msgid "Default file upload folder" +msgstr "Carpeta por defecto de los ficheros subidos" + +#: ../../Zotlabs/Module/Settings/Channel.php:548 +msgid "Personal menu to display in your channel pages" +msgstr "Menú personal que debe mostrarse en las páginas de su canal" + +#: ../../Zotlabs/Module/Settings/Channel.php:550 +msgid "Remove this channel." +msgstr "Eliminar este canal." + +#: ../../Zotlabs/Module/Settings/Channel.php:551 +msgid "Firefox Share $Projectname provider" +msgstr "Servicio de compartición de Firefox: proveedor $Projectname" + +#: ../../Zotlabs/Module/Settings/Channel.php:552 +msgid "Start calendar week on monday" +msgstr "Comenzar el calendario semanal por el lunes" + +#: ../../Zotlabs/Module/Settings/Display.php:137 +msgid "No special theme for mobile devices" +msgstr "Sin tema especial para dispositivos móviles" + +#: ../../Zotlabs/Module/Settings/Display.php:140 +#, php-format +msgid "%s - (Experimental)" +msgstr "%s - (Experimental)" + +#: ../../Zotlabs/Module/Settings/Display.php:191 +msgid "Display Settings" +msgstr "Ajustes de visualización" + +#: ../../Zotlabs/Module/Settings/Display.php:192 +msgid "Theme Settings" +msgstr "Ajustes del tema" + +#: ../../Zotlabs/Module/Settings/Display.php:193 +msgid "Custom Theme Settings" +msgstr "Ajustes personalizados del tema" + +#: ../../Zotlabs/Module/Settings/Display.php:194 +msgid "Content Settings" +msgstr "Ajustes del contenido" + +#: ../../Zotlabs/Module/Settings/Display.php:200 +msgid "Display Theme:" +msgstr "Tema gráfico del perfil:" + +#: ../../Zotlabs/Module/Settings/Display.php:201 +msgid "Select scheme" +msgstr "Elegir un esquema" + +#: ../../Zotlabs/Module/Settings/Display.php:203 +msgid "Mobile Theme:" +msgstr "Tema para el móvil:" + +#: ../../Zotlabs/Module/Settings/Display.php:204 +msgid "Preload images before rendering the page" +msgstr "Carga previa de las imágenes antes de generar la página" + +#: ../../Zotlabs/Module/Settings/Display.php:204 +msgid "" +"The subjective page load time will be longer but the page will be ready when" +" displayed" +msgstr "El tiempo subjetivo de carga de la página será más largo, pero la página estará lista cuando se muestre." + +#: ../../Zotlabs/Module/Settings/Display.php:205 +msgid "Enable user zoom on mobile devices" +msgstr "Habilitar zoom de usuario en dispositivos móviles" + +#: ../../Zotlabs/Module/Settings/Display.php:206 +msgid "Update browser every xx seconds" +msgstr "Actualizar navegador cada xx segundos" + +#: ../../Zotlabs/Module/Settings/Display.php:206 +msgid "Minimum of 10 seconds, no maximum" +msgstr "Mínimo de 10 segundos, sin máximo" + +#: ../../Zotlabs/Module/Settings/Display.php:207 +msgid "Maximum number of conversations to load at any time:" +msgstr "Máximo número de conversaciones a cargar en cualquier momento:" + +#: ../../Zotlabs/Module/Settings/Display.php:207 +msgid "Maximum of 100 items" +msgstr "Máximo de 100 elementos" + +#: ../../Zotlabs/Module/Settings/Display.php:208 +msgid "Show emoticons (smilies) as images" +msgstr "Mostrar emoticonos (smilies) como imágenes" + +#: ../../Zotlabs/Module/Settings/Display.php:209 +msgid "Manual conversation updates" +msgstr "Actualizaciones manuales de la conversación" + +#: ../../Zotlabs/Module/Settings/Display.php:209 +msgid "Default is automatic, which may increase screen jumping" +msgstr "El valor predeterminado es automático, lo que puede aumentar el salto de pantalla" + +#: ../../Zotlabs/Module/Settings/Display.php:210 +msgid "Link post titles to source" +msgstr "Enlazar título de la publicación a la fuente original" + +#: ../../Zotlabs/Module/Settings/Display.php:211 +msgid "System Page Layout Editor - (advanced)" +msgstr "Editor de plantilla de página del sistema - (avanzado)" + +#: ../../Zotlabs/Module/Settings/Display.php:214 +msgid "Use blog/list mode on channel page" +msgstr "Usar modo blog/lista en la página de inicio del canal" + +#: ../../Zotlabs/Module/Settings/Display.php:214 +#: ../../Zotlabs/Module/Settings/Display.php:215 +msgid "(comments displayed separately)" +msgstr "(comentarios mostrados de forma separada)" + +#: ../../Zotlabs/Module/Settings/Display.php:215 +msgid "Use blog/list mode on grid page" +msgstr "Mostrar mi red en modo blog" + +#: ../../Zotlabs/Module/Settings/Display.php:216 +msgid "Channel page max height of content (in pixels)" +msgstr "Altura máxima del contenido de la página del canal (en píxeles)" + +#: ../../Zotlabs/Module/Settings/Display.php:216 +#: ../../Zotlabs/Module/Settings/Display.php:217 +msgid "click to expand content exceeding this height" +msgstr "Pulsar para expandir el contenido que exceda de esta altura" + +#: ../../Zotlabs/Module/Settings/Display.php:217 +msgid "Grid page max height of content (in pixels)" +msgstr "Altura máxima del contenido de mi red (en píxeles)" + +#: ../../Zotlabs/Module/Settings/Featured.php:24 +msgid "No feature settings configured" +msgstr "No se ha establecido la configuración de los complementos" + +#: ../../Zotlabs/Module/Settings/Featured.php:31 +msgid "Feature/Addon Settings" +msgstr "Ajustes de los complementos" + +#: ../../Zotlabs/Module/Tagrm.php:48 ../../Zotlabs/Module/Tagrm.php:98 +msgid "Tag removed" +msgstr "Etiqueta eliminada." + +#: ../../Zotlabs/Module/Tagrm.php:123 +msgid "Remove Item Tag" +msgstr "Eliminar etiqueta del elemento." + +#: ../../Zotlabs/Module/Tagrm.php:125 +msgid "Select a tag to remove: " +msgstr "Seleccionar una etiqueta para eliminar:" + +#: ../../Zotlabs/Module/Thing.php:114 +msgid "Thing updated" +msgstr "Elemento actualizado." + +#: ../../Zotlabs/Module/Thing.php:166 +msgid "Object store: failed" +msgstr "Guardar objeto: ha fallado" + +#: ../../Zotlabs/Module/Thing.php:170 +msgid "Thing added" +msgstr "Elemento añadido" + +#: ../../Zotlabs/Module/Thing.php:196 +#, php-format +msgid "OBJ: %1$s %2$s %3$s" +msgstr "OBJ: %1$s %2$s %3$s" + +#: ../../Zotlabs/Module/Thing.php:259 +msgid "Show Thing" +msgstr "Mostrar elemento" + +#: ../../Zotlabs/Module/Thing.php:266 +msgid "item not found." +msgstr "elemento no encontrado." + +#: ../../Zotlabs/Module/Thing.php:299 +msgid "Edit Thing" +msgstr "Editar elemento" + +#: ../../Zotlabs/Module/Thing.php:301 ../../Zotlabs/Module/Thing.php:355 +msgid "Select a profile" +msgstr "Seleccionar un perfil" + +#: ../../Zotlabs/Module/Thing.php:305 ../../Zotlabs/Module/Thing.php:358 +msgid "Post an activity" +msgstr "Publicar una actividad" + +#: ../../Zotlabs/Module/Thing.php:305 ../../Zotlabs/Module/Thing.php:358 +msgid "Only sends to viewers of the applicable profile" +msgstr "Sólo enviar a espectadores del perfil pertinente." + +#: ../../Zotlabs/Module/Thing.php:307 ../../Zotlabs/Module/Thing.php:360 +msgid "Name of thing e.g. something" +msgstr "Nombre del elemento, p. ej.:. \"algo\"" + +#: ../../Zotlabs/Module/Thing.php:309 ../../Zotlabs/Module/Thing.php:361 +msgid "URL of thing (optional)" +msgstr "Dirección del elemento (opcional)" + +#: ../../Zotlabs/Module/Thing.php:311 ../../Zotlabs/Module/Thing.php:362 +msgid "URL for photo of thing (optional)" +msgstr "Dirección para la foto o elemento (opcional)" + +#: ../../Zotlabs/Module/Thing.php:353 +msgid "Add Thing to your Profile" +msgstr "Añadir alguna cosa a su perfil" + +#: ../../Zotlabs/Module/Import.php:33 +#, php-format +msgid "Your service plan only allows %d channels." +msgstr "Su paquete de servicios solo permite %d canales." + +#: ../../Zotlabs/Module/Import.php:157 ../../include/import.php:100 +msgid "Cloned channel not found. Import failed." +msgstr "No se ha podido importar el canal porque el canal clonado no se ha encontrado." + +#: ../../Zotlabs/Module/Import.php:167 +msgid "No channel. Import failed." +msgstr "No hay canal. La importación ha fallado" + +#: ../../Zotlabs/Module/Import.php:503 +#: ../../include/Import/import_diaspora.php:142 +msgid "Import completed." +msgstr "Importación completada." + +#: ../../Zotlabs/Module/Import.php:525 +msgid "You must be logged in to use this feature." +msgstr "Debe estar registrado para poder usar esta funcionalidad." + +#: ../../Zotlabs/Module/Import.php:530 +msgid "Import Channel" +msgstr "Importar canal" + +#: ../../Zotlabs/Module/Import.php:531 +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." + +#: ../../Zotlabs/Module/Import.php:533 +msgid "Or provide the old server/hub details" +msgstr "O proporcione los detalles de su antiguo servidor/hub" + +#: ../../Zotlabs/Module/Import.php:534 +msgid "Your old identity address (xyz@example.com)" +msgstr "Su identidad en el antiguo servidor (canal@ejemplo.com)" + +#: ../../Zotlabs/Module/Import.php:535 +msgid "Your old login email address" +msgstr "Su antigua dirección de correo electrónico" + +#: ../../Zotlabs/Module/Import.php:536 +msgid "Your old login password" +msgstr "Su antigua contraseña" + +#: ../../Zotlabs/Module/Import.php:537 +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 direcció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." + +#: ../../Zotlabs/Module/Import.php:538 +msgid "Make this hub my primary location" +msgstr "Convertir este servidor en mi ubicación primaria" + +#: ../../Zotlabs/Module/Import.php:539 +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" + +#: ../../Zotlabs/Module/Import.php:540 +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." + +#: ../../Zotlabs/Module/Viewconnections.php:65 +msgid "No connections." +msgstr "Sin conexiones." + +#: ../../Zotlabs/Module/Viewconnections.php:78 +#, php-format +msgid "Visit %s's profile [%s]" +msgstr "Visitar el perfil de %s [%s]" + +#: ../../Zotlabs/Module/Viewconnections.php:107 +msgid "View Connections" +msgstr "Ver conexiones" + +#: ../../Zotlabs/Module/Viewsrc.php:44 +msgid "Source of Item" +msgstr "Origen del elemento" + +#: ../../Zotlabs/Module/Chat.php:181 +msgid "Room not found" +msgstr "Sala no encontrada" + +#: ../../Zotlabs/Module/Chat.php:197 +msgid "Leave Room" +msgstr "Abandonar la sala" + +#: ../../Zotlabs/Module/Chat.php:198 +msgid "Delete Room" +msgstr "Eliminar esta sala" + +#: ../../Zotlabs/Module/Chat.php:199 +msgid "I am away right now" +msgstr "Estoy ausente momentáneamente" + +#: ../../Zotlabs/Module/Chat.php:200 +msgid "I am online" +msgstr "Estoy conectado/a" + +#: ../../Zotlabs/Module/Chat.php:202 +msgid "Bookmark this room" +msgstr "Añadir esta sala a Marcadores" + +#: ../../Zotlabs/Module/Chat.php:231 +msgid "New Chatroom" +msgstr "Nueva sala de chat" + +#: ../../Zotlabs/Module/Chat.php:232 +msgid "Chatroom name" +msgstr "Nombre de la sala de chat" + +#: ../../Zotlabs/Module/Chat.php:233 +msgid "Expiration of chats (minutes)" +msgstr "Caducidad de los mensajes en los chats (en minutos)" + +#: ../../Zotlabs/Module/Chat.php:249 +#, php-format +msgid "%1$s's Chatrooms" +msgstr "Salas de chat de %1$s" + +#: ../../Zotlabs/Module/Chat.php:254 +msgid "No chatrooms available" +msgstr "No hay salas de chat disponibles" + +#: ../../Zotlabs/Module/Chat.php:258 +msgid "Expiration" +msgstr "Caducidad" + +#: ../../Zotlabs/Module/Chat.php:259 +msgid "min" +msgstr "min" + +#: ../../Zotlabs/Module/Xchan.php:10 +msgid "Xchan Lookup" +msgstr "Búsqueda de canales" + +#: ../../Zotlabs/Module/Xchan.php:13 +msgid "Lookup xchan beginning with (or webbie): " +msgstr "Buscar un canal (o un \"webbie\") que comience por:" + +#: ../../Zotlabs/Module/Events.php:25 +msgid "Calendar entries imported." +msgstr "Entradas de calendario importadas." + +#: ../../Zotlabs/Module/Events.php:27 +msgid "No calendar entries found." +msgstr "No se han encontrado entradas de calendario." + +#: ../../Zotlabs/Module/Events.php:106 +msgid "Event can not end before it has started." +msgstr "Un evento no puede terminar antes de que haya comenzado." + +#: ../../Zotlabs/Module/Events.php:108 ../../Zotlabs/Module/Events.php:117 +#: ../../Zotlabs/Module/Events.php:139 +msgid "Unable to generate preview." +msgstr "No se puede crear la vista previa." + +#: ../../Zotlabs/Module/Events.php:115 +msgid "Event title and start time are required." +msgstr "Se requieren el título del evento y su hora de inicio." + +#: ../../Zotlabs/Module/Events.php:137 ../../Zotlabs/Module/Events.php:261 +msgid "Event not found." +msgstr "Evento no encontrado." + +#: ../../Zotlabs/Module/Events.php:453 +msgid "Edit event title" +msgstr "Editar el título del evento" + +#: ../../Zotlabs/Module/Events.php:453 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:835 +msgid "Event title" +msgstr "Título del evento" + +#: ../../Zotlabs/Module/Events.php:455 +msgid "Categories (comma-separated list)" +msgstr "Temas (lista separada por comas)" + +#: ../../Zotlabs/Module/Events.php:456 +msgid "Edit Category" +msgstr "Modificar el tema" + +#: ../../Zotlabs/Module/Events.php:456 +msgid "Category" +msgstr "Tema" + +#: ../../Zotlabs/Module/Events.php:459 +msgid "Edit start date and time" +msgstr "Modificar la fecha y hora de comienzo" + +#: ../../Zotlabs/Module/Events.php:459 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:836 +msgid "Start date and time" +msgstr "Fecha y hora de comienzo" + +#: ../../Zotlabs/Module/Events.php:460 ../../Zotlabs/Module/Events.php:463 +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" + +#: ../../Zotlabs/Module/Events.php:462 +msgid "Edit finish date and time" +msgstr "Modificar la fecha y hora de terminación" + +#: ../../Zotlabs/Module/Events.php:462 +msgid "Finish date and time" +msgstr "Fecha y hora de terminación" + +#: ../../Zotlabs/Module/Events.php:464 ../../Zotlabs/Module/Events.php:465 +msgid "Adjust for viewer timezone" +msgstr "Ajustar para obtener el visor de los husos horarios" + +#: ../../Zotlabs/Module/Events.php:464 +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." + +#: ../../Zotlabs/Module/Events.php:466 +msgid "Edit Description" +msgstr "Editar la descripción" + +#: ../../Zotlabs/Module/Events.php:468 +msgid "Edit Location" +msgstr "Modificar la dirección" + +#: ../../Zotlabs/Module/Events.php:472 ../../include/conversation.php:1262 +msgid "Permission settings" +msgstr "Configuración de permisos" + +#: ../../Zotlabs/Module/Events.php:485 +msgid "Advanced Options" +msgstr "Opciones avanzadas" + +#: ../../Zotlabs/Module/Events.php:624 +msgid "Edit event" +msgstr "Editar evento" + +#: ../../Zotlabs/Module/Events.php:626 +msgid "Delete event" +msgstr "Borrar evento" + +#: ../../Zotlabs/Module/Events.php:660 +msgid "calendar" +msgstr "calendario" + +#: ../../Zotlabs/Module/Events.php:686 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:849 +msgid "Month" +msgstr "Mes" + +#: ../../Zotlabs/Module/Events.php:687 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:850 +msgid "Week" +msgstr "Semana" + +#: ../../Zotlabs/Module/Events.php:688 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:851 +msgid "Day" +msgstr "Día" + +#: ../../Zotlabs/Module/Events.php:722 +msgid "Event removed" +msgstr "Evento borrado" + +#: ../../Zotlabs/Module/Events.php:725 +msgid "Failed to remove event" +msgstr "Error al eliminar el evento" + #: ../../Zotlabs/Lib/Chatroom.php:27 msgid "Missing room name" msgstr "Sala de chat sin nombre" @@ -6878,216 +6996,74 @@ msgstr "Sala no encontrada." msgid "Room is full" msgstr "La sala está llena." -#: ../../Zotlabs/Lib/Enotify.php:60 ../../include/network.php:1889 -msgid "$Projectname Notification" -msgstr "Notificación de $Projectname" +#: ../../Zotlabs/Lib/PermissionDescription.php:34 +#: ../../include/acl_selectors.php:128 +msgid "Visible to your default audience" +msgstr "Visible para su público predeterminado." -#: ../../Zotlabs/Lib/Enotify.php:61 ../../include/network.php:1890 -msgid "$projectname" -msgstr "$projectname" +#: ../../Zotlabs/Lib/PermissionDescription.php:107 +#: ../../include/acl_selectors.php:191 +msgid "Only me" +msgstr "Sólo yo" -#: ../../Zotlabs/Lib/Enotify.php:63 ../../include/network.php:1892 -msgid "Thank You," -msgstr "Gracias," +#: ../../Zotlabs/Lib/PermissionDescription.php:108 +msgid "Public" +msgstr "Público" -#: ../../Zotlabs/Lib/Enotify.php:65 ../../include/network.php:1894 +#: ../../Zotlabs/Lib/PermissionDescription.php:109 +msgid "Anybody in the $Projectname network" +msgstr "Cualquiera en la red $Projectname" + +#: ../../Zotlabs/Lib/PermissionDescription.php:110 #, php-format -msgid "%s Administrator" -msgstr "%s Administrador" +msgid "Any account on %s" +msgstr "Cualquier cuenta en %s" -#: ../../Zotlabs/Lib/Enotify.php:103 -#, php-format -msgid "%s " -msgstr "%s " +#: ../../Zotlabs/Lib/PermissionDescription.php:111 +msgid "Any of my connections" +msgstr "Cualquiera de mis conexiones" -#: ../../Zotlabs/Lib/Enotify.php:107 -#, php-format -msgid "[$Projectname:Notify] New mail received at %s" -msgstr "[$Projectname:Aviso] Nuevo correo recibido en %s" +#: ../../Zotlabs/Lib/PermissionDescription.php:112 +msgid "Only connections I specifically allow" +msgstr "Sólo las conexiones que yo permita de forma explícita" -#: ../../Zotlabs/Lib/Enotify.php:109 -#, 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." +#: ../../Zotlabs/Lib/PermissionDescription.php:113 +msgid "Anybody authenticated (could include visitors from other networks)" +msgstr "Cualquiera que esté autenticado (podría incluir a los visitantes de otras redes)" -#: ../../Zotlabs/Lib/Enotify.php:110 -#, php-format -msgid "%1$s sent you %2$s." -msgstr "%1$s le ha enviado %2$s." +#: ../../Zotlabs/Lib/PermissionDescription.php:114 +msgid "Any connections including those who haven't yet been approved" +msgstr "Cualquier conexión incluyendo aquellas que aún no han sido aprobadas" -#: ../../Zotlabs/Lib/Enotify.php:110 -msgid "a private message" -msgstr "un mensaje privado" - -#: ../../Zotlabs/Lib/Enotify.php:111 -#, 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." - -#: ../../Zotlabs/Lib/Enotify.php:170 -#, 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]" - -#: ../../Zotlabs/Lib/Enotify.php:178 -#, 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] " - -#: ../../Zotlabs/Lib/Enotify.php:187 -#, 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]" - -#: ../../Zotlabs/Lib/Enotify.php:198 -#, php-format -msgid "[$Projectname:Notify] Comment to conversation #%1$d by %2$s" -msgstr "[$Projectname:Aviso] Nuevo comentario de %2$s en la conversación #%1$d" - -#: ../../Zotlabs/Lib/Enotify.php:199 -#, 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." - -#: ../../Zotlabs/Lib/Enotify.php:202 ../../Zotlabs/Lib/Enotify.php:217 -#: ../../Zotlabs/Lib/Enotify.php:243 ../../Zotlabs/Lib/Enotify.php:261 -#: ../../Zotlabs/Lib/Enotify.php:275 -#, php-format -msgid "Please visit %s to view and/or reply to the conversation." -msgstr "Para ver o comentar la conversación, visite %s" - -#: ../../Zotlabs/Lib/Enotify.php:208 -#, php-format -msgid "[$Projectname:Notify] %s posted to your profile wall" -msgstr "[$Projectname:Aviso] %s ha publicado una entrada en su página de inicio del perfil (\"muro\")" - -#: ../../Zotlabs/Lib/Enotify.php:210 -#, php-format -msgid "%1$s, %2$s posted to your profile wall at %3$s" -msgstr "%1$s, %2$s ha publicado en su página del perfil en %3$s" - -#: ../../Zotlabs/Lib/Enotify.php:212 -#, php-format -msgid "%1$s, %2$s posted to [zrl=%3$s]your wall[/zrl]" -msgstr "%1$s, %2$s ha publicado en [zrl=%3$s]su página del perfil[/zrl]" - -#: ../../Zotlabs/Lib/Enotify.php:236 -#, php-format -msgid "[$Projectname:Notify] %s tagged you" -msgstr "[$Projectname:Aviso] %s le ha etiquetado" - -#: ../../Zotlabs/Lib/Enotify.php:237 -#, php-format -msgid "%1$s, %2$s tagged you at %3$s" -msgstr "%1$s, %2$s le ha etiquetado en %3$s" - -#: ../../Zotlabs/Lib/Enotify.php:238 -#, php-format -msgid "%1$s, %2$s [zrl=%3$s]tagged you[/zrl]." -msgstr "%1$s, %2$s [zrl=%3$s]le etiquetó[/zrl]." - -#: ../../Zotlabs/Lib/Enotify.php:250 -#, php-format -msgid "[$Projectname:Notify] %1$s poked you" -msgstr "[$Projectname:Aviso] %1$s le ha dado un toque" - -#: ../../Zotlabs/Lib/Enotify.php:251 -#, php-format -msgid "%1$s, %2$s poked you at %3$s" -msgstr "%1$s, %2$s le ha dado un toque en %3$s" - -#: ../../Zotlabs/Lib/Enotify.php:252 -#, php-format -msgid "%1$s, %2$s [zrl=%2$s]poked you[/zrl]." -msgstr "%1$s, %2$s [zrl=%2$s]le ha dado un toque[/zrl]." - -#: ../../Zotlabs/Lib/Enotify.php:268 -#, php-format -msgid "[$Projectname:Notify] %s tagged your post" -msgstr "[$Projectname:Aviso] %s ha etiquetado su entrada" - -#: ../../Zotlabs/Lib/Enotify.php:269 -#, 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" - -#: ../../Zotlabs/Lib/Enotify.php:270 -#, php-format -msgid "%1$s, %2$s tagged [zrl=%3$s]your post[/zrl]" -msgstr "%1$s, %2$s ha etiquetado [zrl=%3$s]su publicación[/zrl]" - -#: ../../Zotlabs/Lib/Enotify.php:282 -msgid "[$Projectname:Notify] Introduction received" -msgstr "[$Projectname:Aviso] Ha recibido una solicitud de conexión" - -#: ../../Zotlabs/Lib/Enotify.php:283 -#, 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" - -#: ../../Zotlabs/Lib/Enotify.php:284 -#, php-format +#: ../../Zotlabs/Lib/PermissionDescription.php:150 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." +"This is your default setting for the audience of your normal stream, and " +"posts." +msgstr "Esta es la configuración predeterminada para su flujo (stream) habitual de publicaciones." -#: ../../Zotlabs/Lib/Enotify.php:288 ../../Zotlabs/Lib/Enotify.php:307 -#, php-format -msgid "You may visit their profile at %s" -msgstr "Puede visitar su perfil en %s" - -#: ../../Zotlabs/Lib/Enotify.php:290 -#, 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." - -#: ../../Zotlabs/Lib/Enotify.php:297 -msgid "[$Projectname:Notify] Friend suggestion received" -msgstr "[$Projectname:Aviso] Ha recibido una sugerencia de conexión" - -#: ../../Zotlabs/Lib/Enotify.php:298 -#, 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" - -#: ../../Zotlabs/Lib/Enotify.php:299 -#, php-format +#: ../../Zotlabs/Lib/PermissionDescription.php:151 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." +"This is your default setting for who can view your default channel profile" +msgstr "Esta es su configuración por defecto para establecer quién puede ver su perfil del canal predeterminado" -#: ../../Zotlabs/Lib/Enotify.php:305 -msgid "Name:" -msgstr "Nombre:" +#: ../../Zotlabs/Lib/PermissionDescription.php:152 +msgid "This is your default setting for who can view your connections" +msgstr "Este es su ajuste predeterminado para establecer quién puede ver sus conexiones" -#: ../../Zotlabs/Lib/Enotify.php:306 -msgid "Photo:" -msgstr "Foto:" +#: ../../Zotlabs/Lib/PermissionDescription.php:153 +msgid "" +"This is your default setting for who can view your file storage and photos" +msgstr "Este es su ajuste predeterminado para establecer quién puede ver su repositorio de ficheros y sus fotos" -#: ../../Zotlabs/Lib/Enotify.php:309 -#, php-format -msgid "Please visit %s to approve or reject the suggestion." -msgstr "Por favor, visite %s para aprobar o rechazar la sugerencia." +#: ../../Zotlabs/Lib/PermissionDescription.php:154 +msgid "This is your default setting for the audience of your webpages" +msgstr "Este es el ajuste predeterminado para establecer la audiencia de sus páginas web" -#: ../../Zotlabs/Lib/Enotify.php:527 -msgid "[$Projectname:Notify]" -msgstr "[$Projectname:Aviso]" - -#: ../../Zotlabs/Lib/Enotify.php:687 -msgid "created a new post" -msgstr "ha creado una nueva entrada" - -#: ../../Zotlabs/Lib/Enotify.php:688 -#, php-format -msgid "commented on %s's post" -msgstr "ha comentado la entrada de %s" - -#: ../../Zotlabs/Lib/ThreadItem.php:95 ../../include/conversation.php:667 +#: ../../Zotlabs/Lib/ThreadItem.php:95 ../../include/conversation.php:663 msgid "Private Message" msgstr "Mensaje Privado" -#: ../../Zotlabs/Lib/ThreadItem.php:132 ../../include/conversation.php:659 +#: ../../Zotlabs/Lib/ThreadItem.php:132 ../../include/conversation.php:655 msgid "Select" msgstr "Seleccionar" @@ -7135,11 +7111,11 @@ msgstr "Activar o desactivar el estado de entrada preferida" msgid "starred" msgstr "preferidas" -#: ../../Zotlabs/Lib/ThreadItem.php:239 ../../include/conversation.php:674 +#: ../../Zotlabs/Lib/ThreadItem.php:239 ../../include/conversation.php:670 msgid "Message signature validated" msgstr "Firma de mensaje validada" -#: ../../Zotlabs/Lib/ThreadItem.php:240 ../../include/conversation.php:675 +#: ../../Zotlabs/Lib/ThreadItem.php:240 ../../include/conversation.php:671 msgid "Message signature incorrect" msgstr "Firma de mensaje incorrecta" @@ -7195,227 +7171,3279 @@ msgstr "De página del perfil a página del perfil (de \"muro\" a \"muro\")" msgid "via Wall-To-Wall:" msgstr "Mediante el procedimiento página del perfil a página del perfil (de \"muro\" a \"muro\")" -#: ../../Zotlabs/Lib/ThreadItem.php:348 ../../include/conversation.php:720 +#: ../../Zotlabs/Lib/ThreadItem.php:348 ../../include/conversation.php:716 #, php-format msgid "from %s" msgstr "desde %s" -#: ../../Zotlabs/Lib/ThreadItem.php:351 ../../include/conversation.php:723 +#: ../../Zotlabs/Lib/ThreadItem.php:351 ../../include/conversation.php:719 #, php-format msgid "last edited: %s" msgstr "último cambio: %s" -#: ../../Zotlabs/Lib/ThreadItem.php:352 ../../include/conversation.php:724 +#: ../../Zotlabs/Lib/ThreadItem.php:352 ../../include/conversation.php:720 #, php-format msgid "Expires: %s" msgstr "Caduca: %s" -#: ../../Zotlabs/Lib/ThreadItem.php:377 +#: ../../Zotlabs/Lib/ThreadItem.php:358 +msgid "Attend" +msgstr "Participar o asistir" + +#: ../../Zotlabs/Lib/ThreadItem.php:359 +msgid "Attendance Options" +msgstr "Opciones de participación o asistencia" + +#: ../../Zotlabs/Lib/ThreadItem.php:360 +msgid "Vote" +msgstr "Votar" + +#: ../../Zotlabs/Lib/ThreadItem.php:361 +msgid "Voting Options" +msgstr "Opciones de votación" + +#: ../../Zotlabs/Lib/ThreadItem.php:381 +#: ../../extend/addon/addon/bookmarker/bookmarker.php:38 msgid "Save Bookmarks" msgstr "Guardar en Marcadores" -#: ../../Zotlabs/Lib/ThreadItem.php:378 +#: ../../Zotlabs/Lib/ThreadItem.php:382 msgid "Add to Calendar" msgstr "Añadir al calendario" -#: ../../Zotlabs/Lib/ThreadItem.php:387 +#: ../../Zotlabs/Lib/ThreadItem.php:391 msgid "Mark all seen" msgstr "Marcar todo como visto" -#: ../../Zotlabs/Lib/ThreadItem.php:436 ../../include/js_strings.php:7 +#: ../../Zotlabs/Lib/ThreadItem.php:440 ../../include/js_strings.php:7 #, php-format msgid "%s show all" msgstr "%s mostrar todo" -#: ../../Zotlabs/Lib/ThreadItem.php:726 ../../include/conversation.php:1239 +#: ../../Zotlabs/Lib/ThreadItem.php:730 ../../include/conversation.php:1237 msgid "Bold" msgstr "Negrita" -#: ../../Zotlabs/Lib/ThreadItem.php:727 ../../include/conversation.php:1240 +#: ../../Zotlabs/Lib/ThreadItem.php:731 ../../include/conversation.php:1238 msgid "Italic" msgstr "Itálico " -#: ../../Zotlabs/Lib/ThreadItem.php:728 ../../include/conversation.php:1241 +#: ../../Zotlabs/Lib/ThreadItem.php:732 ../../include/conversation.php:1239 msgid "Underline" msgstr "Subrayar" -#: ../../Zotlabs/Lib/ThreadItem.php:729 ../../include/conversation.php:1242 +#: ../../Zotlabs/Lib/ThreadItem.php:733 ../../include/conversation.php:1240 msgid "Quote" msgstr "Citar" -#: ../../Zotlabs/Lib/ThreadItem.php:730 ../../include/conversation.php:1243 +#: ../../Zotlabs/Lib/ThreadItem.php:734 ../../include/conversation.php:1241 msgid "Code" msgstr "Código" -#: ../../Zotlabs/Lib/ThreadItem.php:731 +#: ../../Zotlabs/Lib/ThreadItem.php:735 msgid "Image" msgstr "Imagen" -#: ../../Zotlabs/Lib/ThreadItem.php:732 +#: ../../Zotlabs/Lib/ThreadItem.php:736 msgid "Insert Link" msgstr "Insertar enlace" -#: ../../Zotlabs/Lib/ThreadItem.php:733 +#: ../../Zotlabs/Lib/ThreadItem.php:737 msgid "Video" msgstr "Vídeo" -#: ../../Zotlabs/Lib/PermissionDescription.php:31 -#: ../../include/acl_selectors.php:124 -msgid "Visible to your default audience" -msgstr "Visible para su público predeterminado." - -#: ../../Zotlabs/Lib/PermissionDescription.php:106 -#: ../../include/acl_selectors.php:165 -msgid "Only me" -msgstr "Sólo yo" - -#: ../../Zotlabs/Lib/PermissionDescription.php:107 -msgid "Public" -msgstr "Público" - -#: ../../Zotlabs/Lib/PermissionDescription.php:108 -msgid "Anybody in the $Projectname network" -msgstr "Cualquiera en la red $Projectname" - -#: ../../Zotlabs/Lib/PermissionDescription.php:109 -#, php-format -msgid "Any account on %s" -msgstr "Cualquier cuenta en %s" - -#: ../../Zotlabs/Lib/PermissionDescription.php:110 -msgid "Any of my connections" -msgstr "Cualquiera de mis conexiones" - -#: ../../Zotlabs/Lib/PermissionDescription.php:111 -msgid "Only connections I specifically allow" -msgstr "Sólo las conexiones que yo permita de forma explícita" - -#: ../../Zotlabs/Lib/PermissionDescription.php:112 -msgid "Anybody authenticated (could include visitors from other networks)" -msgstr "Cualquiera que esté autenticado (podría incluir a los visitantes de otras redes)" - -#: ../../Zotlabs/Lib/PermissionDescription.php:113 -msgid "Any connections including those who haven't yet been approved" -msgstr "Cualquier conexión incluyendo aquellas que aún no han sido aprobadas" - -#: ../../Zotlabs/Lib/PermissionDescription.php:152 -msgid "" -"This is your default setting for the audience of your normal stream, and " -"posts." -msgstr "Esta es la configuración predeterminada para su flujo (stream) habitual de publicaciones." - -#: ../../Zotlabs/Lib/PermissionDescription.php:153 -msgid "" -"This is your default setting for who can view your default channel profile" -msgstr "Esta es su configuración por defecto para establecer quién puede ver su perfil del canal predeterminado" - -#: ../../Zotlabs/Lib/PermissionDescription.php:154 -msgid "This is your default setting for who can view your connections" -msgstr "Este es su ajuste predeterminado para establecer quién puede ver sus conexiones" - -#: ../../Zotlabs/Lib/PermissionDescription.php:155 -msgid "" -"This is your default setting for who can view your file storage and photos" -msgstr "Este es su ajuste predeterminado para establecer quién puede ver su repositorio de ficheros y sus fotos" - -#: ../../Zotlabs/Lib/PermissionDescription.php:156 -msgid "This is your default setting for the audience of your webpages" -msgstr "Este es el ajuste predeterminado para establecer la audiencia de sus páginas web" - -#: ../../Zotlabs/Lib/Apps.php:205 +#: ../../Zotlabs/Lib/Apps.php:207 msgid "Site Admin" msgstr "Administrador del sitio" -#: ../../Zotlabs/Lib/Apps.php:206 -msgid "Bug Report" +#: ../../Zotlabs/Lib/Apps.php:208 +#: ../../extend/addon/addon/buglink/buglink.php:16 +msgid "Report Bug" msgstr "Informe de errores" -#: ../../Zotlabs/Lib/Apps.php:207 +#: ../../Zotlabs/Lib/Apps.php:209 msgid "View Bookmarks" msgstr "Ver los marcadores" -#: ../../Zotlabs/Lib/Apps.php:208 +#: ../../Zotlabs/Lib/Apps.php:210 msgid "My Chatrooms" msgstr "Mis salas de chat" -#: ../../Zotlabs/Lib/Apps.php:210 +#: ../../Zotlabs/Lib/Apps.php:212 msgid "Firefox Share" msgstr "Servicio de compartición de Firefox" -#: ../../Zotlabs/Lib/Apps.php:211 +#: ../../Zotlabs/Lib/Apps.php:213 msgid "Remote Diagnostics" msgstr "Diagnóstico remoto" -#: ../../Zotlabs/Lib/Apps.php:212 ../../include/features.php:319 +#: ../../Zotlabs/Lib/Apps.php:214 ../../include/features.php:319 msgid "Suggest Channels" msgstr "Sugerir canales" -#: ../../Zotlabs/Lib/Apps.php:213 ../../include/nav.php:115 -#: ../../boot.php:1739 +#: ../../Zotlabs/Lib/Apps.php:215 ../../include/nav.php:115 +#: ../../boot.php:1720 msgid "Login" msgstr "Iniciar sesión" -#: ../../Zotlabs/Lib/Apps.php:215 ../../include/nav.php:184 +#: ../../Zotlabs/Lib/Apps.php:217 ../../include/nav.php:182 msgid "Grid" msgstr "Red" -#: ../../Zotlabs/Lib/Apps.php:220 ../../include/nav.php:187 +#: ../../Zotlabs/Lib/Apps.php:221 ../../include/features.php:99 +#: ../../include/conversation.php:1740 +msgid "Wiki" +msgstr "Wiki" + +#: ../../Zotlabs/Lib/Apps.php:222 ../../include/nav.php:185 msgid "Channel Home" msgstr "Mi canal" -#: ../../Zotlabs/Lib/Apps.php:223 ../../include/nav.php:206 -#: ../../include/conversation.php:1689 ../../include/conversation.php:1692 +#: ../../Zotlabs/Lib/Apps.php:225 ../../include/nav.php:204 +#: ../../include/conversation.php:1691 ../../include/conversation.php:1694 msgid "Events" msgstr "Eventos" -#: ../../Zotlabs/Lib/Apps.php:224 ../../include/nav.php:172 +#: ../../Zotlabs/Lib/Apps.php:226 ../../include/nav.php:170 msgid "Directory" msgstr "Directorio" -#: ../../Zotlabs/Lib/Apps.php:226 ../../include/nav.php:198 +#: ../../Zotlabs/Lib/Apps.php:228 ../../include/nav.php:196 msgid "Mail" msgstr "Correo" -#: ../../Zotlabs/Lib/Apps.php:229 ../../include/nav.php:99 +#: ../../Zotlabs/Lib/Apps.php:231 ../../include/nav.php:99 msgid "Chat" msgstr "Chat" -#: ../../Zotlabs/Lib/Apps.php:231 +#: ../../Zotlabs/Lib/Apps.php:233 msgid "Probe" msgstr "Probar" -#: ../../Zotlabs/Lib/Apps.php:232 +#: ../../Zotlabs/Lib/Apps.php:234 msgid "Suggest" msgstr "Sugerir" -#: ../../Zotlabs/Lib/Apps.php:233 +#: ../../Zotlabs/Lib/Apps.php:235 msgid "Random Channel" msgstr "Canal aleatorio" -#: ../../Zotlabs/Lib/Apps.php:234 +#: ../../Zotlabs/Lib/Apps.php:236 msgid "Invite" msgstr "Invitar" -#: ../../Zotlabs/Lib/Apps.php:235 ../../include/widgets.php:1564 +#: ../../Zotlabs/Lib/Apps.php:237 ../../include/widgets.php:1565 msgid "Features" msgstr "Funcionalidades" -#: ../../Zotlabs/Lib/Apps.php:236 +#: ../../Zotlabs/Lib/Apps.php:238 +#: ../../extend/addon/addon/openid/MysqlProvider.php:69 msgid "Language" msgstr "Idioma" -#: ../../Zotlabs/Lib/Apps.php:237 +#: ../../Zotlabs/Lib/Apps.php:239 msgid "Post" msgstr "Publicación" -#: ../../Zotlabs/Lib/Apps.php:238 +#: ../../Zotlabs/Lib/Apps.php:240 +#: ../../extend/addon/addon/openid/MysqlProvider.php:58 +#: ../../extend/addon/addon/openid/MysqlProvider.php:59 +#: ../../extend/addon/addon/openid/MysqlProvider.php:60 msgid "Profile Photo" msgstr "Foto del perfil" -#: ../../Zotlabs/Lib/Apps.php:339 +#: ../../Zotlabs/Lib/Apps.php:344 msgid "Purchase" msgstr "Comprar" +#: ../../Zotlabs/Lib/Apps.php:348 +msgid "Undelete" +msgstr "Recuperar" + +#: ../../Zotlabs/Lib/Enotify.php:60 ../../include/network.php:1914 +msgid "$Projectname Notification" +msgstr "Notificación de $Projectname" + +#: ../../Zotlabs/Lib/Enotify.php:61 ../../extend/addon/addon/diaspora/p.php:46 +#: ../../extend/addon/addon/diaspora/util.php:218 +#: ../../extend/addon/addon/diaspora/util.php:231 +#: ../../include/network.php:1915 +msgid "$projectname" +msgstr "$projectname" + +#: ../../Zotlabs/Lib/Enotify.php:63 ../../include/network.php:1917 +msgid "Thank You," +msgstr "Gracias," + +#: ../../Zotlabs/Lib/Enotify.php:65 ../../include/network.php:1919 +#, php-format +msgid "%s Administrator" +msgstr "%s Administrador" + +#: ../../Zotlabs/Lib/Enotify.php:116 +#, php-format +msgid "%s " +msgstr "%s " + +#: ../../Zotlabs/Lib/Enotify.php:120 +#, php-format +msgid "[$Projectname:Notify] New mail received at %s" +msgstr "[$Projectname:Aviso] Nuevo correo recibido en %s" + +#: ../../Zotlabs/Lib/Enotify.php:122 +#, 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." + +#: ../../Zotlabs/Lib/Enotify.php:123 +#, php-format +msgid "%1$s sent you %2$s." +msgstr "%1$s le ha enviado %2$s." + +#: ../../Zotlabs/Lib/Enotify.php:123 +msgid "a private message" +msgstr "un mensaje privado" + +#: ../../Zotlabs/Lib/Enotify.php:124 +#, 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." + +#: ../../Zotlabs/Lib/Enotify.php:183 +#, 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]" + +#: ../../Zotlabs/Lib/Enotify.php:191 +#, 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] " + +#: ../../Zotlabs/Lib/Enotify.php:200 +#, 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]" + +#: ../../Zotlabs/Lib/Enotify.php:211 +#, php-format +msgid "[$Projectname:Notify] Comment to conversation #%1$d by %2$s" +msgstr "[$Projectname:Aviso] Nuevo comentario de %2$s en la conversación #%1$d" + +#: ../../Zotlabs/Lib/Enotify.php:212 +#, 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." + +#: ../../Zotlabs/Lib/Enotify.php:215 ../../Zotlabs/Lib/Enotify.php:292 +#: ../../Zotlabs/Lib/Enotify.php:309 ../../Zotlabs/Lib/Enotify.php:335 +#: ../../Zotlabs/Lib/Enotify.php:353 ../../Zotlabs/Lib/Enotify.php:367 +#, php-format +msgid "Please visit %s to view and/or reply to the conversation." +msgstr "Para ver o comentar la conversación, visite %s" + +#: ../../Zotlabs/Lib/Enotify.php:273 +#, php-format +msgid "%1$s, %2$s liked [zrl=%3$s]your %4$s[/zrl]" +msgstr "%1$s, %2$s ha mostrado su agrado por [zrl=%3$s]%4$s creado por usted[/zrl]" + +#: ../../Zotlabs/Lib/Enotify.php:288 +#, php-format +msgid "[$Projectname:Notify] Like received to conversation #%1$d by %2$s" +msgstr "[$Projectname:Aviso] \"Me gusta\" de %2$s en la conversación #%1$d" + +#: ../../Zotlabs/Lib/Enotify.php:289 +#, php-format +msgid "%1$s, %2$s liked an item/conversation you created." +msgstr "%1$s, %2$s ha mostrado su agrado por un elemento o conversación que ha creado usted." + +#: ../../Zotlabs/Lib/Enotify.php:300 +#, php-format +msgid "[$Projectname:Notify] %s posted to your profile wall" +msgstr "[$Projectname:Aviso] %s ha publicado una entrada en su página de inicio del perfil (\"muro\")" + +#: ../../Zotlabs/Lib/Enotify.php:302 +#, php-format +msgid "%1$s, %2$s posted to your profile wall at %3$s" +msgstr "%1$s, %2$s ha publicado en su página del perfil en %3$s" + +#: ../../Zotlabs/Lib/Enotify.php:304 +#, php-format +msgid "%1$s, %2$s posted to [zrl=%3$s]your wall[/zrl]" +msgstr "%1$s, %2$s ha publicado en [zrl=%3$s]su página del perfil[/zrl]" + +#: ../../Zotlabs/Lib/Enotify.php:328 +#, php-format +msgid "[$Projectname:Notify] %s tagged you" +msgstr "[$Projectname:Aviso] %s le ha etiquetado" + +#: ../../Zotlabs/Lib/Enotify.php:329 +#, php-format +msgid "%1$s, %2$s tagged you at %3$s" +msgstr "%1$s, %2$s le ha etiquetado en %3$s" + +#: ../../Zotlabs/Lib/Enotify.php:330 +#, php-format +msgid "%1$s, %2$s [zrl=%3$s]tagged you[/zrl]." +msgstr "%1$s, %2$s [zrl=%3$s]le etiquetó[/zrl]." + +#: ../../Zotlabs/Lib/Enotify.php:342 +#, php-format +msgid "[$Projectname:Notify] %1$s poked you" +msgstr "[$Projectname:Aviso] %1$s le ha dado un toque" + +#: ../../Zotlabs/Lib/Enotify.php:343 +#, php-format +msgid "%1$s, %2$s poked you at %3$s" +msgstr "%1$s, %2$s le ha dado un toque en %3$s" + +#: ../../Zotlabs/Lib/Enotify.php:344 +#, php-format +msgid "%1$s, %2$s [zrl=%2$s]poked you[/zrl]." +msgstr "%1$s, %2$s [zrl=%2$s]le ha dado un toque[/zrl]." + +#: ../../Zotlabs/Lib/Enotify.php:360 +#, php-format +msgid "[$Projectname:Notify] %s tagged your post" +msgstr "[$Projectname:Aviso] %s ha etiquetado su entrada" + +#: ../../Zotlabs/Lib/Enotify.php:361 +#, 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" + +#: ../../Zotlabs/Lib/Enotify.php:362 +#, php-format +msgid "%1$s, %2$s tagged [zrl=%3$s]your post[/zrl]" +msgstr "%1$s, %2$s ha etiquetado [zrl=%3$s]su publicación[/zrl]" + +#: ../../Zotlabs/Lib/Enotify.php:374 +msgid "[$Projectname:Notify] Introduction received" +msgstr "[$Projectname:Aviso] Ha recibido una solicitud de conexión" + +#: ../../Zotlabs/Lib/Enotify.php:375 +#, 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" + +#: ../../Zotlabs/Lib/Enotify.php:376 +#, 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." + +#: ../../Zotlabs/Lib/Enotify.php:380 ../../Zotlabs/Lib/Enotify.php:399 +#, php-format +msgid "You may visit their profile at %s" +msgstr "Puede visitar su perfil en %s" + +#: ../../Zotlabs/Lib/Enotify.php:382 +#, 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." + +#: ../../Zotlabs/Lib/Enotify.php:389 +msgid "[$Projectname:Notify] Friend suggestion received" +msgstr "[$Projectname:Aviso] Ha recibido una sugerencia de conexión" + +#: ../../Zotlabs/Lib/Enotify.php:390 +#, 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" + +#: ../../Zotlabs/Lib/Enotify.php:391 +#, 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." + +#: ../../Zotlabs/Lib/Enotify.php:397 +msgid "Name:" +msgstr "Nombre:" + +#: ../../Zotlabs/Lib/Enotify.php:398 +msgid "Photo:" +msgstr "Foto:" + +#: ../../Zotlabs/Lib/Enotify.php:401 +#, php-format +msgid "Please visit %s to approve or reject the suggestion." +msgstr "Por favor, visite %s para aprobar o rechazar la sugerencia." + +#: ../../Zotlabs/Lib/Enotify.php:619 +msgid "[$Projectname:Notify]" +msgstr "[$Projectname:Aviso]" + +#: ../../Zotlabs/Lib/Enotify.php:779 +msgid "created a new post" +msgstr "ha creado una nueva entrada" + +#: ../../Zotlabs/Lib/Enotify.php:780 +#, php-format +msgid "commented on %s's post" +msgstr "ha comentado la entrada de %s" + +#: ../../extend/addon/addon/adultphotoflag/adultphotoflag.php:24 +msgid "Flag Adult Photos" +msgstr "Indicador (\"flag\") de fotos de adultos" + +#: ../../extend/addon/addon/adultphotoflag/adultphotoflag.php:25 +msgid "" +"Provide photo edit option to hide inappropriate photos from default album " +"view" +msgstr "Proporcionar una opción de edición de fotos para ocultar las fotos inapropiadas de la vista de álbum predeterminada" + +#: ../../extend/addon/addon/chords/Mod_Chords.php:44 +msgid "" +"This is a fairly comprehensive and complete guitar chord dictionary which " +"will list most of the available ways to play a certain chord, starting from " +"the base of the fingerboard up to a few frets beyond the twelfth fret " +"(beyond which everything repeats). A couple of non-standard tunings are " +"provided for the benefit of slide players, etc." +msgstr "Se trata de un diccionario bastante amplio y completo de acordes de guitarra que enumerará la mayor parte de las formas disponibles para tocar un acorde determinado, partiendo de la base del diapasón hasta unos pocos trastes más allá del traste doce (más allá del cual todo se repite). Se proporcionan un par de afinaciones no convencionales para provecho de los guitarristas con \"slides\" ( barras de acero), etc." + +#: ../../extend/addon/addon/chords/Mod_Chords.php:46 +msgid "" +"Chord names start with a root note (A-G) and may include sharps (#) and " +"flats (b). This software will parse most of the standard naming conventions " +"such as maj, min, dim, sus(2 or 4), aug, with optional repeating elements." +msgstr "Los nombres de acordes comienzan con una nota fundamental (La-Sol) y pueden incluir sostenidos (#) y bemoles (b). Este software analizará la mayor parte de las convenciones de nomenclatura estándar como maj, min, tenue, SUS (2 ó 4), aug, con la repetición de elementos opcionales." + +#: ../../extend/addon/addon/chords/Mod_Chords.php:48 +msgid "" +"Valid examples include A, A7, Am7, Amaj7, Amaj9, Ammaj7, Aadd4, Asus2Add4, " +"E7b13b11 ..." +msgstr "Ejemplos válidos son A, A7, Am7, Amaj7, Amaj9, Ammaj7, Aadd4, Asus2Add4, E7b13b11 ..." + +#: ../../extend/addon/addon/chords/Mod_Chords.php:51 +msgid "Guitar Chords" +msgstr "Acordes de guitarra" + +#: ../../extend/addon/addon/chords/Mod_Chords.php:52 +msgid "The complete online chord dictionary" +msgstr "El diccionario completo de acordes en línea" + +#: ../../extend/addon/addon/chords/Mod_Chords.php:57 +msgid "Tuning" +msgstr "Afinación" + +#: ../../extend/addon/addon/chords/Mod_Chords.php:58 +msgid "Chord name: example: Em7" +msgstr "Nombre del acorde, por ejemplo: Em7" + +#: ../../extend/addon/addon/chords/Mod_Chords.php:59 +msgid "Show for left handed stringing" +msgstr "Mostrar para tocadores zurdos" + +#: ../../extend/addon/addon/chords/chords.php:33 +msgid "Quick Reference" +msgstr "Referencia rápida" + +#: ../../extend/addon/addon/diaspora/diaspora.php:671 +msgid "Diaspora Protocol Settings updated." +msgstr "Los ajustes del protocolo de Diaspora se han actualizado." + +#: ../../extend/addon/addon/diaspora/diaspora.php:692 +msgid "Enable the Diaspora protocol for this channel" +msgstr "Activar el protocolo de Diaspora para este canal" + +#: ../../extend/addon/addon/diaspora/diaspora.php:696 +msgid "Allow any Diaspora member to comment on your public posts" +msgstr "Permitir a cualquier miembro de Diaspora comentar sus entradas públicas" + +#: ../../extend/addon/addon/diaspora/diaspora.php:700 +msgid "Prevent your hashtags from being redirected to other sites" +msgstr "Impedir que sus \"hashtags\" sean redirigidos a otros sitios " + +#: ../../extend/addon/addon/diaspora/diaspora.php:705 +msgid "Followed hashtags (comma separated, do not include the #)" +msgstr "\"Hashtags\" seguidos (separados por comas, sin incluir #)" + +#: ../../extend/addon/addon/diaspora/diaspora.php:710 +msgid "Diaspora Protocol Settings" +msgstr "Ajustes del protocolo de Diaspora" + +#: ../../extend/addon/addon/dirstats/dirstats.php:94 +msgid "Hubzilla Directory Stats" +msgstr "Estadísticas de directorio de Hubzilla" + +#: ../../extend/addon/addon/dirstats/dirstats.php:95 +msgid "Total Hubs" +msgstr "Número total de servidores" + +#: ../../extend/addon/addon/dirstats/dirstats.php:97 +msgid "Hubzilla Hubs" +msgstr "Servidores (hubs) de Hubzilla" + +#: ../../extend/addon/addon/dirstats/dirstats.php:99 +msgid "Friendica Hubs" +msgstr "Servidores (hubs) de Friendica" + +#: ../../extend/addon/addon/dirstats/dirstats.php:101 +msgid "Diaspora Pods" +msgstr "Servidores (pods) de Diaspora" + +#: ../../extend/addon/addon/dirstats/dirstats.php:103 +msgid "Hubzilla Channels" +msgstr "Canales de Hubzilla" + +#: ../../extend/addon/addon/dirstats/dirstats.php:105 +msgid "Friendica Channels" +msgstr "Canales de Friendica" + +#: ../../extend/addon/addon/dirstats/dirstats.php:107 +msgid "Diaspora Channels" +msgstr "Canales de Diaspora" + +#: ../../extend/addon/addon/dirstats/dirstats.php:109 +msgid "Aged 35 and above" +msgstr "De 35 años de edad en adelante" + +#: ../../extend/addon/addon/dirstats/dirstats.php:111 +msgid "Aged 34 and under" +msgstr "De 34 o menos años de edad" + +#: ../../extend/addon/addon/dirstats/dirstats.php:113 +msgid "Average Age" +msgstr "Promedio de edad" + +#: ../../extend/addon/addon/dirstats/dirstats.php:115 +msgid "Known Chatrooms" +msgstr "Salas de chat conocidas" + +#: ../../extend/addon/addon/dirstats/dirstats.php:117 +msgid "Known Tags" +msgstr "Etiquetas conocidas" + +#: ../../extend/addon/addon/dirstats/dirstats.php:119 +msgid "" +"Please note Diaspora and Friendica statistics are merely those **this " +"directory** is aware of, and not all those known in the network. This also " +"applies to chatrooms," +msgstr "Tenga en cuenta que las estadísticas de Diaspora y Friendica se refieren únicamente a aquellas de las que **este directorio** es consciente, y no a todos los conocidos en la red. Esto también es aplicable a las salas de chat," + +#: ../../extend/addon/addon/donate/donate.php:21 +msgid "Project Servers and Resources" +msgstr "Servidores y recursos del proyecto" + +#: ../../extend/addon/addon/donate/donate.php:22 +msgid "Project Creator and Tech Lead" +msgstr "Creador del proyecto y director técnico" + +#: ../../extend/addon/addon/donate/donate.php:23 +msgid "Admin, developer, directorymin, support bloke" +msgstr "Administrador, desarrollador, administrador del directorio, trabajador de apoyo" + +#: ../../extend/addon/addon/donate/donate.php:50 +msgid "" +"And the hundreds of other people and organisations who helped make the " +"Hubzilla possible." +msgstr "Y los cientos de personas y organizaciones más que ayudaron a hacer posible Hubzilla." + +#: ../../extend/addon/addon/donate/donate.php:53 +msgid "" +"The Redmatrix/Hubzilla projects are provided primarily by volunteers giving " +"their time and expertise - and often paying out of pocket for services they " +"share with others." +msgstr "Los proyectos Redmatrix / Hubzilla están proporcionados principalmente por voluntarios que les prestan su tiempo y experiencia, pagando a menudo de su bolsillo por los servicios que comparten con otros." + +#: ../../extend/addon/addon/donate/donate.php:54 +msgid "" +"There is no corporate funding and no ads, and we do not collect and sell " +"your personal information. (We don't control your personal information - " +"you do.)" +msgstr "No hay financiación corporativa ni publicidad y no recogemos ni vendemos su información personal. (De hecho, no tenemos control sobre sus datos privados. Usted lo tiene.)" + +#: ../../extend/addon/addon/donate/donate.php:55 +msgid "" +"Help support our ground-breaking work in decentralisation, web identity, and" +" privacy." +msgstr "Ayude apoyando nuestro trabajo pionero en la descentralización, la identidad web, y la privacidad." + +#: ../../extend/addon/addon/donate/donate.php:57 +msgid "" +"Your donations keep servers and services running and also helps us to " +"provide innovative new features and continued development." +msgstr "Sus donaciones mantienen servidores y servicios en ejecución y también nos ayudan a proporcionar nuevas características innovadoras y a mantener el desarrollo de forma continuada." + +#: ../../extend/addon/addon/donate/donate.php:60 +msgid "Donate" +msgstr "Donar" + +#: ../../extend/addon/addon/donate/donate.php:62 +msgid "" +"Choose a project, developer, or public hub to support with a one-time " +"donation" +msgstr "Elija un proyecto, desarrollador, o \"hub\" público para apoyar con una donación de una sola vez" + +#: ../../extend/addon/addon/donate/donate.php:63 +msgid "Donate Now" +msgstr "Donar ahora" + +#: ../../extend/addon/addon/donate/donate.php:64 +msgid "" +"Or become a project sponsor (Hubzilla Project " +"only)" +msgstr "O convertirse en un patrocinador del proyecto (sólo del proyecto Hubzilla)" + +#: ../../extend/addon/addon/donate/donate.php:65 +msgid "" +"Please indicate if you would like your first name or full name (or nothing) " +"to appear in our sponsor listing" +msgstr "Por favor, indique si desea que su nombre de pila o el nombre completo (o nada) aparezca en nuestra lista de patrocinadores" + +#: ../../extend/addon/addon/donate/donate.php:66 +msgid "Sponsor" +msgstr "Patrocinador" + +#: ../../extend/addon/addon/donate/donate.php:69 +msgid "Special thanks to: " +msgstr "Agradecimiento especial a: " + +#: ../../extend/addon/addon/dwpost/dwpost.php:42 +msgid "Post to Dreamwidth" +msgstr "Publicar en Dreamwidth" + +#: ../../extend/addon/addon/dwpost/dwpost.php:73 +msgid "Enable Dreamwidth Post Plugin" +msgstr "Activar el plugin de publicación en Dreamwidth" + +#: ../../extend/addon/addon/dwpost/dwpost.php:77 +msgid "Dreamwidth username" +msgstr "Nombre de usuario en Dreamwidth" + +#: ../../extend/addon/addon/dwpost/dwpost.php:81 +msgid "Dreamwidth password" +msgstr "Contraseña en Dreamwidth" + +#: ../../extend/addon/addon/dwpost/dwpost.php:85 +msgid "Post to Dreamwidth by default" +msgstr "Publicar en Dreamwidth de forma predeterminada" + +#: ../../extend/addon/addon/dwpost/dwpost.php:89 +msgid "Dreamwidth Post Settings" +msgstr "Ajustes de publicación en Dreamwidth" + +#: ../../extend/addon/addon/flattrwidget/flattrwidget.php:45 +msgid "Flattr this!" +msgstr "¡Apoyar esto en Flattr!" + +#: ../../extend/addon/addon/flattrwidget/flattrwidget.php:83 +msgid "Flattr widget settings updated." +msgstr "Los ajustes del widget Flattr han sido actualizados." + +#: ../../extend/addon/addon/flattrwidget/flattrwidget.php:100 +msgid "Flattr user" +msgstr "Usuario en Flattr" + +#: ../../extend/addon/addon/flattrwidget/flattrwidget.php:104 +msgid "URL of the Thing to flattr" +msgstr "URL de la Cosa para apoyar en flattr" + +#: ../../extend/addon/addon/flattrwidget/flattrwidget.php:104 +msgid "If empty channel URL is used" +msgstr "Si está vacío, se usa la URL del canal" + +#: ../../extend/addon/addon/flattrwidget/flattrwidget.php:108 +msgid "Title of the Thing to flattr" +msgstr "Título de la Cosa para apoyar en flattr" + +#: ../../extend/addon/addon/flattrwidget/flattrwidget.php:108 +msgid "If empty \"channel name on The Hubzilla\" will be used" +msgstr "Si está vacío, se usará \"nombre del canal en Hubzilla\"" + +#: ../../extend/addon/addon/flattrwidget/flattrwidget.php:112 +msgid "Static or dynamic flattr button" +msgstr "Botón de flattr estático o dinámico" + +#: ../../extend/addon/addon/flattrwidget/flattrwidget.php:112 +msgid "static" +msgstr "estático" + +#: ../../extend/addon/addon/flattrwidget/flattrwidget.php:112 +msgid "dynamic" +msgstr "dinámico" + +#: ../../extend/addon/addon/flattrwidget/flattrwidget.php:116 +msgid "Alignment of the widget" +msgstr "Alineamiento del widget" + +#: ../../extend/addon/addon/flattrwidget/flattrwidget.php:116 +msgid "left" +msgstr "izquierda" + +#: ../../extend/addon/addon/flattrwidget/flattrwidget.php:116 +msgid "right" +msgstr "derecha" + +#: ../../extend/addon/addon/flattrwidget/flattrwidget.php:120 +msgid "Enable Flattr widget" +msgstr "Habilitar el widget Flattr" + +#: ../../extend/addon/addon/flattrwidget/flattrwidget.php:124 +msgid "Flattr Widget Settings" +msgstr "Ajustes del widget Flattr" + +#: ../../extend/addon/addon/friendica/dfrn_confirm.php:118 +msgid "Contact not found." +msgstr "No se ha encontrado el contacto." + +#: ../../extend/addon/addon/friendica/dfrn_confirm.php:119 +msgid "" +"This may occasionally happen if contact was requested by both persons and it" +" has already been approved." +msgstr "Esto puede ocurrir de vez en cuando si el contacto fue solicitado por ambas personas y ya había sido aprobado." + +#: ../../extend/addon/addon/friendica/dfrn_confirm.php:238 +msgid "Response from remote site was not understood." +msgstr "No se entendió la respuesta del sitio remoto." + +#: ../../extend/addon/addon/friendica/dfrn_confirm.php:247 +#: ../../extend/addon/addon/friendica/dfrn_confirm.php:252 +msgid "Unexpected response from remote site: " +msgstr "Respuesta inesperada desde el sitio remoto: " + +#: ../../extend/addon/addon/friendica/dfrn_confirm.php:261 +msgid "Confirmation completed successfully." +msgstr "La confirmación se ha completado satisfactoriamente." + +#: ../../extend/addon/addon/friendica/dfrn_confirm.php:263 +#: ../../extend/addon/addon/friendica/dfrn_confirm.php:277 +#: ../../extend/addon/addon/friendica/dfrn_confirm.php:284 +msgid "Remote site reported: " +msgstr "El sitio remoto informó: " + +#: ../../extend/addon/addon/friendica/dfrn_confirm.php:275 +msgid "Temporary failure. Please wait and try again." +msgstr "Fallo temporal. Por favor, espere e inténtelo de nuevo." + +#: ../../extend/addon/addon/friendica/dfrn_confirm.php:282 +msgid "Introduction failed or was revoked." +msgstr "La solicitud ha fallado o ha sido revocada." + +#: ../../extend/addon/addon/friendica/dfrn_confirm.php:428 +msgid "Unable to set contact photo." +msgstr "No se puede establecer la foto del contacto." + +#: ../../extend/addon/addon/friendica/dfrn_confirm.php:485 +#, php-format +msgid "%1$s is now friends with %2$s" +msgstr "%1$s es amigo ahora de %2$s" + +#: ../../extend/addon/addon/friendica/dfrn_confirm.php:570 +#, php-format +msgid "No user record found for '%s' " +msgstr "No se encuentra ningún registro de usuario para '%s' " + +#: ../../extend/addon/addon/friendica/dfrn_confirm.php:580 +msgid "Our site encryption key is apparently messed up." +msgstr "La clave de cifrado de nuestro sitio está aparentemente en mal estado." + +#: ../../extend/addon/addon/friendica/dfrn_confirm.php:591 +msgid "Empty site URL was provided or URL could not be decrypted by us." +msgstr "Se ha proporcionado la URL de un sitio inexistente o la URL no ha podido ser descifrada por nosotros." + +#: ../../extend/addon/addon/friendica/dfrn_confirm.php:612 +msgid "Contact record was not found for you on our site." +msgstr "No se ha encontrado un registro de contacto para usted en nuestro sitio." + +#: ../../extend/addon/addon/friendica/dfrn_confirm.php:626 +#, php-format +msgid "Site public key not available in contact record for URL %s." +msgstr "La clave del sitio público no está disponible en el registro de contacto para la URL %s." + +#: ../../extend/addon/addon/friendica/dfrn_confirm.php:646 +msgid "" +"The ID provided by your system is a duplicate on our system. It should work " +"if you try again." +msgstr "La ID proporcionada por su sistema está duplicada en el nuestro. Debería funcionar si lo intenta de nuevo." + +#: ../../extend/addon/addon/friendica/dfrn_confirm.php:657 +msgid "Unable to set your contact credentials on our system." +msgstr "No se pueden establecer sus credenciales de contacto en nuestro sistema." + +#: ../../extend/addon/addon/friendica/dfrn_confirm.php:724 +msgid "Unable to update your contact profile details on our system" +msgstr "No se pueden actualizar los detalles del perfil de su contacto en nuestro sistema" + +#: ../../extend/addon/addon/friendica/dfrn_confirm.php:751 +#: ../../extend/addon/addon/friendica/dfrn_request.php:749 +msgid "[Name Withheld]" +msgstr "[Nombre omitido]" + +#: ../../extend/addon/addon/friendica/dfrn_confirm.php:796 +#, php-format +msgid "%1$s has joined %2$s" +msgstr "%1$s se ha unido a %2$s" + +#: ../../extend/addon/addon/friendica/dfrn_poll.php:103 +#: ../../extend/addon/addon/friendica/dfrn_poll.php:536 +#, php-format +msgid "%1$s welcomes %2$s" +msgstr "%1$s da la bienvenida a %2$s" + +#: ../../extend/addon/addon/friendica/dfrn_request.php:102 +msgid "This introduction has already been accepted." +msgstr "Esta solicitud ya ha sido aceptada." + +#: ../../extend/addon/addon/friendica/dfrn_request.php:123 +#: ../../extend/addon/addon/friendica/dfrn_request.php:528 +msgid "Profile location is not valid or does not contain profile information." +msgstr "La ubicación del perfil no es válida o no contiene información del perfil." + +#: ../../extend/addon/addon/friendica/dfrn_request.php:128 +#: ../../extend/addon/addon/friendica/dfrn_request.php:533 +msgid "Warning: profile location has no identifiable owner name." +msgstr "Advertencia: el perfil de la ubicación no tiene un nombre de propietario identificable." + +#: ../../extend/addon/addon/friendica/dfrn_request.php:130 +#: ../../extend/addon/addon/friendica/dfrn_request.php:535 +msgid "Warning: profile location has no profile photo." +msgstr "Advertencia: el perfil de la ubicación no tiene ninguna foto de perfil." + +#: ../../extend/addon/addon/friendica/dfrn_request.php:133 +#: ../../extend/addon/addon/friendica/dfrn_request.php:538 +#, php-format +msgid "%d required parameter was not found at the given location" +msgid_plural "%d required parameters were not found at the given location" +msgstr[0] "Los parámetros requeridos de %d no se han encontrado en la localización proporcionada" +msgstr[1] "Los parámetros requeridos de %d no se han encontrado en la localización proporcionada" + +#: ../../extend/addon/addon/friendica/dfrn_request.php:180 +msgid "Introduction complete." +msgstr "Solicitud completa." + +#: ../../extend/addon/addon/friendica/dfrn_request.php:224 +msgid "Unrecoverable protocol error." +msgstr "Error irrecuperable de protocolo." + +#: ../../extend/addon/addon/friendica/dfrn_request.php:252 +msgid "Profile unavailable." +msgstr "Perfil no disponible." + +#: ../../extend/addon/addon/friendica/dfrn_request.php:277 +#, php-format +msgid "%s has received too many connection requests today." +msgstr "%s ha recibido demasiadas peticiones de conexión hoy." + +#: ../../extend/addon/addon/friendica/dfrn_request.php:278 +msgid "Spam protection measures have been invoked." +msgstr "Se han activado las medidas de protección contra el spam." + +#: ../../extend/addon/addon/friendica/dfrn_request.php:279 +msgid "Friends are advised to please try again in 24 hours." +msgstr "Se aconseja a los amigos que por favor lo intenten de nuevo en 24 horas." + +#: ../../extend/addon/addon/friendica/dfrn_request.php:341 +msgid "Invalid locator" +msgstr "Localizador no válido" + +#: ../../extend/addon/addon/friendica/dfrn_request.php:350 +msgid "Invalid email address." +msgstr "Dirección de correo no válida." + +#: ../../extend/addon/addon/friendica/dfrn_request.php:377 +msgid "This account has not been configured for email. Request failed." +msgstr "Esta cuenta no se ha configurado para el correo electrónico. La petición ha fallado." + +#: ../../extend/addon/addon/friendica/dfrn_request.php:473 +msgid "Unable to resolve your name at the provided location." +msgstr "No se puede resolver el nombre en la localización proporcionada." + +#: ../../extend/addon/addon/friendica/dfrn_request.php:486 +msgid "You have already introduced yourself here." +msgstr "Ya se ha inscrito usted mismo aquí." + +#: ../../extend/addon/addon/friendica/dfrn_request.php:490 +#, php-format +msgid "Apparently you are already friends with %s." +msgstr "Al parecer ya es amigo de %s" + +#: ../../extend/addon/addon/friendica/dfrn_request.php:511 +msgid "Invalid profile URL." +msgstr "URL del perfil no válida." + +#: ../../extend/addon/addon/friendica/dfrn_request.php:517 +msgid "Disallowed profile URL." +msgstr "No se ha permitido la URL del perfil." + +#: ../../extend/addon/addon/friendica/dfrn_request.php:587 +msgid "Failed to update contact record." +msgstr "Se ha producido un error al actualizar el registro del contacto." + +#: ../../extend/addon/addon/friendica/dfrn_request.php:608 +msgid "Your introduction has been sent." +msgstr "Su solicitud ha sido enviada." + +#: ../../extend/addon/addon/friendica/dfrn_request.php:662 +msgid "Please login to confirm introduction." +msgstr "Por favor, inicie sesión para confirmar la solicitud." + +#: ../../extend/addon/addon/friendica/dfrn_request.php:676 +msgid "" +"Incorrect identity currently logged in. Please login to " +"this profile." +msgstr "Actualmente su identidad en el sistema es incorrecta. Por favor, inicie sesión en este perfil." + +#: ../../extend/addon/addon/friendica/dfrn_request.php:690 +#: ../../extend/addon/addon/friendica/dfrn_request.php:707 +msgid "Confirm" +msgstr "Confirmar" + +#: ../../extend/addon/addon/friendica/dfrn_request.php:702 +msgid "Hide this contact" +msgstr "Ocultar este contacto" + +#: ../../extend/addon/addon/friendica/dfrn_request.php:705 +#, php-format +msgid "Welcome home %s." +msgstr "Bienvenido a la página principal %s." + +#: ../../extend/addon/addon/friendica/dfrn_request.php:706 +#, php-format +msgid "Please confirm your introduction/connection request to %s." +msgstr "Por favor, confirme su solicitud de conexión a %s." + +#: ../../extend/addon/addon/friendica/dfrn_request.php:836 +msgid "" +"Please enter your 'Identity Address' from one of the following supported " +"communications networks:" +msgstr "Por favor, elija su 'dirección identificativa' de entre las siguientes redes de comunicación soportadas: " + +#: ../../extend/addon/addon/friendica/dfrn_request.php:857 +#, php-format +msgid "" +"If you are not yet a member of the free social web, follow this link to find a public Friendica site and " +"join us today." +msgstr "Si aún no es miembro de las redes sociales libres, siga este enlace para encontrar un sitio público de Friendica y unirse a nosotros hoy." + +#: ../../extend/addon/addon/friendica/dfrn_request.php:862 +msgid "Friend/Connection Request" +msgstr "Solicitud de conexión o amistad" + +#: ../../extend/addon/addon/friendica/dfrn_request.php:863 +msgid "" +"Examples: jojo@demo.friendica.com, http://demo.friendica.com/profile/jojo, " +"testuser@identi.ca" +msgstr "Ejemplos: jojo@demo.friendica.com, http://demo.friendica.com/profile/jojo, testuser@identi.ca" + +#: ../../extend/addon/addon/friendica/dfrn_request.php:864 +msgid "Please answer the following:" +msgstr "Por favor, responda a lo siguiente: " + +#: ../../extend/addon/addon/friendica/dfrn_request.php:865 +#, php-format +msgid "Does %s know you?" +msgstr "¿%s le conoce?" + +#: ../../extend/addon/addon/friendica/dfrn_request.php:869 +msgid "Add a personal note:" +msgstr "Añadir un comentario personal: " + +#: ../../extend/addon/addon/friendica/dfrn_request.php:871 +#: ../../include/network.php:2232 ../../include/network.php:2233 +msgid "Friendica" +msgstr "Friendica" + +#: ../../extend/addon/addon/friendica/dfrn_request.php:872 +msgid "StatusNet/Federated Social Web" +msgstr "Red social federada StatusNet" + +#: ../../extend/addon/addon/friendica/dfrn_request.php:873 +#: ../../include/network.php:2238 +msgid "Diaspora" +msgstr "Diaspora" + +#: ../../extend/addon/addon/friendica/dfrn_request.php:874 +#, php-format +msgid "" +" - please do not use this form. Instead, enter %s into your Diaspora search" +" bar." +msgstr "- Por favor, no use este formato. En su lugar, escriba %s en la barra de búsqueda de Diaspora." + +#: ../../extend/addon/addon/friendica/dfrn_request.php:875 +msgid "Your Identity Address:" +msgstr "Su dirección identificativa: " + +#: ../../extend/addon/addon/friendica/dfrn_request.php:878 +msgid "Submit Request" +msgstr "Enviar la solicitud" + +#: ../../extend/addon/addon/friendica/friendica.php:113 +#: ../../extend/addon/addon/gnusoc/gnusoc.php:114 +msgid "GNU-Social Protocol Settings updated." +msgstr "Se han actualizado los ajustes del protocolo de GNU-Social." + +#: ../../extend/addon/addon/friendica/friendica.php:124 +msgid "Enable the (experimental) GNU-Social protocol for this channel" +msgstr "Activar el protocolo (experimental) de GNU-Social para este canal" + +#: ../../extend/addon/addon/friendica/friendica.php:128 +#: ../../extend/addon/addon/gnusoc/gnusoc.php:129 +msgid "GNU-Social Protocol Settings" +msgstr "Ajustes del protocolo de GNU-Social" + +#: ../../extend/addon/addon/friendica/friendica.php:185 +#: ../../extend/addon/addon/gnusoc/gnusoc.php:319 +msgid "Follow" +msgstr "Seguir" + +#: ../../extend/addon/addon/friendica/friendica.php:188 +#: ../../extend/addon/addon/gnusoc/gnusoc.php:322 +#, php-format +msgid "%1$s is now following %2$s" +msgstr "%1$s está siguiendo ahora a %2$s" + +#: ../../extend/addon/addon/frphotos/frphotos.php:91 +msgid "Friendica Photo Album Import" +msgstr "Importar un álbum de fotos de Friendica" + +#: ../../extend/addon/addon/frphotos/frphotos.php:92 +msgid "This will import all your Friendica photo albums to this Red channel." +msgstr "Esto importará todos sus álbumes de fotos de Friendica a este canal de Hubzilla." + +#: ../../extend/addon/addon/frphotos/frphotos.php:93 +msgid "Friendica Server base URL" +msgstr "URL base del servidor de Friendica" + +#: ../../extend/addon/addon/frphotos/frphotos.php:94 +msgid "Friendica Login Username" +msgstr "Nombre de inicio de sesión en Friendica" + +#: ../../extend/addon/addon/frphotos/frphotos.php:95 +msgid "Friendica Login Password" +msgstr "Contraseña de inicio de sesión en Friendica" + +#: ../../extend/addon/addon/gnusoc/gnusoc.php:125 +msgid "Enable the GNU-Social protocol for this channel" +msgstr "Activar el protocolo de GNU-Social para este canal" + +#: ../../extend/addon/addon/hubwall/hubwall.php:19 +msgid "Send email to all members" +msgstr "Enviar un correo electrónico a todos los miembros" + +#: ../../extend/addon/addon/hubwall/hubwall.php:33 +#, php-format +msgid "$1%s Administrator" +msgstr "Administrador de $1%s " + +#: ../../extend/addon/addon/hubwall/hubwall.php:50 +#: ../../extend/addon/addon/mailtest/mailtest.php:50 +msgid "No recipients found." +msgstr "No se han encontrado destinatarios." + +#: ../../extend/addon/addon/hubwall/hubwall.php:73 +#, php-format +msgid "%1$d of %2$d messages sent." +msgstr "%1$d de %2$d mensajes enviados." + +#: ../../extend/addon/addon/hubwall/hubwall.php:81 +msgid "Send email to all hub members." +msgstr "Enviar un correo electrónico a todos los miembros del hub." + +#: ../../extend/addon/addon/hubwall/hubwall.php:92 +#: ../../extend/addon/addon/mailtest/mailtest.php:96 +msgid "Message subject" +msgstr "Asunto del mensaje" + +#: ../../extend/addon/addon/hubwall/hubwall.php:93 +msgid "Sender Email address" +msgstr "Dirección de correo electrónico del remitente" + +#: ../../extend/addon/addon/hubwall/hubwall.php:94 +msgid "Test mode (only send to hub administrator)" +msgstr "Modo de prueba (enviar sólo al administrador del hub)" + +#: ../../extend/addon/addon/ijpost/ijpost.php:42 +msgid "Post to Insanejournal" +msgstr "Publicar en Insanejournal" + +#: ../../extend/addon/addon/ijpost/ijpost.php:73 +msgid "Enable InsaneJournal Post Plugin" +msgstr "Habilitar el plugin de publicación en InsaneJournal" + +#: ../../extend/addon/addon/ijpost/ijpost.php:77 +msgid "InsaneJournal username" +msgstr "Nombre de usuario en InsaneJournal" + +#: ../../extend/addon/addon/ijpost/ijpost.php:81 +msgid "InsaneJournal password" +msgstr "Contraseña en InsaneJournal" + +#: ../../extend/addon/addon/ijpost/ijpost.php:85 +msgid "Post to InsaneJournal by default" +msgstr "Publicar por defecto en InsaneJournal" + +#: ../../extend/addon/addon/ijpost/ijpost.php:89 +msgid "InsaneJournal Post Settings" +msgstr "Ajustes de publicación en InsaneJournal" + +#: ../../extend/addon/addon/ijpost/ijpost.php:104 +msgid "Insane Journal Settings saved." +msgstr "Se han guardado los ajustes de InsaneJournal." + +#: ../../extend/addon/addon/irc/irc.php:45 +msgid "Channels to auto connect" +msgstr "Canales para conexión automática" + +#: ../../extend/addon/addon/irc/irc.php:45 +#: ../../extend/addon/addon/irc/irc.php:49 +msgid "Comma separated list" +msgstr "Lista separada por comas" + +#: ../../extend/addon/addon/irc/irc.php:49 +#: ../../extend/addon/addon/irc/irc.php:96 +msgid "Popular Channels" +msgstr "Canales populares" + +#: ../../extend/addon/addon/irc/irc.php:53 +msgid "IRC Settings" +msgstr "Ajustes de IRC" + +#: ../../extend/addon/addon/irc/irc.php:69 +msgid "IRC settings saved." +msgstr "Se han guardado los ajustes de IRC." + +#: ../../extend/addon/addon/irc/irc.php:74 +msgid "IRC Chatroom" +msgstr "Sala de chat IRC" + +#: ../../extend/addon/addon/jappixmini/jappixmini.php:305 +#: ../../include/channel.php:1056 ../../include/channel.php:1218 +msgid "Status:" +msgstr "Estado:" + +#: ../../extend/addon/addon/jappixmini/jappixmini.php:309 +msgid "Activate addon" +msgstr "Habilitar complemento" + +#: ../../extend/addon/addon/jappixmini/jappixmini.php:313 +msgid "Hide Jappixmini Chat-Widget from the webinterface" +msgstr "Ocultar el widget de chat Jappixmini en la interfaz web" + +#: ../../extend/addon/addon/jappixmini/jappixmini.php:318 +msgid "Jabber username" +msgstr "Nombre de usuario en Jabber" + +#: ../../extend/addon/addon/jappixmini/jappixmini.php:324 +msgid "Jabber server" +msgstr "Servidor de Jabber" + +#: ../../extend/addon/addon/jappixmini/jappixmini.php:330 +msgid "Jabber BOSH host URL" +msgstr "URL del host BOSH de Jabber" + +#: ../../extend/addon/addon/jappixmini/jappixmini.php:337 +msgid "Jabber password" +msgstr "Contraseña en Jabber" + +#: ../../extend/addon/addon/jappixmini/jappixmini.php:343 +msgid "Encrypt Jabber password with Hubzilla password" +msgstr "Cifrar la contraseña de Jabber con la contraseña de Hubzilla" + +#: ../../extend/addon/addon/jappixmini/jappixmini.php:347 +#: ../../extend/addon/addon/redred/redred.php:115 +msgid "Hubzilla password" +msgstr "Contraseña de Hubzilla" + +#: ../../extend/addon/addon/jappixmini/jappixmini.php:351 +#: ../../extend/addon/addon/jappixmini/jappixmini.php:355 +msgid "Approve subscription requests from Hubzilla contacts automatically" +msgstr "Aprobar automáticamente las solicitudes de suscripción de los contactos de Hubzilla" + +#: ../../extend/addon/addon/jappixmini/jappixmini.php:359 +msgid "Purge internal list of jabber addresses of contacts" +msgstr "Purgar la lista interna de las direcciones de contactos de jabber" + +#: ../../extend/addon/addon/jappixmini/jappixmini.php:364 +msgid "Configuration Help" +msgstr "Ayuda para los ajustes" + +#: ../../extend/addon/addon/jappixmini/jappixmini.php:368 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1149 +msgid "Add Contact" +msgstr "Añadir un contacto" + +#: ../../extend/addon/addon/jappixmini/jappixmini.php:371 +msgid "Jappix Mini Settings" +msgstr "Ajustes de Jappix Mini" + +#: ../../extend/addon/addon/js_upload/js_upload.php:44 +msgid "Upload a file" +msgstr "Subir un fichero" + +#: ../../extend/addon/addon/js_upload/js_upload.php:45 +msgid "Drop files here to upload" +msgstr "Arrastre los ficheros aquí para subirlos" + +#: ../../extend/addon/addon/js_upload/js_upload.php:47 +msgid "Failed" +msgstr "Ha fallado" + +#: ../../extend/addon/addon/js_upload/js_upload.php:315 +msgid "No files were uploaded." +msgstr "No se han subido ficheros." + +#: ../../extend/addon/addon/js_upload/js_upload.php:322 +msgid "Uploaded file is empty" +msgstr "El fichero subido está vacío" + +#: ../../extend/addon/addon/js_upload/js_upload.php:335 +msgid "Image exceeds size limit of " +msgstr "La imagen supera el límite de tamaño de " + +#: ../../extend/addon/addon/js_upload/js_upload.php:347 +msgid "File has an invalid extension, it should be one of " +msgstr "El fichero tiene una extensión no válida, debería ser una de estas: " + +#: ../../extend/addon/addon/js_upload/js_upload.php:359 +msgid "Upload was cancelled, or server error encountered" +msgstr "Se canceló la carga o se encontró un error del servidor" + +#: ../../extend/addon/addon/ldapauth/ldapauth.php:61 +msgid "An account has been created for you." +msgstr "Se ha creado una cuenta para usted." + +#: ../../extend/addon/addon/ldapauth/ldapauth.php:68 +msgid "Authentication successful but rejected: account creation is disabled." +msgstr "Autenticación correcta pero rechazada: la creación de cuentas está deshabilitada." + +#: ../../extend/addon/addon/libertree/libertree.php:38 +msgid "Post to Libertree" +msgstr "Publicar en Libertree" + +#: ../../extend/addon/addon/libertree/libertree.php:69 +msgid "Enable Libertree Post Plugin" +msgstr "Habilitar el plugin de publicación en Libertree" + +#: ../../extend/addon/addon/libertree/libertree.php:73 +msgid "Libertree API token" +msgstr "Token de la API de Libertree" + +#: ../../extend/addon/addon/libertree/libertree.php:77 +msgid "Libertree site URL" +msgstr "URL del servidor de Libertree" + +#: ../../extend/addon/addon/libertree/libertree.php:81 +msgid "Post to Libertree by default" +msgstr "Publicar en Libertree por defecto" + +#: ../../extend/addon/addon/libertree/libertree.php:85 +msgid "Libertree Post Settings" +msgstr "Ajustes de publicación en Libertree" + +#: ../../extend/addon/addon/libertree/libertree.php:99 +msgid "Libertree Settings saved." +msgstr "Se han guardado los ajustes de Libertree." + +#: ../../extend/addon/addon/ljpost/ljpost.php:42 +msgid "Post to LiveJournal" +msgstr "Publicar en LiveJournal" + +#: ../../extend/addon/addon/ljpost/ljpost.php:70 +msgid "Enable LiveJournal Post Plugin" +msgstr "Habilitar el plugin de publicación en LiveJournal" + +#: ../../extend/addon/addon/ljpost/ljpost.php:74 +msgid "LiveJournal username" +msgstr "Nombre de usuario en LiveJournal" + +#: ../../extend/addon/addon/ljpost/ljpost.php:78 +msgid "LiveJournal password" +msgstr "Contraseña en LiveJournal" + +#: ../../extend/addon/addon/ljpost/ljpost.php:82 +msgid "Post to LiveJournal by default" +msgstr "Publicar en LiveJournal por defecto" + +#: ../../extend/addon/addon/ljpost/ljpost.php:86 +msgid "LiveJournal Post Settings" +msgstr "Ajustes de publicación en LiveJournal" + +#: ../../extend/addon/addon/ljpost/ljpost.php:101 +msgid "LiveJournal Settings saved." +msgstr "Se han guardado los ajustes de LiveJournal." + +#: ../../extend/addon/addon/logrot/logrot.php:36 +msgid "Logfile archive directory" +msgstr "Directorio de los ficheros de informe" + +#: ../../extend/addon/addon/logrot/logrot.php:36 +msgid "Directory to store rotated logs" +msgstr "Directorio para almacenar los informes rotados" + +#: ../../extend/addon/addon/logrot/logrot.php:37 +msgid "Logfile size in bytes before rotating" +msgstr "Tamaño del fichero de informe en bytes antes de rotarlo" + +#: ../../extend/addon/addon/logrot/logrot.php:38 +msgid "Number of logfiles to retain" +msgstr "Número de ficheros de informe que se deben retener" + +#: ../../extend/addon/addon/mailhost/mailhost.php:36 +msgid "Email notification hub" +msgstr "Notificación por correo electrónico del hub" + +#: ../../extend/addon/addon/mailhost/mailhost.php:36 +msgid "Hostname" +msgstr "Nombre del host" + +#: ../../extend/addon/addon/mailhost/mailhost.php:40 +msgid "Mailhost Settings" +msgstr "Ajustes de Mailhost" + +#: ../../extend/addon/addon/mailhost/mailhost.php:54 +msgid "MAILHOST Settings saved." +msgstr "Se han guardado los ajustes de MAILHOST." + +#: ../../extend/addon/addon/moremoods/moremoods.php:19 +msgid "lonely" +msgstr "Solo/a" + +#: ../../extend/addon/addon/moremoods/moremoods.php:20 +msgid "drunk" +msgstr "ebrio/a" + +#: ../../extend/addon/addon/moremoods/moremoods.php:21 +msgid "horny" +msgstr "caliente" + +#: ../../extend/addon/addon/moremoods/moremoods.php:22 +msgid "stoned" +msgstr "drogado/a" + +#: ../../extend/addon/addon/moremoods/moremoods.php:23 +msgid "fucked up" +msgstr "jodido/a" + +#: ../../extend/addon/addon/moremoods/moremoods.php:24 +msgid "clusterfucked" +msgstr "hecho/a polvo" + +#: ../../extend/addon/addon/moremoods/moremoods.php:25 +msgid "crazy" +msgstr "loco/a" + +#: ../../extend/addon/addon/moremoods/moremoods.php:26 +msgid "hurt" +msgstr "ofendido/a" + +#: ../../extend/addon/addon/moremoods/moremoods.php:27 +msgid "sleepy" +msgstr "soñoliento/a" + +#: ../../extend/addon/addon/moremoods/moremoods.php:28 +msgid "grumpy" +msgstr "gruñón/ona" + +#: ../../extend/addon/addon/moremoods/moremoods.php:29 +msgid "high" +msgstr "superior" + +#: ../../extend/addon/addon/moremoods/moremoods.php:30 +msgid "semi-conscious" +msgstr "semiconsciente" + +#: ../../extend/addon/addon/moremoods/moremoods.php:31 +msgid "in love" +msgstr "enamorado/a" + +#: ../../extend/addon/addon/moremoods/moremoods.php:32 +msgid "in lust" +msgstr "lujurioso/a" + +#: ../../extend/addon/addon/moremoods/moremoods.php:33 +msgid "naked" +msgstr "desnudo/a" + +#: ../../extend/addon/addon/moremoods/moremoods.php:34 +msgid "stinky" +msgstr "apestoso/a" + +#: ../../extend/addon/addon/moremoods/moremoods.php:35 +msgid "sweaty" +msgstr "sudoroso/a" + +#: ../../extend/addon/addon/moremoods/moremoods.php:36 +msgid "bleeding out" +msgstr "desangrado/a" + +#: ../../extend/addon/addon/moremoods/moremoods.php:37 +msgid "victorious" +msgstr "victorioso/a" + +#: ../../extend/addon/addon/moremoods/moremoods.php:38 +msgid "defeated" +msgstr "derrotado/a" + +#: ../../extend/addon/addon/moremoods/moremoods.php:39 +msgid "envious" +msgstr "envidioso/a" + +#: ../../extend/addon/addon/moremoods/moremoods.php:40 +msgid "jealous" +msgstr "celoso/a" + +#: ../../extend/addon/addon/morepokes/morepokes.php:19 +msgid "bitchslap" +msgstr "una bofetada humillante" + +#: ../../extend/addon/addon/morepokes/morepokes.php:19 +msgid "bitchslapped" +msgstr "ha abofeteado de forma humillante a" + +#: ../../extend/addon/addon/morepokes/morepokes.php:20 +msgid "shag" +msgstr "unas pelusas" + +#: ../../extend/addon/addon/morepokes/morepokes.php:20 +msgid "shagged" +msgstr "ha dejado exhausto/a a" + +#: ../../extend/addon/addon/morepokes/morepokes.php:21 +msgid "patent" +msgstr "una patente" + +#: ../../extend/addon/addon/morepokes/morepokes.php:21 +msgid "patented" +msgstr "ha patentado a" + +#: ../../extend/addon/addon/morepokes/morepokes.php:22 +msgid "hug" +msgstr "un abrazo" + +#: ../../extend/addon/addon/morepokes/morepokes.php:22 +msgid "hugged" +msgstr "ha abrazado a" + +#: ../../extend/addon/addon/morepokes/morepokes.php:23 +msgid "murder" +msgstr "un asesinato" + +#: ../../extend/addon/addon/morepokes/morepokes.php:23 +msgid "murdered" +msgstr "ha asesinado a" + +#: ../../extend/addon/addon/morepokes/morepokes.php:24 +msgid "worship" +msgstr "una alabanza" + +#: ../../extend/addon/addon/morepokes/morepokes.php:24 +msgid "worshipped" +msgstr "ha elogiado a" + +#: ../../extend/addon/addon/morepokes/morepokes.php:25 +msgid "kiss" +msgstr "un beso" + +#: ../../extend/addon/addon/morepokes/morepokes.php:25 +msgid "kissed" +msgstr "ha besado a" + +#: ../../extend/addon/addon/morepokes/morepokes.php:26 +msgid "tempt" +msgstr "una tentación" + +#: ../../extend/addon/addon/morepokes/morepokes.php:26 +msgid "tempted" +msgstr "ha tentado a" + +#: ../../extend/addon/addon/morepokes/morepokes.php:27 +msgid "raise eyebrows at" +msgstr "un levantamiento de cejas" + +#: ../../extend/addon/addon/morepokes/morepokes.php:27 +msgid "raised their eyebrows at" +msgstr "ha levantado las cejas a" + +#: ../../extend/addon/addon/morepokes/morepokes.php:28 +msgid "insult" +msgstr "un insulto" + +#: ../../extend/addon/addon/morepokes/morepokes.php:28 +msgid "insulted" +msgstr "ha insultado a" + +#: ../../extend/addon/addon/morepokes/morepokes.php:29 +msgid "praise" +msgstr "un elogio" + +#: ../../extend/addon/addon/morepokes/morepokes.php:29 +msgid "praised" +msgstr "ha elogiado a" + +#: ../../extend/addon/addon/morepokes/morepokes.php:30 +msgid "be dubious of" +msgstr "una duda" + +#: ../../extend/addon/addon/morepokes/morepokes.php:30 +msgid "was dubious of" +msgstr "estaba dudoso de" + +#: ../../extend/addon/addon/morepokes/morepokes.php:31 +msgid "eat" +msgstr "una comida" + +#: ../../extend/addon/addon/morepokes/morepokes.php:31 +msgid "ate" +msgstr "ha comido" + +#: ../../extend/addon/addon/morepokes/morepokes.php:32 +msgid "giggle and fawn at" +msgstr "una sonrisa aduladora" + +#: ../../extend/addon/addon/morepokes/morepokes.php:32 +msgid "giggled and fawned at" +msgstr "ha sonreído y adulado a" + +#: ../../extend/addon/addon/morepokes/morepokes.php:33 +msgid "doubt" +msgstr "una duda" + +#: ../../extend/addon/addon/morepokes/morepokes.php:33 +msgid "doubted" +msgstr "ha dudado de" + +#: ../../extend/addon/addon/morepokes/morepokes.php:34 +msgid "glare" +msgstr "una mirada furiosa" + +#: ../../extend/addon/addon/morepokes/morepokes.php:34 +msgid "glared at" +msgstr "ha mirado con furia a" + +#: ../../extend/addon/addon/morepokes/morepokes.php:35 +msgid "fuck" +msgstr "un polvo" + +#: ../../extend/addon/addon/morepokes/morepokes.php:35 +msgid "fucked" +msgstr "ha jodido a" + +#: ../../extend/addon/addon/morepokes/morepokes.php:36 +msgid "bonk" +msgstr "un golpe" + +#: ../../extend/addon/addon/morepokes/morepokes.php:36 +msgid "bonked" +msgstr "ha golpeado a" + +#: ../../extend/addon/addon/morepokes/morepokes.php:37 +msgid "declare undying love for" +msgstr "una declaración de amor eterno" + +#: ../../extend/addon/addon/morepokes/morepokes.php:37 +msgid "declared undying love for" +msgstr "ha declarado amor eterno" + +#: ../../extend/addon/addon/msgfooter/msgfooter.php:46 +#: ../../extend/addon/addon/xmpp/xmpp.php:91 +msgid "Save Settings" +msgstr "Guardar ajustes" + +#: ../../extend/addon/addon/msgfooter/msgfooter.php:47 +msgid "text to include in all outgoing posts from this site" +msgstr "texto a incluir en todos los mensajes salientes de este sitio" + +#: ../../extend/addon/addon/nofed/nofed.php:42 +msgid "Federate" +msgstr "Federar" + +#: ../../extend/addon/addon/nofed/nofed.php:56 +msgid "nofed Settings saved." +msgstr "Se han guardado los ajustes de nofed." + +#: ../../extend/addon/addon/nofed/nofed.php:72 +msgid "Allow Federation Toggle" +msgstr "Permitir alternancia de federación" + +#: ../../extend/addon/addon/nofed/nofed.php:76 +msgid "Federate posts by default" +msgstr "Federar las publicaciones por defecto" + +#: ../../extend/addon/addon/nofed/nofed.php:80 +msgid "NoFed Settings" +msgstr "Ajustes de NoFed" + +#: ../../extend/addon/addon/nsabait/nsabait.php:125 +msgid "Nsabait Settings updated." +msgstr "Se han actualizado los ajustes de Nsabait" + +#: ../../extend/addon/addon/nsabait/nsabait.php:157 +msgid "Enable NSAbait Plugin" +msgstr "Habilitar el plugin NSAbait" + +#: ../../extend/addon/addon/nsabait/nsabait.php:161 +msgid "NSAbait Settings" +msgstr "Ajustes de NSAbait" + +#: ../../extend/addon/addon/nsfw/nsfw.php:80 +msgid "" +"This plugin looks in posts for the words/text you specify below, and " +"collapses any content containing those keywords so it is not displayed at " +"inappropriate times, such as sexual innuendo that may be improper in a work " +"setting. It is polite and recommended to tag any content containing nudity " +"with #NSFW. This filter can also match any other word/text you specify, and" +" can thereby be used as a general purpose content filter." +msgstr "Este complemento busca en los mensajes las palabras o texto que se especifican a continuación y contrae cualquier contenido que contenga esas palabras clave para que no se muestre en momentos inapropiados, como insinuaciones sexuales que pueden ser impropias en un entorno de trabajo. Es una muestra de educación y se recomienda marcar cualquier contenido que contenga desnudos con #NSFW. Este filtro también puede coincidir con cualquier otra palabra o texto que especifique y, por lo tanto, puede utilizarse como un filtro de contenido de propósito general." + +#: ../../extend/addon/addon/nsfw/nsfw.php:84 +msgid "Enable Content filter" +msgstr "Habilitar filtro de contenido" + +#: ../../extend/addon/addon/nsfw/nsfw.php:88 +msgid "Comma separated list of keywords to hide" +msgstr "Lista separada por comas de palabras clave para ocultar" + +#: ../../extend/addon/addon/nsfw/nsfw.php:88 +msgid "Use /expression/ to provide regular expressions" +msgstr "Usar /expression/ para proporcionar expresiones regulares" + +#: ../../extend/addon/addon/nsfw/nsfw.php:92 +msgid "Not Safe For Work Settings" +msgstr "No es seguro para ajustes de trabajo" + +#: ../../extend/addon/addon/nsfw/nsfw.php:92 +msgid "General Purpose Content Filter" +msgstr "Filtro de contenido de propósito general" + +#: ../../extend/addon/addon/nsfw/nsfw.php:110 +msgid "NSFW Settings saved." +msgstr "Se han guardado los ajustes de NSFW." + +#: ../../extend/addon/addon/nsfw/nsfw.php:207 +msgid "Possible adult content" +msgstr "Posible contenido para adultos" + +#: ../../extend/addon/addon/nsfw/nsfw.php:211 +#, php-format +msgid "%s - click to open/close" +msgstr "%s - pulsar para abrir o cerrar" + +#: ../../extend/addon/addon/openclipatar/openclipatar.php:49 +#: ../../extend/addon/addon/openclipatar/openclipatar.php:127 +msgid "System defaults:" +msgstr "Valores predeterminados del sistema: " + +#: ../../extend/addon/addon/openclipatar/openclipatar.php:53 +msgid "Preferred Clipart IDs" +msgstr "IDs de las imágenes clipart preferidas" + +#: ../../extend/addon/addon/openclipatar/openclipatar.php:53 +msgid "List of preferred clipart ids. These will be shown first." +msgstr "Lista de ids de imágenes de clipart preferidas. Se verán en primer lugar." + +#: ../../extend/addon/addon/openclipatar/openclipatar.php:54 +msgid "Default Search Term" +msgstr "Términos de búsqueda predeterminados" + +#: ../../extend/addon/addon/openclipatar/openclipatar.php:54 +msgid "The default search term. These will be shown second." +msgstr "Los términos de búsqueda predeterminados. Estos se mostrarán en segundo lugar." + +#: ../../extend/addon/addon/openclipatar/openclipatar.php:55 +msgid "Return After" +msgstr "Regresar después" + +#: ../../extend/addon/addon/openclipatar/openclipatar.php:55 +msgid "Page to load after image selection." +msgstr "Página para cargar después de la selección de imágenes." + +#: ../../extend/addon/addon/openclipatar/openclipatar.php:57 +#: ../../include/channel.php:965 ../../include/nav.php:93 +msgid "Edit Profile" +msgstr "Editar el perfil" + +#: ../../extend/addon/addon/openclipatar/openclipatar.php:58 +msgid "Profile List" +msgstr "Lista de perfiles" + +#: ../../extend/addon/addon/openclipatar/openclipatar.php:60 +msgid "Order of Preferred" +msgstr "Orden de preferencia" + +#: ../../extend/addon/addon/openclipatar/openclipatar.php:60 +msgid "Sort order of preferred clipart ids." +msgstr "Orden de clasificación de los identificadores de imágenes clipart preferidas." + +#: ../../extend/addon/addon/openclipatar/openclipatar.php:61 +#: ../../extend/addon/addon/openclipatar/openclipatar.php:67 +msgid "Newest first" +msgstr "Las más nuevas en primer lugar" + +#: ../../extend/addon/addon/openclipatar/openclipatar.php:64 +msgid "As entered" +msgstr "Tal como se ingresaron" + +#: ../../extend/addon/addon/openclipatar/openclipatar.php:66 +msgid "Order of other" +msgstr "Orden de los demás" + +#: ../../extend/addon/addon/openclipatar/openclipatar.php:66 +msgid "Sort order of other clipart ids." +msgstr "Orden de clasificación de otros ids de imágenes clipart." + +#: ../../extend/addon/addon/openclipatar/openclipatar.php:68 +msgid "Most downloaded first" +msgstr "Las más descargadas en primer lugar" + +#: ../../extend/addon/addon/openclipatar/openclipatar.php:69 +msgid "Most liked first" +msgstr "Las más apreciadas en primer lugar" + +#: ../../extend/addon/addon/openclipatar/openclipatar.php:71 +msgid "Preferred IDs Message" +msgstr "Mensaje de IDs preferido" + +#: ../../extend/addon/addon/openclipatar/openclipatar.php:71 +msgid "Message to display above preferred results." +msgstr "Mensaje para mostrar sobre los resultados preferidos." + +#: ../../extend/addon/addon/openclipatar/openclipatar.php:77 +msgid "Uploaded by: " +msgstr "Subida por: " + +#: ../../extend/addon/addon/openclipatar/openclipatar.php:77 +msgid "Drawn by: " +msgstr "Creada por: " + +#: ../../extend/addon/addon/openclipatar/openclipatar.php:191 +msgid "Or select from a free OpenClipart.org image:" +msgstr "O seleccionar una imagen gratuita de OpenClipart.org: " + +#: ../../extend/addon/addon/openclipatar/openclipatar.php:194 +msgid "Search Term" +msgstr "Término de búsqueda" + +#: ../../extend/addon/addon/openclipatar/openclipatar.php:216 +msgid "Unknown error. Please try again later." +msgstr "Error desconocido. Por favor, inténtelo otra vez." + +#: ../../extend/addon/addon/openclipatar/openclipatar.php:303 +msgid "Profile photo updated successfully." +msgstr "Se ha actualizado con éxito la foto de perfil." + +#: ../../extend/addon/addon/openstreetmap/openstreetmap.php:146 +msgid "View Larger" +msgstr "Ver más grande" + +#: ../../extend/addon/addon/openstreetmap/openstreetmap.php:169 +msgid "Tile Server URL" +msgstr "URL del servidor de mosaicos de imágenes " + +#: ../../extend/addon/addon/openstreetmap/openstreetmap.php:169 +msgid "" +"A list of public tile servers" +msgstr "Una lista de servidores públicos de mosaicos de imágenes" + +#: ../../extend/addon/addon/openstreetmap/openstreetmap.php:170 +msgid "Nominatim (reverse geocoding) Server URL" +msgstr "URL del servidor nominatim (geocodificación inversa)" + +#: ../../extend/addon/addon/openstreetmap/openstreetmap.php:170 +msgid "" +"A list of Nominatim servers" +msgstr "Una lista de servidores nominatim" + +#: ../../extend/addon/addon/openstreetmap/openstreetmap.php:171 +msgid "Default zoom" +msgstr "Zoom predeterminado" + +#: ../../extend/addon/addon/openstreetmap/openstreetmap.php:171 +msgid "" +"The default zoom level. (1:world, 18:highest, also depends on tile server)" +msgstr "El nivel de zoom predeterminado. (1: mundo, 18: el más alto, también depende del servidor del mosaico de imágenes)" + +#: ../../extend/addon/addon/openstreetmap/openstreetmap.php:172 +msgid "Include marker on map" +msgstr "Incluir un marcador en el mapa" + +#: ../../extend/addon/addon/openstreetmap/openstreetmap.php:172 +msgid "Include a marker on the map." +msgstr "Incluir un marcador en el mapa." + +#: ../../extend/addon/addon/pageheader/pageheader.php:43 +msgid "Message to display on every page on this server" +msgstr "Mensaje para mostrar en todas las páginas de este servidor" + +#: ../../extend/addon/addon/pageheader/pageheader.php:48 +msgid "Pageheader Settings" +msgstr "Ajustes del encabezado de página" + +#: ../../extend/addon/addon/pageheader/pageheader.php:64 +msgid "pageheader Settings saved." +msgstr "Se han guardado los ajustes del encabezado de página." + +#: ../../extend/addon/addon/piwik/piwik.php:85 +msgid "" +"This website is tracked using the Piwik " +"analytics tool." +msgstr "Este sitio es rastreado mediante la herramienta analítica Piwik." + +#: ../../extend/addon/addon/piwik/piwik.php:88 +#, php-format +msgid "" +"If you do not want that your visits are logged this way you can" +" set a cookie to prevent Piwik from tracking further visits of the site " +"(opt-out)." +msgstr "Si usted no quiere que sus visitas se registren de esta manera puede establecer una cookie para evitar que Piwik rastree otras visitas del sitio (opt-out)." + +#: ../../extend/addon/addon/piwik/piwik.php:96 +msgid "Piwik Base URL" +msgstr "URL base de Piwik" + +#: ../../extend/addon/addon/piwik/piwik.php:96 +msgid "" +"Absolute path to your Piwik installation. (without protocol (http/s), with " +"trailing slash)" +msgstr "Ruta absoluta a la instalación de Piwik. (Sin protocolo (http/s), con barra diagonal)" + +#: ../../extend/addon/addon/piwik/piwik.php:97 +msgid "Site ID" +msgstr "ID del sitio" + +#: ../../extend/addon/addon/piwik/piwik.php:98 +msgid "Show opt-out cookie link?" +msgstr "Mostrar el enlace de la cookie opt-out?" + +#: ../../extend/addon/addon/piwik/piwik.php:99 +msgid "Asynchronous tracking" +msgstr "Rastreo asíncrono" + +#: ../../extend/addon/addon/piwik/piwik.php:100 +msgid "Enable frontend JavaScript error tracking" +msgstr "Habilitar la interfaz JavaScript de seguimiento de errores" + +#: ../../extend/addon/addon/piwik/piwik.php:100 +msgid "This feature requires Piwik >= 2.2.0" +msgstr "Esta funcionalidad requiere Piwik >= 2.2.0" + +#: ../../extend/addon/addon/planets/planets.php:121 +msgid "Planets Settings updated." +msgstr "Se han guardado los ajustes de Planets." + +#: ../../extend/addon/addon/planets/planets.php:153 +msgid "Enable Planets Plugin" +msgstr "Habilitar el plugin Planets" + +#: ../../extend/addon/addon/planets/planets.php:157 +msgid "Planets Settings" +msgstr "Ajustes de Planets" + +#: ../../extend/addon/addon/pumpio/pumpio.php:148 +msgid "You are now authenticated to pumpio." +msgstr "Ahora está autenticado en pump.io." + +#: ../../extend/addon/addon/pumpio/pumpio.php:149 +msgid "return to the featured settings page" +msgstr "Volver a la página de configuración destacada" + +#: ../../extend/addon/addon/pumpio/pumpio.php:163 +msgid "Post to Pump.io" +msgstr "Publicar en Pump.io" + +#: ../../extend/addon/addon/pumpio/pumpio.php:198 +msgid "Pump.io servername" +msgstr "Nombre del servidor de Pump.io" + +#: ../../extend/addon/addon/pumpio/pumpio.php:198 +msgid "Without \"http://\" or \"https://\"" +msgstr "Sin \"http://\" or \"https://\"" + +#: ../../extend/addon/addon/pumpio/pumpio.php:202 +msgid "Pump.io username" +msgstr "Nombre de usuario en Pump.io" + +#: ../../extend/addon/addon/pumpio/pumpio.php:202 +msgid "Without the servername" +msgstr "Sin el nombre del servidor" + +#: ../../extend/addon/addon/pumpio/pumpio.php:213 +msgid "You are not authenticated to pumpio" +msgstr "No está autenticado en pump.io" + +#: ../../extend/addon/addon/pumpio/pumpio.php:215 +msgid "(Re-)Authenticate your pump.io connection" +msgstr "(Re-)Autenticar su conexión en pump.io" + +#: ../../extend/addon/addon/pumpio/pumpio.php:219 +msgid "Enable pump.io Post Plugin" +msgstr "Habilitar el plugin de publicación en pump.io" + +#: ../../extend/addon/addon/pumpio/pumpio.php:223 +msgid "Post to pump.io by default" +msgstr "Publicar por defecto en pump.io" + +#: ../../extend/addon/addon/pumpio/pumpio.php:227 +msgid "Should posts be public" +msgstr "¿Las entradas deben ser públicas?" + +#: ../../extend/addon/addon/pumpio/pumpio.php:231 +msgid "Mirror all public posts" +msgstr "Reflejar todos los mensajes públicos" + +#: ../../extend/addon/addon/pumpio/pumpio.php:237 +msgid "Pump.io Post Settings" +msgstr "Ajustes de publicación en pump.io" + +#: ../../extend/addon/addon/pumpio/pumpio.php:266 +msgid "PumpIO Settings saved." +msgstr "Se han guardado los ajustes de PumpIO." + +#: ../../extend/addon/addon/qrator/qrator.php:48 +msgid "QR code" +msgstr "Código QR" + +#: ../../extend/addon/addon/qrator/qrator.php:63 +msgid "QR Generator" +msgstr "Generador QR" + +#: ../../extend/addon/addon/qrator/qrator.php:64 +msgid "Enter some text" +msgstr "Escribir algún texto" + +#: ../../extend/addon/addon/rainbowtag/rainbowtag.php:81 +msgid "Enable Rainbowtag" +msgstr "Habilitar Rainbowtag" + +#: ../../extend/addon/addon/rainbowtag/rainbowtag.php:85 +msgid "Rainbowtag Settings" +msgstr "Ajustes de Rainbowtag" + +#: ../../extend/addon/addon/rainbowtag/rainbowtag.php:101 +msgid "Rainbowtag Settings saved." +msgstr "Se han guardado los ajustes de Rainbowtag." + +#: ../../extend/addon/addon/randpost/randpost.php:97 +msgid "You're welcome." +msgstr "Bienvenido." + +#: ../../extend/addon/addon/randpost/randpost.php:98 +msgid "Ah shucks..." +msgstr "Ah, joder..." + +#: ../../extend/addon/addon/randpost/randpost.php:99 +msgid "Don't mention it." +msgstr "No lo menciones." + +#: ../../extend/addon/addon/randpost/randpost.php:100 +msgid "<blush>" +msgstr "<sonrojo>" + +#: ../../extend/addon/addon/redfiles/redfiles.php:119 +msgid "Redmatrix File Storage Import" +msgstr "Importar repositorio de ficheros de Redmatrix" + +#: ../../extend/addon/addon/redfiles/redfiles.php:120 +msgid "This will import all your Redmatrix cloud files to this channel." +msgstr "Esto importará todos sus ficheros de la nube de Redmatrix a este canal." + +#: ../../extend/addon/addon/redfiles/redfiles.php:121 +#: ../../extend/addon/addon/redphotos/redphotos.php:131 +msgid "Redmatrix Server base URL" +msgstr "URL base del servidor Redmatrix" + +#: ../../extend/addon/addon/redfiles/redfiles.php:122 +#: ../../extend/addon/addon/redphotos/redphotos.php:132 +msgid "Redmatrix Login Username" +msgstr "Nombre de inicio de sesión en Redmatrix" + +#: ../../extend/addon/addon/redfiles/redfiles.php:123 +#: ../../extend/addon/addon/redphotos/redphotos.php:133 +msgid "Redmatrix Login Password" +msgstr "Contraseña de inicio de sesión en Redmatrix" + +#: ../../extend/addon/addon/redfiles/redfilehelper.php:67 +msgid "file" +msgstr "fichero" + +#: ../../extend/addon/addon/redphotos/redphotos.php:106 +msgid "Photos imported" +msgstr "Se han importado las fotos" + +#: ../../extend/addon/addon/redphotos/redphotos.php:129 +msgid "Redmatrix Photo Album Import" +msgstr "Importar un álbum de fotos de Redmatrix" + +#: ../../extend/addon/addon/redphotos/redphotos.php:130 +msgid "This will import all your Redmatrix photo albums to this channel." +msgstr "Esto importará todos sus álbumes de fotos de Redmatrix a este canal." + +#: ../../extend/addon/addon/redphotos/redphotos.php:134 +msgid "Import just this album" +msgstr "Importar solo este álbum" + +#: ../../extend/addon/addon/redphotos/redphotos.php:134 +msgid "Leave blank to import all albums" +msgstr "Dejar en blanco para importar todos los álbumes" + +#: ../../extend/addon/addon/redphotos/redphotos.php:135 +msgid "Maximum count to import" +msgstr "Límite máximo de importación" + +#: ../../extend/addon/addon/redphotos/redphotos.php:135 +msgid "0 or blank to import all available" +msgstr "0 o en blanco para importar todos los disponibles" + +#: ../../extend/addon/addon/redred/redred.php:45 +msgid "Post to Red" +msgstr "Enviar a Red" + +#: ../../extend/addon/addon/redred/redred.php:60 +msgid "Channel is required." +msgstr "Se requiere un canal." + +#: ../../extend/addon/addon/redred/redred.php:65 +msgid "Invalid channel." +msgstr "El canal no es válido." + +#: ../../extend/addon/addon/redred/redred.php:76 +msgid "redred Settings saved." +msgstr "Se han salvado los ajustes de redred." + +#: ../../extend/addon/addon/redred/redred.php:95 +msgid "Allow posting to another Hubzilla Channel" +msgstr "Permitir la publicación en otro canal de Hubzilla" + +#: ../../extend/addon/addon/redred/redred.php:99 +msgid "Send public postings to Hubzilla channel by default" +msgstr "Enviar entradas públicas al canal Hubzilla por defecto" + +#: ../../extend/addon/addon/redred/redred.php:103 +msgid "Hubzilla API Path" +msgstr "Ruta de la API de Hubzilla" + +#: ../../extend/addon/addon/redred/redred.php:103 +#: ../../extend/addon/addon/rtof/rtof.php:89 +msgid "https://{sitename}/api" +msgstr "https://{sitename}/api" + +#: ../../extend/addon/addon/redred/redred.php:107 +msgid "Hubzilla login name" +msgstr "Nombre de inicio de sesión en Hubzilla" + +#: ../../extend/addon/addon/redred/redred.php:111 +msgid "Hubzilla channel name" +msgstr "Nombre del canal de Hubzilla" + +#: ../../extend/addon/addon/redred/redred.php:111 +#: ../../extend/addon/addon/openid/MysqlProvider.php:54 +msgid "Nickname" +msgstr "Alias" + +#: ../../extend/addon/addon/redred/redred.php:119 +msgid "Hubzilla Crosspost Settings" +msgstr "Ajustes de Hubzilla Crosspost" + +#: ../../extend/addon/addon/rtof/rtof.php:45 +msgid "Post to Friendica" +msgstr "Publicar en Friendica" + +#: ../../extend/addon/addon/rtof/rtof.php:62 +msgid "rtof Settings saved." +msgstr "Se han guardado los ajustes de rtof" + +#: ../../extend/addon/addon/rtof/rtof.php:81 +msgid "Allow posting to Friendica" +msgstr "Permitir publicar en Friendica" + +#: ../../extend/addon/addon/rtof/rtof.php:85 +msgid "Send public postings to Friendica by default" +msgstr "Enviar entradas públicas a Friendica por defecto" + +#: ../../extend/addon/addon/rtof/rtof.php:89 +msgid "Friendica API Path" +msgstr "Ruta a la API de Friendica" + +#: ../../extend/addon/addon/rtof/rtof.php:93 +msgid "Friendica login name" +msgstr "Nombre de inicio de sesión en Friendica" + +#: ../../extend/addon/addon/rtof/rtof.php:97 +msgid "Friendica password" +msgstr "Contraseña de Friendica" + +#: ../../extend/addon/addon/rtof/rtof.php:101 +msgid "Hubzilla to Friendica Post Settings" +msgstr "Ajustes de publicación de Hubzilla a Friendica" + +#: ../../extend/addon/addon/sendzid/sendzid.php:25 +msgid "Extended Identity Sharing" +msgstr "Compartir identidad extendida" + +#: ../../extend/addon/addon/sendzid/sendzid.php:26 +msgid "" +"Share your identity with all websites on the internet. When disabled, " +"identity is only shared with sites in the matrix." +msgstr "Compartir su identidad con todos los sitios web en Internet. Cuando se inhabilita, la identidad sólo se comparte con los sitios de la matriz." + +#: ../../extend/addon/addon/skeleton/skeleton.php:59 +msgid "Some setting" +msgstr "Algunos ajustes" + +#: ../../extend/addon/addon/skeleton/skeleton.php:61 +msgid "A setting" +msgstr "Un ajuste" + +#: ../../extend/addon/addon/skeleton/skeleton.php:64 +msgid "Skeleton Settings" +msgstr "Ajustes de Skeleton" + +#: ../../extend/addon/addon/smileybutton/smileybutton.php:273 +msgid "Deactivate the feature" +msgstr "Desactivar la funcionalidad" + +#: ../../extend/addon/addon/smileybutton/smileybutton.php:277 +msgid "Hide the button and show the smilies directly." +msgstr "Ocultar el botón y mostrar los smilies directamente." + +#: ../../extend/addon/addon/smileybutton/smileybutton.php:281 +msgid "Smileybutton Settings" +msgstr "Ajustes de Smileybutton" + +#: ../../extend/addon/addon/startpage/startpage.php:109 +msgid "Page to load after login" +msgstr "Página para cargar tras el inicio de sesión" + +#: ../../extend/addon/addon/startpage/startpage.php:109 +msgid "" +"Examples: "apps", "network?f=&gid=37" (privacy " +"collection), "channel" or "notifications/system" (leave " +"blank for default network page (grid)." +msgstr "Ejemplos: "aplicaciones", "mi red?f=&gid=37" (grupo de canales), "mi canal" or "notificaciones del sistema" (dejar en blanco para la página de mi red por defecto (grid)." + +#: ../../extend/addon/addon/startpage/startpage.php:113 +msgid "Startpage Settings" +msgstr "Ajustes de startpage" + +#: ../../extend/addon/addon/statusnet/statusnet.php:143 +msgid "Post to GNU social" +msgstr "Publicar en GNU social" + +#: ../../extend/addon/addon/statusnet/statusnet.php:195 +msgid "" +"Please contact your site administrator.
        The provided API URL is not " +"valid." +msgstr "Por favor, contacte con el administrador de su sitio.
        La URL de la API proporcionada no es válida." + +#: ../../extend/addon/addon/statusnet/statusnet.php:232 +msgid "We could not contact the GNU social API with the Path you entered." +msgstr "No podemos conectar con la API de GNU social con la ruta que ha proporcionado." + +#: ../../extend/addon/addon/statusnet/statusnet.php:266 +msgid "GNU social settings updated." +msgstr "Se han guardado los ajustes de GNU social." + +#: ../../extend/addon/addon/statusnet/statusnet.php:310 +msgid "Globally Available GNU social OAuthKeys" +msgstr "OAuthKeys globales de GNU social disponibles" + +#: ../../extend/addon/addon/statusnet/statusnet.php:312 +msgid "" +"There are preconfigured OAuth key pairs for some GNU social servers " +"available. If you are using one of them, please use these credentials.
        If not feel free to connect to any other GNU social instance (see below)." +msgstr "Existen pares de claves OAuth preconfiguradas disponibles para algunos servidores libres de GNU social. Si está usando uno de ellos, utilice estas credenciales.
        Si no se siente libre de conectarse a cualquier otra instancia de GNU social (vea a continuación)." + +#: ../../extend/addon/addon/statusnet/statusnet.php:327 +msgid "Provide your own OAuth Credentials" +msgstr "Proporcione sus propias credenciales de OAuth" + +#: ../../extend/addon/addon/statusnet/statusnet.php:329 +msgid "" +"No consumer key pair for GNU social found. Register your Hubzilla Account as" +" an desktop client on your GNU social account, copy the consumer key pair " +"here and enter the API base root.
        Before you register your own OAuth " +"key pair ask the administrator if there is already a key pair for this " +"Hubzilla installation at your favourite GNU social installation." +msgstr "No se ha encontrado un par de claves de consumidor para GNU social. Registre su cuenta de Hubzilla como un cliente de escritorio en su cuenta social GNU, copie el par de claves de consumidor aquí y escriba la dirección raíz de la API.
        Antes de registrar su propio par de claves OAuth, pregunte al administrador si ya hay un par de claves para esta instalación de Hubzilla en su instalación GNU social favorita." + +#: ../../extend/addon/addon/statusnet/statusnet.php:333 +msgid "OAuth Consumer Key" +msgstr "OAuth Consumer Key" + +#: ../../extend/addon/addon/statusnet/statusnet.php:337 +msgid "OAuth Consumer Secret" +msgstr "OAuth Consumer Secret" + +#: ../../extend/addon/addon/statusnet/statusnet.php:341 +msgid "Base API Path" +msgstr "Ruta base de la API" + +#: ../../extend/addon/addon/statusnet/statusnet.php:341 +msgid "Remember the trailing /" +msgstr "Recuerde la barra /" + +#: ../../extend/addon/addon/statusnet/statusnet.php:345 +msgid "GNU social application name" +msgstr "Nombre de la aplicación de GNU social" + +#: ../../extend/addon/addon/statusnet/statusnet.php:368 +msgid "" +"To connect to your GNU social account click the button below to get a " +"security code from GNU social which you have to copy into the input box " +"below and submit the form. Only your public posts will be " +"posted to GNU social." +msgstr "Para conectarse a su cuenta de GNU social, haga clic en el botón de abajo para obtener un código de seguridad de GNU social que tiene que copiar en el cuadro de entrada a continuación y envíe el formulario. Solo sus entradas públicas aparecerán en GNU social." + +#: ../../extend/addon/addon/statusnet/statusnet.php:370 +msgid "Log in with GNU social" +msgstr "Inicio de sesión en GNU social" + +#: ../../extend/addon/addon/statusnet/statusnet.php:373 +msgid "Copy the security code from GNU social here" +msgstr "Copiar aquí el código de seguridad de GNU social" + +#: ../../extend/addon/addon/statusnet/statusnet.php:383 +msgid "Cancel Connection Process" +msgstr "Cancelar el proceso de conexión" + +#: ../../extend/addon/addon/statusnet/statusnet.php:385 +msgid "Current GNU social API is" +msgstr "La API actual de GNU social es " + +#: ../../extend/addon/addon/statusnet/statusnet.php:389 +msgid "Cancel GNU social Connection" +msgstr "Cancelar la conexión de GNU social" + +#: ../../extend/addon/addon/statusnet/statusnet.php:401 +#: ../../extend/addon/addon/twitter/twitter.php:232 +msgid "Currently connected to: " +msgstr "Actualmente está conectado a: " + +#: ../../extend/addon/addon/statusnet/statusnet.php:406 +msgid "" +"Note: Due your privacy settings (Hide your profile " +"details from unknown viewers?) the link potentially included in public " +"postings relayed to GNU social will lead the visitor to a blank page " +"informing the visitor that the access to your profile has been restricted." +msgstr "Aviso: Debido a su configuración de privacidad (Ocultar los detalles de su perfil a los visitantes desconocidos?) el vínculo potencialmente incluido en las entradas públicas retransmitidas a GNU social llevará al visitante a una página en blanco que le informará de que el acceso a su perfil ha sido restringido." + +#: ../../extend/addon/addon/statusnet/statusnet.php:411 +msgid "Allow posting to GNU social" +msgstr "Habilitar la publicación en GNU social" + +#: ../../extend/addon/addon/statusnet/statusnet.php:411 +msgid "" +"If enabled your public postings can be posted to the associated GNU-social " +"account" +msgstr "Si está habilitado, sus entradas públicas se pueden publicar en la cuenta GNU-social asociada" + +#: ../../extend/addon/addon/statusnet/statusnet.php:415 +msgid "Post to GNU social by default" +msgstr "Publicar en GNU social por defecto" + +#: ../../extend/addon/addon/statusnet/statusnet.php:415 +msgid "" +"If enabled your public postings will be posted to the associated GNU-social " +"account by default" +msgstr "Si está activado, sus entradas públicas se publicarán en la cuenta GNU-social asociada de forma predeterminada" + +#: ../../extend/addon/addon/statusnet/statusnet.php:424 +#: ../../extend/addon/addon/twitter/twitter.php:255 +msgid "Clear OAuth configuration" +msgstr "Limpiar la configuración de OAuth" + +#: ../../extend/addon/addon/statusnet/statusnet.php:432 +msgid "GNU social Post Settings" +msgstr "Ajustes de publicación en GNU social" + +#: ../../extend/addon/addon/statusnet/statusnet.php:891 +msgid "API URL" +msgstr "URL de la API" + +#: ../../extend/addon/addon/statusnet/statusnet.php:894 +msgid "Application name" +msgstr "Nombre de la aplicación" + +#: ../../extend/addon/addon/superblock/superblock.php:110 +msgid "Currently blocked" +msgstr "Actualmente bloqueado" + +#: ../../extend/addon/addon/superblock/superblock.php:112 +msgid "No channels currently blocked" +msgstr "No hay canales bloqueados actualmente" + +#: ../../extend/addon/addon/superblock/superblock.php:118 +msgid "\"Superblock\" Settings" +msgstr "Ajustes de \"Superblock\"" + +#: ../../extend/addon/addon/superblock/superblock.php:316 +msgid "Block Completely" +msgstr "Bloquear completamente" + +#: ../../extend/addon/addon/superblock/superblock.php:361 +msgid "superblock settings updated" +msgstr "se han actualizado los ajustes de superblock" + +#: ../../extend/addon/addon/testdrive/testdrive.php:104 +#, php-format +msgid "Your account on %s will expire in a few days." +msgstr "Su cuenta en %s caducará en unos pocos días." + +#: ../../extend/addon/addon/testdrive/testdrive.php:105 +msgid "Your $Productname test account is about to expire." +msgstr "Su cuenta de prueba de $Productname está a punto de caducar." + +#: ../../extend/addon/addon/tictac/tictac.php:21 +msgid "Three Dimensional Tic-Tac-Toe" +msgstr "Juego en 3D Tic-Tac-Toe" + +#: ../../extend/addon/addon/tictac/tictac.php:54 +msgid "3D Tic-Tac-Toe" +msgstr "3D Tic-Tac-Toe" + +#: ../../extend/addon/addon/tictac/tictac.php:59 +msgid "New game" +msgstr "Nuevo juego" + +#: ../../extend/addon/addon/tictac/tictac.php:60 +msgid "New game with handicap" +msgstr "Nuevo juego con hándicap" + +#: ../../extend/addon/addon/tictac/tictac.php:61 +msgid "" +"Three dimensional tic-tac-toe is just like the traditional game except that " +"it is played on multiple levels simultaneously. " +msgstr "El juego en 3D tic-tac-toe es como el juego tradicional, excepto que se juega en varios niveles simultáneamente." + +#: ../../extend/addon/addon/tictac/tictac.php:62 +msgid "" +"In this case there are three levels. You win by getting three in a row on " +"any level, as well as up, down, and diagonally across the different levels." +msgstr "En este caso hay tres niveles. Usted gana al conseguir tres en una fila en cualquier nivel, así como arriba, abajo, y en diagonal a través de los diferentes niveles." + +#: ../../extend/addon/addon/tictac/tictac.php:64 +msgid "" +"The handicap game disables the center position on the middle level because " +"the player claiming this square often has an unfair advantage." +msgstr "El juego con hándicap deshabilita la posición central en el nivel medio porque el jugador que reclama este cuadrado a menudo tiene una ventaja injusta." + +#: ../../extend/addon/addon/tictac/tictac.php:183 +msgid "You go first..." +msgstr "Usted va primero..." + +#: ../../extend/addon/addon/tictac/tictac.php:188 +msgid "I'm going first this time..." +msgstr "Yo voy primero esta vez..." + +#: ../../extend/addon/addon/tictac/tictac.php:194 +msgid "You won!" +msgstr "¡Usted ha ganado!" + +#: ../../extend/addon/addon/tictac/tictac.php:200 +#: ../../extend/addon/addon/tictac/tictac.php:225 +msgid "\"Cat\" game!" +msgstr "¡El juego del \"gato\"!" + +#: ../../extend/addon/addon/tictac/tictac.php:223 +msgid "I won!" +msgstr "¡He ganado yo!" + +#: ../../extend/addon/addon/tour/tour.php:75 +msgid "Edit your profile and change settings." +msgstr "Editar su perfil y cambiar los ajustes." + +#: ../../extend/addon/addon/tour/tour.php:76 +msgid "Click here to see activity from your connections." +msgstr "Pulsar aquí para ver la actividad de sus conexiones." + +#: ../../extend/addon/addon/tour/tour.php:77 +msgid "Click here to see your channel home." +msgstr "Pulsar aquí para ver la página de inicio de su canal." + +#: ../../extend/addon/addon/tour/tour.php:78 +msgid "You can access your private messages from here." +msgstr "Puede acceder a sus mensajes privados desde aquí." + +#: ../../extend/addon/addon/tour/tour.php:79 +msgid "Create new events here." +msgstr "Crear nuevos eventos aquí." + +#: ../../extend/addon/addon/tour/tour.php:80 +msgid "" +"You can accept new connections and change permissions for existing ones " +"here. You can also e.g. create groups of contacts." +msgstr "Puede aceptar nuevas conexiones y cambiar permisos para las existentes aquí. También puede, por ejemplo, crear grupos de contactos." + +#: ../../extend/addon/addon/tour/tour.php:81 +msgid "System notifications will arrive here" +msgstr "Las notificaciones del sistema llegarán aquí" + +#: ../../extend/addon/addon/tour/tour.php:82 +msgid "Search for content and users" +msgstr "Buscar contenido y usuarios" + +#: ../../extend/addon/addon/tour/tour.php:83 +msgid "Browse for new contacts" +msgstr "Buscar nuevos contactos" + +#: ../../extend/addon/addon/tour/tour.php:84 +msgid "Launch installed apps" +msgstr "Iniciar aplicaciones instaladas" + +#: ../../extend/addon/addon/tour/tour.php:85 +msgid "Looking for help? Click here." +msgstr "¿Busca ayuda? Pulse aquí." + +#: ../../extend/addon/addon/tour/tour.php:86 +msgid "" +"New events have occurred in your network. Click here to see what has " +"happened!" +msgstr "Se han producido nuevos eventos en su red. ¡Haga clic aquí para ver lo que ha sucedido!" + +#: ../../extend/addon/addon/tour/tour.php:87 +msgid "You have received a new private message. Click here to see from who!" +msgstr "Ha recibido un nuevo mensaje privado. Haga clic aquí para ver de quién!" + +#: ../../extend/addon/addon/tour/tour.php:88 +msgid "There are events this week. Click here too see which!" +msgstr "Hay eventos esta semana. Haga clic aquí para ver cuáles!" + +#: ../../extend/addon/addon/tour/tour.php:89 +msgid "You have received a new introduction. Click here to see who!" +msgstr "Ha recibido una nueva solicitud de conexión. ¡Pulse aquí para ver de quién!" + +#: ../../extend/addon/addon/tour/tour.php:90 +msgid "" +"There is a new system notification. Click here to see what has happened!" +msgstr "Hay una nueva notificación del sistema. ¡Haga clic aquí para ver lo que ha sucedido!" + +#: ../../extend/addon/addon/tour/tour.php:93 +msgid "Click here to share text, images, videos and sound." +msgstr "Haga clic aquí para compartir texto, imágenes, vídeos y sonido." + +#: ../../extend/addon/addon/tour/tour.php:94 +msgid "You can write an optional title for your update (good for long posts)." +msgstr "Puede escribir un título opcional para su actualización (bueno para los mensajes largos)." + +#: ../../extend/addon/addon/tour/tour.php:95 +msgid "Entering some categories here makes it easier to find your post later." +msgstr "Al ingresar algunos temas aquí, es más fácil encontrar su publicación más tarde." + +#: ../../extend/addon/addon/tour/tour.php:96 +msgid "Share photos, links, location, etc." +msgstr "Compartir fotos, enlaces, ubicación, etc." + +#: ../../extend/addon/addon/tour/tour.php:97 +msgid "" +"Only want to share content for a while? Make it expire at a certain date." +msgstr "¿Solo quieres compartir contenido durante un tiempo? Haga que expire en una fecha determinada." + +#: ../../extend/addon/addon/tour/tour.php:98 +msgid "You can password protect content." +msgstr "Puede proteger contenido con una contraseña." + +#: ../../extend/addon/addon/tour/tour.php:99 +msgid "Choose who you share with." +msgstr "Elegir con quién compartir." + +#: ../../extend/addon/addon/tour/tour.php:101 +msgid "Click here when you are done." +msgstr "Haga clic aquí cuando haya terminado." + +#: ../../extend/addon/addon/tour/tour.php:104 +msgid "Adjust from which channels posts should be displayed." +msgstr "Ajustar de qué canales se deben mostrar las publicaciones." + +#: ../../extend/addon/addon/tour/tour.php:105 +msgid "Only show posts from channels in the specified privacy group." +msgstr "Mostrar solo las entradas de los canales de un grupo específico de canales." + +#: ../../extend/addon/addon/tour/tour.php:109 +msgid "Easily find posts containing tags (keywords preceded by the \"#\" symbol)." +msgstr "Encuentre fácilmente entradas que contengan etiquetas (palabras clave precedidas del símbolo \"#\")." + +#: ../../extend/addon/addon/tour/tour.php:110 +msgid "Easily find posts in given category." +msgstr "Encuentre fácilmente las publicaciones en una categoría dada." + +#: ../../extend/addon/addon/tour/tour.php:111 +msgid "Easily find posts by date." +msgstr "Encuentre fácilmente entradas por fechas." + +#: ../../extend/addon/addon/tour/tour.php:112 +msgid "" +"Suggested users who have volounteered to be shown as suggestions, and who we" +" think you might find interesting." +msgstr "Se sugiere a los usuarios que se han ofrecido voluntariamente que se muestren como sugerencias, y que creemos que podrían resultar interesantes." + +#: ../../extend/addon/addon/tour/tour.php:113 +msgid "Here you see channels you have connected to." +msgstr "Aquí puede ver los canales a los que está conectado." + +#: ../../extend/addon/addon/tour/tour.php:114 +msgid "Save your search so you can repeat it at a later date." +msgstr "Guarde su búsqueda para poder repetirla en una fecha posterior." + +#: ../../extend/addon/addon/tour/tour.php:117 +msgid "" +"If you see this icon you can be sure that the sender is who it say it is. It" +" is normal that it is not always possible to verify the sender, so the icon " +"will be missing sometimes. There is usually no need to worry about that." +msgstr "Si ve este icono puede estar seguro de que el remitente es quien dice ser. Es normal que no siempre sea posible verificar el remitente, por lo que el icono faltará en ocasiones. Por lo general, no hay necesidad de preocuparse por eso." + +#: ../../extend/addon/addon/tour/tour.php:118 +msgid "" +"Danger! It seems someone tried to forge a message! This message is not " +"necessarily from who it says it is from!" +msgstr "¡Peligro! ¡Parece que alguien intentó falsificar un mensaje! ¡Este mensaje no es necesariamente de quien dice que es!" + +#: ../../extend/addon/addon/tour/tour.php:125 +msgid "" +"Welcome to Hubzilla! Would you like to see a tour of the UI?

        You can " +"pause it at any time and continue where you left off by reloading the page, " +"or navigting to another page.

        You can also advance by pressing the " +"return key" +msgstr "¡Bienvenido/a a Hubzilla! ¿Quiere hacer un recorrido por la interfaz de usuario?

        Puede detenerlo en cualquier momento y continuar donde lo dejó recargando la página o navegando a otra.

        También puede avanzar pulsando la tecla de retorno" + +#: ../../extend/addon/addon/twitter/twitter.php:99 +msgid "Post to Twitter" +msgstr "Publicar en Twitter" + +#: ../../extend/addon/addon/twitter/twitter.php:154 +msgid "Twitter settings updated." +msgstr "Se han actualizado los ajustes de Twitter." + +#: ../../extend/addon/addon/twitter/twitter.php:183 +msgid "" +"No consumer key pair for Twitter found. Please contact your site " +"administrator." +msgstr "No se encontró ningún par de \"consumer key\" para Twitter. Póngase en contacto con el administrador del sitio." + +#: ../../extend/addon/addon/twitter/twitter.php:205 +msgid "" +"At this Hubzilla instance the Twitter plugin was enabled but you have not " +"yet connected your account to your Twitter account. To do so click the " +"button below to get a PIN from Twitter which you have to copy into the input" +" box below and submit the form. Only your public posts will" +" be posted to Twitter." +msgstr "En esta instancia de Hubzilla, el complemento de Twitter estaba habilitado pero aún no ha conectado su cuenta a la cuenta de Twitter. Para ello, haga clic en el botón de abajo, para obtener un PIN de Twitter que debe copiar en el cuadro de entrada a continuación y enviar el formulario. Solo sus entradas públicas se publicarán en Twitter." + +#: ../../extend/addon/addon/twitter/twitter.php:207 +msgid "Log in with Twitter" +msgstr "Iniciar sesión en Twitter" + +#: ../../extend/addon/addon/twitter/twitter.php:210 +msgid "Copy the PIN from Twitter here" +msgstr "Copiar aquí el PIN de Twitter" + +#: ../../extend/addon/addon/twitter/twitter.php:237 +msgid "" +"Note: Due your privacy settings (Hide your profile " +"details from unknown viewers?) the link potentially included in public " +"postings relayed to Twitter will lead the visitor to a blank page informing " +"the visitor that the access to your profile has been restricted." +msgstr "Aviso: Debido a su configuración de privacidad (Ocultar los detalles de su perfil a los visitantes desconocidos?), el enlace potencialmente incluido en las entradas públicas retransmitidas a Twitter llevará al visitante a una página en blanco informándolo de que el acceso a su perfil ha sido restringido." + +#: ../../extend/addon/addon/twitter/twitter.php:242 +msgid "Allow posting to Twitter" +msgstr "Permitir la publicación en Twitter" + +#: ../../extend/addon/addon/twitter/twitter.php:242 +msgid "" +"If enabled your public postings can be posted to the associated Twitter " +"account" +msgstr "Si está activado, sus entradas públicas se pueden publicar en la cuenta de Twitter asociada" + +#: ../../extend/addon/addon/twitter/twitter.php:246 +msgid "Send public postings to Twitter by default" +msgstr "Enviar mensajes públicos a Twitter de forma predeterminada" + +#: ../../extend/addon/addon/twitter/twitter.php:246 +msgid "" +"If enabled your public postings will be posted to the associated Twitter " +"account by default" +msgstr "Si está activado, sus entradas públicas se publicarán en la cuenta de Twitter asociada de forma predeterminada." + +#: ../../extend/addon/addon/twitter/twitter.php:264 +msgid "Twitter Post Settings" +msgstr "Ajustes de publicación en Twitter" + +#: ../../extend/addon/addon/twitter/twitter.php:773 +#: ../../extend/addon/addon/rendezvous/rendezvous.php:95 +msgid "Submit Settings" +msgstr "Enviar los ajustes" + +#: ../../extend/addon/addon/upload_limits/upload_limits.php:25 +msgid "Show Upload Limits" +msgstr "Mostrar los límites de subida" + +#: ../../extend/addon/addon/upload_limits/upload_limits.php:27 +msgid "Hubzilla configured maximum size: " +msgstr "Tamaño máximo configurado por Hubzilla: " + +#: ../../extend/addon/addon/upload_limits/upload_limits.php:28 +msgid "PHP upload_max_filesize: " +msgstr "PHP upload_max_filesize: " + +#: ../../extend/addon/addon/upload_limits/upload_limits.php:29 +msgid "PHP post_max_size (must be larger than upload_max_filesize): " +msgstr "PHP post_max_size (debe ser mayor que upload_max_filesize): " + +#: ../../extend/addon/addon/visage/visage.php:93 +msgid "Recent Channel/Profile Viewers" +msgstr "Visitantes recientes del canal o perfil" + +#: ../../extend/addon/addon/visage/visage.php:98 +msgid "This plugin/addon has not been configured." +msgstr "El plugin o complemento no se ha configurado." + +#: ../../extend/addon/addon/visage/visage.php:99 +#, php-format +msgid "Please visit the Visage settings on %s" +msgstr "Por favor, revise los ajustes de Visage en %s" + +#: ../../extend/addon/addon/visage/visage.php:99 +msgid "your feature settings page" +msgstr "su página de ajustes de las funcionalidades" + +#: ../../extend/addon/addon/visage/visage.php:112 +msgid "No entries." +msgstr "No hay entradas." + +#: ../../extend/addon/addon/visage/visage.php:166 +msgid "Enable Visage Visitor Logging" +msgstr "Habilitar el registro de visitantes de Visage" + +#: ../../extend/addon/addon/visage/visage.php:170 +msgid "Visage Settings" +msgstr "Ajustes de Visage" + +#: ../../extend/addon/addon/wholikesme/wholikesme.php:29 +msgid "Who likes me?" +msgstr "¿A quién le gusto?" + +#: ../../extend/addon/addon/wppost/wppost.php:45 +msgid "Post to WordPress" +msgstr "Publicar en WordPress" + +#: ../../extend/addon/addon/wppost/wppost.php:82 +msgid "Enable WordPress Post Plugin" +msgstr "Habilitar el plugin de publicación en WordPress" + +#: ../../extend/addon/addon/wppost/wppost.php:86 +msgid "WordPress username" +msgstr "Nombre de usuario de WordPress" + +#: ../../extend/addon/addon/wppost/wppost.php:90 +msgid "WordPress password" +msgstr "Contraseña de WordPress" + +#: ../../extend/addon/addon/wppost/wppost.php:94 +msgid "WordPress API URL" +msgstr "URL de la API de WordPress" + +#: ../../extend/addon/addon/wppost/wppost.php:95 +msgid "Typically https://your-blog.tld/xmlrpc.php" +msgstr "Habitualmente https://your-blog.tld/xmlrpc.php" + +#: ../../extend/addon/addon/wppost/wppost.php:98 +msgid "WordPress blogid" +msgstr "Blog de WordPress" + +#: ../../extend/addon/addon/wppost/wppost.php:99 +msgid "For multi-user sites such as wordpress.com, otherwise leave blank" +msgstr "Para sitios multiusuario como wordpress.com, de lo contrario, dejar en blanco" + +#: ../../extend/addon/addon/wppost/wppost.php:105 +msgid "Post to WordPress by default" +msgstr "Publicar en WordPress por defecto" + +#: ../../extend/addon/addon/wppost/wppost.php:109 +msgid "Forward comments (requires hubzilla_wp plugin)" +msgstr "Reenviar comentarios (requerido por el plugin hubzilla_wp)" + +#: ../../extend/addon/addon/wppost/wppost.php:113 +msgid "WordPress Post Settings" +msgstr "Ajustes de publicación en WordPress" + +#: ../../extend/addon/addon/wppost/wppost.php:129 +msgid "Wordpress Settings saved." +msgstr "Se han guardado los ajustes de WordPress." + +#: ../../extend/addon/addon/xmpp/xmpp.php:31 +msgid "XMPP settings updated." +msgstr "Se han actualizado los ajustes de XMPP." + +#: ../../extend/addon/addon/xmpp/xmpp.php:53 +msgid "Enable Chat" +msgstr "Habilitar el chat" + +#: ../../extend/addon/addon/xmpp/xmpp.php:58 +msgid "Individual credentials" +msgstr "Credenciales individuales" + +#: ../../extend/addon/addon/xmpp/xmpp.php:64 +msgid "Jabber BOSH server" +msgstr "Servidor BOSH de Jabber" + +#: ../../extend/addon/addon/xmpp/xmpp.php:69 +msgid "XMPP Settings" +msgstr "Ajustes de XMPP" + +#: ../../extend/addon/addon/xmpp/xmpp.php:92 +msgid "Jabber BOSH host" +msgstr "BOSH de Jabber" + +#: ../../extend/addon/addon/xmpp/xmpp.php:93 +msgid "Use central userbase" +msgstr "Usar la base de usuarios central" + +#: ../../extend/addon/addon/xmpp/xmpp.php:93 +msgid "" +"If enabled, members will automatically login to an ejabberd server that has " +"to be installed on this machine with synchronized credentials via the " +"\"auth_ejabberd.php\" script." +msgstr "Si está habilitado, los miembros se conectarán automáticamente a un servidor ejabberd que debe instalarse en esta máquina con credenciales sincronizadas a través del script \"auth ejabberd.php\"." + +#: ../../extend/addon/addon/cdav/include/widgets.php:37 +msgid "Select Channel" +msgstr "Seleccionar un canal" + +#: ../../extend/addon/addon/cdav/include/widgets.php:42 +msgid "Read-write" +msgstr "Lectura y escritura" + +#: ../../extend/addon/addon/cdav/include/widgets.php:43 +msgid "Read-only" +msgstr "Sólo lectura" + +#: ../../extend/addon/addon/cdav/include/widgets.php:116 +msgid "My Calendars" +msgstr "Mis calendarios" + +#: ../../extend/addon/addon/cdav/include/widgets.php:118 +msgid "Shared Calendars" +msgstr "Calendarios compartidos" + +#: ../../extend/addon/addon/cdav/include/widgets.php:122 +msgid "Share this calendar" +msgstr "Compartir este calendario" + +#: ../../extend/addon/addon/cdav/include/widgets.php:124 +msgid "Calendar name and color" +msgstr "Nombre y color del calendario" + +#: ../../extend/addon/addon/cdav/include/widgets.php:126 +msgid "Create new calendar" +msgstr "Crear un nuevo calendario" + +#: ../../extend/addon/addon/cdav/include/widgets.php:128 +msgid "Calendar Name" +msgstr "Nombre del calendario" + +#: ../../extend/addon/addon/cdav/include/widgets.php:129 +msgid "Calendar Tools" +msgstr "Gestión de calendarios" + +#: ../../extend/addon/addon/cdav/include/widgets.php:130 +msgid "Import calendar" +msgstr "Importar un calendario" + +#: ../../extend/addon/addon/cdav/include/widgets.php:131 +msgid "Select a calendar to import to" +msgstr "Seleccionar un calendario para importarlo" + +#: ../../extend/addon/addon/cdav/include/widgets.php:158 +msgid "Addressbooks" +msgstr "Agenda de direcciones" + +#: ../../extend/addon/addon/cdav/include/widgets.php:160 +msgid "Addressbook name" +msgstr "Nombre de la agenda" + +#: ../../extend/addon/addon/cdav/include/widgets.php:162 +msgid "Create new addressbook" +msgstr "Crear una nueva agenda de direcciones" + +#: ../../extend/addon/addon/cdav/include/widgets.php:163 +msgid "Addressbook Name" +msgstr "Nombre de la agenda" + +#: ../../extend/addon/addon/cdav/include/widgets.php:165 +msgid "Addressbook Tools" +msgstr "Gestión de agendas de direcciones" + +#: ../../extend/addon/addon/cdav/include/widgets.php:166 +msgid "Import addressbook" +msgstr "Importar una agenda de direcciones" + +#: ../../extend/addon/addon/cdav/include/widgets.php:167 +msgid "Select an addressbook to import to" +msgstr "Seleccionar una agenda para importarla" + +#: ../../extend/addon/addon/cdav/cdav.php:36 +msgid "Errors encountered creating database table: " +msgstr "Errores encontrados al crear la tabla de la base de datos: " + +#: ../../extend/addon/addon/cdav/cdav.php:197 +msgid "Default Calendar" +msgstr "Calendario por defecto" + +#: ../../extend/addon/addon/cdav/cdav.php:206 +msgid "Default Addressbook" +msgstr "Agenda de direcciones por defecto" + +#: ../../extend/addon/addon/cdav/cdav.php:215 +msgid "CalDAV/CardDAV Settings saved." +msgstr "Se ha guardado la configuración de CalDAV/CardDAV." + +#: ../../extend/addon/addon/cdav/cdav.php:234 +msgid "Enable CalDAV/CardDAV Server for this channel" +msgstr "Habilitar el servidor CalDAV/CardDAV para este canal" + +#: ../../extend/addon/addon/cdav/cdav.php:237 +#, php-format +msgid "Your CalDAV resources are located at %s " +msgstr "Los recursos de CalDAV se encuentran en %s" + +#: ../../extend/addon/addon/cdav/cdav.php:240 +#, php-format +msgid "Your CardDAV resources are located at %s " +msgstr "Sus recursos de CalDAV están localizados en %s " + +#: ../../extend/addon/addon/cdav/cdav.php:246 +msgid "CalDAV/CardDAV Settings" +msgstr "Configuración de CalDAV/CardDAV" + +#: ../../extend/addon/addon/cdav/cdav.php:270 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1145 +msgid "Mobile" +msgstr "Móvil" + +#: ../../extend/addon/addon/cdav/cdav.php:271 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1146 ../../include/nav.php:88 +msgid "Home" +msgstr "Inicio" + +#: ../../extend/addon/addon/cdav/cdav.php:272 +msgid "Home, Voice" +msgstr "Llamadas particulares" + +#: ../../extend/addon/addon/cdav/cdav.php:273 +msgid "Home, Fax" +msgstr "Fax particular" + +#: ../../extend/addon/addon/cdav/cdav.php:274 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1147 +msgid "Work" +msgstr "Trabajo" + +#: ../../extend/addon/addon/cdav/cdav.php:275 +msgid "Work, Voice" +msgstr "Llamadas de trabajo" + +#: ../../extend/addon/addon/cdav/cdav.php:276 +msgid "Work, Fax" +msgstr "Fax de trabajo" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:744 +msgid "INVALID EVENT DISMISSED!" +msgstr "¡EVENTO NO VÁLIDO RECHAZADO!" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:745 +msgid "Summary: " +msgstr "Resumen: " + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:746 +msgid "Date: " +msgstr "Fecha: " + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:747 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:754 +msgid "Reason: " +msgstr "Razón: " + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:752 +msgid "INVALID CARD DISMISSED!" +msgstr "¡TARJETA NO VÁLIDA RECHAZADA!" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:753 +msgid "Name: " +msgstr "Nombre: " + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:770 +msgid "" +"You have to enable this plugin in Feature/Addon Settings > CalDAV/CardDAV " +"Settings before you can use it." +msgstr "Debe habilitar este complemento en Ajustes/Complementos>Configuración de CalDAV/CardDAV antes de poder utilizarlo." + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:836 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:837 +msgid "Example: YYYY-MM-DD HH:mm" +msgstr "Ejemplo: YYYY-MM-DD HH:mm" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:837 +msgid "End date and time" +msgstr "Fecha y hora de finalización" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:852 +msgid "List month" +msgstr "Lista mensual" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:853 +msgid "List week" +msgstr "Lista semanal" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:854 +msgid "List day" +msgstr "Lista diaria" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:861 +msgid "More" +msgstr "Más" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:862 +msgid "Less" +msgstr "Menos" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:863 +msgid "Select calendar" +msgstr "Seleccionar un calendario" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:865 +msgid "Delete all" +msgstr "Eliminar todos" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:867 +msgid "Sorry! Editing of recurrent events is not yet implemented." +msgstr "¡Disculpas! La edición de eventos recurrentes aún no se ha implementado." + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1137 +msgid "Organisation" +msgstr "Organización" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1138 +#: ../../include/page_widgets.php:46 +msgid "Title" +msgstr "Título" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1139 +msgid "Phone" +msgstr "Teléfono" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1141 +msgid "Instant messenger" +msgstr "Mensajería instantánea" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1142 +msgid "Website" +msgstr "Sitio web" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1144 +msgid "Note" +msgstr "Nota" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1150 +msgid "Add Field" +msgstr "Añadir un campo" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1155 +msgid "P.O. Box" +msgstr "Buzón de correos" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1156 +msgid "Additional" +msgstr "Adicional" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1157 +msgid "Street" +msgstr "Calle" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1158 +msgid "Locality" +msgstr "Localidad" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1159 +msgid "Region" +msgstr "Provincia, región o estado" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1160 +msgid "ZIP Code" +msgstr "Código postal" + +#: ../../extend/addon/addon/chess/chess.php:276 +#: ../../extend/addon/addon/chess/chess.php:430 +msgid "Invalid game." +msgstr "Juego no válido." + +#: ../../extend/addon/addon/chess/chess.php:282 +#: ../../extend/addon/addon/chess/chess.php:436 +msgid "You are not a player in this game." +msgstr "Usted no participa en este juego." + +#: ../../extend/addon/addon/chess/chess.php:315 +msgid "You must be a local channel to create a game." +msgstr "Debe ser un canal local para crear un juego" + +#: ../../extend/addon/addon/chess/chess.php:333 +msgid "You must select one opponent that is not yourself." +msgstr "Debe seleccionar un oponente que no sea usted mismo." + +#: ../../extend/addon/addon/chess/chess.php:336 +msgid "Creating new game..." +msgstr "Crear un nuevo juego..." + +#: ../../extend/addon/addon/chess/chess.php:342 +msgid "You must select white or black." +msgstr "Debe elegir blancas o negras." + +#: ../../extend/addon/addon/chess/chess.php:349 +msgid "Error creating new game." +msgstr "Error al crear un nuevo juego." + +#: ../../extend/addon/addon/chess/chess.php:379 ../../include/channel.php:816 +msgid "Requested channel is not available." +msgstr "El canal solicitado no está disponible." + +#: ../../extend/addon/addon/chess/chess.php:392 +msgid "You must select a local channel /chess/channelname" +msgstr "Debe seleccionar un canal local /chess/nombredelcanal" + +#: ../../extend/addon/addon/chess/chess.php:920 +msgid "Enable notifications" +msgstr "Habilitar notificaciones" + +#: ../../extend/addon/addon/likebanner/likebanner.php:51 +msgid "Your Webbie:" +msgstr "Su webbie: " + +#: ../../extend/addon/addon/likebanner/likebanner.php:54 +msgid "Fontsize (px):" +msgstr "Tamaño de fuente (px): " + +#: ../../extend/addon/addon/likebanner/likebanner.php:68 +msgid "Link:" +msgstr "Enlace: " + +#: ../../extend/addon/addon/likebanner/likebanner.php:70 +msgid "Like us on Hubzilla" +msgstr "Múestrenos su agrado en Hubzilla" + +#: ../../extend/addon/addon/likebanner/likebanner.php:72 +msgid "Embed:" +msgstr "Incorporado: " + +#: ../../extend/addon/addon/openid/Mod_Id.php:85 +#: ../../include/selectors.php:49 ../../include/selectors.php:66 +msgid "Male" +msgstr "Hombre" + +#: ../../extend/addon/addon/openid/Mod_Id.php:87 +#: ../../include/selectors.php:49 ../../include/selectors.php:66 +msgid "Female" +msgstr "Mujer" + +#: ../../extend/addon/addon/openid/Mod_Openid.php:30 +msgid "OpenID protocol error. No ID returned." +msgstr "Error de protocolo OpenID. No se recuperó ninguna ID." + +#: ../../extend/addon/addon/openid/Mod_Openid.php:193 +#: ../../include/auth.php:286 +msgid "Login failed." +msgstr "El acceso ha fallado." + +#: ../../extend/addon/addon/openid/MysqlProvider.php:52 +msgid "First Name" +msgstr "Nombre" + +#: ../../extend/addon/addon/openid/MysqlProvider.php:53 +msgid "Last Name" +msgstr "Apellido" + +#: ../../extend/addon/addon/openid/MysqlProvider.php:55 +msgid "Full Name" +msgstr "Nombre completo" + +#: ../../extend/addon/addon/openid/MysqlProvider.php:61 +msgid "Profile Photo 16px" +msgstr "Foto del perfil 16px" + +#: ../../extend/addon/addon/openid/MysqlProvider.php:62 +msgid "Profile Photo 32px" +msgstr "Foto del perfil 32px" + +#: ../../extend/addon/addon/openid/MysqlProvider.php:63 +msgid "Profile Photo 48px" +msgstr "Foto del perfil 48px" + +#: ../../extend/addon/addon/openid/MysqlProvider.php:64 +msgid "Profile Photo 64px" +msgstr "Foto del perfil 64px" + +#: ../../extend/addon/addon/openid/MysqlProvider.php:65 +msgid "Profile Photo 80px" +msgstr "Foto del perfil 80px" + +#: ../../extend/addon/addon/openid/MysqlProvider.php:66 +msgid "Profile Photo 128px" +msgstr "Foto del perfil 128px" + +#: ../../extend/addon/addon/openid/MysqlProvider.php:67 +msgid "Timezone" +msgstr "Zona horaria" + +#: ../../extend/addon/addon/openid/MysqlProvider.php:70 +msgid "Birth Year" +msgstr "Año de nacimiento" + +#: ../../extend/addon/addon/openid/MysqlProvider.php:71 +msgid "Birth Month" +msgstr "Mes de nacimiento" + +#: ../../extend/addon/addon/openid/MysqlProvider.php:72 +msgid "Birth Day" +msgstr "Día de nacimiento" + +#: ../../extend/addon/addon/openid/MysqlProvider.php:73 +msgid "Birthdate" +msgstr "Fecha de nacimiento" + +#: ../../extend/addon/addon/openid/openid.php:49 +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 al iniciar sesión con el OpenID que proporcionó. Compruebe si el ID está correctamente escrito." + +#: ../../extend/addon/addon/openid/openid.php:49 +msgid "The error message was:" +msgstr "El mensaje de error ha sido: " + +#: ../../extend/addon/addon/diaspora_reconnect/diaspora_reconnect.php:44 +#, php-format +msgid "Reconnecting %d connections" +msgstr "Reconectando %d conexiones" + +#: ../../extend/addon/addon/diaspora_reconnect/diaspora_reconnect.php:63 +msgid "Diaspora Reconnect" +msgstr "Reconectar con Diaspora" + +#: ../../extend/addon/addon/diaspora_reconnect/diaspora_reconnect.php:65 +msgid "" +"Use this form to re-establish Diaspora connections which were initially made" +" from a different hub." +msgstr "Utilice este formulario para restablecer las conexiones de diáspora que se hicieron inicialmente desde un hub diferente." + +#: ../../extend/addon/addon/diaspora_reconnect/diaspora_reconnect.php:70 +msgid "Reconnect" +msgstr "Reconectar" + +#: ../../extend/addon/addon/mailtest/mailtest.php:19 +msgid "Send test email" +msgstr "Enviar un correo electrónico de prueba" + +#: ../../extend/addon/addon/mailtest/mailtest.php:66 +msgid "Mail sent." +msgstr "El correo electrónico ha sido enviado." + +#: ../../extend/addon/addon/mailtest/mailtest.php:68 +msgid "Sending of mail failed." +msgstr "No se pudo enviar el correo." + +#: ../../extend/addon/addon/mailtest/mailtest.php:77 +msgid "Mail Test" +msgstr "Prueba de correo" + +#: ../../extend/addon/addon/rendezvous/rendezvous.php:57 +msgid "Errors encountered deleting database table " +msgstr "Errores encontrados al eliminar la tabla de la base de datos" + +#: ../../extend/addon/addon/rendezvous/rendezvous.php:96 +msgid "Drop tables when uninstalling?" +msgstr "¿Eliminar tablas al desinstalar?" + +#: ../../extend/addon/addon/rendezvous/rendezvous.php:96 +msgid "" +"If checked, the Rendezvous database tables will be deleted when the plugin " +"is uninstalled." +msgstr "Si se selecciona, las tablas de la base de datos Rendezvous se eliminarán cuando se desinstale el plugin." + +#: ../../extend/addon/addon/rendezvous/rendezvous.php:97 +msgid "Mapbox Access Token" +msgstr "Token de acceso de Mapbox" + +#: ../../extend/addon/addon/rendezvous/rendezvous.php:97 +msgid "" +"If you enter a Mapbox access token, it will be used to retrieve map tiles " +"from Mapbox instead of the default OpenStreetMap tile server." +msgstr "Si introduce un token de acceso a Mapbox, se utilizará para recuperar los mapas de mosaicos de imágenes de Mapbox en lugar del servidor de mosaico de imágenes OpenStreetMap predeterminado." + +#: ../../extend/addon/addon/rendezvous/rendezvous.php:154 +msgid "Rendezvous" +msgstr "Rendezvous" + +#: ../../extend/addon/addon/rendezvous/rendezvous.php:159 +msgid "" +"This identity has been deleted by another member due to inactivity. Please " +"press the \"New identity\" button or refresh the page to register a new " +"identity. You may use the same name." +msgstr "Esta identidad ha sido eliminada por otro miembro debido a su inactividad. Pulse el botón \"Nueva identidad\" o actualice la página para registrar una nueva identidad. Puede usar el mismo nombre." + +#: ../../extend/addon/addon/rendezvous/rendezvous.php:160 +msgid "Welcome to Rendezvous!" +msgstr "¡Bienvenido/a a Rendevous!" + +#: ../../extend/addon/addon/rendezvous/rendezvous.php:161 +msgid "" +"Enter your name to join this rendezvous. To begin sharing your location with" +" the other members, tap the GPS control. When your location is discovered, a" +" red dot will appear and others will be able to see you on the map." +msgstr "Introduzca tu nombre para unirse a esta cita. Para comenzar a compartir su ubicación con los demás miembros, pulse en el control GPS. Cuando se descubra su ubicación, aparecerá un punto rojo y otros podrán verlo en el mapa." + +#: ../../extend/addon/addon/rendezvous/rendezvous.php:163 +msgid "Let's meet here" +msgstr "Reunámonos aquí" + +#: ../../extend/addon/addon/rendezvous/rendezvous.php:166 +msgid "New marker" +msgstr "Nuevo marcador" + +#: ../../extend/addon/addon/rendezvous/rendezvous.php:167 +msgid "Edit marker" +msgstr "Editar un marcador" + +#: ../../extend/addon/addon/rendezvous/rendezvous.php:168 +msgid "New identity" +msgstr "Nueva identidad" + +#: ../../extend/addon/addon/rendezvous/rendezvous.php:169 +msgid "Delete marker" +msgstr "Eliminar un marcador" + +#: ../../extend/addon/addon/rendezvous/rendezvous.php:170 +msgid "Delete member" +msgstr "Eliminar un miembro" + +#: ../../extend/addon/addon/rendezvous/rendezvous.php:171 +msgid "Edit proximity alert" +msgstr "Editar alerta de proximidad" + +#: ../../extend/addon/addon/rendezvous/rendezvous.php:172 +msgid "" +"A proximity alert will be issued when this member is within a certain radius" +" of you.

        Enter a radius in meters (0 to disable):" +msgstr "Se emitirá una alerta de proximidad cuando este miembro esté dentro de un radio determinado respecto a usted.

        Ingrese el radio en metros (0 para deshabilitar):" + +#: ../../extend/addon/addon/rendezvous/rendezvous.php:172 +msgid "distance" +msgstr "distancia" + +#: ../../extend/addon/addon/rendezvous/rendezvous.php:183 +msgid "Add new rendezvous" +msgstr "Añadir una nueva cita" + +#: ../../extend/addon/addon/rendezvous/rendezvous.php:184 +msgid "" +"Create a new rendezvous and share the access link with those you wish to " +"invite to the group. Those who open the link become members of the " +"rendezvous. They can view other member locations, add markers to the map, or" +" share their own locations with the group." +msgstr "Cree una nueva cita y comparta los enlaces de acceso con los que desea invitar al grupo. Aquellos que abran el enlace se convertirán en miembros de la cita. Pueden ver otras ubicaciones de miembros, añadir marcadores al mapa o compartir sus propias ubicaciones con el grupo." + #: ../../include/Import/import_diaspora.php:16 msgid "No username found in import file." msgstr "No se ha encontrado el nombre de usuario en el fichero importado." @@ -7424,775 +10452,95 @@ msgstr "No se ha encontrado el nombre de usuario en el fichero importado." 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/dba/dba_driver.php:173 +#: ../../include/dba/dba_driver.php:187 #, 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/permissions.php:35 -msgid "Can view my normal stream and posts" -msgstr "Pueden verse mi actividad y publicaciones normales" +#: ../../include/datetime.php:147 +msgid "Birthday" +msgstr "Cumpleaños" -#: ../../include/permissions.php:39 -msgid "Can view my webpages" -msgstr "Pueden verse mis páginas web" +#: ../../include/datetime.php:149 +msgid "Age: " +msgstr "Edad:" -#: ../../include/permissions.php:43 -msgid "Can post on my channel page (\"wall\")" -msgstr "Pueden crearse entradas en mi página de inicio del canal (“muro”)" +#: ../../include/datetime.php:151 +msgid "YYYY-MM-DD or MM-DD" +msgstr "AAAA-MM-DD o MM-DD" -#: ../../include/permissions.php:46 -msgid "Can like/dislike stuff" -msgstr "Puede marcarse contenido como me gusta/no me gusta" +#: ../../include/datetime.php:286 ../../boot.php:2564 +msgid "never" +msgstr "nunca" -#: ../../include/permissions.php:46 -msgid "Profiles and things other than posts/comments" -msgstr "Perfiles y otras cosas aparte de publicaciones/comentarios" +#: ../../include/datetime.php:292 +msgid "less than a second ago" +msgstr "hace un instante" -#: ../../include/permissions.php:48 -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:48 -msgid "Advanced - useful for creating group forum channels" -msgstr "Avanzado - útil para crear canales de foros de discusión o grupos" - -#: ../../include/permissions.php:49 -msgid "Can chat with me (when available)" -msgstr "Se puede charlar conmigo (cuando esté disponible)" - -#: ../../include/permissions.php:50 -msgid "Can write to my file storage and photos" -msgstr "Puede escribirse en mi repositorio de ficheros y fotos" - -#: ../../include/permissions.php:51 -msgid "Can edit my webpages" -msgstr "Pueden editarse mis páginas web" - -#: ../../include/permissions.php:53 -msgid "Somewhat advanced - very useful in open communities" -msgstr "Algo avanzado - muy útil en comunidades abiertas" - -#: ../../include/permissions.php:55 -msgid "Can administer my channel resources" -msgstr "Pueden administrarse mis recursos del canal" - -#: ../../include/permissions.php:55 -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/photos.php:114 +#: ../../include/datetime.php:310 #, php-format -msgid "Image exceeds website size limit of %lu bytes" -msgstr "La imagen excede el límite de %lu bytes del sitio" - -#: ../../include/photos.php:121 -msgid "Image file is empty." -msgstr "El fichero de imagen está vacío. " - -#: ../../include/photos.php:259 -msgid "Photo storage failed." -msgstr "La foto no ha podido ser guardada." - -#: ../../include/auth.php:275 -msgid "Failed authentication" -msgstr "Autenticación fallida." - -#: ../../include/auth.php:286 -msgid "Login failed." -msgstr "El acceso ha fallado." - -#: ../../include/photos.php:506 ../../include/conversation.php:1675 -msgid "Photo Albums" -msgstr "Álbumes de fotos" - -#: ../../include/bbcode.php:162 ../../include/bbcode.php:928 -msgid "Encrypted content" -msgstr "Contenido cifrado" - -#: ../../include/features.php:58 -msgid "General Features" -msgstr "Funcionalidades básicas" - -#: ../../include/features.php:63 -msgid "Multiple Profiles" -msgstr "Múltiples perfiles" - -#: ../../include/features.php:64 -msgid "Ability to create multiple profiles" -msgstr "Capacidad de crear múltiples perfiles" - -#: ../../include/features.php:72 -msgid "Advanced Profiles" -msgstr "Perfiles avanzados" - -#: ../../include/features.php:73 -msgid "Additional profile sections and selections" -msgstr "Secciones y selecciones de perfil adicionales" - -#: ../../include/features.php:81 -msgid "Profile Import/Export" -msgstr "Importar/Exportar perfil" - -#: ../../include/features.php:82 -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:90 -msgid "Web Pages" -msgstr "Páginas web" - -#: ../../include/features.php:91 -msgid "Provide managed web pages on your channel" -msgstr "Proveer páginas web gestionadas en su canal" - -#: ../../include/features.php:100 -msgid "Provide a wiki for your channel" -msgstr "Proporcionar un wiki para su canal" - -#: ../../include/features.php:117 -msgid "Private Notes" -msgstr "Notas privadas" - -#: ../../include/features.php:118 -msgid "Enables a tool to store notes and reminders (note: not encrypted)" -msgstr "Habilita una herramienta para guardar notas y recordatorios (advertencia: las notas no estarán cifradas)" - -#: ../../include/features.php:126 -msgid "Navigation Channel Select" -msgstr "Navegación por el selector de canales" - -#: ../../include/features.php:127 -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:135 -msgid "Photo Location" -msgstr "Ubicación de las fotos" - -#: ../../include/features.php:136 -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:144 -msgid "Access Controlled Chatrooms" -msgstr "Salas de chat moderadas" - -#: ../../include/features.php:145 -msgid "Provide chatrooms and chat services with access control." -msgstr "Proporcionar salas y servicios de chat moderados." - -#: ../../include/features.php:153 -msgid "Smart Birthdays" -msgstr "Cumpleaños inteligentes" - -#: ../../include/features.php:154 -msgid "" -"Make birthday events timezone aware in case your friends are scattered " -"across the planet." -msgstr "Enlazar los eventos de cumpleaños con el huso horario en el caso de que sus amigos estén dispersos por el mundo." - -#: ../../include/features.php:162 -msgid "Advanced Directory Search" -msgstr "Búsqueda avanzada en el directorio" - -#: ../../include/features.php:163 -msgid "Allows creation of complex directory search queries" -msgstr "Permitir la creación de consultas complejas en las búsquedas en el directorio" - -#: ../../include/features.php:171 -msgid "Advanced Theme and Layout Settings" -msgstr "Ajustes avanzados de temas y esquemas" - -#: ../../include/features.php:172 -msgid "Allows fine tuning of themes and page layouts" -msgstr "Permitir el ajuste fino de temas y esquemas de páginas" - -#: ../../include/features.php:182 -msgid "Post Composition Features" -msgstr "Opciones para la redacción de entradas" - -#: ../../include/features.php:186 -msgid "Large Photos" -msgstr "Fotos de gran tamaño" - -#: ../../include/features.php:187 -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 (640px)" - -#: ../../include/features.php:196 -msgid "Automatically import channel content from other channels or feeds" -msgstr "Importar automáticamente contenido de otros canales o \"feeds\"" - -#: ../../include/features.php:204 -msgid "Even More Encryption" -msgstr "Más cifrado todavía" - -#: ../../include/features.php:205 -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:213 -msgid "Enable Voting Tools" -msgstr "Permitir entradas con votación" - -#: ../../include/features.php:214 -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:222 -msgid "Disable Comments" -msgstr "Deshabilitar comentarios" - -#: ../../include/features.php:223 -msgid "Provide the option to disable comments for a post" -msgstr "Proporcionar la opción de desactivar los comentarios de una publicación" - -#: ../../include/features.php:231 -msgid "Delayed Posting" -msgstr "Publicación aplazada" - -#: ../../include/features.php:232 -msgid "Allow posts to be published at a later date" -msgstr "Permitir mensajes que se publicarán en una fecha posterior" - -#: ../../include/features.php:240 -msgid "Content Expiration" -msgstr "Caducidad del contenido" - -#: ../../include/features.php:241 -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:249 -msgid "Suppress Duplicate Posts/Comments" -msgstr "Prevenir entradas o comentarios duplicados" - -#: ../../include/features.php:250 -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:261 -msgid "Network and Stream Filtering" -msgstr "Filtrado del contenido" - -#: ../../include/features.php:265 -msgid "Search by Date" -msgstr "Buscar por fecha" - -#: ../../include/features.php:266 -msgid "Ability to select posts by date ranges" -msgstr "Capacidad de seleccionar entradas por rango de fechas" - -#: ../../include/features.php:274 ../../include/group.php:311 -msgid "Privacy Groups" -msgstr "Grupos de canales" - -#: ../../include/features.php:275 -msgid "Enable management and selection of privacy groups" -msgstr "Activar la gestión y selección de grupos de canales" - -#: ../../include/features.php:283 ../../include/widgets.php:283 -msgid "Saved Searches" -msgstr "Búsquedas guardadas" - -#: ../../include/features.php:284 -msgid "Save search terms for re-use" -msgstr "Guardar términos de búsqueda para su reutilización" - -#: ../../include/features.php:292 -msgid "Network Personal Tab" -msgstr "Actividad personal" - -#: ../../include/features.php:293 -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:301 -msgid "Network New Tab" -msgstr "Contenido nuevo" - -#: ../../include/features.php:302 -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:310 -msgid "Affinity Tool" -msgstr "Herramienta de afinidad" - -#: ../../include/features.php:311 -msgid "Filter stream activity by depth of relationships" -msgstr "Filtrar el contenido según la profundidad de las relaciones" - -#: ../../include/features.php:320 -msgid "Show friend and connection suggestions" -msgstr "Mostrar sugerencias de amigos y conexiones" - -#: ../../include/features.php:328 -msgid "Connection Filtering" -msgstr "Filtrado de conexiones" - -#: ../../include/features.php:329 -msgid "Filter incoming posts from connections based on keywords/content" -msgstr "Filtrar publicaciones entrantes de conexiones por palabras clave o contenido" - -#: ../../include/features.php:341 -msgid "Post/Comment Tools" -msgstr "Gestión de entradas y comentarios" - -#: ../../include/features.php:345 -msgid "Community Tagging" -msgstr "Etiquetas de la comunidad" - -#: ../../include/features.php:346 -msgid "Ability to tag existing posts" -msgstr "Capacidad de etiquetar entradas existentes" - -#: ../../include/features.php:354 -msgid "Post Categories" -msgstr "Temas de las entradas" - -#: ../../include/features.php:355 -msgid "Add categories to your posts" -msgstr "Añadir temas a sus publicaciones" - -#: ../../include/features.php:363 -msgid "Emoji Reactions" -msgstr "Emoticonos \"emoji\"" - -#: ../../include/features.php:364 -msgid "Add emoji reaction ability to posts" -msgstr "Activar la capacidad de añadir un emoticono \"emoji\" a las entradas" - -#: ../../include/features.php:372 ../../include/contact_widgets.php:53 -#: ../../include/widgets.php:346 -msgid "Saved Folders" -msgstr "Carpetas guardadas" - -#: ../../include/features.php:373 -msgid "Ability to file posts under folders" -msgstr "Capacidad de archivar entradas en carpetas" - -#: ../../include/features.php:381 -msgid "Dislike Posts" -msgstr "Desagrado de publicaciones" - -#: ../../include/features.php:382 -msgid "Ability to dislike posts/comments" -msgstr "Capacidad de mostrar desacuerdo con el contenido de entradas y comentarios" - -#: ../../include/features.php:390 -msgid "Star Posts" -msgstr "Entradas destacadas" - -#: ../../include/features.php:391 -msgid "Ability to mark special posts with a star indicator" -msgstr "Capacidad de marcar entradas destacadas con un indicador de estrella" - -#: ../../include/features.php:399 -msgid "Tag Cloud" -msgstr "Nube de etiquetas" - -#: ../../include/features.php:400 -msgid "Provide a personal tag cloud on your channel page" -msgstr "Proveer nube de etiquetas personal en su página de canal" - -#: ../../include/features.php:412 -msgid "Premium Channel" -msgstr "Canal premium" - -#: ../../include/features.php:413 -msgid "" -"Allows you to set restrictions and terms on those that connect with your " -"channel" -msgstr "Le permite configurar restricciones y normas de uso a aquellos que conectan con su canal" - -#: ../../include/help.php:25 -msgid "Help:" -msgstr "Ayuda:" - -#: ../../include/security.php:109 -msgid "guest:" -msgstr "invitado: " - -#: ../../include/security.php:527 -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:450 -msgid "prev" -msgstr "anterior" - -#: ../../include/text.php:452 -msgid "first" -msgstr "primera" - -#: ../../include/text.php:481 -msgid "last" -msgstr "última" - -#: ../../include/text.php:484 -msgid "next" -msgstr "próxima" - -#: ../../include/text.php:494 -msgid "older" -msgstr "más antiguas" - -#: ../../include/text.php:496 -msgid "newer" -msgstr "más recientes" - -#: ../../include/text.php:889 -msgid "No connections" -msgstr "Sin conexiones" - -#: ../../include/text.php:914 +msgctxt "e.g. 22 hours ago, 1 minute ago" +msgid "%1$d %2$s ago" +msgstr "hace %1$d %2$s" + +#: ../../include/datetime.php:321 +msgctxt "relative_date" +msgid "year" +msgid_plural "years" +msgstr[0] "año" +msgstr[1] "años" + +#: ../../include/datetime.php:324 +msgctxt "relative_date" +msgid "month" +msgid_plural "months" +msgstr[0] "mes" +msgstr[1] "meses" + +#: ../../include/datetime.php:327 +msgctxt "relative_date" +msgid "week" +msgid_plural "weeks" +msgstr[0] "semana" +msgstr[1] "semanas" + +#: ../../include/datetime.php:330 +msgctxt "relative_date" +msgid "day" +msgid_plural "days" +msgstr[0] "día" +msgstr[1] "días" + +#: ../../include/datetime.php:333 +msgctxt "relative_date" +msgid "hour" +msgid_plural "hours" +msgstr[0] "hora" +msgstr[1] "horas" + +#: ../../include/datetime.php:336 +msgctxt "relative_date" +msgid "minute" +msgid_plural "minutes" +msgstr[0] "minuto" +msgstr[1] "minutos" + +#: ../../include/datetime.php:339 +msgctxt "relative_date" +msgid "second" +msgid_plural "seconds" +msgstr[0] "segundo" +msgstr[1] "segundos" + +#: ../../include/datetime.php:576 #, php-format -msgid "View all %s connections" -msgstr "Ver todas las %s conexiones" +msgid "%1$s's birthday" +msgstr "Cumpleaños de %1$s" -#: ../../include/text.php:1059 ../../include/text.php:1064 -msgid "poke" -msgstr "un toque" - -#: ../../include/text.php:1059 ../../include/text.php:1064 -#: ../../include/conversation.php:243 -msgid "poked" -msgstr "ha dado un toque a" - -#: ../../include/text.php:1065 -msgid "ping" -msgstr "un \"ping\"" - -#: ../../include/text.php:1065 -msgid "pinged" -msgstr "ha enviado un \"ping\" a" - -#: ../../include/text.php:1066 -msgid "prod" -msgstr "una incitación " - -#: ../../include/text.php:1066 -msgid "prodded" -msgstr "ha incitado a " - -#: ../../include/text.php:1067 -msgid "slap" -msgstr "una bofetada " - -#: ../../include/text.php:1067 -msgid "slapped" -msgstr "ha abofeteado a " - -#: ../../include/text.php:1068 -msgid "finger" -msgstr "un \"finger\" " - -#: ../../include/text.php:1068 -msgid "fingered" -msgstr "envió un \"finger\" a" - -#: ../../include/text.php:1069 -msgid "rebuff" -msgstr "un reproche" - -#: ../../include/text.php:1069 -msgid "rebuffed" -msgstr "ha hecho un reproche a " - -#: ../../include/text.php:1081 -msgid "happy" -msgstr "feliz " - -#: ../../include/text.php:1082 -msgid "sad" -msgstr "triste " - -#: ../../include/text.php:1083 -msgid "mellow" -msgstr "tranquilo/a" - -#: ../../include/text.php:1084 -msgid "tired" -msgstr "cansado/a " - -#: ../../include/text.php:1085 -msgid "perky" -msgstr "vivaz" - -#: ../../include/text.php:1086 -msgid "angry" -msgstr "enfadado/a" - -#: ../../include/text.php:1087 -msgid "stupefied" -msgstr "asombrado/a" - -#: ../../include/text.php:1088 -msgid "puzzled" -msgstr "perplejo/a" - -#: ../../include/text.php:1089 -msgid "interested" -msgstr "interesado/a" - -#: ../../include/text.php:1090 -msgid "bitter" -msgstr "amargado/a" - -#: ../../include/text.php:1091 -msgid "cheerful" -msgstr "alegre" - -#: ../../include/text.php:1092 -msgid "alive" -msgstr "animado/a" - -#: ../../include/text.php:1093 -msgid "annoyed" -msgstr "molesto/a" - -#: ../../include/text.php:1094 -msgid "anxious" -msgstr "ansioso/a" - -#: ../../include/text.php:1095 -msgid "cranky" -msgstr "de mal humor" - -#: ../../include/text.php:1096 -msgid "disturbed" -msgstr "perturbado/a" - -#: ../../include/text.php:1097 -msgid "frustrated" -msgstr "frustrado/a" - -#: ../../include/text.php:1098 -msgid "depressed" -msgstr "deprimido/a" - -#: ../../include/text.php:1099 -msgid "motivated" -msgstr "motivado/a" - -#: ../../include/text.php:1100 -msgid "relaxed" -msgstr "relajado/a" - -#: ../../include/text.php:1101 -msgid "surprised" -msgstr "sorprendido/a" - -#: ../../include/text.php:1285 ../../include/js_strings.php:70 -msgid "Monday" -msgstr "lunes" - -#: ../../include/text.php:1285 ../../include/js_strings.php:71 -msgid "Tuesday" -msgstr "martes" - -#: ../../include/text.php:1285 ../../include/js_strings.php:72 -msgid "Wednesday" -msgstr "miércoles" - -#: ../../include/text.php:1285 ../../include/js_strings.php:73 -msgid "Thursday" -msgstr "jueves" - -#: ../../include/text.php:1285 ../../include/js_strings.php:74 -msgid "Friday" -msgstr "viernes" - -#: ../../include/text.php:1285 ../../include/js_strings.php:75 -msgid "Saturday" -msgstr "sábado" - -#: ../../include/text.php:1285 ../../include/js_strings.php:69 -msgid "Sunday" -msgstr "domingo" - -#: ../../include/text.php:1289 ../../include/js_strings.php:45 -msgid "January" -msgstr "enero" - -#: ../../include/text.php:1289 ../../include/js_strings.php:46 -msgid "February" -msgstr "febrero" - -#: ../../include/text.php:1289 ../../include/js_strings.php:47 -msgid "March" -msgstr "marzo" - -#: ../../include/text.php:1289 ../../include/js_strings.php:48 -msgid "April" -msgstr "abril" - -#: ../../include/text.php:1289 -msgid "May" -msgstr "mayo" - -#: ../../include/text.php:1289 ../../include/js_strings.php:50 -msgid "June" -msgstr "junio" - -#: ../../include/text.php:1289 ../../include/js_strings.php:51 -msgid "July" -msgstr "julio" - -#: ../../include/text.php:1289 ../../include/js_strings.php:52 -msgid "August" -msgstr "agosto" - -#: ../../include/text.php:1289 ../../include/js_strings.php:53 -msgid "September" -msgstr "septiembre" - -#: ../../include/text.php:1289 ../../include/js_strings.php:54 -msgid "October" -msgstr "octubre" - -#: ../../include/text.php:1289 ../../include/js_strings.php:55 -msgid "November" -msgstr "noviembre" - -#: ../../include/text.php:1289 ../../include/js_strings.php:56 -msgid "December" -msgstr "diciembre" - -#: ../../include/text.php:1366 ../../include/text.php:1370 -msgid "Unknown Attachment" -msgstr "Adjunto no reconocido" - -#: ../../include/text.php:1372 -msgid "unknown" -msgstr "desconocido" - -#: ../../include/text.php:1408 -msgid "remove category" -msgstr "eliminar el tema" - -#: ../../include/text.php:1485 -msgid "remove from file" -msgstr "eliminar del fichero" - -#: ../../include/text.php:1784 ../../include/text.php:1855 -msgid "default" -msgstr "por defecto" - -#: ../../include/text.php:1792 -msgid "Page layout" -msgstr "Plantilla de la página" - -#: ../../include/text.php:1792 -msgid "You can create your own with the layouts tool" -msgstr "Puede crear su propia disposición gráfica con la herramienta de plantillas" - -#: ../../include/text.php:1834 -msgid "Page content type" -msgstr "Tipo de contenido de la página" - -#: ../../include/text.php:1867 -msgid "Select an alternate language" -msgstr "Seleccionar un idioma alternativo" - -#: ../../include/text.php:2004 -msgid "activity" -msgstr "la actividad" - -#: ../../include/text.php:2305 -msgid "Design Tools" -msgstr "Herramientas de diseño web" - -#: ../../include/text.php:2311 -msgid "Pages" -msgstr "Páginas" - -#: ../../include/text.php:2333 -msgid "Import website..." -msgstr "Importar un sitio web..." - -#: ../../include/text.php:2334 -msgid "Select folder to import" -msgstr "Seleccionar la carpeta que se va a importar" - -#: ../../include/text.php:2335 -msgid "Import from a zipped folder:" -msgstr "Importar desde una carpeta comprimida: " - -#: ../../include/text.php:2336 -msgid "Import from cloud files:" -msgstr "Importar desde los ficheros en la nube: " - -#: ../../include/text.php:2337 -msgid "/cloud/channel/path/to/folder" -msgstr "/cloud/canal/ruta/a la/carpeta" - -#: ../../include/text.php:2338 -msgid "Enter path to website files" -msgstr "Ruta a los ficheros del sitio web" - -#: ../../include/text.php:2339 -msgid "Select folder" -msgstr "Seleccionar la carpeta" - -#: ../../include/text.php:2340 -msgid "Export website..." -msgstr "Exportar un sitio web..." - -#: ../../include/text.php:2341 -msgid "Export to a zip file" -msgstr "Exportar a un fichero comprimido .zip" - -#: ../../include/text.php:2342 -msgid "website.zip" -msgstr "sitio_web.zip" - -#: ../../include/text.php:2343 -msgid "Enter a name for the zip file." -msgstr "Escribir un nombre para el fichero .zip." - -#: ../../include/text.php:2344 -msgid "Export to cloud files" -msgstr "Exportar a los ficheros en la nube" - -#: ../../include/text.php:2345 -msgid "/path/to/export/folder" -msgstr "/ruta/para/exportar/carpeta" - -#: ../../include/text.php:2346 -msgid "Enter a path to a cloud files destination." -msgstr "Escribir una ruta de destino para los ficheros en la nube" - -#: ../../include/text.php:2347 -msgid "Specify folder" -msgstr "Especificar una carpeta" - -#: ../../include/zot.php:700 -msgid "Invalid data packet" -msgstr "Paquete de datos no válido" - -#: ../../include/zot.php:716 -msgid "Unable to verify channel signature" -msgstr "No ha sido posible de verificar la firma del canal" - -#: ../../include/zot.php:2329 +#: ../../include/datetime.php:577 #, 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:3713 -msgid "invalid target signature" -msgstr "La firma recibida no es válida" +msgid "Happy Birthday %1$s" +msgstr "Feliz cumpleaños %1$s" #: ../../include/account.php:35 msgid "Not a valid email address" @@ -8222,67 +10570,46 @@ msgstr "Por favor introduzca la información requerida." msgid "Failed to store account information." msgstr "La información de la cuenta no se ha podido guardar." -#: ../../include/account.php:258 +#: ../../include/account.php:263 #, php-format msgid "Registration confirmation for %s" msgstr "Confirmación de registro para %s" -#: ../../include/account.php:324 +#: ../../include/account.php:330 #, php-format msgid "Registration request at %s" msgstr "Solicitud de registro en %s" -#: ../../include/account.php:326 ../../include/account.php:353 -#: ../../include/account.php:413 ../../include/network.php:1937 -msgid "Administrator" -msgstr "Administrador" - -#: ../../include/account.php:348 +#: ../../include/account.php:352 msgid "your registration password" msgstr "su contraseña de registro" -#: ../../include/account.php:351 ../../include/account.php:411 +#: ../../include/account.php:358 ../../include/account.php:420 #, php-format msgid "Registration details for %s" msgstr "Detalles del registro de %s" -#: ../../include/account.php:423 +#: ../../include/account.php:431 msgid "Account approved." msgstr "Cuenta aprobada." -#: ../../include/account.php:463 +#: ../../include/account.php:471 #, php-format msgid "Registration revoked for %s" msgstr "Registro revocado para %s" -#: ../../include/account.php:748 ../../include/account.php:750 +#: ../../include/account.php:756 ../../include/account.php:758 msgid "Click here to upgrade." msgstr "Pulse aquí para actualizar" -#: ../../include/account.php:756 +#: ../../include/account.php:764 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:761 +#: ../../include/account.php:769 msgid "This action is not available under your subscription plan." msgstr "Esta acción no está disponible en su plan de suscripción." -#: ../../include/message.php:20 -msgid "No recipient provided." -msgstr "No se ha especificado ningún destinatario." - -#: ../../include/message.php:25 -msgid "[no subject]" -msgstr "[sin asunto]" - -#: ../../include/message.php:45 -msgid "Unable to determine sender." -msgstr "No ha sido posible determinar el remitente. " - -#: ../../include/message.php:222 -msgid "Stored post could not be verified." -msgstr "No se han podido verificar las publicaciones guardadas." - #: ../../include/selectors.php:30 msgid "Frequently" msgstr "Frecuentemente" @@ -8307,14 +10634,6 @@ msgstr "Semanalmente" msgid "Monthly" msgstr "Mensualmente" -#: ../../include/selectors.php:49 ../../include/selectors.php:66 -msgid "Male" -msgstr "Hombre" - -#: ../../include/selectors.php:49 ../../include/selectors.php:66 -msgid "Female" -msgstr "Mujer" - #: ../../include/selectors.php:49 msgid "Currently Male" msgstr "Actualmente hombre" @@ -8568,192 +10887,115 @@ msgstr "No ha sido posible recuperar la identidad creada" msgid "Default Profile" msgstr "Perfil principal" -#: ../../include/channel.php:813 -msgid "Requested channel is not available." -msgstr "El canal solicitado no está disponible." - -#: ../../include/channel.php:960 +#: ../../include/channel.php:962 msgid "Create New Profile" msgstr "Crear un nuevo perfil" -#: ../../include/channel.php:963 ../../include/nav.php:93 -msgid "Edit Profile" -msgstr "Editar el perfil" - -#: ../../include/channel.php:980 +#: ../../include/channel.php:982 msgid "Visible to everybody" msgstr "Visible para todos" -#: ../../include/channel.php:1053 ../../include/channel.php:1166 +#: ../../include/channel.php:1055 ../../include/channel.php:1174 msgid "Gender:" msgstr "Género:" -#: ../../include/channel.php:1054 ../../include/channel.php:1210 -msgid "Status:" -msgstr "Estado:" - -#: ../../include/channel.php:1055 ../../include/channel.php:1221 +#: ../../include/channel.php:1057 ../../include/channel.php:1229 msgid "Homepage:" msgstr "Página personal:" -#: ../../include/channel.php:1056 +#: ../../include/channel.php:1058 msgid "Online Now" msgstr "Ahora en línea" -#: ../../include/channel.php:1171 +#: ../../include/channel.php:1179 msgid "Like this channel" msgstr "Me gusta este canal" -#: ../../include/channel.php:1195 +#: ../../include/channel.php:1203 msgid "j F, Y" msgstr "j F Y" -#: ../../include/channel.php:1196 +#: ../../include/channel.php:1204 msgid "j F" msgstr "j F" -#: ../../include/channel.php:1203 +#: ../../include/channel.php:1211 msgid "Birthday:" msgstr "Cumpleaños:" -#: ../../include/channel.php:1216 +#: ../../include/channel.php:1224 #, php-format msgid "for %1$d %2$s" msgstr "por %1$d %2$s" -#: ../../include/channel.php:1219 +#: ../../include/channel.php:1227 msgid "Sexual Preference:" msgstr "Orientación sexual:" -#: ../../include/channel.php:1225 +#: ../../include/channel.php:1233 msgid "Tags:" msgstr "Etiquetas:" -#: ../../include/channel.php:1227 +#: ../../include/channel.php:1235 msgid "Political Views:" msgstr "Posición política:" -#: ../../include/channel.php:1229 +#: ../../include/channel.php:1237 msgid "Religion:" msgstr "Religión:" -#: ../../include/channel.php:1233 +#: ../../include/channel.php:1241 msgid "Hobbies/Interests:" msgstr "Aficciones o intereses:" -#: ../../include/channel.php:1235 +#: ../../include/channel.php:1243 msgid "Likes:" msgstr "Me gusta:" -#: ../../include/channel.php:1237 +#: ../../include/channel.php:1245 msgid "Dislikes:" msgstr "No me gusta:" -#: ../../include/channel.php:1239 +#: ../../include/channel.php:1247 msgid "Contact information and Social Networks:" msgstr "Información de contacto y redes sociales:" -#: ../../include/channel.php:1241 +#: ../../include/channel.php:1249 msgid "My other channels:" msgstr "Mis otros canales:" -#: ../../include/channel.php:1243 +#: ../../include/channel.php:1251 msgid "Musical interests:" msgstr "Preferencias musicales:" -#: ../../include/channel.php:1245 +#: ../../include/channel.php:1253 msgid "Books, literature:" msgstr "Libros, literatura:" -#: ../../include/channel.php:1247 +#: ../../include/channel.php:1255 msgid "Television:" msgstr "Televisión:" -#: ../../include/channel.php:1249 +#: ../../include/channel.php:1257 msgid "Film/dance/culture/entertainment:" msgstr "Cine, danza, cultura, entretenimiento:" -#: ../../include/channel.php:1251 +#: ../../include/channel.php:1259 msgid "Love/Romance:" msgstr "Vida sentimental o amorosa:" -#: ../../include/channel.php:1253 +#: ../../include/channel.php:1261 msgid "Work/employment:" msgstr "Trabajo:" -#: ../../include/channel.php:1255 +#: ../../include/channel.php:1263 msgid "School/education:" msgstr "Estudios:" -#: ../../include/channel.php:1276 +#: ../../include/channel.php:1284 msgid "Like this thing" msgstr "Me gusta esto" -#: ../../include/acl_selectors.php:169 -msgid "Who can see this?" -msgstr "¿Quién puede ver esto?" - -#: ../../include/acl_selectors.php:170 -msgid "Custom selection" -msgstr "Selección personalizada" - -#: ../../include/acl_selectors.php:171 -msgid "" -"Select \"Show\" to allow viewing. \"Don't show\" lets you override and limit" -" the scope of \"Show\"." -msgstr "Seleccione \"Mostrar\" para permitir la visualización. La opción \"No mostrar\" le permite anular y limitar el alcance de \"Mostrar\"." - -#: ../../include/acl_selectors.php:172 -msgid "Show" -msgstr "Mostrar" - -#: ../../include/acl_selectors.php:173 -msgid "Don't show" -msgstr "No mostrar" - -#: ../../include/acl_selectors.php:207 -#, php-format -msgid "" -"Post permissions %s cannot be changed %s after a post is shared.
        These" -" permissions set who is allowed to view the post." -msgstr "Los permisos de la entrada %s no se pueden cambiar %s una vez que se ha compartido.
        Estos permisos establecen quién está autorizado para ver el mensaje." - -#: ../../include/bookmarks.php:35 -#, php-format -msgid "%1$s's bookmarks" -msgstr "Marcadores de %1$s" - -#: ../../include/group.php:26 -msgid "" -"A deleted group with this name was revived. Existing item permissions " -"may 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. Es posible 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:248 -msgid "Add new connections to this privacy group" -msgstr "Añadir conexiones nuevas a este grupo de canales" - -#: ../../include/group.php:289 -msgid "edit" -msgstr "editar" - -#: ../../include/group.php:312 -msgid "Edit group" -msgstr "Editar grupo" - -#: ../../include/group.php:313 -msgid "Add privacy group" -msgstr "Añadir un grupo de canales" - -#: ../../include/group.php:314 -msgid "Channels not in any privacy group" -msgstr "Sin canales en ningún grupo" - -#: ../../include/group.php:316 ../../include/widgets.php:284 -msgid "add" -msgstr "añadir" - #: ../../include/connections.php:95 msgid "New window" msgstr "Nueva ventana" @@ -8767,19 +11009,23 @@ msgstr "Abrir la dirección seleccionada en una ventana o pestaña aparte" msgid "User '%s' deleted" msgstr "El usuario '%s' ha sido eliminado" -#: ../../include/page_widgets.php:7 -msgid "New Page" -msgstr "Nueva página" +#: ../../include/dir_fns.php:141 +msgid "Directory Options" +msgstr "Opciones del directorio" -#: ../../include/page_widgets.php:46 -msgid "Title" -msgstr "Título" +#: ../../include/dir_fns.php:143 +msgid "Safe Mode" +msgstr "Modo seguro" -#: ../../include/wiki.php:525 ../../include/bbcode.php:619 -msgid "Different viewers will see this text differently" -msgstr "Visitantes diferentes verán este texto de forma distinta" +#: ../../include/dir_fns.php:144 +msgid "Public Forums Only" +msgstr "Solo foros públicos" -#: ../../include/nav.php:85 ../../include/nav.php:118 ../../boot.php:1738 +#: ../../include/dir_fns.php:145 +msgid "This Website Only" +msgstr "Solo este sitio web" + +#: ../../include/nav.php:85 ../../include/nav.php:118 ../../boot.php:1719 msgid "Logout" msgstr "Finalizar sesión" @@ -8787,10 +11033,6 @@ msgstr "Finalizar sesión" msgid "End this session" msgstr "Finalizar esta sesión" -#: ../../include/nav.php:88 ../../include/nav.php:149 -msgid "Home" -msgstr "Inicio" - #: ../../include/nav.php:88 msgid "Your posts and conversations" msgstr "Sus publicaciones y conversaciones" @@ -8819,7 +11061,7 @@ msgstr "Sus ficheros" msgid "Your chatrooms" msgstr "Sus salas de chat" -#: ../../include/nav.php:105 ../../include/conversation.php:1715 +#: ../../include/nav.php:105 ../../include/conversation.php:1717 msgid "Bookmarks" msgstr "Marcadores" @@ -8832,165 +11074,578 @@ msgid "Your webpages" msgstr "Sus páginas web" #: ../../include/nav.php:111 -msgid "Your wiki" -msgstr "Su wiki" +msgid "Your wikis" +msgstr "Sus wikis" #: ../../include/nav.php:115 msgid "Sign in" msgstr "Acceder" -#: ../../include/nav.php:132 -#, php-format -msgid "%s - click to logout" -msgstr "%s - pulsar para finalizar sesión" - -#: ../../include/nav.php:135 +#: ../../include/nav.php:131 msgid "Remote authentication" msgstr "Acceder desde su servidor" -#: ../../include/nav.php:135 +#: ../../include/nav.php:131 msgid "Click to authenticate to your home hub" msgstr "Pulsar para identificarse en su servidor de inicio" -#: ../../include/nav.php:149 -msgid "Home Page" -msgstr "Página de inicio" +#: ../../include/nav.php:143 +msgid "Get me home" +msgstr "Volver a la página principal" -#: ../../include/nav.php:152 +#: ../../include/nav.php:145 +msgid "Log me out of this site" +msgstr "Salir de este sitio" + +#: ../../include/nav.php:150 msgid "Create an account" msgstr "Crear una cuenta" -#: ../../include/nav.php:164 +#: ../../include/nav.php:162 msgid "Help and documentation" msgstr "Ayuda y documentación" -#: ../../include/nav.php:168 +#: ../../include/nav.php:166 msgid "Applications, utilities, links, games" msgstr "Aplicaciones, utilidades, enlaces, juegos" -#: ../../include/nav.php:170 +#: ../../include/nav.php:168 msgid "Search site @name, #tag, ?docs, content" msgstr "Buscar en el sitio por @nombre, #etiqueta, ?ayuda o contenido" -#: ../../include/nav.php:172 +#: ../../include/nav.php:170 msgid "Channel Directory" msgstr "Directorio de canales" -#: ../../include/nav.php:184 +#: ../../include/nav.php:182 msgid "Your grid" msgstr "Mi red" -#: ../../include/nav.php:185 +#: ../../include/nav.php:183 msgid "Mark all grid notifications seen" msgstr "Marcar todas las notificaciones de la red como vistas" -#: ../../include/nav.php:187 +#: ../../include/nav.php:185 msgid "Channel home" msgstr "Mi canal" -#: ../../include/nav.php:188 +#: ../../include/nav.php:186 msgid "Mark all channel notifications seen" msgstr "Marcar todas las notificaciones del canal como leídas" -#: ../../include/nav.php:194 +#: ../../include/nav.php:192 msgid "Notices" msgstr "Avisos" -#: ../../include/nav.php:194 +#: ../../include/nav.php:192 msgid "Notifications" msgstr "Notificaciones" -#: ../../include/nav.php:195 +#: ../../include/nav.php:193 msgid "See all notifications" msgstr "Ver todas las notificaciones" -#: ../../include/nav.php:198 +#: ../../include/nav.php:196 msgid "Private mail" msgstr "Correo privado" -#: ../../include/nav.php:199 +#: ../../include/nav.php:197 msgid "See all private messages" msgstr "Ver todas los mensajes privados" -#: ../../include/nav.php:200 +#: ../../include/nav.php:198 msgid "Mark all private messages seen" msgstr "Marcar todos los mensajes privados como leídos" -#: ../../include/nav.php:201 ../../include/widgets.php:700 +#: ../../include/nav.php:199 ../../include/widgets.php:700 msgid "Inbox" msgstr "Bandeja de entrada" -#: ../../include/nav.php:202 ../../include/widgets.php:705 +#: ../../include/nav.php:200 ../../include/widgets.php:705 msgid "Outbox" msgstr "Bandeja de salida" -#: ../../include/nav.php:203 ../../include/widgets.php:710 +#: ../../include/nav.php:201 ../../include/widgets.php:710 msgid "New Message" msgstr "Nuevo mensaje" -#: ../../include/nav.php:206 +#: ../../include/nav.php:204 msgid "Event Calendar" msgstr "Calendario de eventos" -#: ../../include/nav.php:207 +#: ../../include/nav.php:205 msgid "See all events" msgstr "Ver todos los eventos" -#: ../../include/nav.php:208 +#: ../../include/nav.php:206 msgid "Mark all events seen" msgstr "Marcar todos los eventos como leidos" -#: ../../include/nav.php:211 +#: ../../include/nav.php:209 msgid "Manage Your Channels" msgstr "Gestionar sus canales" -#: ../../include/nav.php:213 +#: ../../include/nav.php:211 msgid "Account/Channel Settings" msgstr "Ajustes de cuenta/canales" -#: ../../include/nav.php:221 ../../include/widgets.php:1594 +#: ../../include/nav.php:219 ../../include/widgets.php:1595 msgid "Admin" msgstr "Administrador" -#: ../../include/nav.php:221 +#: ../../include/nav.php:219 msgid "Site Setup and Configuration" msgstr "Ajustes y configuración del sitio" -#: ../../include/nav.php:252 ../../include/conversation.php:853 +#: ../../include/nav.php:250 ../../include/conversation.php:835 msgid "Loading..." msgstr "Cargando..." -#: ../../include/nav.php:257 +#: ../../include/nav.php:255 msgid "@name, #tag, ?doc, content" msgstr "@nombre, #etiqueta, ?ayuda, contenido" -#: ../../include/nav.php:258 +#: ../../include/nav.php:256 msgid "Please wait..." msgstr "Espere por favor…" -#: ../../include/bb2diaspora.php:398 +#: ../../include/features.php:58 +msgid "General Features" +msgstr "Funcionalidades básicas" + +#: ../../include/features.php:63 +msgid "Multiple Profiles" +msgstr "Múltiples perfiles" + +#: ../../include/features.php:64 +msgid "Ability to create multiple profiles" +msgstr "Capacidad de crear múltiples perfiles" + +#: ../../include/features.php:72 +msgid "Advanced Profiles" +msgstr "Perfiles avanzados" + +#: ../../include/features.php:73 +msgid "Additional profile sections and selections" +msgstr "Secciones y selecciones de perfil adicionales" + +#: ../../include/features.php:81 +msgid "Profile Import/Export" +msgstr "Importar/Exportar perfil" + +#: ../../include/features.php:82 +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:90 +msgid "Web Pages" +msgstr "Páginas web" + +#: ../../include/features.php:91 +msgid "Provide managed web pages on your channel" +msgstr "Proveer páginas web gestionadas en su canal" + +#: ../../include/features.php:100 +msgid "Provide a wiki for your channel" +msgstr "Proporcionar un wiki para su canal" + +#: ../../include/features.php:117 +msgid "Private Notes" +msgstr "Notas privadas" + +#: ../../include/features.php:118 +msgid "Enables a tool to store notes and reminders (note: not encrypted)" +msgstr "Habilita una herramienta para guardar notas y recordatorios (advertencia: las notas no estarán cifradas)" + +#: ../../include/features.php:126 +msgid "Navigation Channel Select" +msgstr "Navegación por el selector de canales" + +#: ../../include/features.php:127 +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:135 +msgid "Photo Location" +msgstr "Ubicación de las fotos" + +#: ../../include/features.php:136 +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:144 +msgid "Access Controlled Chatrooms" +msgstr "Salas de chat moderadas" + +#: ../../include/features.php:145 +msgid "Provide chatrooms and chat services with access control." +msgstr "Proporcionar salas y servicios de chat moderados." + +#: ../../include/features.php:153 +msgid "Smart Birthdays" +msgstr "Cumpleaños inteligentes" + +#: ../../include/features.php:154 +msgid "" +"Make birthday events timezone aware in case your friends are scattered " +"across the planet." +msgstr "Enlazar los eventos de cumpleaños con el huso horario en el caso de que sus amigos estén dispersos por el mundo." + +#: ../../include/features.php:162 +msgid "Advanced Directory Search" +msgstr "Búsqueda avanzada en el directorio" + +#: ../../include/features.php:163 +msgid "Allows creation of complex directory search queries" +msgstr "Permitir la creación de consultas complejas en las búsquedas en el directorio" + +#: ../../include/features.php:171 +msgid "Advanced Theme and Layout Settings" +msgstr "Ajustes avanzados de temas y esquemas" + +#: ../../include/features.php:172 +msgid "Allows fine tuning of themes and page layouts" +msgstr "Permitir el ajuste fino de temas y esquemas de páginas" + +#: ../../include/features.php:182 +msgid "Post Composition Features" +msgstr "Opciones para la redacción de entradas" + +#: ../../include/features.php:186 +msgid "Large Photos" +msgstr "Fotos de gran tamaño" + +#: ../../include/features.php:187 +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 (640px)" + +#: ../../include/features.php:196 +msgid "Automatically import channel content from other channels or feeds" +msgstr "Importar automáticamente contenido de otros canales o \"feeds\"" + +#: ../../include/features.php:204 +msgid "Even More Encryption" +msgstr "Más cifrado todavía" + +#: ../../include/features.php:205 +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:213 +msgid "Enable Voting Tools" +msgstr "Permitir entradas con votación" + +#: ../../include/features.php:214 +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:222 +msgid "Disable Comments" +msgstr "Deshabilitar comentarios" + +#: ../../include/features.php:223 +msgid "Provide the option to disable comments for a post" +msgstr "Proporcionar la opción de desactivar los comentarios para una entrada" + +#: ../../include/features.php:231 +msgid "Delayed Posting" +msgstr "Publicación aplazada" + +#: ../../include/features.php:232 +msgid "Allow posts to be published at a later date" +msgstr "Permitir mensajes que se publicarán en una fecha posterior" + +#: ../../include/features.php:240 +msgid "Content Expiration" +msgstr "Caducidad del contenido" + +#: ../../include/features.php:241 +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:249 +msgid "Suppress Duplicate Posts/Comments" +msgstr "Prevenir entradas o comentarios duplicados" + +#: ../../include/features.php:250 +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:261 +msgid "Network and Stream Filtering" +msgstr "Filtrado del contenido" + +#: ../../include/features.php:265 +msgid "Search by Date" +msgstr "Buscar por fecha" + +#: ../../include/features.php:266 +msgid "Ability to select posts by date ranges" +msgstr "Capacidad de seleccionar entradas por rango de fechas" + +#: ../../include/features.php:274 ../../include/group.php:311 +msgid "Privacy Groups" +msgstr "Grupos de canales" + +#: ../../include/features.php:275 +msgid "Enable management and selection of privacy groups" +msgstr "Activar la gestión y selección de grupos de canales" + +#: ../../include/features.php:283 ../../include/widgets.php:283 +msgid "Saved Searches" +msgstr "Búsquedas guardadas" + +#: ../../include/features.php:284 +msgid "Save search terms for re-use" +msgstr "Guardar términos de búsqueda para su reutilización" + +#: ../../include/features.php:292 +msgid "Network Personal Tab" +msgstr "Actividad personal" + +#: ../../include/features.php:293 +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:301 +msgid "Network New Tab" +msgstr "Contenido nuevo" + +#: ../../include/features.php:302 +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:310 +msgid "Affinity Tool" +msgstr "Herramienta de afinidad" + +#: ../../include/features.php:311 +msgid "Filter stream activity by depth of relationships" +msgstr "Filtrar el contenido según la profundidad de las relaciones" + +#: ../../include/features.php:320 +msgid "Show friend and connection suggestions" +msgstr "Mostrar sugerencias de amigos y conexiones" + +#: ../../include/features.php:328 +msgid "Connection Filtering" +msgstr "Filtrado de conexiones" + +#: ../../include/features.php:329 +msgid "Filter incoming posts from connections based on keywords/content" +msgstr "Filtrar publicaciones entrantes de conexiones por palabras clave o contenido" + +#: ../../include/features.php:341 +msgid "Post/Comment Tools" +msgstr "Gestión de entradas y comentarios" + +#: ../../include/features.php:345 +msgid "Community Tagging" +msgstr "Etiquetas de la comunidad" + +#: ../../include/features.php:346 +msgid "Ability to tag existing posts" +msgstr "Capacidad de etiquetar entradas existentes" + +#: ../../include/features.php:354 +msgid "Post Categories" +msgstr "Temas de las entradas" + +#: ../../include/features.php:355 +msgid "Add categories to your posts" +msgstr "Añadir temas a sus publicaciones" + +#: ../../include/features.php:363 +msgid "Emoji Reactions" +msgstr "Emoticonos \"emoji\"" + +#: ../../include/features.php:364 +msgid "Add emoji reaction ability to posts" +msgstr "Activar la capacidad de añadir un emoticono \"emoji\" a las entradas" + +#: ../../include/features.php:372 ../../include/contact_widgets.php:53 +#: ../../include/widgets.php:346 +msgid "Saved Folders" +msgstr "Carpetas guardadas" + +#: ../../include/features.php:373 +msgid "Ability to file posts under folders" +msgstr "Capacidad de archivar entradas en carpetas" + +#: ../../include/features.php:381 +msgid "Dislike Posts" +msgstr "Desagrado de publicaciones" + +#: ../../include/features.php:382 +msgid "Ability to dislike posts/comments" +msgstr "Capacidad de mostrar desacuerdo con el contenido de entradas y comentarios" + +#: ../../include/features.php:390 +msgid "Star Posts" +msgstr "Entradas destacadas" + +#: ../../include/features.php:391 +msgid "Ability to mark special posts with a star indicator" +msgstr "Capacidad de marcar entradas destacadas con un indicador de estrella" + +#: ../../include/features.php:399 +msgid "Tag Cloud" +msgstr "Nube de etiquetas" + +#: ../../include/features.php:400 +msgid "Provide a personal tag cloud on your channel page" +msgstr "Proveer nube de etiquetas personal en su página de canal" + +#: ../../include/features.php:412 +msgid "Premium Channel" +msgstr "Canal premium" + +#: ../../include/features.php:413 +msgid "" +"Allows you to set restrictions and terms on those that connect with your " +"channel" +msgstr "Le permite configurar restricciones y normas de uso a aquellos que conectan con su canal" + +#: ../../include/bb2diaspora.php:404 msgid "Attachments:" msgstr "Ficheros adjuntos:" -#: ../../include/bb2diaspora.php:485 ../../include/event.php:22 +#: ../../include/bb2diaspora.php:499 ../../include/event.php:22 #: ../../include/event.php:69 msgid "l F d, Y \\@ g:i A" msgstr "l d de F, Y \\@ G:i" -#: ../../include/bb2diaspora.php:487 +#: ../../include/bb2diaspora.php:501 msgid "$Projectname event notification:" msgstr "Notificación de eventos de $Projectname:" -#: ../../include/bb2diaspora.php:491 ../../include/event.php:30 +#: ../../include/bb2diaspora.php:505 ../../include/event.php:30 #: ../../include/event.php:73 msgid "Starts:" msgstr "Comienza:" -#: ../../include/bb2diaspora.php:499 ../../include/event.php:40 +#: ../../include/bb2diaspora.php:513 ../../include/event.php:40 #: ../../include/event.php:77 msgid "Finishes:" msgstr "Finaliza:" +#: ../../include/bookmarks.php:35 +#, php-format +msgid "%1$s's bookmarks" +msgstr "Marcadores de %1$s" + +#: ../../include/help.php:31 +msgid "Help:" +msgstr "Ayuda:" + +#: ../../include/help.php:63 +msgid "Not Found" +msgstr "No encontrado" + +#: ../../include/wiki.php:546 ../../include/bbcode.php:552 +#: ../../include/bbcode.php:683 +msgid "Different viewers will see this text differently" +msgstr "Visitantes diferentes verán este texto de forma distinta" + +#: ../../include/zot.php:667 +msgid "Invalid data packet" +msgstr "Paquete de datos no válido" + +#: ../../include/zot.php:683 +msgid "Unable to verify channel signature" +msgstr "No ha sido posible de verificar la firma del canal" + +#: ../../include/zot.php:2325 +#, 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:3723 +msgid "invalid target signature" +msgstr "La firma recibida no es válida" + +#: ../../include/page_widgets.php:7 +msgid "New Page" +msgstr "Nueva página" + +#: ../../include/message.php:32 +msgid "Unable to determine sender." +msgstr "No ha sido posible determinar el remitente. " + +#: ../../include/message.php:69 +msgid "No recipient provided." +msgstr "No se ha especificado ningún destinatario." + +#: ../../include/message.php:74 +msgid "[no subject]" +msgstr "[sin asunto]" + +#: ../../include/message.php:225 +msgid "Stored post could not be verified." +msgstr "No se han podido verificar las publicaciones guardadas." + +#: ../../include/contact_widgets.php:11 +#, php-format +msgid "%d invitation available" +msgid_plural "%d invitations available" +msgstr[0] "%d invitación pendiente" +msgstr[1] "%d invitaciones disponibles" + +#: ../../include/contact_widgets.php:19 +msgid "Find Channels" +msgstr "Encontrar canales" + +#: ../../include/contact_widgets.php:20 +msgid "Enter name or interest" +msgstr "Introducir nombre o interés" + +#: ../../include/contact_widgets.php:21 +msgid "Connect/Follow" +msgstr "Conectar/Seguir" + +#: ../../include/contact_widgets.php:22 +msgid "Examples: Robert Morgenstein, Fishing" +msgstr "Ejemplos: José Fernández, Pesca" + +#: ../../include/contact_widgets.php:26 +msgid "Random Profile" +msgstr "Perfil aleatorio" + +#: ../../include/contact_widgets.php:27 +msgid "Invite Friends" +msgstr "Invitar a amigos" + +#: ../../include/contact_widgets.php:29 +msgid "Advanced example: name=fred and country=iceland" +msgstr "Ejemplo avanzado: nombre=juan y país=españa" + +#: ../../include/contact_widgets.php:56 ../../include/contact_widgets.php:94 +#: ../../include/widgets.php:349 ../../include/widgets.php:468 +msgid "Everything" +msgstr "Todo" + +#: ../../include/contact_widgets.php:91 ../../include/taxonomy.php:188 +#: ../../include/taxonomy.php:270 ../../include/widgets.php:46 +#: ../../include/widgets.php:465 +msgid "Categories" +msgstr "Temas" + +#: ../../include/contact_widgets.php:122 +#, php-format +msgid "%d connection in common" +msgid_plural "%d connections in common" +msgstr[0] "%d conexión en común" +msgstr[1] "%d conexiones en común" + +#: ../../include/contact_widgets.php:127 +msgid "show more" +msgstr "mostrar más" + #: ../../include/js_strings.php:5 msgid "Delete this item?" msgstr "¿Borrar este elemento?" @@ -9131,11 +11786,55 @@ msgstr " " msgid "timeago.numbers" msgstr "timeago.numbers" +#: ../../include/js_strings.php:45 ../../include/text.php:1307 +msgid "January" +msgstr "enero" + +#: ../../include/js_strings.php:46 ../../include/text.php:1307 +msgid "February" +msgstr "febrero" + +#: ../../include/js_strings.php:47 ../../include/text.php:1307 +msgid "March" +msgstr "marzo" + +#: ../../include/js_strings.php:48 ../../include/text.php:1307 +msgid "April" +msgstr "abril" + #: ../../include/js_strings.php:49 msgctxt "long" msgid "May" msgstr "mayo" +#: ../../include/js_strings.php:50 ../../include/text.php:1307 +msgid "June" +msgstr "junio" + +#: ../../include/js_strings.php:51 ../../include/text.php:1307 +msgid "July" +msgstr "julio" + +#: ../../include/js_strings.php:52 ../../include/text.php:1307 +msgid "August" +msgstr "agosto" + +#: ../../include/js_strings.php:53 ../../include/text.php:1307 +msgid "September" +msgstr "septiembre" + +#: ../../include/js_strings.php:54 ../../include/text.php:1307 +msgid "October" +msgstr "octubre" + +#: ../../include/js_strings.php:55 ../../include/text.php:1307 +msgid "November" +msgstr "noviembre" + +#: ../../include/js_strings.php:56 ../../include/text.php:1307 +msgid "December" +msgstr "diciembre" + #: ../../include/js_strings.php:57 msgid "Jan" msgstr "ene" @@ -9185,6 +11884,34 @@ msgstr "nov" msgid "Dec" msgstr "dic" +#: ../../include/js_strings.php:69 ../../include/text.php:1303 +msgid "Sunday" +msgstr "domingo" + +#: ../../include/js_strings.php:70 ../../include/text.php:1303 +msgid "Monday" +msgstr "lunes" + +#: ../../include/js_strings.php:71 ../../include/text.php:1303 +msgid "Tuesday" +msgstr "martes" + +#: ../../include/js_strings.php:72 ../../include/text.php:1303 +msgid "Wednesday" +msgstr "miércoles" + +#: ../../include/js_strings.php:73 ../../include/text.php:1303 +msgid "Thursday" +msgstr "jueves" + +#: ../../include/js_strings.php:74 ../../include/text.php:1303 +msgid "Friday" +msgstr "viernes" + +#: ../../include/js_strings.php:75 ../../include/text.php:1303 +msgid "Saturday" +msgstr "sábado" + #: ../../include/js_strings.php:76 msgid "Sun" msgstr "dom" @@ -9238,578 +11965,6 @@ msgctxt "calendar" msgid "All day" msgstr "Todos los días" -#: ../../include/nav.php:183 -msgid "Your grid" -msgstr "Mi red" - -#: ../../include/nav.php:184 -msgid "Mark all grid notifications seen" -msgstr "Marcar todas las notificaciones de la red como vistas" - -#: ../../include/nav.php:186 -msgid "Channel home" -msgstr "Mi canal" - -#: ../../include/nav.php:187 -msgid "Mark all channel notifications seen" -msgstr "Marcar todas las notificaciones del canal como leídas" - -#: ../../include/nav.php:193 -msgid "Notices" -msgstr "Avisos" - -#: ../../include/nav.php:193 -msgid "Notifications" -msgstr "Notificaciones" - -#: ../../include/nav.php:194 -msgid "See all notifications" -msgstr "Ver todas las notificaciones" - -#: ../../include/bbcode.php:123 ../../include/bbcode.php:881 -#: ../../include/bbcode.php:884 ../../include/bbcode.php:889 -#: ../../include/bbcode.php:892 ../../include/bbcode.php:895 -#: ../../include/bbcode.php:898 ../../include/bbcode.php:903 -#: ../../include/bbcode.php:906 ../../include/bbcode.php:911 -#: ../../include/bbcode.php:914 ../../include/bbcode.php:917 -#: ../../include/bbcode.php:920 -msgid "Image/photo" -msgstr "Imagen/foto" - -#: ../../include/bbcode.php:162 ../../include/bbcode.php:931 -msgid "Encrypted content" -msgstr "Contenido cifrado" - -#: ../../include/network.php:2209 -msgid "Diaspora" -msgstr "Diaspora" - -#: ../../include/network.php:2210 -msgid "Facebook" -msgstr "Facebook" - -#: ../../include/network.php:2211 -msgid "Zot" -msgstr "Zot" - -#: ../../include/network.php:2212 -msgid "LinkedIn" -msgstr "LinkedIn" - -#: ../../include/network.php:2213 -msgid "XMPP/IM" -msgstr "XMPP/IM" - -#: ../../include/bbcode.php:869 -msgid "$1 wrote:" -msgstr "$1 escribió:" - -#: ../../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:694 -#, php-format -msgid "View %s's profile @ %s" -msgstr "Ver el perfil @ %s de %s" - -#: ../../include/conversation.php:713 -msgid "Categories:" -msgstr "Temas:" - -#: ../../include/conversation.php:714 -msgid "Filed under:" -msgstr "Archivado bajo:" - -#: ../../include/conversation.php:739 -msgid "View in context" -msgstr "Mostrar en su contexto" - -#: ../../include/conversation.php:849 -msgid "remove" -msgstr "eliminar" - -#: ../../include/conversation.php:854 -msgid "Delete Selected Items" -msgstr "Eliminar elementos seleccionados" - -#: ../../include/conversation.php:947 -msgid "View Source" -msgstr "Ver el código fuente de la entrada" - -#: ../../include/conversation.php:948 -msgid "Follow Thread" -msgstr "Seguir este hilo" - -#: ../../include/conversation.php:949 -msgid "Unfollow Thread" -msgstr "Dejar de seguir este hilo" - -#: ../../include/conversation.php:954 -msgid "Activity/Posts" -msgstr "Actividad y publicaciones" - -#: ../../include/conversation.php:956 -msgid "Edit Connection" -msgstr "Editar conexión" - -#: ../../include/conversation.php:957 -msgid "Message" -msgstr "Mensaje" - -#: ../../include/conversation.php:1077 -#, php-format -msgid "%s likes this." -msgstr "A %s le gusta esto." - -#: ../../include/conversation.php:1077 -#, php-format -msgid "%s doesn't like this." -msgstr "A %s no le gusta esto." - -#: ../../include/conversation.php:1081 -#, php-format -msgid "%2$d people like this." -msgid_plural "%2$d people like this." -msgstr[0] "a %2$d personas le gusta esto." -msgstr[1] "A %2$d personas les gusta esto." - -#: ../../include/conversation.php:1083 -#, php-format -msgid "%2$d people don't like this." -msgid_plural "%2$d people don't like this." -msgstr[0] "a %2$d personas no les gusta esto." -msgstr[1] "A %2$d personas no les gusta esto." - -#: ../../include/conversation.php:1089 -msgid "and" -msgstr "y" - -#: ../../include/conversation.php:1092 -#, 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/conversation.php:1093 -#, php-format -msgid "%s like this." -msgstr "A %s le gusta esto." - -#: ../../include/conversation.php:1093 -#, php-format -msgid "%s don't like this." -msgstr "A %s no le gusta esto." - -#: ../../include/conversation.php:1136 -msgid "Set your location" -msgstr "Establecer su ubicación" - -#: ../../include/conversation.php:1137 -msgid "Clear browser location" -msgstr "Eliminar los datos de localización geográfica del navegador" - -#: ../../include/conversation.php:1185 -msgid "Tag term:" -msgstr "Término de la etiqueta:" - -#: ../../include/conversation.php:1186 -msgid "Where are you right now?" -msgstr "¿Donde está ahora?" - -#: ../../include/conversation.php:1195 -msgid "Comments enabled" -msgstr "Comentarios habilitados" - -#: ../../include/conversation.php:1196 -msgid "Comments disabled" -msgstr "Comentarios deshabilitados" - -#: ../../include/conversation.php:1234 -msgid "Page link name" -msgstr "Nombre del enlace de la página" - -#: ../../include/conversation.php:1237 -msgid "Post as" -msgstr "Publicar como" - -#: ../../include/conversation.php:1251 -msgid "Toggle voting" -msgstr "Cambiar votación" - -#: ../../include/conversation.php:1254 -msgid "Disable comments" -msgstr "Dehabilitar los comentarios" - -#: ../../include/conversation.php:1255 -msgid "Toggle comments" -msgstr "Activar o desactivar los comentarios" - -#: ../../include/conversation.php:1263 -msgid "Categories (optional, comma-separated list)" -msgstr "Temas (opcional, lista separada por comas)" - -#: ../../include/conversation.php:1286 -msgid "Other networks and post services" -msgstr "Otras redes y servicios de publicación" - -#: ../../include/conversation.php:1292 -msgid "Set publish date" -msgstr "Establecer la fecha de publicación" - -#: ../../include/conversation.php:1541 -msgid "Discover" -msgstr "Descubrir" - -#: ../../include/conversation.php:1544 -msgid "Imported public streams" -msgstr "Contenidos públicos importados" - -#: ../../include/conversation.php:1549 -msgid "Commented Order" -msgstr "Comentarios recientes" - -#: ../../include/conversation.php:1552 -msgid "Sort by Comment Date" -msgstr "Ordenar por fecha de comentario" - -#: ../../include/conversation.php:1556 -msgid "Posted Order" -msgstr "Publicaciones recientes" - -#: ../../include/conversation.php:1559 -msgid "Sort by Post Date" -msgstr "Ordenar por fecha de publicación" - -#: ../../include/conversation.php:1567 -msgid "Posts that mention or involve you" -msgstr "Publicaciones que le mencionan o involucran" - -#: ../../include/conversation.php:1576 -msgid "Activity Stream - by date" -msgstr "Contenido - por fecha" - -#: ../../include/conversation.php:1582 -msgid "Starred" -msgstr "Preferidas" - -#: ../../include/conversation.php:1585 -msgid "Favourite Posts" -msgstr "Publicaciones favoritas" - -#: ../../include/conversation.php:1592 -msgid "Spam" -msgstr "Correo basura" - -#: ../../include/conversation.php:1595 -msgid "Posts flagged as SPAM" -msgstr "Publicaciones marcadas como basura" - -#: ../../include/conversation.php:1654 -msgid "Status Messages and Posts" -msgstr "Mensajes de estado y publicaciones" - -#: ../../include/conversation.php:1663 -msgid "About" -msgstr "Mi perfil" - -#: ../../include/conversation.php:1666 -msgid "Profile Details" -msgstr "Detalles del perfil" - -#: ../../include/conversation.php:1682 -msgid "Files and Storage" -msgstr "Ficheros y repositorio" - -#: ../../include/conversation.php:1702 ../../include/conversation.php:1705 -#: ../../include/widgets.php:883 -msgid "Chatrooms" -msgstr "Salas de chat" - -#: ../../include/conversation.php:1718 -msgid "Saved Bookmarks" -msgstr "Marcadores guardados" - -#: ../../include/conversation.php:1728 -msgid "Manage Webpages" -msgstr "Administrar páginas web" - -#: ../../include/conversation.php:1793 -msgctxt "noun" -msgid "Attending" -msgid_plural "Attending" -msgstr[0] "Participaré" -msgstr[1] "Participaré" - -#: ../../include/conversation.php:1796 -msgctxt "noun" -msgid "Not Attending" -msgid_plural "Not Attending" -msgstr[0] "No participaré" -msgstr[1] "No participaré" - -#: ../../include/conversation.php:1799 -msgctxt "noun" -msgid "Undecided" -msgid_plural "Undecided" -msgstr[0] "Indeciso/a" -msgstr[1] "Indecisos/as" - -#: ../../include/conversation.php:1802 -msgctxt "noun" -msgid "Agree" -msgid_plural "Agrees" -msgstr[0] "De acuerdo" -msgstr[1] "De acuerdo" - -#: ../../include/conversation.php:1805 -msgctxt "noun" -msgid "Disagree" -msgid_plural "Disagrees" -msgstr[0] "En desacuerdo" -msgstr[1] "En desacuerdo" - -#: ../../include/conversation.php:1808 -msgctxt "noun" -msgid "Abstain" -msgid_plural "Abstains" -msgstr[0] "se abstiene" -msgstr[1] "Se abstienen" - -#: ../../include/datetime.php:147 -msgid "Birthday" -msgstr "Cumpleaños" - -#: ../../include/datetime.php:149 -msgid "Age: " -msgstr "Edad:" - -#: ../../include/datetime.php:151 -msgid "YYYY-MM-DD or MM-DD" -msgstr "AAAA-MM-DD o MM-DD" - -#: ../../include/datetime.php:284 ../../boot.php:2578 -msgid "never" -msgstr "nunca" - -#: ../../include/datetime.php:290 -msgid "less than a second ago" -msgstr "hace un instante" - -#: ../../include/datetime.php:308 -#, 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:319 -msgctxt "relative_date" -msgid "year" -msgid_plural "years" -msgstr[0] "año" -msgstr[1] "años" - -#: ../../include/datetime.php:322 -msgctxt "relative_date" -msgid "month" -msgid_plural "months" -msgstr[0] "mes" -msgstr[1] "meses" - -#: ../../include/datetime.php:325 -msgctxt "relative_date" -msgid "week" -msgid_plural "weeks" -msgstr[0] "semana" -msgstr[1] "semanas" - -#: ../../include/datetime.php:328 -msgctxt "relative_date" -msgid "day" -msgid_plural "days" -msgstr[0] "día" -msgstr[1] "días" - -#: ../../include/datetime.php:331 -msgctxt "relative_date" -msgid "hour" -msgid_plural "hours" -msgstr[0] "hora" -msgstr[1] "horas" - -#: ../../include/datetime.php:334 -msgctxt "relative_date" -msgid "minute" -msgid_plural "minutes" -msgstr[0] "minuto" -msgstr[1] "minutos" - -#: ../../include/datetime.php:337 -msgctxt "relative_date" -msgid "second" -msgid_plural "seconds" -msgstr[0] "segundo" -msgstr[1] "segundos" - -#: ../../include/datetime.php:574 -#, php-format -msgid "%1$s's birthday" -msgstr "Cumpleaños de %1$s" - -#: ../../include/datetime.php:575 -#, php-format -msgid "Happy Birthday %1$s" -msgstr "Feliz cumpleaños %1$s" - -#: ../../include/dir_fns.php:141 -msgid "Directory Options" -msgstr "Opciones del directorio" - -#: ../../include/dir_fns.php:143 -msgid "Safe Mode" -msgstr "Modo seguro" - -#: ../../include/dir_fns.php:144 -msgid "Public Forums Only" -msgstr "Solo foros públicos" - -#: ../../include/dir_fns.php:145 -msgid "This Website Only" -msgstr "Solo este sitio web" - -#: ../../include/event.php:824 -msgid "This event has been added to your calendar." -msgstr "Este evento ha sido añadido a su calendario." - -#: ../../include/event.php:1024 -msgid "Not specified" -msgstr "Sin especificar" - -#: ../../include/event.php:1025 -msgid "Needs Action" -msgstr "Necesita de una intervención" - -#: ../../include/event.php:1026 -msgid "Completed" -msgstr "Completado/a" - -#: ../../include/event.php:1027 -msgid "In Process" -msgstr "En proceso" - -#: ../../include/event.php:1028 -msgid "Cancelled" -msgstr "Cancelado/a" - -#: ../../include/import.php:30 -msgid "" -"Cannot create a duplicate channel identifier on this system. Import failed." -msgstr "No se ha podido crear un canal con un identificador que ya existe en este sistema. La importación ha fallado." - -#: ../../include/import.php:97 -msgid "Channel clone failed. Import failed." -msgstr "La clonación del canal no ha salido bien. La importación ha fallado." - -#: ../../include/import.php:1447 -msgid "Unable to import element \"" -msgstr "No se puede importar un elemento \"" - -#: ../../include/auth.php:148 -msgid "Logged out." -msgstr "Desconectado/a." - -#: ../../include/auth.php:275 -msgid "Failed authentication" -msgstr "Autenticación fallida." - -#: ../../include/auth.php:286 -msgid "Login failed." -msgstr "El acceso ha fallado." - -#: ../../include/activities.php:41 -msgid " and " -msgstr " y " - -#: ../../include/activities.php:49 -msgid "public profile" -msgstr "el perfil público" - -#: ../../include/activities.php:58 -#, php-format -msgid "%1$s changed %2$s to “%3$s”" -msgstr "%1$s ha cambiado %2$s a “%3$s”" - -#: ../../include/activities.php:59 -#, php-format -msgid "Visit %1$s's %2$s" -msgstr "Visitar %2$s de %1$s" - -#: ../../include/activities.php:62 -#, php-format -msgid "%1$s has an updated %2$s, changing %3$s." -msgstr "%1$s ha actualizado %2$s, cambiando %3$s." - -#: ../../include/network.php:704 -msgid "view full size" -msgstr "Ver en el tamaño original" - -#: ../../include/network.php:1953 -msgid "No Subject" -msgstr "Sin asunto" - -#: ../../include/network.php:2207 ../../include/network.php:2208 -msgid "Friendica" -msgstr "Friendica" - -#: ../../include/network.php:2209 -msgid "OStatus" -msgstr "OStatus" - -#: ../../include/network.php:2210 -msgid "GNU-Social" -msgstr "GNU Social" - -#: ../../include/network.php:2211 -msgid "RSS/Atom" -msgstr "RSS/Atom" - -#: ../../include/network.php:2213 -msgid "Diaspora" -msgstr "Diaspora" - -#: ../../include/network.php:2214 -msgid "Facebook" -msgstr "Facebook" - -#: ../../include/network.php:2215 -msgid "Zot" -msgstr "Zot" - -#: ../../include/network.php:2216 -msgid "LinkedIn" -msgstr "LinkedIn" - -#: ../../include/network.php:2217 -msgid "XMPP/IM" -msgstr "XMPP/IM" - -#: ../../include/network.php:2218 -msgid "MySpace" -msgstr "MySpace" - -#: ../../include/taxonomy.php:188 ../../include/taxonomy.php:270 -#: ../../include/contact_widgets.php:91 ../../include/widgets.php:46 -#: ../../include/widgets.php:465 -msgid "Categories" -msgstr "Temas" - #: ../../include/taxonomy.php:228 ../../include/taxonomy.php:249 msgid "Tags" msgstr "Etiquetas" @@ -9842,56 +11997,629 @@ msgstr "gusta de" msgid "dislikes" msgstr "no gusta de" -#: ../../include/contact_widgets.php:11 +#: ../../include/text.php:460 +msgid "prev" +msgstr "anterior" + +#: ../../include/text.php:462 +msgid "first" +msgstr "primera" + +#: ../../include/text.php:491 +msgid "last" +msgstr "última" + +#: ../../include/text.php:494 +msgid "next" +msgstr "próxima" + +#: ../../include/text.php:505 +msgid "older" +msgstr "más antiguas" + +#: ../../include/text.php:507 +msgid "newer" +msgstr "más recientes" + +#: ../../include/text.php:904 +msgid "No connections" +msgstr "Sin conexiones" + +#: ../../include/text.php:929 #, php-format -msgid "%d invitation available" -msgid_plural "%d invitations available" -msgstr[0] "%d invitación pendiente" -msgstr[1] "%d invitaciones disponibles" +msgid "View all %s connections" +msgstr "Ver todas las %s conexiones" -#: ../../include/contact_widgets.php:19 -msgid "Find Channels" -msgstr "Encontrar canales" +#: ../../include/text.php:1074 ../../include/text.php:1079 +msgid "poke" +msgstr "un toque" -#: ../../include/contact_widgets.php:20 -msgid "Enter name or interest" -msgstr "Introducir nombre o interés" +#: ../../include/text.php:1074 ../../include/text.php:1079 +#: ../../include/conversation.php:243 +msgid "poked" +msgstr "ha dado un toque a" -#: ../../include/contact_widgets.php:21 -msgid "Connect/Follow" -msgstr "Conectar/Seguir" +#: ../../include/text.php:1080 +msgid "ping" +msgstr "un \"ping\"" -#: ../../include/contact_widgets.php:22 -msgid "Examples: Robert Morgenstein, Fishing" -msgstr "Ejemplos: José Fernández, Pesca" +#: ../../include/text.php:1080 +msgid "pinged" +msgstr "ha enviado un \"ping\" a" -#: ../../include/contact_widgets.php:26 -msgid "Random Profile" -msgstr "Perfil aleatorio" +#: ../../include/text.php:1081 +msgid "prod" +msgstr "una incitación " -#: ../../include/contact_widgets.php:27 -msgid "Invite Friends" -msgstr "Invitar a amigos" +#: ../../include/text.php:1081 +msgid "prodded" +msgstr "ha incitado a " -#: ../../include/contact_widgets.php:29 -msgid "Advanced example: name=fred and country=iceland" -msgstr "Ejemplo avanzado: nombre=juan y país=españa" +#: ../../include/text.php:1082 +msgid "slap" +msgstr "una bofetada " -#: ../../include/contact_widgets.php:56 ../../include/contact_widgets.php:94 -#: ../../include/widgets.php:349 ../../include/widgets.php:468 -msgid "Everything" -msgstr "Todo" +#: ../../include/text.php:1082 +msgid "slapped" +msgstr "ha abofeteado a " -#: ../../include/contact_widgets.php:122 +#: ../../include/text.php:1083 +msgid "finger" +msgstr "un \"finger\" " + +#: ../../include/text.php:1083 +msgid "fingered" +msgstr "envió un \"finger\" a" + +#: ../../include/text.php:1084 +msgid "rebuff" +msgstr "un reproche" + +#: ../../include/text.php:1084 +msgid "rebuffed" +msgstr "ha hecho un reproche a " + +#: ../../include/text.php:1096 +msgid "happy" +msgstr "feliz " + +#: ../../include/text.php:1097 +msgid "sad" +msgstr "triste " + +#: ../../include/text.php:1098 +msgid "mellow" +msgstr "tranquilo/a" + +#: ../../include/text.php:1099 +msgid "tired" +msgstr "cansado/a " + +#: ../../include/text.php:1100 +msgid "perky" +msgstr "vivaz" + +#: ../../include/text.php:1101 +msgid "angry" +msgstr "enfadado/a" + +#: ../../include/text.php:1102 +msgid "stupefied" +msgstr "asombrado/a" + +#: ../../include/text.php:1103 +msgid "puzzled" +msgstr "perplejo/a" + +#: ../../include/text.php:1104 +msgid "interested" +msgstr "interesado/a" + +#: ../../include/text.php:1105 +msgid "bitter" +msgstr "amargado/a" + +#: ../../include/text.php:1106 +msgid "cheerful" +msgstr "alegre" + +#: ../../include/text.php:1107 +msgid "alive" +msgstr "animado/a" + +#: ../../include/text.php:1108 +msgid "annoyed" +msgstr "molesto/a" + +#: ../../include/text.php:1109 +msgid "anxious" +msgstr "ansioso/a" + +#: ../../include/text.php:1110 +msgid "cranky" +msgstr "de mal humor" + +#: ../../include/text.php:1111 +msgid "disturbed" +msgstr "perturbado/a" + +#: ../../include/text.php:1112 +msgid "frustrated" +msgstr "frustrado/a" + +#: ../../include/text.php:1113 +msgid "depressed" +msgstr "deprimido/a" + +#: ../../include/text.php:1114 +msgid "motivated" +msgstr "motivado/a" + +#: ../../include/text.php:1115 +msgid "relaxed" +msgstr "relajado/a" + +#: ../../include/text.php:1116 +msgid "surprised" +msgstr "sorprendido/a" + +#: ../../include/text.php:1307 +msgid "May" +msgstr "mayo" + +#: ../../include/text.php:1384 ../../include/text.php:1388 +msgid "Unknown Attachment" +msgstr "Adjunto no reconocido" + +#: ../../include/text.php:1390 +msgid "unknown" +msgstr "desconocido" + +#: ../../include/text.php:1426 +msgid "remove category" +msgstr "eliminar el tema" + +#: ../../include/text.php:1503 +msgid "remove from file" +msgstr "eliminar del fichero" + +#: ../../include/text.php:1770 ../../include/language.php:367 +msgid "default" +msgstr "por defecto" + +#: ../../include/text.php:1778 +msgid "Page layout" +msgstr "Plantilla de la página" + +#: ../../include/text.php:1778 +msgid "You can create your own with the layouts tool" +msgstr "Puede crear su propia disposición gráfica con la herramienta de plantillas" + +#: ../../include/text.php:1820 +msgid "Page content type" +msgstr "Tipo de contenido de la página" + +#: ../../include/text.php:1953 +msgid "activity" +msgstr "la actividad" + +#: ../../include/text.php:2267 +msgid "Design Tools" +msgstr "Herramientas de diseño web" + +#: ../../include/text.php:2273 +msgid "Pages" +msgstr "Páginas" + +#: ../../include/text.php:2295 +msgid "Import website..." +msgstr "Importar un sitio web..." + +#: ../../include/text.php:2296 +msgid "Select folder to import" +msgstr "Seleccionar la carpeta que se va a importar" + +#: ../../include/text.php:2297 +msgid "Import from a zipped folder:" +msgstr "Importar desde una carpeta comprimida: " + +#: ../../include/text.php:2298 +msgid "Import from cloud files:" +msgstr "Importar desde los ficheros en la nube: " + +#: ../../include/text.php:2299 +msgid "/cloud/channel/path/to/folder" +msgstr "/cloud/canal/ruta/a la/carpeta" + +#: ../../include/text.php:2300 +msgid "Enter path to website files" +msgstr "Ruta a los ficheros del sitio web" + +#: ../../include/text.php:2301 +msgid "Select folder" +msgstr "Seleccionar la carpeta" + +#: ../../include/text.php:2302 +msgid "Export website..." +msgstr "Exportar un sitio web..." + +#: ../../include/text.php:2303 +msgid "Export to a zip file" +msgstr "Exportar a un fichero comprimido .zip" + +#: ../../include/text.php:2304 +msgid "website.zip" +msgstr "sitio_web.zip" + +#: ../../include/text.php:2305 +msgid "Enter a name for the zip file." +msgstr "Escriba un nombre para el fichero zip." + +#: ../../include/text.php:2306 +msgid "Export to cloud files" +msgstr "Exportar a la nube de ficheros" + +#: ../../include/text.php:2307 +msgid "/path/to/export/folder" +msgstr "/ruta/para/exportar/carpeta" + +#: ../../include/text.php:2308 +msgid "Enter a path to a cloud files destination." +msgstr "Escriba una ruta de destino a la nube de ficheros." + +#: ../../include/text.php:2309 +msgid "Specify folder" +msgstr "Especificar una carpeta" + +#: ../../include/import.php:30 +msgid "" +"Cannot create a duplicate channel identifier on this system. Import failed." +msgstr "No se ha podido crear un canal con un identificador que ya existe en este sistema. La importación ha fallado." + +#: ../../include/import.php:90 +msgid "Channel clone failed. Import failed." +msgstr "La clonación del canal no ha salido bien. La importación ha fallado." + +#: ../../include/import.php:1354 +msgid "Unable to import element \"" +msgstr "No se puede importar un elemento \"" + +#: ../../include/security.php:117 +msgid "guest:" +msgstr "invitado: " + +#: ../../include/security.php:535 +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/items.php:837 ../../include/items.php:882 +msgid "(Unknown)" +msgstr "(Desconocido)" + +#: ../../include/items.php:1080 +msgid "Visible to anybody on the internet." +msgstr "Visible para cualquiera en internet." + +#: ../../include/items.php:1082 +msgid "Visible to you only." +msgstr "Visible sólo para usted." + +#: ../../include/items.php:1084 +msgid "Visible to anybody in this network." +msgstr "Visible para cualquiera en esta red." + +#: ../../include/items.php:1086 +msgid "Visible to anybody authenticated." +msgstr "Visible para cualquiera que esté autenticado." + +#: ../../include/items.php:1088 #, php-format -msgid "%d connection in common" -msgid_plural "%d connections in common" -msgstr[0] "%d conexión en común" -msgstr[1] "%d conexiones en común" +msgid "Visible to anybody on %s." +msgstr "Visible para cualquiera en %s." -#: ../../include/contact_widgets.php:127 -msgid "show more" -msgstr "mostrar más" +#: ../../include/items.php:1090 +msgid "Visible to all connections." +msgstr "Visible para todas las conexiones." + +#: ../../include/items.php:1092 +msgid "Visible to approved connections." +msgstr "Visible para las conexiones permitidas." + +#: ../../include/items.php:1094 +msgid "Visible to specific connections." +msgstr "Visible para conexiones específicas." + +#: ../../include/items.php:3892 +msgid "Privacy group is empty." +msgstr "El grupo de canales está vacío." + +#: ../../include/items.php:3899 +#, php-format +msgid "Privacy group: %s" +msgstr "Grupo de canales: %s" + +#: ../../include/items.php:3911 +msgid "Connection not found." +msgstr "Conexión no encontrada" + +#: ../../include/items.php:4260 +msgid "profile photo" +msgstr "foto del perfil" + +#: ../../include/items.php:4456 +#, php-format +msgid "[Edited %s]" +msgstr "[se ha editado %s]" + +#: ../../include/items.php:4456 +msgctxt "edit_activity" +msgid "Post" +msgstr "Publicar" + +#: ../../include/items.php:4456 +msgctxt "edit_activity" +msgid "Comment" +msgstr "Comentar" + +#: ../../include/auth.php:148 +msgid "Logged out." +msgstr "Desconectado/a." + +#: ../../include/auth.php:275 +msgid "Failed authentication" +msgstr "Autenticación fallida." + +#: ../../include/activities.php:41 +msgid " and " +msgstr " y " + +#: ../../include/activities.php:49 +msgid "public profile" +msgstr "el perfil público" + +#: ../../include/activities.php:58 +#, php-format +msgid "%1$s changed %2$s to “%3$s”" +msgstr "%1$s ha cambiado %2$s a “%3$s”" + +#: ../../include/activities.php:59 +#, php-format +msgid "Visit %1$s's %2$s" +msgstr "Visitar %2$s de %1$s" + +#: ../../include/activities.php:62 +#, php-format +msgid "%1$s has an updated %2$s, changing %3$s." +msgstr "%1$s ha actualizado %2$s, cambiando %3$s." + +#: ../../include/attach.php:248 ../../include/attach.php:336 +msgid "Item was not found." +msgstr "Elemento no encontrado." + +#: ../../include/attach.php:497 +msgid "No source file." +msgstr "Ningún fichero de origen" + +#: ../../include/attach.php:519 +msgid "Cannot locate file to replace" +msgstr "No se puede localizar el fichero que va a ser sustituido." + +#: ../../include/attach.php:537 +msgid "Cannot locate file to revise/update" +msgstr "No se puede localizar el fichero para revisar/actualizar" + +#: ../../include/attach.php:668 +#, 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/attach.php:682 +#, php-format +msgid "%s like this." +msgstr "A %s le gusta esto." + +#: ../../include/attach.php:852 +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:865 +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:920 ../../include/attach.php:936 +msgid "Path not available." +msgstr "Ruta no disponible." + +#: ../../include/attach.php:982 ../../include/attach.php:1140 +msgid "Empty pathname" +msgstr "Ruta vacía" + +#: ../../include/attach.php:1008 +msgid "duplicate filename or path" +msgstr "Nombre duplicado de ruta o fichero" + +#: ../../include/attach.php:1030 +msgid "Path not found." +msgstr "Ruta no encontrada" + +#: ../../include/attach.php:1094 +msgid "mkdir failed." +msgstr "mkdir ha fallado." + +#: ../../include/attach.php:1098 +msgid "database storage failed." +msgstr "el almacenamiento en la base de datos ha fallado." + +#: ../../include/attach.php:1146 +msgid "Empty path" +msgstr "Ruta vacía" + +#: ../../include/event.php:824 +msgid "This event has been added to your calendar." +msgstr "Este evento ha sido añadido a su calendario." + +#: ../../include/event.php:1024 +msgid "Not specified" +msgstr "Sin especificar" + +#: ../../include/event.php:1025 +msgid "Needs Action" +msgstr "Necesita de una intervención" + +#: ../../include/event.php:1026 +msgid "Completed" +msgstr "Completado/a" + +#: ../../include/event.php:1027 +msgid "In Process" +msgstr "En proceso" + +#: ../../include/event.php:1028 +msgid "Cancelled" +msgstr "Cancelado/a" + +#: ../../include/follow.php:27 +msgid "Channel is blocked on this site." +msgstr "El canal está bloqueado en este sitio." + +#: ../../include/follow.php:32 +msgid "Channel location missing." +msgstr "Falta la dirección del canal." + +#: ../../include/follow.php:80 +msgid "Response from remote channel was incomplete." +msgstr "Respuesta incompleta del canal." + +#: ../../include/follow.php:97 +msgid "Channel was deleted and no longer exists." +msgstr "El canal ha sido eliminado y ya no existe." + +#: ../../include/follow.php:147 ../../include/follow.php:183 +msgid "Protocol disabled." +msgstr "Protocolo deshabilitado." + +#: ../../include/follow.php:171 +msgid "Channel discovery failed." +msgstr "El intento de acceder al canal ha fallado." + +#: ../../include/follow.php:210 +msgid "Cannot connect to yourself." +msgstr "No puede conectarse consigo mismo." + +#: ../../include/group.php:26 +msgid "" +"A deleted group with this name was revived. Existing item permissions " +"may 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. Es posible 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:248 +msgid "Add new connections to this privacy group" +msgstr "Añadir conexiones nuevas a este grupo de canales" + +#: ../../include/group.php:289 +msgid "edit" +msgstr "editar" + +#: ../../include/group.php:312 +msgid "Edit group" +msgstr "Editar grupo" + +#: ../../include/group.php:313 +msgid "Add privacy group" +msgstr "Añadir un grupo de canales" + +#: ../../include/group.php:314 +msgid "Channels not in any privacy group" +msgstr "Sin canales en ningún grupo" + +#: ../../include/group.php:316 ../../include/widgets.php:284 +msgid "add" +msgstr "añadir" + +#: ../../include/language.php:380 +msgid "Select an alternate language" +msgstr "Seleccionar un idioma alternativo" + +#: ../../include/photos.php:115 +#, php-format +msgid "Image exceeds website size limit of %lu bytes" +msgstr "La imagen excede el límite de %lu bytes del sitio" + +#: ../../include/photos.php:122 +msgid "Image file is empty." +msgstr "El fichero de imagen está vacío. " + +#: ../../include/photos.php:260 +msgid "Photo storage failed." +msgstr "La foto no ha podido ser guardada." + +#: ../../include/photos.php:300 +msgid "a new photo" +msgstr "una nueva foto" + +#: ../../include/photos.php:304 +#, php-format +msgctxt "photo_upload" +msgid "%1$s posted %2$s to %3$s" +msgstr "%1$s ha publicado %2$s en %3$s" + +#: ../../include/photos.php:507 ../../include/conversation.php:1677 +msgid "Photo Albums" +msgstr "Álbumes de fotos" + +#: ../../include/photos.php:511 +msgid "Upload New Photos" +msgstr "Subir nuevas fotos" + +#: ../../include/acl_selectors.php:198 +msgid "Who can see this?" +msgstr "¿Quién puede ver esto?" + +#: ../../include/acl_selectors.php:199 +msgid "Custom selection" +msgstr "Selección personalizada" + +#: ../../include/acl_selectors.php:200 +msgid "" +"Select \"Show\" to allow viewing. \"Don't show\" lets you override and limit" +" the scope of \"Show\"." +msgstr "Seleccione \"Mostrar\" para permitir la visualización. La opción \"No mostrar\" le permite anular y limitar el alcance de \"Mostrar\"." + +#: ../../include/acl_selectors.php:201 +msgid "Show" +msgstr "Mostrar" + +#: ../../include/acl_selectors.php:202 +msgid "Don't show" +msgstr "No mostrar" + +#: ../../include/acl_selectors.php:235 +#, php-format +msgid "" +"Post permissions %s cannot be changed %s after a post is shared.
        These" +" permissions set who is allowed to view the post." +msgstr "Los permisos de la entrada %s no se pueden cambiar %s una vez que se ha compartido.
        Estos permisos establecen quién está autorizado para ver el mensaje." + +#: ../../include/oembed.php:312 +msgid " by " +msgstr "por" + +#: ../../include/oembed.php:313 +msgid " on " +msgstr "en" + +#: ../../include/oembed.php:342 +msgid "Embedded content" +msgstr "Contenido incorporado" + +#: ../../include/oembed.php:351 +msgid "Embedding disabled" +msgstr "Incrustación deshabilitada" #: ../../include/widgets.php:103 msgid "System" @@ -10018,6 +12746,11 @@ msgstr "Exportar el calendario" msgid "Import Calendar" msgstr "Importar un calendario" +#: ../../include/widgets.php:883 ../../include/conversation.php:1704 +#: ../../include/conversation.php:1707 +msgid "Chatrooms" +msgstr "Salas de chat" + #: ../../include/widgets.php:887 msgid "Overview" msgstr "Resumen" @@ -10026,205 +12759,487 @@ msgstr "Resumen" msgid "Chat Members" msgstr "Miembros del chat" -#: ../../include/widgets.php:916 +#: ../../include/widgets.php:906 msgid "Wiki List" msgstr "Lista de wikis" -#: ../../include/widgets.php:954 +#: ../../include/widgets.php:944 msgid "Wiki Pages" msgstr "Páginas del wiki" -#: ../../include/widgets.php:989 +#: ../../include/widgets.php:949 +msgid "Add new page" +msgstr "Añadir una nueva página" + +#: ../../include/widgets.php:950 +msgid "Page name" +msgstr "Nombre de la página" + +#: ../../include/widgets.php:983 msgid "Bookmarked Chatrooms" msgstr "Salas de chat preferidas" -#: ../../include/widgets.php:1020 +#: ../../include/widgets.php:1014 msgid "Suggested Chatrooms" msgstr "Salas de chat sugeridas" -#: ../../include/widgets.php:1166 ../../include/widgets.php:1278 +#: ../../include/widgets.php:1159 ../../include/widgets.php:1271 msgid "photo/image" msgstr "foto/imagen" -#: ../../include/widgets.php:1221 +#: ../../include/widgets.php:1214 msgid "Click to show more" msgstr "Hacer clic para ver más" -#: ../../include/widgets.php:1372 +#: ../../include/widgets.php:1365 msgid "Rating Tools" msgstr "Valoraciones" -#: ../../include/widgets.php:1376 ../../include/widgets.php:1378 +#: ../../include/widgets.php:1369 ../../include/widgets.php:1371 msgid "Rate Me" msgstr "Valorar este canal" -#: ../../include/widgets.php:1381 +#: ../../include/widgets.php:1374 msgid "View Ratings" msgstr "Mostrar las valoraciones" -#: ../../include/widgets.php:1465 +#: ../../include/widgets.php:1467 msgid "Forums" msgstr "Foros" -#: ../../include/widgets.php:1494 +#: ../../include/widgets.php:1496 msgid "Tasks" msgstr "Tareas" -#: ../../include/widgets.php:1505 -msgid "Documentation" -msgstr "Documentación" - -#: ../../include/widgets.php:1561 ../../include/widgets.php:1599 +#: ../../include/widgets.php:1562 ../../include/widgets.php:1600 msgid "Member registrations waiting for confirmation" msgstr "Inscripciones de nuevos miembros pendientes de aprobación" -#: ../../include/widgets.php:1567 +#: ../../include/widgets.php:1568 msgid "Inspect queue" msgstr "Examinar la cola" -#: ../../include/widgets.php:1569 +#: ../../include/widgets.php:1570 msgid "DB updates" msgstr "Actualizaciones de la base de datos" -#: ../../include/widgets.php:1595 +#: ../../include/widgets.php:1596 msgid "Plugin Features" msgstr "Extensiones" -#: ../../include/api.php:1330 -msgid "Public Timeline" -msgstr "Cronología pública" +#: ../../include/network.php:729 +msgid "view full size" +msgstr "Ver en el tamaño original" -#: ../../include/oembed.php:322 -msgid " by " -msgstr "por" +#: ../../include/network.php:1978 +msgid "No Subject" +msgstr "Sin asunto" -#: ../../include/oembed.php:323 -msgid " on " -msgstr "en" +#: ../../include/network.php:2234 +msgid "OStatus" +msgstr "OStatus" -#: ../../include/oembed.php:352 -msgid "Embedded content" -msgstr "Contenido incorporado" +#: ../../include/network.php:2235 +msgid "GNU-Social" +msgstr "GNU Social" -#: ../../include/oembed.php:361 -msgid "Embedding disabled" -msgstr "Incrustación deshabilitada" +#: ../../include/network.php:2236 +msgid "RSS/Atom" +msgstr "RSS/Atom" -#: ../../include/items.php:918 ../../include/items.php:963 -msgid "(Unknown)" -msgstr "(Desconocido)" +#: ../../include/network.php:2239 +msgid "Facebook" +msgstr "Facebook" -#: ../../include/items.php:1162 -msgid "Visible to anybody on the internet." -msgstr "Visible para cualquiera en internet." +#: ../../include/network.php:2240 +msgid "Zot" +msgstr "Zot" -#: ../../include/items.php:1164 -msgid "Visible to you only." -msgstr "Visible sólo para usted." +#: ../../include/network.php:2241 +msgid "LinkedIn" +msgstr "LinkedIn" -#: ../../include/items.php:1166 -msgid "Visible to anybody in this network." -msgstr "Visible para cualquiera en esta red." +#: ../../include/network.php:2242 +msgid "XMPP/IM" +msgstr "XMPP/IM" -#: ../../include/items.php:1168 -msgid "Visible to anybody authenticated." -msgstr "Visible para cualquiera que esté autenticado." +#: ../../include/network.php:2243 +msgid "MySpace" +msgstr "MySpace" -#: ../../include/items.php:1170 +#: ../../include/permissions.php:35 +msgid "Can view my normal stream and posts" +msgstr "Pueden verse mi actividad y publicaciones normales" + +#: ../../include/permissions.php:39 +msgid "Can view my webpages" +msgstr "Pueden verse mis páginas web" + +#: ../../include/permissions.php:43 +msgid "Can post on my channel page (\"wall\")" +msgstr "Pueden crearse entradas en mi página de inicio del canal (“muro”)" + +#: ../../include/permissions.php:46 +msgid "Can like/dislike stuff" +msgstr "Puede marcarse contenido como me gusta/no me gusta" + +#: ../../include/permissions.php:46 +msgid "Profiles and things other than posts/comments" +msgstr "Perfiles y otras cosas aparte de publicaciones/comentarios" + +#: ../../include/permissions.php:48 +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:48 +msgid "Advanced - useful for creating group forum channels" +msgstr "Avanzado - útil para crear canales de foros de discusión o grupos" + +#: ../../include/permissions.php:49 +msgid "Can chat with me (when available)" +msgstr "Se puede charlar conmigo (cuando esté disponible)" + +#: ../../include/permissions.php:50 +msgid "Can write to my file storage and photos" +msgstr "Puede escribirse en mi repositorio de ficheros y fotos" + +#: ../../include/permissions.php:51 +msgid "Can edit my webpages" +msgstr "Pueden editarse mis páginas web" + +#: ../../include/permissions.php:53 +msgid "Somewhat advanced - very useful in open communities" +msgstr "Algo avanzado - muy útil en comunidades abiertas" + +#: ../../include/permissions.php:55 +msgid "Can administer my channel resources" +msgstr "Pueden administrarse mis recursos del canal" + +#: ../../include/permissions.php:55 +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/conversation.php:204 #, php-format -msgid "Visible to anybody on %s." -msgstr "Visible para cualquiera en %s." +msgid "%1$s is now connected with %2$s" +msgstr "%1$s ahora está conectado/a con %2$s" -#: ../../include/items.php:1172 -msgid "Visible to all connections." -msgstr "Visible para todas las conexiones." - -#: ../../include/items.php:1174 -msgid "Visible to approved connections." -msgstr "Visible para las conexiones permitidas." - -#: ../../include/items.php:1176 -msgid "Visible to specific connections." -msgstr "Visible para conexiones específicas." - -#: ../../include/items.php:3976 -msgid "Privacy group is empty." -msgstr "El grupo de canales está vacío." - -#: ../../include/items.php:3983 +#: ../../include/conversation.php:239 #, php-format -msgid "Privacy group: %s" -msgstr "Grupo de canales: %s" +msgid "%1$s poked %2$s" +msgstr "%1$s ha dado un toque a %2$s" -#: ../../include/items.php:3995 -msgid "Connection not found." -msgstr "Conexión no encontrada" - -#: ../../include/items.php:4348 -msgid "profile photo" -msgstr "foto del perfil" - -#: ../../include/attach.php:248 ../../include/attach.php:334 -msgid "Item was not found." -msgstr "Elemento no encontrado." - -#: ../../include/attach.php:500 -msgid "No source file." -msgstr "Ningún fichero de origen" - -#: ../../include/attach.php:522 -msgid "Cannot locate file to replace" -msgstr "No se puede localizar el fichero que va a ser sustituido." - -#: ../../include/attach.php:540 -msgid "Cannot locate file to revise/update" -msgstr "No se puede localizar el fichero para revisar/actualizar" - -#: ../../include/attach.php:675 +#: ../../include/conversation.php:690 #, php-format -msgid "File exceeds size limit of %d" -msgstr "El fichero supera el limite de tamaño de %d" +msgid "View %s's profile @ %s" +msgstr "Ver el perfil @ %s de %s" -#: ../../include/attach.php:689 +#: ../../include/conversation.php:709 +msgid "Categories:" +msgstr "Temas:" + +#: ../../include/conversation.php:710 +msgid "Filed under:" +msgstr "Archivado bajo:" + +#: ../../include/conversation.php:735 +msgid "View in context" +msgstr "Mostrar en su contexto" + +#: ../../include/conversation.php:831 +msgid "remove" +msgstr "eliminar" + +#: ../../include/conversation.php:836 +msgid "Delete Selected Items" +msgstr "Eliminar elementos seleccionados" + +#: ../../include/conversation.php:929 +msgid "View Source" +msgstr "Ver el código fuente de la entrada" + +#: ../../include/conversation.php:930 +msgid "Follow Thread" +msgstr "Seguir este hilo" + +#: ../../include/conversation.php:931 +msgid "Unfollow Thread" +msgstr "Dejar de seguir este hilo" + +#: ../../include/conversation.php:936 +msgid "Activity/Posts" +msgstr "Actividad y publicaciones" + +#: ../../include/conversation.php:938 +msgid "Edit Connection" +msgstr "Editar conexión" + +#: ../../include/conversation.php:939 +msgid "Message" +msgstr "Mensaje" + +#: ../../include/conversation.php:1075 #, 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." +msgid "%s likes this." +msgstr "A %s le gusta esto." -#: ../../include/attach.php:854 -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/conversation.php:1075 +#, php-format +msgid "%s doesn't like this." +msgstr "A %s no le gusta esto." -#: ../../include/attach.php:867 -msgid "Stored file could not be verified. Upload failed." -msgstr "El fichero almacenado no ha podido ser verificado. El envío ha fallado." +#: ../../include/conversation.php:1079 +#, php-format +msgid "%2$d people like this." +msgid_plural "%2$d people like this." +msgstr[0] "a %2$d personas le gusta esto." +msgstr[1] "A %2$d personas les gusta esto." -#: ../../include/attach.php:923 ../../include/attach.php:939 -msgid "Path not available." -msgstr "Ruta no disponible." +#: ../../include/conversation.php:1081 +#, php-format +msgid "%2$d people don't like this." +msgid_plural "%2$d people don't like this." +msgstr[0] "a %2$d personas no les gusta esto." +msgstr[1] "A %2$d personas no les gusta esto." -#: ../../include/attach.php:985 ../../include/attach.php:1137 -msgid "Empty pathname" -msgstr "Ruta vacía" +#: ../../include/conversation.php:1087 +msgid "and" +msgstr "y" -#: ../../include/attach.php:1011 -msgid "duplicate filename or path" -msgstr "Nombre duplicado de ruta o fichero" +#: ../../include/conversation.php:1090 +#, 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/attach.php:1033 -msgid "Path not found." -msgstr "Ruta no encontrada" +#: ../../include/conversation.php:1091 +#, php-format +msgid "%s like this." +msgstr "A %s le gusta esto." -#: ../../include/attach.php:1091 -msgid "mkdir failed." -msgstr "mkdir ha fallado." +#: ../../include/conversation.php:1091 +#, php-format +msgid "%s don't like this." +msgstr "A %s no le gusta esto." -#: ../../include/attach.php:1095 -msgid "database storage failed." -msgstr "el almacenamiento en la base de datos ha fallado." +#: ../../include/conversation.php:1134 +msgid "Set your location" +msgstr "Establecer su ubicación" -#: ../../include/attach.php:1143 -msgid "Empty path" -msgstr "Ruta vacía" +#: ../../include/conversation.php:1135 +msgid "Clear browser location" +msgstr "Eliminar los datos de localización geográfica del navegador" + +#: ../../include/conversation.php:1183 +msgid "Tag term:" +msgstr "Término de la etiqueta:" + +#: ../../include/conversation.php:1184 +msgid "Where are you right now?" +msgstr "¿Donde está ahora?" + +#: ../../include/conversation.php:1189 +msgid "Choose a different album..." +msgstr "Elegir un álbum diferente..." + +#: ../../include/conversation.php:1193 +msgid "Comments enabled" +msgstr "Comentarios habilitados" + +#: ../../include/conversation.php:1194 +msgid "Comments disabled" +msgstr "Comentarios deshabilitados" + +#: ../../include/conversation.php:1232 +msgid "Page link name" +msgstr "Nombre del enlace de la página" + +#: ../../include/conversation.php:1235 +msgid "Post as" +msgstr "Publicar como" + +#: ../../include/conversation.php:1249 +msgid "Toggle voting" +msgstr "Cambiar votación" + +#: ../../include/conversation.php:1252 +msgid "Disable comments" +msgstr "Dehabilitar los comentarios" + +#: ../../include/conversation.php:1253 +msgid "Toggle comments" +msgstr "Activar o desactivar los comentarios" + +#: ../../include/conversation.php:1261 +msgid "Categories (optional, comma-separated list)" +msgstr "Temas (opcional, lista separada por comas)" + +#: ../../include/conversation.php:1284 +msgid "Other networks and post services" +msgstr "Otras redes y servicios de publicación" + +#: ../../include/conversation.php:1290 +msgid "Set publish date" +msgstr "Establecer la fecha de publicación" + +#: ../../include/conversation.php:1544 +msgid "Discover" +msgstr "Descubrir" + +#: ../../include/conversation.php:1547 +msgid "Imported public streams" +msgstr "Contenidos públicos importados" + +#: ../../include/conversation.php:1552 +msgid "Commented Order" +msgstr "Comentarios recientes" + +#: ../../include/conversation.php:1555 +msgid "Sort by Comment Date" +msgstr "Ordenar por fecha de comentario" + +#: ../../include/conversation.php:1559 +msgid "Posted Order" +msgstr "Publicaciones recientes" + +#: ../../include/conversation.php:1562 +msgid "Sort by Post Date" +msgstr "Ordenar por fecha de publicación" + +#: ../../include/conversation.php:1570 +msgid "Posts that mention or involve you" +msgstr "Publicaciones que le mencionan o involucran" + +#: ../../include/conversation.php:1579 +msgid "Activity Stream - by date" +msgstr "Contenido - por fecha" + +#: ../../include/conversation.php:1585 +msgid "Starred" +msgstr "Preferidas" + +#: ../../include/conversation.php:1588 +msgid "Favourite Posts" +msgstr "Publicaciones favoritas" + +#: ../../include/conversation.php:1595 +msgid "Spam" +msgstr "Correo basura" + +#: ../../include/conversation.php:1598 +msgid "Posts flagged as SPAM" +msgstr "Publicaciones marcadas como basura" + +#: ../../include/conversation.php:1656 +msgid "Status Messages and Posts" +msgstr "Mensajes de estado y publicaciones" + +#: ../../include/conversation.php:1668 +msgid "Profile Details" +msgstr "Detalles del perfil" + +#: ../../include/conversation.php:1684 +msgid "Files and Storage" +msgstr "Ficheros y repositorio" + +#: ../../include/conversation.php:1720 +msgid "Saved Bookmarks" +msgstr "Marcadores guardados" + +#: ../../include/conversation.php:1730 +msgid "Manage Webpages" +msgstr "Administrar páginas web" + +#: ../../include/conversation.php:1795 +msgctxt "noun" +msgid "Attending" +msgid_plural "Attending" +msgstr[0] "Participaré" +msgstr[1] "Participaré" + +#: ../../include/conversation.php:1798 +msgctxt "noun" +msgid "Not Attending" +msgid_plural "Not Attending" +msgstr[0] "No participaré" +msgstr[1] "No participaré" + +#: ../../include/conversation.php:1801 +msgctxt "noun" +msgid "Undecided" +msgid_plural "Undecided" +msgstr[0] "Indeciso/a" +msgstr[1] "Indecisos/as" + +#: ../../include/conversation.php:1804 +msgctxt "noun" +msgid "Agree" +msgid_plural "Agrees" +msgstr[0] "De acuerdo" +msgstr[1] "De acuerdo" + +#: ../../include/conversation.php:1807 +msgctxt "noun" +msgid "Disagree" +msgid_plural "Disagrees" +msgstr[0] "En desacuerdo" +msgstr[1] "En desacuerdo" + +#: ../../include/conversation.php:1810 +msgctxt "noun" +msgid "Abstain" +msgid_plural "Abstains" +msgstr[0] "se abstiene" +msgstr[1] "Se abstienen" + +#: ../../include/bbcode.php:134 ../../include/bbcode.php:962 +#: ../../include/bbcode.php:965 ../../include/bbcode.php:970 +#: ../../include/bbcode.php:973 ../../include/bbcode.php:976 +#: ../../include/bbcode.php:979 ../../include/bbcode.php:984 +#: ../../include/bbcode.php:987 ../../include/bbcode.php:992 +#: ../../include/bbcode.php:995 ../../include/bbcode.php:998 +#: ../../include/bbcode.php:1001 +msgid "Image/photo" +msgstr "Imagen/foto" + +#: ../../include/bbcode.php:173 ../../include/bbcode.php:1012 +msgid "Encrypted content" +msgstr "Contenido cifrado" + +#: ../../include/bbcode.php:189 +#, php-format +msgid "Install %s element: " +msgstr "Instalar el elemento %s:" + +#: ../../include/bbcode.php:193 +#, php-format +msgid "" +"This post contains an installable %s element, however you lack permissions " +"to install it on this site." +msgstr "Esta entrada contiene el elemento instalable %s, sin embargo le faltan permisos para instalarlo en este sitio." + +#: ../../include/bbcode.php:272 +#, php-format +msgid "%1$s wrote the following %2$s %3$s" +msgstr "%1$s escribió %2$s siguiente %3$s" + +#: ../../include/bbcode.php:349 ../../include/bbcode.php:357 +msgid "Click to open/close" +msgstr "Pulsar para abrir/cerrar" + +#: ../../include/bbcode.php:357 +msgid "spoiler" +msgstr "spoiler" + +#: ../../include/bbcode.php:950 +msgid "$1 wrote:" +msgstr "$1 escribió:" + +#: ../../util/nconfig.php:34 +msgid "Source channel not found." +msgstr "No se ha encontrado el canal de origen." #: ../../view/theme/redbasic/php/config.php:9 msgid "Focus (Hubzilla default)" @@ -10358,66 +13373,66 @@ 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:1195 +#: ../../boot.php:1176 #, php-format msgctxt "opensearch" msgid "Search %1$s (%2$s)" msgstr "Buscar %1$s (%2$s)" -#: ../../boot.php:1195 +#: ../../boot.php:1176 msgctxt "opensearch" msgid "$Projectname" msgstr "$Projectname" -#: ../../boot.php:1513 +#: ../../boot.php:1494 #, php-format msgid "Update %s failed. See error logs." msgstr "La actualización %s ha fallado. Mire el informe de errores." -#: ../../boot.php:1516 +#: ../../boot.php:1497 #, php-format msgid "Update Error at %s" msgstr "Error de actualización en %s" -#: ../../boot.php:1720 +#: ../../boot.php:1701 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:1741 +#: ../../boot.php:1722 msgid "Login/Email" msgstr "Inicio de sesión / Correo electrónico" -#: ../../boot.php:1742 +#: ../../boot.php:1723 msgid "Password" msgstr "Contraseña" -#: ../../boot.php:1743 +#: ../../boot.php:1724 msgid "Remember me" msgstr "Recordarme" -#: ../../boot.php:1746 +#: ../../boot.php:1727 msgid "Forgot your password?" msgstr "¿Olvidó su contraseña?" -#: ../../boot.php:2315 +#: ../../boot.php:2288 msgid "toggle mobile" msgstr "cambiar a modo móvil" -#: ../../boot.php:2470 +#: ../../boot.php:2443 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:2473 +#: ../../boot.php:2446 #, php-format msgid "[hubzilla] Website SSL error for %s" msgstr "[hubzilla] Error SSL del sitio web en %s" -#: ../../boot.php:2577 +#: ../../boot.php:2563 msgid "Cron/Scheduled tasks not running." msgstr "Las tareas del Planificador/Cron no están funcionando." -#: ../../boot.php:2581 +#: ../../boot.php:2567 #, 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-es/hstrings.php b/view/es-es/hstrings.php index dd97c81c7..1fde618ea 100644 --- a/view/es-es/hstrings.php +++ b/view/es-es/hstrings.php @@ -35,7 +35,7 @@ App::$strings["Can send me private mail messages"] = "Se me pueden enviar mensaj App::$strings["Can like/dislike profiles and profile things"] = "Se puede mostrar agrado o desagrado (Me gusta / No me gusta) en mis perfiles y sus distintos apartados"; App::$strings["Can forward to all my channel connections via @+ mentions in posts"] = "Pueden reenviarse publicaciones a todas las conexiones de mi canal a través de @+ menciones en las entradas"; App::$strings["Can chat with me"] = "Se puede chatear conmigo"; -App::$strings["Can source my public posts in derived channels"] = "Pueden utilizarse mis publicaciones públicas como origen de contenidos en canales derivados"; +App::$strings["Can source my public posts in derived channels"] = "Pueden utilizarse mis entradas públicas como origen de contenidos en canales derivados"; App::$strings["Can administer my channel"] = "Se puede administrar mi canal"; App::$strings["parent"] = "padre"; App::$strings["Collection"] = "Colección"; @@ -63,7 +63,6 @@ App::$strings["Create new folder"] = "Crear nueva carpeta"; App::$strings["Upload file"] = "Subir fichero"; App::$strings["Drop files here to immediately upload"] = "Arrastre los ficheros aquí para subirlos de forma inmediata"; App::$strings["Permission denied."] = "Acceso denegado."; -App::$strings["Not Found"] = "No encontrado"; App::$strings["Page not found."] = "Página no encontrada."; App::$strings["Permission denied"] = "Permiso denegado"; App::$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."; @@ -72,117 +71,233 @@ App::$strings["Requested profile is not available."] = "El perfil solicitado no App::$strings["Some blurb about what to do when you're new here"] = "Algunas propuestas para el nuevo usuario sobre qué se puede hacer aquí"; App::$strings["Away"] = "Ausente"; App::$strings["Online"] = "Conectado/a"; -App::$strings["No such group"] = "No se encuentra el grupo"; -App::$strings["No such channel"] = "No se encuentra el canal"; -App::$strings["forum"] = "foro"; -App::$strings["Search Results For:"] = "Buscar resultados para:"; -App::$strings["Privacy group is empty"] = "El grupo de canales está vacío"; -App::$strings["Privacy group: "] = "Grupo de canales: "; -App::$strings["Invalid connection."] = "Conexión no válida."; +App::$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."; +App::$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."; +App::$strings["Passwords do not match."] = "Las contraseñas no coinciden."; +App::$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."; +App::$strings["Your registration is pending approval by the site owner."] = "Su registro está pendiente de aprobación por el propietario del sitio."; +App::$strings["Your registration can not be processed."] = "Su registro no puede ser procesado."; +App::$strings["Registration on this hub is disabled."] = "El registro está deshabilitado en este sitio."; +App::$strings["Registration on this hub is by approval only."] = "El registro en este hub está sometido a aprobación previa."; +App::$strings["Register at another affiliated hub."] = "Registrarse en otro hub afiliado."; +App::$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."; +App::$strings["Terms of Service"] = "Términos del servicio"; +App::$strings["I accept the %s for this website"] = "Acepto los %s de este sitio"; +App::$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"; +App::$strings["Your email address"] = "Su dirección de correo electrónico"; +App::$strings["Choose a password"] = "Elija una contraseña"; +App::$strings["Please re-enter your password"] = "Por favor, vuelva a escribir su contraseña"; +App::$strings["Please enter your invitation code"] = "Por favor, introduzca el código de su invitación"; +App::$strings["Name or caption"] = "Nombre o descripción"; +App::$strings["Examples: \"Bob Jameson\", \"Lisa and her Horses\", \"Soccer\", \"Aviation Group\""] = "Ejemplos: \"Juan García\", \"Luisa y sus caballos\", \"Fútbol\", \"Grupo de aviación\""; +App::$strings["Choose a short nickname"] = "Elija un alias corto"; +App::$strings["Your nickname will be used to create an easy to remember channel address e.g. nickname%s"] = "Su alias se usará para crear una dirección de canal fácil de recordar, p. ej.: alias%s"; +App::$strings["Channel role and privacy"] = "Clase de canal y privacidad"; +App::$strings["Select a channel role with your privacy requirements."] = "Seleccione un tipo de canal con sus requisitos de privacidad"; +App::$strings["Read more about roles"] = "Leer más sobre los roles"; +App::$strings["no"] = "no"; +App::$strings["yes"] = "sí"; +App::$strings["Registration"] = "Registro"; +App::$strings["Membership on this site is by invitation only."] = "Para registrarse en este sitio es necesaria una invitación."; +App::$strings["Register"] = "Registrarse"; +App::$strings["This site may require email verification after submitting this form. If you are returned to a login page, please check your email for instructions."] = "Este sitio puede requerir una verificación de correo electrónico después de enviar este formulario. Si es devuelto a una página de inicio de sesión, compruebe su email para recibir y leer las instrucciones."; App::$strings["Fetching URL returns error: %1\$s"] = "Al intentar obtener la dirección, retorna el error: %1\$s"; -App::$strings["network"] = "red"; -App::$strings["RSS"] = "RSS"; -App::$strings["You must be logged in to see this page."] = "Debe haber iniciado sesión para poder ver esta página."; -App::$strings["Posts and comments"] = "Publicaciones y comentarios"; -App::$strings["Only posts"] = "Solo publicaciones"; -App::$strings["Insufficient permissions. Request redirected to profile page."] = "Permisos insuficientes. Petición redirigida a la página del perfil."; -App::$strings["Your service plan only allows %d channels."] = "Su paquete de servicios solo permite %d canales."; -App::$strings["Nothing to import."] = "No hay nada para importar."; -App::$strings["Unable to download data from old server"] = "No se han podido descargar datos de su antiguo servidor"; -App::$strings["Imported file is empty."] = "El fichero importado está vacío."; -App::$strings["Warning: Database versions differ by %1\$d updates."] = "Atención: Las versiones de la base de datos difieren en %1\$d actualizaciones."; -App::$strings["Cloned channel not found. Import failed."] = "No se ha podido importar el canal porque el canal clonado no se ha encontrado."; -App::$strings["No channel. Import failed."] = "No hay canal. La importación ha fallado"; -App::$strings["Import completed."] = "Importación completada."; -App::$strings["You must be logged in to use this feature."] = "Debe estar registrado para poder usar esta funcionalidad."; -App::$strings["Import Channel"] = "Importar canal"; -App::$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."; -App::$strings["File to Upload"] = "Fichero para subir"; -App::$strings["Or provide the old server/hub details"] = "O proporcione los detalles de su antiguo servidor/hub"; -App::$strings["Your old identity address (xyz@example.com)"] = "Su identidad en el antiguo servidor (canal@ejemplo.com)"; -App::$strings["Your old login email address"] = "Su antigua dirección de correo electrónico"; -App::$strings["Your old login password"] = "Su antigua contraseña"; -App::$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 direcció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."; -App::$strings["Make this hub my primary location"] = "Convertir este servidor en mi ubicación primaria"; -App::$strings["Import existing posts if possible (experimental - limited by available memory"] = "Importar el contenido publicado si es posible (experimental - limitado por la memoria disponible"; -App::$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."; +App::$strings["Profile Match"] = "Perfil compatible"; +App::$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."; +App::$strings["is interested in:"] = "está interesado en:"; +App::$strings["Connect"] = "Conectar"; +App::$strings["No matches"] = "No se han encontrado perfiles compatibles"; +App::$strings["Could not access contact record."] = "No se ha podido acceder al registro de contacto."; +App::$strings["Could not locate selected profile."] = "No se ha podido localizar el perfil seleccionado."; +App::$strings["Connection updated."] = "Conexión actualizada."; +App::$strings["Failed to update connection record."] = "Error al actualizar el registro de la conexión."; +App::$strings["is now connected to"] = "ahora está conectado/a"; +App::$strings["No"] = "No"; +App::$strings["Yes"] = "Sí"; +App::$strings["Could not access address book record."] = "No se pudo acceder al registro en su libreta de direcciones."; +App::$strings["Refresh failed - channel is currently unavailable."] = "Recarga fallida - no se puede encontrar el canal en este momento."; +App::$strings["Unable to set address book parameters."] = "No ha sido posible establecer los parámetros de la libreta de direcciones."; +App::$strings["Connection has been removed."] = "La conexión ha sido eliminada."; +App::$strings["View Profile"] = "Ver el perfil"; +App::$strings["View %s's profile"] = "Ver el perfil de %s"; +App::$strings["Refresh Permissions"] = "Recargar los permisos"; +App::$strings["Fetch updated permissions"] = "Obtener los permisos actualizados"; +App::$strings["Recent Activity"] = "Actividad reciente"; +App::$strings["View recent posts and comments"] = "Ver publicaciones y comentarios recientes"; +App::$strings["Unblock"] = "Desbloquear"; +App::$strings["Block"] = "Bloquear"; +App::$strings["Block (or Unblock) all communications with this connection"] = "Bloquear (o desbloquear) todas las comunicaciones con esta conexión"; +App::$strings["This connection is blocked!"] = "¡Esta conexión está bloqueada!"; +App::$strings["Unignore"] = "Dejar de ignorar"; +App::$strings["Ignore"] = "Ignorar"; +App::$strings["Ignore (or Unignore) all inbound communications from this connection"] = "Ignorar (o dejar de ignorar) todas las comunicaciones entrantes de esta conexión"; +App::$strings["This connection is ignored!"] = "¡Esta conexión es ignorada!"; +App::$strings["Unarchive"] = "Desarchivar"; +App::$strings["Archive"] = "Archivar"; +App::$strings["Archive (or Unarchive) this connection - mark channel dead but keep content"] = "Archiva (o desarchiva) esta conexión - marca el canal como muerto aunque mantiene sus contenidos"; +App::$strings["This connection is archived!"] = "¡Esta conexión esta archivada!"; +App::$strings["Unhide"] = "Mostrar"; +App::$strings["Hide"] = "Ocultar"; +App::$strings["Hide or Unhide this connection from your other connections"] = "Ocultar o mostrar esta conexión a sus otras conexiones"; +App::$strings["This connection is hidden!"] = "¡Esta conexión está oculta!"; +App::$strings["Delete this connection"] = "Eliminar esta conexión"; +App::$strings["Me"] = "Yo"; +App::$strings["Family"] = "Familia"; +App::$strings["Friends"] = "Amigos/as"; +App::$strings["Acquaintances"] = "Conocidos/as"; +App::$strings["All"] = "Todos/as"; +App::$strings["Approve this connection"] = "Aprobar esta conexión"; +App::$strings["Accept connection to allow communication"] = "Aceptar la conexión para permitir la comunicación"; +App::$strings["Set Affinity"] = "Ajustar la afinidad"; +App::$strings["Set Profile"] = "Ajustar el perfil"; +App::$strings["Set Affinity & Profile"] = "Ajustar la afinidad y el perfil"; +App::$strings["none"] = "-"; +App::$strings["Connection Default Permissions"] = "Permisos predeterminados de conexión"; +App::$strings["Connection: %s"] = "Conexión: %s"; +App::$strings["Apply these permissions automatically"] = "Aplicar estos permisos automaticamente"; +App::$strings["Connection requests will be approved without your interaction"] = "Las solicitudes de conexión serán aprobadas sin su intervención"; +App::$strings["This connection's primary address is"] = "La dirección primaria de esta conexión es"; +App::$strings["Available locations:"] = "Ubicaciones disponibles:"; +App::$strings["The permissions indicated on this page will be applied to all new connections."] = "Los permisos indicados en esta página serán aplicados en todas las nuevas conexiones."; +App::$strings["Connection Tools"] = "Gestión de las conexiones"; +App::$strings["Slide to adjust your degree of friendship"] = "Deslizar para ajustar el grado de amistad"; +App::$strings["Rating"] = "Valoración"; +App::$strings["Slide to adjust your rating"] = "Deslizar para ajustar su valoración"; +App::$strings["Optionally explain your rating"] = "Opcionalmente, puede explicar su valoración"; +App::$strings["Custom Filter"] = "Filtro personalizado"; +App::$strings["Only import posts with this text"] = "Importar solo entradas que contengan este texto"; +App::$strings["words one per line or #tags or /patterns/ or lang=xx, leave blank to import all posts"] = "Una sola opción por línea: palabras, #etiquetas, /patrones/ o lang=xx. Dejar en blanco para importarlo todo"; +App::$strings["Do not import posts with this text"] = "No importar entradas que contengan este texto"; +App::$strings["This information is public!"] = "¡Esta información es pública!"; +App::$strings["Connection Pending Approval"] = "Conexión pendiente de aprobación"; +App::$strings["inherited"] = "heredado"; App::$strings["Submit"] = "Enviar"; +App::$strings["Please choose the profile you would like to display to %s when viewing your profile securely."] = "Por favor, escoja el perfil que quiere mostrar a %s cuando esté viendo su perfil de forma segura."; +App::$strings["Their Settings"] = "Sus ajustes"; +App::$strings["My Settings"] = "Mis ajustes"; +App::$strings["Individual Permissions"] = "Permisos individuales"; +App::$strings["Some permissions may be inherited from your channel's privacy settings, which have higher priority than individual settings. You can not change those settings here."] = "Algunos permisos pueden ser heredados de los ajustes de privacidad de sus canales, los cuales tienen una prioridad más alta que los ajustes individuales. No puede cambiar estos ajustes aquí."; +App::$strings["Some permissions may be inherited from your channel's privacy settings, 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 ajustes de privacidad 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."; +App::$strings["Last update:"] = "Última actualización:"; +App::$strings["Invalid message"] = "Mensaje no válido"; +App::$strings["no results"] = "sin resultados"; +App::$strings["channel sync processed"] = "se ha realizado la sincronización del canal"; +App::$strings["queued"] = "encolado"; +App::$strings["posted"] = "enviado"; +App::$strings["accepted for delivery"] = "aceptado para el envío"; +App::$strings["updated"] = "actualizado"; +App::$strings["update ignored"] = "actualización ignorada"; +App::$strings["permission denied"] = "permiso denegado"; +App::$strings["recipient not found"] = "destinatario no encontrado"; +App::$strings["mail recalled"] = "mensaje de correo revocado"; +App::$strings["duplicate mail received"] = "se ha recibido mensaje duplicado"; +App::$strings["mail delivered"] = "correo enviado"; +App::$strings["Delivery report for %1\$s"] = "Informe de entrega para %1\$s"; +App::$strings["Options"] = "Opciones"; +App::$strings["Redeliver"] = "Volver a enviar"; App::$strings["Bookmark added"] = "Marcador añadido"; App::$strings["My Bookmarks"] = "Mis marcadores"; App::$strings["My Connections Bookmarks"] = "Marcadores de mis conexiones"; -App::$strings["%s account blocked/unblocked"] = array( - 0 => "%s cuenta bloqueada/desbloqueada", - 1 => "%s cuenta bloqueada/desbloqueada", -); -App::$strings["%s account deleted"] = array( - 0 => "%s cuentas eliminadas", - 1 => "%s cuentas eliminadas", -); -App::$strings["Account not found"] = "Cuenta no encontrada"; -App::$strings["Account '%s' deleted"] = "La cuenta '%s' ha sido eliminada"; -App::$strings["Account '%s' blocked"] = "La cuenta '%s' ha sido bloqueada"; -App::$strings["Account '%s' unblocked"] = "La cuenta '%s' ha sido desbloqueada"; -App::$strings["Administration"] = "Administración"; -App::$strings["Accounts"] = "Cuentas"; -App::$strings["select all"] = "seleccionar todo"; -App::$strings["Registrations waiting for confirm"] = "Inscripciones en espera de confirmación"; -App::$strings["Request date"] = "Fecha de solicitud"; -App::$strings["Email"] = "Correo electrónico"; -App::$strings["No registrations."] = "Sin registros."; -App::$strings["Approve"] = "Aprobar"; -App::$strings["Deny"] = "Rechazar"; -App::$strings["Block"] = "Bloquear"; -App::$strings["Unblock"] = "Desbloquear"; -App::$strings["ID"] = "ID"; -App::$strings["All Channels"] = "Todos los canales"; -App::$strings["Register date"] = "Fecha de registro"; -App::$strings["Last login"] = "Último acceso"; -App::$strings["Expires"] = "Caduca"; -App::$strings["Service Class"] = "Clase de servicio"; -App::$strings["Selected accounts will be deleted!\\n\\nEverything these accounts had posted on this site will be permanently deleted!\\n\\nAre you sure?"] = "¡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?"; -App::$strings["The account {0} will be deleted!\\n\\nEverything this account has posted on this site will be permanently deleted!\\n\\nAre you sure?"] = "¡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?"; -App::$strings["%s channel censored/uncensored"] = array( - 0 => "%s canales censurados/no censurados", - 1 => "%s canales censurados/no censurados", -); -App::$strings["%s channel code allowed/disallowed"] = array( - 0 => "%s código permitido/no permitido al canal", - 1 => "%s código permitido/no permitido al canal", -); -App::$strings["%s channel deleted"] = array( - 0 => "%s canales eliminados", - 1 => "%s canales eliminados", -); -App::$strings["Channel not found"] = "Canal no encontrado"; -App::$strings["Channel '%s' deleted"] = "Canal '%s' eliminado"; -App::$strings["Channel '%s' censored"] = "Canal '%s' censurado"; -App::$strings["Channel '%s' uncensored"] = "Canal '%s' no censurado"; -App::$strings["Channel '%s' code allowed"] = "Código permitido al canal '%s'"; -App::$strings["Channel '%s' code disallowed"] = "Código no permitido al canal '%s'"; -App::$strings["Channels"] = "Canales"; -App::$strings["Censor"] = "Censurar"; -App::$strings["Uncensor"] = "No censurar"; -App::$strings["Allow Code"] = "Permitir código"; -App::$strings["Disallow Code"] = "No permitir código"; -App::$strings["Channel"] = "Canal"; -App::$strings["UID"] = "UID"; +App::$strings["network"] = "red"; +App::$strings["RSS"] = "RSS"; +App::$strings["Location not found."] = "Dirección no encontrada."; +App::$strings["Location lookup failed."] = "Ha fallado la búsqueda de la dirección."; +App::$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."; +App::$strings["Syncing locations"] = "Sincronizando ubicaciones"; +App::$strings["No locations found."] = "No encontrada ninguna dirección."; +App::$strings["Manage Channel Locations"] = "Gestionar las direcciones del canal"; +App::$strings["Location"] = "Ubicación"; App::$strings["Address"] = "Dirección"; -App::$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?"; -App::$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?"; -App::$strings["Update has been marked successful"] = "La actualización ha sido marcada como exitosa"; -App::$strings["Executing %s failed. Check system logs."] = "La ejecución de %s ha fallado. Mirar en los informes del sistema."; -App::$strings["Update %s was successfully applied."] = "La actualización de %s se ha realizado exitosamente."; -App::$strings["Update %s did not return a status. Unknown if it succeeded."] = "La actualización de %s no ha devuelto ningún estado. No se sabe si ha tenido éxito."; -App::$strings["Update function %s could not be found."] = "No se encuentra la función de actualización de %s."; -App::$strings["No failed updates."] = "No ha fallado ninguna actualización."; -App::$strings["Failed Updates"] = "Han fallado las actualizaciones"; -App::$strings["Mark success (if update was manually applied)"] = "Marcar como exitosa (si la actualización se ha hecho manualmente)"; -App::$strings["Attempt to execute this update step automatically"] = "Intentar ejecutar este paso de actualización automáticamente"; +App::$strings["Primary"] = "Primario"; +App::$strings["Drop"] = "Eliminar"; +App::$strings["Sync Now"] = "Sincronizar ahora"; +App::$strings["Please wait several minutes between consecutive operations."] = "Por favor, espere algunos minutos entre operaciones consecutivas."; +App::$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."; +App::$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."; +App::$strings["Continue"] = "Continuar"; +App::$strings["Premium Channel Setup"] = "Configuración del canal premium"; +App::$strings["Enable premium channel connection restrictions"] = "Habilitar restricciones de conexión del canal premium"; +App::$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."; +App::$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:"; +App::$strings["Potential connections will then see the following text before proceeding:"] = "Las posibles conexiones verán, por tanto, el siguiente texto antes de proceder:"; +App::$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."; +App::$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.)"; +App::$strings["Restricted or Premium Channel"] = "Canal premium o restringido"; +App::$strings["Invalid item."] = "Elemento no válido."; +App::$strings["Channel not found."] = "Canal no encontrado."; +App::$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."; +App::$strings["Save to Folder:"] = "Guardar en carpeta:"; +App::$strings["- select -"] = "- seleccionar -"; +App::$strings["Save"] = "Guardar"; +App::$strings["You have created %1$.0f of %2$.0f allowed channels."] = "Ha creado %1$.0f de %2$.0f canales permitidos."; +App::$strings["Create a new channel"] = "Crear un nuevo canal"; +App::$strings["Create New"] = "Crear"; +App::$strings["Channel Manager"] = "Administración de canales"; +App::$strings["Current Channel"] = "Canal actual"; +App::$strings["Switch to one of your channels by selecting it."] = "Cambiar a uno de sus canales seleccionándolo."; +App::$strings["Default Channel"] = "Canal principal"; +App::$strings["Make Default"] = "Convertir en predeterminado"; +App::$strings["%d new messages"] = "%d mensajes nuevos"; +App::$strings["%d new introductions"] = "%d nuevas solicitudes de conexión"; +App::$strings["Delegated Channel"] = "Canal delegado"; +App::$strings["Blocked"] = "Bloqueadas"; +App::$strings["Ignored"] = "Ignoradas"; +App::$strings["Hidden"] = "Ocultas"; +App::$strings["Archived"] = "Archivadas"; +App::$strings["New"] = "Nuevas"; +App::$strings["New Connections"] = "Nuevas conexiones"; +App::$strings["Show pending (new) connections"] = "Mostrar conexiones (nuevas) pendientes"; +App::$strings["All Connections"] = "Todas las conexiones"; +App::$strings["Show all connections"] = "Mostrar todas las conexiones"; +App::$strings["Only show blocked connections"] = "Mostrar solo las conexiones bloqueadas"; +App::$strings["Only show ignored connections"] = "Mostrar solo conexiones ignoradas"; +App::$strings["Only show archived connections"] = "Mostrar solo las conexiones archivadas"; +App::$strings["Only show hidden connections"] = "Mostrar solo las conexiones ocultas"; +App::$strings["Pending approval"] = "Pendiente de aprobación"; +App::$strings["%1\$s [%2\$s]"] = "%1\$s [%2\$s]"; +App::$strings["Edit connection"] = "Editar conexión"; +App::$strings["Delete connection"] = "Eliminar conexión"; +App::$strings["Channel address"] = "Dirección del canal"; +App::$strings["Network"] = "Red"; +App::$strings["Status"] = "Estado"; +App::$strings["Connected"] = "Conectado/a"; +App::$strings["Approve connection"] = "Aprobar esta conexión"; +App::$strings["Approve"] = "Aprobar"; +App::$strings["Ignore connection"] = "Ignorar esta conexión"; +App::$strings["Recent activity"] = "Actividad reciente"; +App::$strings["Connections"] = "Conexiones"; +App::$strings["Search"] = "Buscar"; +App::$strings["Search your connections"] = "Buscar sus conexiones"; +App::$strings["Connections search"] = "Buscar conexiones"; +App::$strings["Find"] = "Encontrar"; +App::$strings["Image uploaded but image cropping failed."] = "Imagen actualizada, pero el recorte de la imagen ha fallado. "; +App::$strings["Cover Photos"] = "Imágenes de portada del perfil"; +App::$strings["Image resize failed."] = "El ajuste del tamaño de la imagen ha fallado."; +App::$strings["Unable to process image"] = "No ha sido posible procesar la imagen"; +App::$strings["Image upload failed."] = "La carga de la imagen ha fallado."; +App::$strings["Unable to process image."] = "No ha sido posible procesar la imagen."; +App::$strings["female"] = "mujer"; +App::$strings["%1\$s updated her %2\$s"] = "%1\$s ha actualizado su %2\$s"; +App::$strings["male"] = "hombre"; +App::$strings["%1\$s updated his %2\$s"] = "%1\$s ha actualizado su %2\$s"; +App::$strings["%1\$s updated their %2\$s"] = "%1\$s ha actualizado su %2\$s"; +App::$strings["cover photo"] = "Imagen de portada del perfil"; +App::$strings["Photo not available."] = "Foto no disponible."; +App::$strings["Upload File:"] = "Subir fichero:"; +App::$strings["Select a profile:"] = "Seleccionar un perfil:"; +App::$strings["Upload Cover Photo"] = "Subir imagen de portada del perfil"; +App::$strings["or"] = "o"; +App::$strings["skip this step"] = "Omitir este paso"; +App::$strings["select a photo from your photo albums"] = "Seleccione una foto de sus álbumes de fotos"; +App::$strings["Crop Image"] = "Recortar imagen"; +App::$strings["Please adjust the image cropping for optimum viewing."] = "Por favor ajuste el recorte de la imagen para una visión óptima."; +App::$strings["Done Editing"] = "Edición completada"; App::$strings["Off"] = "Desactivado"; App::$strings["On"] = "Activado"; App::$strings["Lock feature %s"] = "Bloquear la funcionalidad %s"; App::$strings["Manage Additional Features"] = "Gestionar las funcionalidades"; App::$strings["Log settings updated."] = "Actualizado el informe de configuraciones."; +App::$strings["Administration"] = "Administración"; App::$strings["Logs"] = "Informes"; App::$strings["Clear"] = "Vaciar"; App::$strings["Debugging"] = "Depuración"; @@ -227,7 +342,6 @@ App::$strings["Field Name"] = "Nombre del campo"; App::$strings["Label on profile pages"] = "Etiqueta a mostrar en la página del perfil"; App::$strings["Help text"] = "Texto de ayuda"; App::$strings["Additional info (optional)"] = "Información adicional (opcional)"; -App::$strings["Save"] = "Guardar"; App::$strings["Field definition not found"] = "Definición del campo no encontrada"; App::$strings["Edit Profile Field"] = "Modificar el campo del perfil"; App::$strings["Profile Fields"] = "Campos del perfil"; @@ -267,6 +381,84 @@ App::$strings["Only allow embeds from secure (SSL) websites and links."] = "Sól App::$strings["Allow unfiltered embedded HTML content only from these domains"] = "Permitir contenido HTML sin filtrar sólo desde estos dominios "; App::$strings["One site per line. By default embedded content is filtered."] = "Un sitio por línea. El contenido incorporado se filtra de forma predeterminada."; App::$strings["Block embedded HTML from these domains"] = "Bloquear contenido con HTML incorporado desde estos dominios"; +App::$strings["Theme settings updated."] = "Ajustes del tema actualizados."; +App::$strings["No themes found."] = "No se han encontrado temas."; +App::$strings["Screenshot"] = "Instantánea de pantalla"; +App::$strings["Themes"] = "Temas"; +App::$strings["[Experimental]"] = "[Experimental]"; +App::$strings["[Unsupported]"] = "[No soportado]"; +App::$strings["Password changed for account %d."] = "Ha cambiado la contraseña para la cuenta %d."; +App::$strings["Account settings updated."] = "Se han actualizado los ajustes de la cuenta."; +App::$strings["Account not found."] = "No se ha encontrado la cuenta."; +App::$strings["Account Edit"] = "Editar la cuenta"; +App::$strings["New Password"] = "Nueva contraseña"; +App::$strings["New Password again"] = "Nueva contraseña otra vez"; +App::$strings["Technical skill level"] = "Nivel de habilidad técnica"; +App::$strings["Account language (for emails)"] = "Idioma de la cuenta (para los correos electrónicos)"; +App::$strings["Service class"] = "Clase de servicio"; +App::$strings["%s account blocked/unblocked"] = array( + 0 => "%s cuenta bloqueada/desbloqueada", + 1 => "%s cuenta bloqueada/desbloqueada", +); +App::$strings["%s account deleted"] = array( + 0 => "%s cuentas eliminadas", + 1 => "%s cuentas eliminadas", +); +App::$strings["Account not found"] = "Cuenta no encontrada"; +App::$strings["Account '%s' deleted"] = "La cuenta '%s' ha sido eliminada"; +App::$strings["Account '%s' blocked"] = "La cuenta '%s' ha sido bloqueada"; +App::$strings["Account '%s' unblocked"] = "La cuenta '%s' ha sido desbloqueada"; +App::$strings["Accounts"] = "Cuentas"; +App::$strings["select all"] = "seleccionar todo"; +App::$strings["Registrations waiting for confirm"] = "Inscripciones en espera de confirmación"; +App::$strings["Request date"] = "Fecha de solicitud"; +App::$strings["Email"] = "Correo electrónico"; +App::$strings["No registrations."] = "Sin registros."; +App::$strings["Deny"] = "Rechazar"; +App::$strings["ID"] = "ID"; +App::$strings["All Channels"] = "Todos los canales"; +App::$strings["Register date"] = "Fecha de registro"; +App::$strings["Last login"] = "Último acceso"; +App::$strings["Expires"] = "Caduca"; +App::$strings["Service Class"] = "Clase de servicio"; +App::$strings["Selected accounts will be deleted!\\n\\nEverything these accounts had posted on this site will be permanently deleted!\\n\\nAre you sure?"] = "¡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?"; +App::$strings["The account {0} will be deleted!\\n\\nEverything this account has posted on this site will be permanently deleted!\\n\\nAre you sure?"] = "¡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?"; +App::$strings["%s channel censored/uncensored"] = array( + 0 => "%s canales censurados/no censurados", + 1 => "%s canales censurados/no censurados", +); +App::$strings["%s channel code allowed/disallowed"] = array( + 0 => "%s código permitido/no permitido al canal", + 1 => "%s código permitido/no permitido al canal", +); +App::$strings["%s channel deleted"] = array( + 0 => "%s canales eliminados", + 1 => "%s canales eliminados", +); +App::$strings["Channel not found"] = "Canal no encontrado"; +App::$strings["Channel '%s' deleted"] = "Canal '%s' eliminado"; +App::$strings["Channel '%s' censored"] = "Canal '%s' censurado"; +App::$strings["Channel '%s' uncensored"] = "Canal '%s' no censurado"; +App::$strings["Channel '%s' code allowed"] = "Código permitido al canal '%s'"; +App::$strings["Channel '%s' code disallowed"] = "Código no permitido al canal '%s'"; +App::$strings["Channels"] = "Canales"; +App::$strings["Censor"] = "Censurar"; +App::$strings["Uncensor"] = "No censurar"; +App::$strings["Allow Code"] = "Permitir código"; +App::$strings["Disallow Code"] = "No permitir código"; +App::$strings["Channel"] = "Canal"; +App::$strings["UID"] = "UID"; +App::$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?"; +App::$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?"; +App::$strings["Update has been marked successful"] = "La actualización ha sido marcada como exitosa"; +App::$strings["Executing %s failed. Check system logs."] = "La ejecución de %s ha fallado. Mirar en los informes del sistema."; +App::$strings["Update %s was successfully applied."] = "La actualización de %s se ha realizado exitosamente."; +App::$strings["Update %s did not return a status. Unknown if it succeeded."] = "La actualización de %s no ha devuelto ningún estado. No se sabe si ha tenido éxito."; +App::$strings["Update function %s could not be found."] = "No se encuentra la función de actualización de %s."; +App::$strings["No failed updates."] = "No ha fallado ninguna actualización."; +App::$strings["Failed Updates"] = "Han fallado las actualizaciones"; +App::$strings["Mark success (if update was manually applied)"] = "Marcar como exitosa (si la actualización se ha hecho manualmente)"; +App::$strings["Attempt to execute this update step automatically"] = "Intentar ejecutar este paso de actualización automáticamente"; App::$strings["Site settings updated."] = "Ajustes del sitio actualizados."; App::$strings["Default"] = "Predeterminado"; App::$strings["mobile"] = "móvil"; @@ -296,12 +488,14 @@ App::$strings["Advanced"] = "Avanzado"; App::$strings["Site name"] = "Nombre del sitio"; App::$strings["Server Configuration/Role"] = "Configuración del servidor"; App::$strings["Site default technical skill level"] = "Nivel de habilidad técnica predeterminado del sitio"; -App::$strings["Used to provide a member experience matched to technical comfort level"] = "Se utiliza para proporcionar la experiencia de los miembros adaptada al nivel de comodidad"; +App::$strings["Used to provide a member experience matched to technical comfort level"] = "Se utiliza para proporcionar una experiencia a los miembros adaptada a su nivel de comodidad técnica"; App::$strings["Lock the technical skill level setting"] = "Bloquear el ajuste del nivel de habilidad técnica"; -App::$strings["Members can set their own technical comfort level by default"] = "Los miembros pueden configurar por defecto su nivel de comodidad técnica"; +App::$strings["Members can set their own technical comfort level by default"] = "Los miembros pueden configurar su nivel de comodidad técnica por defecto"; App::$strings["Banner/Logo"] = "Banner/Logo"; App::$strings["Administrator Information"] = "Información del Administrador"; App::$strings["Contact information for site administrators. Displayed on siteinfo page. BBCode can be used here"] = "Información de contacto de los administradores del sitio. Visible en la página \"siteinfo\". Se puede usar BBCode"; +App::$strings["Site Information"] = "Información sobre el sitio"; +App::$strings["Publicly visible description of this site. Displayed on siteinfo page. BBCode can be used here"] = "Descripción pública de este sitio. Visible en la página \"siteinfo\". Se puede usar BBCode"; App::$strings["System language"] = "Idioma del sistema"; App::$strings["System theme"] = "Tema gráfico del sistema"; App::$strings["Default system theme - may be over-ridden by user profiles - change theme settings"] = "Tema del sistema por defecto - se puede cambiar por cada perfil de usuario - modificar los ajustes del tema"; @@ -351,173 +545,35 @@ App::$strings["Maximum Load Average"] = "Carga media máxima"; App::$strings["Maximum system load before delivery and poll processes are deferred - default 50."] = "Carga máxima del sistema antes de que los procesos de entrega y envío se hayan retardado - por defecto, 50."; App::$strings["Expiration period in days for imported (grid/network) content"] = "Caducidad del contenido importado de otros sitios (en días)"; App::$strings["0 for no expiration of imported content"] = "0 para que no caduque el contenido importado"; -App::$strings["Theme settings updated."] = "Ajustes del tema actualizados."; -App::$strings["No themes found."] = "No se han encontrado temas."; -App::$strings["Screenshot"] = "Instantánea de pantalla"; -App::$strings["Themes"] = "Temas"; -App::$strings["[Experimental]"] = "[Experimental]"; -App::$strings["[Unsupported]"] = "[No soportado]"; -App::$strings["Photos"] = "Fotos"; -App::$strings["Invalid item."] = "Elemento no válido."; -App::$strings["Channel not found."] = "Canal no encontrado."; -App::$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."; -App::$strings["Save to Folder:"] = "Guardar en carpeta:"; -App::$strings["- select -"] = "- seleccionar -"; -App::$strings["Unable to lookup recipient."] = "No se puede asociar a un destinatario."; -App::$strings["Unable to communicate with requested channel."] = "No se puede establecer la comunicación con el canal solicitado."; -App::$strings["Cannot verify requested channel."] = "No se puede verificar el canal solicitado."; -App::$strings["Selected channel has private message restrictions. Send failed."] = "El canal seleccionado tiene restricciones sobre los mensajes privados. El envío falló."; -App::$strings["Messages"] = "Mensajes"; -App::$strings["Message recalled."] = "Mensaje revocado."; -App::$strings["Conversation removed."] = "Conversación eliminada."; -App::$strings["Please enter a link URL:"] = "Por favor, introduzca la dirección del enlace:"; -App::$strings["Expires YYYY-MM-DD HH:MM"] = "Caduca YYYY-MM-DD HH:MM"; -App::$strings["Requested channel is not in this network"] = "El canal solicitado no existe en esta red"; -App::$strings["Send Private Message"] = "Enviar un mensaje privado"; -App::$strings["To:"] = "Para:"; -App::$strings["Subject:"] = "Asunto:"; -App::$strings["Your message:"] = "Su mensaje:"; -App::$strings["Attach file"] = "Adjuntar fichero"; -App::$strings["Insert web link"] = "Insertar enlace web"; -App::$strings["Send"] = "Enviar"; -App::$strings["Set expiration date"] = "Configurar fecha de caducidad"; -App::$strings["Encrypt text"] = "Cifrar texto"; -App::$strings["Delete message"] = "Borrar mensaje"; -App::$strings["Delivery report"] = "Informe de transmisión"; -App::$strings["Recall message"] = "Revocar el mensaje"; -App::$strings["Message has been recalled."] = "El mensaje ha sido revocado."; -App::$strings["Delete Conversation"] = "Eliminar conversación"; -App::$strings["No secure communications available. You may be able to respond from the sender's profile page."] = "Comunicación segura no disponible. Pero puede responder desde la página del perfil del remitente."; -App::$strings["Send Reply"] = "Responder"; -App::$strings["Your message for %s (%s):"] = "Su mensaje para %s (%s):"; -App::$strings["Blocked"] = "Bloqueadas"; -App::$strings["Ignored"] = "Ignoradas"; -App::$strings["Hidden"] = "Ocultas"; -App::$strings["Archived"] = "Archivadas"; -App::$strings["New"] = "Nuevas"; -App::$strings["All"] = "Todos/as"; -App::$strings["New Connections"] = "Nuevas conexiones"; -App::$strings["Show pending (new) connections"] = "Mostrar conexiones (nuevas) pendientes"; -App::$strings["All Connections"] = "Todas las conexiones"; -App::$strings["Show all connections"] = "Mostrar todas las conexiones"; -App::$strings["Only show blocked connections"] = "Mostrar solo las conexiones bloqueadas"; -App::$strings["Only show ignored connections"] = "Mostrar solo conexiones ignoradas"; -App::$strings["Only show archived connections"] = "Mostrar solo las conexiones archivadas"; -App::$strings["Only show hidden connections"] = "Mostrar solo las conexiones ocultas"; -App::$strings["Pending approval"] = "Pendiente de aprobación"; -App::$strings["%1\$s [%2\$s]"] = "%1\$s [%2\$s]"; -App::$strings["Edit connection"] = "Editar conexión"; -App::$strings["Delete connection"] = "Eliminar conexión"; -App::$strings["Channel address"] = "Dirección del canal"; -App::$strings["Network"] = "Red"; -App::$strings["Status"] = "Estado"; -App::$strings["Connected"] = "Conectado/a"; -App::$strings["Approve connection"] = "Aprobar esta conexión"; -App::$strings["Ignore connection"] = "Ignorar esta conexión"; -App::$strings["Ignore"] = "Ignorar"; -App::$strings["Recent activity"] = "Actividad reciente"; -App::$strings["Connections"] = "Conexiones"; -App::$strings["Search"] = "Buscar"; -App::$strings["Search your connections"] = "Buscar sus conexiones"; -App::$strings["Connections search"] = "Buscar conexiones"; -App::$strings["Find"] = "Encontrar"; -App::$strings["Image uploaded but image cropping failed."] = "Imagen actualizada, pero el recorte de la imagen ha fallado. "; -App::$strings["Cover Photos"] = "Imágenes de portada del perfil"; -App::$strings["Image resize failed."] = "El ajuste del tamaño de la imagen ha fallado."; -App::$strings["Unable to process image"] = "No ha sido posible procesar la imagen"; -App::$strings["Image upload failed."] = "La carga de la imagen ha fallado."; -App::$strings["Unable to process image."] = "No ha sido posible procesar la imagen."; -App::$strings["female"] = "mujer"; -App::$strings["%1\$s updated her %2\$s"] = "%1\$s ha actualizado su %2\$s"; -App::$strings["male"] = "hombre"; -App::$strings["%1\$s updated his %2\$s"] = "%1\$s ha actualizado su %2\$s"; -App::$strings["%1\$s updated their %2\$s"] = "%1\$s ha actualizado su %2\$s"; -App::$strings["cover photo"] = "Imagen de portada del perfil"; -App::$strings["Photo not available."] = "Foto no disponible."; -App::$strings["Upload File:"] = "Subir fichero:"; -App::$strings["Select a profile:"] = "Seleccionar un perfil:"; -App::$strings["Upload Cover Photo"] = "Subir imagen de portada del perfil"; -App::$strings["or"] = "o"; -App::$strings["skip this step"] = "Omitir este paso"; -App::$strings["select a photo from your photo albums"] = "Seleccione una foto de sus álbumes de fotos"; -App::$strings["Crop Image"] = "Recortar imagen"; -App::$strings["Please adjust the image cropping for optimum viewing."] = "Por favor ajuste el recorte de la imagen para una visión óptima."; -App::$strings["Done Editing"] = "Edición completada"; -App::$strings["Edit post"] = "Editar la entrada"; -App::$strings["Could not access contact record."] = "No se ha podido acceder al registro de contacto."; -App::$strings["Could not locate selected profile."] = "No se ha podido localizar el perfil seleccionado."; -App::$strings["Connection updated."] = "Conexión actualizada."; -App::$strings["Failed to update connection record."] = "Error al actualizar el registro de la conexión."; -App::$strings["is now connected to"] = "ahora está conectado/a"; -App::$strings["Could not access address book record."] = "No se pudo acceder al registro en su libreta de direcciones."; -App::$strings["Refresh failed - channel is currently unavailable."] = "Recarga fallida - no se puede encontrar el canal en este momento."; -App::$strings["Unable to set address book parameters."] = "No ha sido posible establecer los parámetros de la libreta de direcciones."; -App::$strings["Connection has been removed."] = "La conexión ha sido eliminada."; -App::$strings["View Profile"] = "Ver el perfil"; -App::$strings["View %s's profile"] = "Ver el perfil de %s"; -App::$strings["Refresh Permissions"] = "Recargar los permisos"; -App::$strings["Fetch updated permissions"] = "Obtener los permisos actualizados"; -App::$strings["Recent Activity"] = "Actividad reciente"; -App::$strings["View recent posts and comments"] = "Ver publicaciones y comentarios recientes"; -App::$strings["Block (or Unblock) all communications with this connection"] = "Bloquear (o desbloquear) todas las comunicaciones con esta conexión"; -App::$strings["This connection is blocked!"] = "¡Esta conexión está bloqueada!"; -App::$strings["Unignore"] = "Dejar de ignorar"; -App::$strings["Ignore (or Unignore) all inbound communications from this connection"] = "Ignorar (o dejar de ignorar) todas las comunicaciones entrantes de esta conexión"; -App::$strings["This connection is ignored!"] = "¡Esta conexión es ignorada!"; -App::$strings["Unarchive"] = "Desarchivar"; -App::$strings["Archive"] = "Archivar"; -App::$strings["Archive (or Unarchive) this connection - mark channel dead but keep content"] = "Archiva (o desarchiva) esta conexión - marca el canal como muerto aunque mantiene sus contenidos"; -App::$strings["This connection is archived!"] = "¡Esta conexión esta archivada!"; -App::$strings["Unhide"] = "Mostrar"; -App::$strings["Hide"] = "Ocultar"; -App::$strings["Hide or Unhide this connection from your other connections"] = "Ocultar o mostrar esta conexión a sus otras conexiones"; -App::$strings["This connection is hidden!"] = "¡Esta conexión está oculta!"; -App::$strings["Delete this connection"] = "Eliminar esta conexión"; -App::$strings["Me"] = "Yo"; -App::$strings["Family"] = "Familia"; -App::$strings["Friends"] = "Amigos/as"; -App::$strings["Acquaintances"] = "Conocidos/as"; -App::$strings["Approve this connection"] = "Aprobar esta conexión"; -App::$strings["Accept connection to allow communication"] = "Aceptar la conexión para permitir la comunicación"; -App::$strings["Set Affinity"] = "Ajustar la afinidad"; -App::$strings["Set Profile"] = "Ajustar el perfil"; -App::$strings["Set Affinity & Profile"] = "Ajustar la afinidad y el perfil"; -App::$strings["none"] = "-"; -App::$strings["Connection Default Permissions"] = "Permisos predeterminados de conexión"; -App::$strings["Connection: %s"] = "Conexión: %s"; -App::$strings["Apply these permissions automatically"] = "Aplicar estos permisos automaticamente"; -App::$strings["Connection requests will be approved without your interaction"] = "Las solicitudes de conexión serán aprobadas sin su intervención"; -App::$strings["This connection's primary address is"] = "La dirección primaria de esta conexión es"; -App::$strings["Available locations:"] = "Ubicaciones disponibles:"; -App::$strings["The permissions indicated on this page will be applied to all new connections."] = "Los permisos indicados en esta página serán aplicados en todas las nuevas conexiones."; -App::$strings["Connection Tools"] = "Gestión de las conexiones"; -App::$strings["Slide to adjust your degree of friendship"] = "Deslizar para ajustar el grado de amistad"; -App::$strings["Rating"] = "Valoración"; -App::$strings["Slide to adjust your rating"] = "Deslizar para ajustar su valoración"; -App::$strings["Optionally explain your rating"] = "Opcionalmente, puede explicar su valoración"; -App::$strings["Custom Filter"] = "Filtro personalizado"; -App::$strings["Only import posts with this text"] = "Importar solo entradas que contengan este texto"; -App::$strings["words one per line or #tags or /patterns/ or lang=xx, leave blank to import all posts"] = "Una sola opción por línea: palabras, #etiquetas, /patrones/ o lang=xx. Dejar en blanco para importarlo todo"; -App::$strings["Do not import posts with this text"] = "No importar entradas que contengan este texto"; -App::$strings["This information is public!"] = "¡Esta información es pública!"; -App::$strings["Connection Pending Approval"] = "Conexión pendiente de aprobación"; -App::$strings["inherited"] = "heredado"; -App::$strings["Please choose the profile you would like to display to %s when viewing your profile securely."] = "Por favor, escoja el perfil que quiere mostrar a %s cuando esté viendo su perfil de forma segura."; -App::$strings["Their Settings"] = "Sus ajustes"; -App::$strings["My Settings"] = "Mis ajustes"; -App::$strings["Individual Permissions"] = "Permisos individuales"; -App::$strings["Some permissions may be inherited from your channel's privacy settings, which have higher priority than individual settings. You can not change those settings here."] = "Algunos permisos pueden ser heredados de los ajustes de privacidad de sus canales, los cuales tienen una prioridad más alta que los ajustes individuales. No puede cambiar estos ajustes aquí."; -App::$strings["Some permissions may be inherited from your channel's privacy settings, 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 ajustes de privacidad 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."; -App::$strings["Last update:"] = "Última actualización:"; +App::$strings["Public Hubs"] = "Servidores públicos"; +App::$strings["The listed hubs allow public registration for the \$Projectname network. All hubs in the network are interlinked so membership on any of them conveys membership in the network as a whole. Some hubs may require subscription or provide tiered service plans. The hub itself may 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 mismos hubs pueden proporcionar detalles adicionales."; +App::$strings["Hub URL"] = "Dirección del hub"; +App::$strings["Access Type"] = "Tipo de acceso"; +App::$strings["Registration Policy"] = "Normas de registro"; +App::$strings["Stats"] = "Estadísticas"; +App::$strings["Software"] = "Software"; +App::$strings["Ratings"] = "Valoraciones"; +App::$strings["Rate"] = "Valorar"; +App::$strings["View"] = "Ver"; App::$strings["Item not found"] = "Elemento no encontrado"; -App::$strings["Block Name"] = "Nombre del bloque"; -App::$strings["Title (optional)"] = "Título (opcional)"; -App::$strings["Edit Block"] = "Modificar este bloque"; App::$strings["Layout Name"] = "Nombre de la plantilla"; App::$strings["Layout Description (Optional)"] = "Descripción de la plantilla (opcional)"; App::$strings["Edit Layout"] = "Modificar la plantilla"; App::$strings["Page link"] = "Enlace de la página"; +App::$strings["Insert web link"] = "Insertar enlace web"; App::$strings["Edit Webpage"] = "Editar la página web"; +App::$strings["Photos"] = "Fotos"; +App::$strings["You must be logged in to see this page."] = "Debe haber iniciado sesión para poder ver esta página."; +App::$strings["Posts and comments"] = "Publicaciones y comentarios"; +App::$strings["Only posts"] = "Solo publicaciones"; +App::$strings["Insufficient permissions. Request redirected to profile page."] = "Permisos insuficientes. Petición redirigida a la página del perfil."; +App::$strings["No such group"] = "No se encuentra el grupo"; +App::$strings["No such channel"] = "No se encuentra el canal"; +App::$strings["forum"] = "foro"; +App::$strings["Search Results For:"] = "Buscar resultados para:"; +App::$strings["Privacy group is empty"] = "El grupo de canales está vacío"; +App::$strings["Privacy group: "] = "Grupo de canales: "; +App::$strings["Invalid connection."] = "Conexión no válida."; App::$strings["Unable to update menu."] = "No se puede actualizar el menú."; App::$strings["Unable to create menu."] = "No se puede crear el menú."; App::$strings["Menu Name"] = "Nombre del menú"; @@ -528,7 +584,6 @@ App::$strings["Allow Bookmarks"] = "Permitir marcadores"; App::$strings["Menu may be used to store saved bookmarks"] = "El menú se puede usar para guardar marcadores"; App::$strings["Submit and proceed"] = "Enviar y proceder"; App::$strings["Menus"] = "Menús"; -App::$strings["Drop"] = "Eliminar"; App::$strings["Created"] = "Creado"; App::$strings["Edited"] = "Editado"; App::$strings["Bookmarks allowed"] = "Marcadores permitidos"; @@ -560,34 +615,20 @@ App::$strings["Categories (optional, comma separated list)"] = "Temas (opcional, App::$strings["Version ID"] = "Versión"; App::$strings["Price of app"] = "Precio de la aplicación"; App::$strings["Location (URL) to purchase app"] = "Dirección (URL) donde adquirir la aplicación"; -App::$strings["Public Hubs"] = "Servidores públicos"; -App::$strings["The listed hubs allow public registration for the \$Projectname network. All hubs in the network are interlinked so membership on any of them conveys membership in the network as a whole. Some hubs may require subscription or provide tiered service plans. The hub itself may 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 mismos hubs pueden proporcionar detalles adicionales."; -App::$strings["Hub URL"] = "Dirección del hub"; -App::$strings["Access Type"] = "Tipo de acceso"; -App::$strings["Registration Policy"] = "Normas de registro"; -App::$strings["Stats"] = "Estadísticas"; -App::$strings["Software"] = "Software"; -App::$strings["Ratings"] = "Valoraciones"; -App::$strings["Rate"] = "Valorar"; -App::$strings["Location"] = "Ubicación"; -App::$strings["View"] = "Ver"; -App::$strings["Item not available."] = "Elemento no disponible"; -App::$strings["Authorize application connection"] = "Autorizar una conexión de aplicación"; -App::$strings["Return to your app and insert this Security Code:"] = "Volver a su aplicación e introducir este código de seguridad:"; -App::$strings["Please login to continue."] = "Por favor inicie sesión para continuar."; -App::$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?"; +App::$strings["Edit post"] = "Editar la entrada"; +App::$strings["Documentation Search"] = "Búsqueda de Documentación"; +App::$strings["About"] = "Mi perfil"; +App::$strings["Members"] = "Miembros"; +App::$strings["Administrators"] = "Administradores"; +App::$strings["Developers"] = "Desarrolladores"; +App::$strings["Tutorials"] = "Tutoriales"; +App::$strings["\$Projectname Documentation"] = "Documentación de \$Projectname"; +App::$strings["Contents"] = "Contenidos"; App::$strings["Share content from Firefox to \$Projectname"] = "Compartir contenido desde Firefox a \$Projectname"; App::$strings["Activate the Firefox \$Projectname provider"] = "Servicio de compartición de Firefox: activar el proveedor \$Projectname "; -App::$strings["Layout updated."] = "Plantilla actualizada."; -App::$strings["Feature disabled."] = "Funcionalidad deshabilitada."; -App::$strings["Edit System Page Description"] = "Editor del Sistema de Descripción de Páginas"; -App::$strings["Layout not found."] = "Plantilla no encontrada"; -App::$strings["Module Name:"] = "Nombre del módulo:"; -App::$strings["Layout Help"] = "Ayuda para el diseño de plantillas de página"; +App::$strings["Apps"] = "Aplicaciones (apps)"; App::$strings["\$Projectname"] = "\$Projectname"; App::$strings["Welcome to %s"] = "Bienvenido a %s"; -App::$strings["Remote privacy information not available."] = "La información privada remota no está disponible."; -App::$strings["Visible to:"] = "Visible para:"; App::$strings["Permission Denied."] = "Permiso denegado"; App::$strings["File not found."] = "Fichero no encontrado."; App::$strings["Edit file permissions"] = "Modificar los permisos del fichero"; @@ -600,64 +641,85 @@ App::$strings["Copy/paste this URL to link file from a web page"] = "Copiar/pega App::$strings["Share this file"] = "Compartir este fichero"; App::$strings["Show URL to this file"] = "Mostrar la dirección de este fichero"; App::$strings["Notify your contacts about this file"] = "Avisar a sus contactos sobre este fichero"; -App::$strings["Continue"] = "Continuar"; -App::$strings["Premium Channel Setup"] = "Configuración del canal premium"; -App::$strings["Enable premium channel connection restrictions"] = "Habilitar restricciones de conexión del canal premium"; -App::$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."; -App::$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:"; -App::$strings["Potential connections will then see the following text before proceeding:"] = "Las posibles conexiones verán, por tanto, el siguiente texto antes de proceder:"; -App::$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."; -App::$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.)"; -App::$strings["Restricted or Premium Channel"] = "Canal premium o restringido"; -App::$strings["You have created %1$.0f of %2$.0f allowed channels."] = "Ha creado %1$.0f de %2$.0f canales permitidos."; -App::$strings["Create a new channel"] = "Crear un nuevo canal"; -App::$strings["Create New"] = "Crear"; -App::$strings["Channel Manager"] = "Administración de canales"; -App::$strings["Current Channel"] = "Canal actual"; -App::$strings["Switch to one of your channels by selecting it."] = "Cambiar a uno de sus canales seleccionándolo."; -App::$strings["Default Channel"] = "Canal principal"; -App::$strings["Make Default"] = "Convertir en predeterminado"; -App::$strings["%d new messages"] = "%d mensajes nuevos"; -App::$strings["%d new introductions"] = "%d nuevas isolicitudes de conexión"; -App::$strings["Delegated Channel"] = "Canal delegado"; -App::$strings["Privacy group created."] = "El grupo de canales ha sido creado."; -App::$strings["Could not create privacy group."] = "No se puede crear el grupo de canales"; -App::$strings["Privacy group not found."] = "Grupo de canales no encontrado."; -App::$strings["Privacy group updated."] = "Grupo de canales actualizado."; -App::$strings["Create a group of channels."] = "Crear un grupo de canales."; -App::$strings["Privacy group name: "] = "Nombre del grupo de canales:"; -App::$strings["Members are visible to other channels"] = "Los miembros son visibles para otros canales"; -App::$strings["Privacy group removed."] = "Grupo de canales eliminado."; -App::$strings["Unable to remove privacy group."] = "No se puede eliminar el grupo de canales."; -App::$strings["Privacy group editor"] = "Editor de grupos de canales"; -App::$strings["Members"] = "Miembros"; -App::$strings["All Connected Channels"] = "Todos los canales conectados"; -App::$strings["Click on a channel to add or remove."] = "Haga clic en un canal para agregarlo o quitarlo."; -App::$strings["Invalid message"] = "Mensaje no válido"; -App::$strings["no results"] = "sin resultados"; -App::$strings["channel sync processed"] = "se ha realizado la sincronización del canal"; -App::$strings["queued"] = "encolado"; -App::$strings["posted"] = "enviado"; -App::$strings["accepted for delivery"] = "aceptado para el envío"; -App::$strings["updated"] = "actualizado"; -App::$strings["update ignored"] = "actualización ignorada"; -App::$strings["permission denied"] = "permiso denegado"; -App::$strings["recipient not found"] = "destinatario no encontrado"; -App::$strings["mail recalled"] = "mensaje de correo revocado"; -App::$strings["duplicate mail received"] = "se ha recibido mensaje duplicado"; -App::$strings["mail delivered"] = "correo enviado"; -App::$strings["Delivery report for %1\$s"] = "Informe de entrega para %1\$s"; -App::$strings["Options"] = "Opciones"; -App::$strings["Redeliver"] = "Volver a enviar"; +App::$strings["Public access denied."] = "Acceso público denegado."; +App::$strings["%d rating"] = array( + 0 => "%d valoración", + 1 => "%d valoraciones", +); +App::$strings["Gender: "] = "Género:"; +App::$strings["Status: "] = "Estado:"; +App::$strings["Homepage: "] = "Página personal:"; +App::$strings["Age:"] = "Edad:"; +App::$strings["Location:"] = "Ubicación:"; +App::$strings["Description:"] = "Descripción:"; +App::$strings["Hometown:"] = "Lugar de nacimiento:"; +App::$strings["About:"] = "Sobre mí:"; +App::$strings["Public Forum:"] = "Foro público:"; +App::$strings["Keywords: "] = "Palabras clave:"; +App::$strings["Don't suggest"] = "No sugerir:"; +App::$strings["Common connections:"] = "Conexiones comunes:"; +App::$strings["Global Directory"] = "Directorio global:"; +App::$strings["Local Directory"] = "Directorio local:"; +App::$strings["Finding:"] = "Encontrar:"; +App::$strings["Channel Suggestions"] = "Sugerencias de canales"; +App::$strings["next page"] = "siguiente página"; +App::$strings["previous page"] = "página anterior"; +App::$strings["Sort options"] = "Ordenar opciones"; +App::$strings["Alphabetic"] = "Alfabético"; +App::$strings["Reverse Alphabetic"] = "Alfabético inverso"; +App::$strings["Newest to Oldest"] = "De más nuevo a más antiguo"; +App::$strings["Oldest to Newest"] = "De más antiguo a más nuevo"; +App::$strings["No entries (some entries may be hidden)."] = "Sin entradas (algunas entradas pueden estar ocultas)."; +App::$strings["Unable to locate original post."] = "No ha sido posible encontrar la entrada original."; +App::$strings["Empty post discarded."] = "La entrada vacía ha sido desechada."; +App::$strings["Executable content type not permitted to this channel."] = "Contenido de tipo ejecutable no permitido en este canal."; +App::$strings["Duplicate post suppressed."] = "Se ha suprimido la entrada duplicada."; +App::$strings["System error. Post not saved."] = "Error del sistema. La entrada no se ha podido salvar."; +App::$strings["Unable to obtain post information from database."] = "No ha sido posible obtener información de la entrada en la base de datos."; +App::$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."; +App::$strings["You have reached your limit of %1$.0f webpages."] = "Ha alcanzado su límite de %1$.0f páginas web."; +App::$strings["toggle full screen mode"] = "cambiar al modo de pantalla completa"; +App::$strings["Channel added."] = "Canal añadido."; +App::$strings["Unable to lookup recipient."] = "No se puede asociar a un destinatario."; +App::$strings["Unable to communicate with requested channel."] = "No se puede establecer la comunicación con el canal solicitado."; +App::$strings["Cannot verify requested channel."] = "No se puede verificar el canal solicitado."; +App::$strings["Selected channel has private message restrictions. Send failed."] = "El canal seleccionado tiene restricciones sobre los mensajes privados. El envío falló."; +App::$strings["Messages"] = "Mensajes"; +App::$strings["Message recalled."] = "Mensaje revocado."; +App::$strings["Conversation removed."] = "Conversación eliminada."; +App::$strings["Please enter a link URL:"] = "Por favor, introduzca la dirección del enlace:"; +App::$strings["Expires YYYY-MM-DD HH:MM"] = "Caduca YYYY-MM-DD HH:MM"; +App::$strings["Requested channel is not in this network"] = "El canal solicitado no existe en esta red"; +App::$strings["Send Private Message"] = "Enviar un mensaje privado"; +App::$strings["To:"] = "Para:"; +App::$strings["Subject:"] = "Asunto:"; +App::$strings["Your message:"] = "Su mensaje:"; +App::$strings["Attach file"] = "Adjuntar fichero"; +App::$strings["Send"] = "Enviar"; +App::$strings["Set expiration date"] = "Configurar fecha de caducidad"; +App::$strings["Encrypt text"] = "Cifrar texto"; +App::$strings["Delete message"] = "Borrar mensaje"; +App::$strings["Delivery report"] = "Informe de transmisión"; +App::$strings["Recall message"] = "Revocar el mensaje"; +App::$strings["Message has been recalled."] = "El mensaje ha sido revocado."; +App::$strings["Delete Conversation"] = "Eliminar conversación"; +App::$strings["No secure communications available. You may be able to respond from the sender's profile page."] = "Comunicación segura no disponible. Pero puede responder desde la página del perfil del remitente."; +App::$strings["Send Reply"] = "Responder"; +App::$strings["Your message for %s (%s):"] = "Su mensaje para %s (%s):"; App::$strings["webpage"] = "página web"; App::$strings["block"] = "bloque"; App::$strings["layout"] = "plantilla"; App::$strings["menu"] = "menú"; App::$strings["%s element installed"] = "%s elemento instalado"; App::$strings["%s element installation failed"] = "Elemento con instalación fallida: %s"; +App::$strings["Nothing to import."] = "No hay nada para importar."; +App::$strings["Unable to download data from old server"] = "No se han podido descargar datos de su antiguo servidor"; +App::$strings["Imported file is empty."] = "El fichero importado está vacío."; +App::$strings["Warning: Database versions differ by %1\$d updates."] = "Atención: Las versiones de la base de datos difieren en %1\$d actualizaciones."; App::$strings["Import completed"] = "Importación completada"; App::$strings["Import Items"] = "Importar elementos"; App::$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."; +App::$strings["File to Upload"] = "Fichero para subir"; App::$strings["Total invitation limit exceeded."] = "Se ha superado el límite máximo de invitaciones."; App::$strings["%s : Not a valid email address."] = "%s : No es una dirección de correo electrónico válida. "; App::$strings["Please join us on \$Projectname"] = "Únase a nosotros en \$Projectname"; @@ -676,42 +738,239 @@ App::$strings["1. Register at any \$Projectname location (they are all inter-con App::$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."; App::$strings["or visit"] = "o visitar"; App::$strings["3. Click [Connect]"] = "3. Pulse [conectar]"; -App::$strings["Location not found."] = "Dirección no encontrada."; -App::$strings["Location lookup failed."] = "Ha fallado la búsqueda de la dirección."; -App::$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."; -App::$strings["Syncing locations"] = "Sincronizando ubicaciones"; -App::$strings["No locations found."] = "No encontrada ninguna dirección."; -App::$strings["Manage Channel Locations"] = "Gestionar las direcciones del canal"; -App::$strings["Primary"] = "Primario"; -App::$strings["Sync Now"] = "Sincronizar ahora"; -App::$strings["Please wait several minutes between consecutive operations."] = "Por favor, espere algunos minutos entre operaciones consecutivas."; -App::$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."; -App::$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."; -App::$strings["Website:"] = "Sitio web:"; -App::$strings["Remote Channel [%s] (not yet known on this site)"] = "Canal remoto [%s] (aún no es conocido en este sitio)"; -App::$strings["Rating (this information is public)"] = "Valoración (esta información es pública)"; -App::$strings["Optionally explain your rating (this information is public)"] = "Opcionalmente puede explicar su valoración (esta información es pública)"; -App::$strings["Like/Dislike"] = "Me gusta/No me gusta"; -App::$strings["This action is restricted to members."] = "Esta acción está restringida solo para miembros."; -App::$strings["Please login with your \$Projectname ID or register as a new \$Projectname member to continue."] = "Por favor, identifíquese con su \$Projectname ID o rregístrese como un nuevo \$Projectname member para continuar."; -App::$strings["Invalid request."] = "Solicitud incorrecta."; -App::$strings["channel"] = "el canal"; -App::$strings["thing"] = "elemento"; -App::$strings["Channel unavailable."] = "Canal no disponible."; -App::$strings["Previous action reversed."] = "Acción anterior revocada."; -App::$strings["photo"] = "foto"; -App::$strings["status"] = "el mensaje de estado"; -App::$strings["event"] = "evento"; -App::$strings["%1\$s likes %2\$s's %3\$s"] = "A %1\$s le gusta %3\$s de %2\$s"; -App::$strings["%1\$s doesn't like %2\$s's %3\$s"] = "A %1\$s no le gusta %3\$s de %2\$s"; -App::$strings["%1\$s agrees with %2\$s's %3\$s"] = "%3\$s de %2\$s: %1\$s está de acuerdo"; -App::$strings["%1\$s doesn't agree with %2\$s's %3\$s"] = "%3\$s de %2\$s: %1\$s no está de acuerdo"; -App::$strings["%1\$s abstains from a decision on %2\$s's %3\$s"] = "%3\$s de %2\$s: %1\$s se abstiene"; -App::$strings["%1\$s is attending %2\$s's %3\$s"] = "%3\$s de %2\$s: %1\$s participa"; -App::$strings["%1\$s is not attending %2\$s's %3\$s"] = "%3\$s de %2\$s: %1\$s no participa"; -App::$strings["%1\$s may attend %2\$s's %3\$s"] = "%3\$s de %2\$s: %1\$s quizá participe"; -App::$strings["Action completed."] = "Acción completada."; -App::$strings["Thank you."] = "Gracias."; +App::$strings["Block Name"] = "Nombre del bloque"; +App::$strings["Title (optional)"] = "Título (opcional)"; +App::$strings["Edit Block"] = "Modificar este bloque"; +App::$strings["Privacy group created."] = "El grupo de canales ha sido creado."; +App::$strings["Could not create privacy group."] = "No se puede crear el grupo de canales"; +App::$strings["Privacy group not found."] = "Grupo de canales no encontrado."; +App::$strings["Privacy group updated."] = "Grupo de canales actualizado."; +App::$strings["Create a group of channels."] = "Crear un grupo de canales."; +App::$strings["Privacy group name: "] = "Nombre del grupo de canales:"; +App::$strings["Members are visible to other channels"] = "Los miembros son visibles para otros canales"; +App::$strings["Privacy group removed."] = "Grupo de canales eliminado."; +App::$strings["Unable to remove privacy group."] = "No se puede eliminar el grupo de canales."; +App::$strings["Privacy group editor"] = "Editor de grupos de canales"; +App::$strings["All Connected Channels"] = "Todos los canales conectados"; +App::$strings["Click on a channel to add or remove."] = "Haga clic en un canal para agregarlo o quitarlo."; +App::$strings["Invalid profile identifier."] = "Identificador del perfil no válido"; +App::$strings["Profile Visibility Editor"] = "Editor de visibilidad del perfil"; +App::$strings["Profile"] = "Perfil"; +App::$strings["Click on a contact to add or remove."] = "Pulsar en un contacto para añadirlo o eliminarlo."; +App::$strings["Visible To"] = "Visible para"; +App::$strings["Hub not found."] = "Servidor no encontrado"; +App::$strings["Unable to create element."] = "No se puede crear el elemento."; +App::$strings["Unable to update menu element."] = "No es posible actualizar el elemento del menú."; +App::$strings["Unable to add menu element."] = "No es posible añadir el elemento al menú"; +App::$strings["Menu Item Permissions"] = "Permisos del elemento del menú"; +App::$strings["(click to open/close)"] = "(pulsar para abrir o cerrar)"; +App::$strings["Link Name"] = "Nombre del enlace"; +App::$strings["Link or Submenu Target"] = "Destino del enlace o submenú"; +App::$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ú"; +App::$strings["Use magic-auth if available"] = "Usar la autenticación mágica si está disponible"; +App::$strings["Open link in new window"] = "Abrir el enlace en una nueva ventana"; +App::$strings["Order in list"] = "Orden en la lista"; +App::$strings["Higher numbers will sink to bottom of listing"] = "Los números más altos irán al final de la lista"; +App::$strings["Submit and finish"] = "Enviar y terminar"; +App::$strings["Submit and continue"] = "Enviar y continuar"; +App::$strings["Menu:"] = "Menú:"; +App::$strings["Link Target"] = "Destino del enlace"; +App::$strings["Edit menu"] = "Editar menú"; +App::$strings["Edit element"] = "Editar el elemento"; +App::$strings["Drop element"] = "Eliminar el elemento"; +App::$strings["New element"] = "Nuevo elemento"; +App::$strings["Edit this menu container"] = "Modificar el contenedor del menú"; +App::$strings["Add menu element"] = "Añadir un elemento al menú"; +App::$strings["Delete this menu item"] = "Eliminar este elemento del menú"; +App::$strings["Edit this menu item"] = "Modificar este elemento del menú"; +App::$strings["Menu item not found."] = "Este elemento del menú no se ha encontrado"; +App::$strings["Menu item deleted."] = "Este elemento del menú ha sido borrado"; +App::$strings["Menu item could not be deleted."] = "Este elemento del menú no puede ser borrado."; +App::$strings["Edit Menu Element"] = "Editar elemento del menú"; +App::$strings["Link text"] = "Texto del enlace"; +App::$strings["No ratings"] = "Ninguna valoración"; +App::$strings["Rating: "] = "Valoración:"; +App::$strings["Website: "] = "Sitio web:"; +App::$strings["Description: "] = "Descripción:"; +App::$strings["Item not available."] = "Elemento no disponible"; +App::$strings["__ctx:mood__ %1\$s is %2\$s"] = "%1\$s está %2\$s"; +App::$strings["Mood"] = "Estado de ánimo"; +App::$strings["Set your current mood and tell your friends"] = "Describir su estado de ánimo para comunicárselo a sus amigos"; +App::$strings["No more system notifications."] = "No hay más notificaciones del sistema"; +App::$strings["System Notifications"] = "Notificaciones del sistema"; +App::$strings["Page owner information could not be retrieved."] = "La información del propietario de la página no pudo ser recuperada."; +App::$strings["Profile Photos"] = "Fotos del perfil"; +App::$strings["Album not found."] = "Álbum no encontrado."; +App::$strings["Delete Album"] = "Borrar álbum"; +App::$strings["Multiple storage folders exist with this album name, but within different directories. Please remove the desired folder or folders using the Files manager"] = "Hay varias carpetas con este nombre de álbum, pero dentro de diferentes directorios. Por favor, elimine la carpeta o carpetas que desee utilizando el administrador de ficheros"; +App::$strings["Delete Photo"] = "Borrar foto"; +App::$strings["No photos selected"] = "No hay fotos seleccionadas"; +App::$strings["Access to this item is restricted."] = "El acceso a este elemento está restringido."; +App::$strings["%1$.2f MB of %2$.2f MB photo storage used."] = "%1$.2f MB de %2$.2f MB de almacenamiento de fotos utilizado."; +App::$strings["%1$.2f MB photo storage used."] = "%1$.2f MB de almacenamiento de fotos utilizado."; +App::$strings["Upload Photos"] = "Subir fotos"; +App::$strings["Enter an album name"] = "Introducir un nombre de álbum"; +App::$strings["or select an existing album (doubleclick)"] = "o seleccionar uno existente (doble click)"; +App::$strings["Create a status post for this upload"] = "Crear un mensaje de estado para esta subida"; +App::$strings["Caption (optional):"] = "Título (opcional):"; +App::$strings["Description (optional):"] = "Descripción (opcional):"; +App::$strings["Album name could not be decoded"] = "El nombre del álbum no ha podido ser descifrado"; +App::$strings["Contact Photos"] = "Fotos de contacto"; +App::$strings["Show Newest First"] = "Mostrar lo más reciente primero"; +App::$strings["Show Oldest First"] = "Mostrar lo más antiguo primero"; +App::$strings["View Photo"] = "Ver foto"; +App::$strings["Edit Album"] = "Editar álbum"; +App::$strings["Permission denied. Access to this item may be restricted."] = "Permiso denegado. El acceso a este elemento puede estar restringido."; +App::$strings["Photo not available"] = "Foto no disponible"; +App::$strings["Use as profile photo"] = "Usar como foto del perfil"; +App::$strings["Use as cover photo"] = "Usar como imagen de portada del perfil"; +App::$strings["Private Photo"] = "Foto privada"; +App::$strings["Previous"] = "Anterior"; +App::$strings["View Full Size"] = "Ver tamaño completo"; +App::$strings["Next"] = "Siguiente"; +App::$strings["Edit photo"] = "Editar foto"; +App::$strings["Rotate CW (right)"] = "Girar CW (a la derecha)"; +App::$strings["Rotate CCW (left)"] = "Girar CCW (a la izquierda)"; +App::$strings["Move photo to album"] = "Mover la foto a un álbum"; +App::$strings["Enter a new album name"] = "Introducir un nuevo nombre de álbum"; +App::$strings["or select an existing one (doubleclick)"] = "o seleccionar uno (doble click) existente"; +App::$strings["Caption"] = "Título"; +App::$strings["Add a Tag"] = "Añadir una etiqueta"; +App::$strings["Example: @bob, @Barbara_Jensen, @jim@example.com"] = "Ejemplos: @eva, @Carmen_Osuna, @jaime@ejemplo.com"; +App::$strings["Flag as adult in album view"] = "Marcar como \"solo para adultos\" en el álbum"; +App::$strings["I like this (toggle)"] = "Me gusta (cambiar)"; +App::$strings["I don't like this (toggle)"] = "No me gusta esto (cambiar)"; +App::$strings["Share"] = "Compartir"; +App::$strings["Please wait"] = "Espere por favor"; +App::$strings["This is you"] = "Este es usted"; +App::$strings["Comment"] = "Comentar"; +App::$strings["Preview"] = "Previsualizar"; +App::$strings["__ctx:title__ Likes"] = "Me gusta"; +App::$strings["__ctx:title__ Dislikes"] = "No me gusta"; +App::$strings["__ctx:title__ Agree"] = "De acuerdo"; +App::$strings["__ctx:title__ Disagree"] = "En desacuerdo"; +App::$strings["__ctx:title__ Abstain"] = "Abstención"; +App::$strings["__ctx:title__ Attending"] = "Participaré"; +App::$strings["__ctx:title__ Not attending"] = "No participaré"; +App::$strings["__ctx:title__ Might attend"] = "Quizá participe"; +App::$strings["View all"] = "Ver todo"; +App::$strings["__ctx:noun__ Like"] = array( + 0 => "Me gusta", + 1 => "Me gusta", +); +App::$strings["__ctx:noun__ Dislike"] = array( + 0 => "No me gusta", + 1 => "No me gusta", +); +App::$strings["Photo Tools"] = "Gestión de las fotos"; +App::$strings["In This Photo:"] = "En esta foto:"; +App::$strings["Map"] = "Mapa"; +App::$strings["__ctx:noun__ Likes"] = "Me gusta"; +App::$strings["__ctx:noun__ Dislikes"] = "No me gusta"; +App::$strings["Close"] = "Cerrar"; +App::$strings["View Album"] = "Ver álbum"; +App::$strings["Recent Photos"] = "Fotos recientes"; +App::$strings["\$Projectname Server - Setup"] = "Servidor \$Projectname - Instalación"; +App::$strings["Could not connect to database."] = "No se ha podido conectar a la base de datos."; +App::$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."; +App::$strings["Could not create table."] = "No se puede crear la tabla."; +App::$strings["Your site database has been installed."] = "La base de datos del sitio ha sido instalada."; +App::$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."; +App::$strings["Please see the file \"install/INSTALL.txt\"."] = "Por favor, lea el fichero \"install/INSTALL.txt\"."; +App::$strings["System check"] = "Verificación del sistema"; +App::$strings["Check again"] = "Verificar de nuevo"; +App::$strings["Database connection"] = "Conexión a la base de datos"; +App::$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."; +App::$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."; +App::$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."; +App::$strings["Database Server Name"] = "Nombre del servidor de base de datos"; +App::$strings["Default is 127.0.0.1"] = "De forma predeterminada es 127.0.0.1"; +App::$strings["Database Port"] = "Puerto de la base de datos"; +App::$strings["Communication port number - use 0 for default"] = "Número del puerto de comunicaciones - use 0 como valor por defecto"; +App::$strings["Database Login Name"] = "Usuario de la base de datos"; +App::$strings["Database Login Password"] = "Contraseña de acceso a la base de datos"; +App::$strings["Database Name"] = "Nombre de la base de datos"; +App::$strings["Database Type"] = "Tipo de base de datos"; +App::$strings["Site administrator email address"] = "Dirección de correo electrónico del administrador del sitio"; +App::$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."; +App::$strings["Website URL"] = "Dirección del sitio web"; +App::$strings["Please use SSL (https) URL if available."] = "Por favor, use SSL (https) si está disponible."; +App::$strings["Please select a default timezone for your website"] = "Por favor, selecciones el huso horario por defecto de su sitio web"; +App::$strings["Site settings"] = "Ajustes del sitio"; +App::$strings["PHP version 5.5 or greater is required."] = "Se requiere la versión 5.5, o superior, de PHP."; +App::$strings["PHP version"] = "Versión de PHP"; +App::$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."; +App::$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á realizar envíos en segundo plano mediante cron."; +App::$strings["PHP executable path"] = "Ruta del ejecutable PHP"; +App::$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."; +App::$strings["Command line PHP"] = "PHP en línea de comandos"; +App::$strings["Unable to check command line PHP, as shell_exec() is disabled. This is required."] = "No se puede comprobar la línea de comandos PHP, ya que shell_exec() está deshabilitado. Es necesario que esté activado."; +App::$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\"."; +App::$strings["This is required for message delivery to work."] = "Esto es necesario para que funcione la transmisión de mensajes."; +App::$strings["PHP register_argc_argv"] = "PHP register_argc_argv"; +App::$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."; +App::$strings["You can adjust these settings in the server php.ini file."] = "Puede ajustar estos valores en el fichero php.ini de su servidor."; +App::$strings["PHP upload limits"] = "Límites PHP de subida"; +App::$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."; +App::$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\"."; +App::$strings["Generate encryption keys"] = "Generar claves de cifrado"; +App::$strings["libCurl PHP module"] = "módulo libCurl PHP"; +App::$strings["GD graphics PHP module"] = "módulo PHP GD graphics"; +App::$strings["OpenSSL PHP module"] = "módulo PHP OpenSSL"; +App::$strings["PDO database PHP module"] = "Módulo PHP de la base de datos PDO "; +App::$strings["mb_string PHP module"] = "módulo PHP mb_string"; +App::$strings["xml PHP module"] = "módulo PHP xml"; +App::$strings["Apache mod_rewrite module"] = "módulo Apache mod_rewrite "; +App::$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."; +App::$strings["exec"] = "ejecutable"; +App::$strings["Error: exec is required but is either not installed or has been disabled in php.ini"] = "Error: se necesita un ejecutable pero o no se instaló o está deshabilitado en php.ini"; +App::$strings["shell_exec"] = "shell_exec"; +App::$strings["Error: shell_exec is required but is either not installed or has been disabled in php.ini"] = "Error: se necesita shell_exec pero o no se instaló o está deshabilitado en php.ini"; +App::$strings["Error: libCURL PHP module required but not installed."] = "Error: se necesita el módulo PHP libCURL pero no está instalado."; +App::$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."; +App::$strings["Error: openssl PHP module required but not installed."] = "Error: el módulo PHP openssl es necesario, pero no está instalado."; +App::$strings["Error: PDO database PHP module required but not installed."] = "Error: se necesita el módulo PHP de la base de datos PDO, pero no está instalado."; +App::$strings["Error: mb_string PHP module required but not installed."] = "Error: el módulo PHP mb_string es necesario, pero no está instalado."; +App::$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."; +App::$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."; +App::$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."; +App::$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."; +App::$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."; +App::$strings[".htconfig.php is writable"] = ".htconfig.php tiene permisos de escritura"; +App::$strings["This software uses the Smarty3 template engine to render its web views. Smarty3 compiles templates to PHP to speed up rendering."] = "Este software hace uso del motor de plantillas Smarty3 para diseñar sus plantillas gráficas. Smarty3 compila las plantillas a PHP para acelerar la renderización."; +App::$strings["In order to store these compiled templates, the web server needs to have write access to the directory %s under the top level web folder."] = "Para poder guardar las plantillas compiladas, el servidor web necesita permisos para acceder al directorio %s en la carpeta web principal."; +App::$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)."; +App::$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."; +App::$strings["%s is writable"] = "%s tiene permisos de escritura"; +App::$strings["This software uses the store directory to save uploaded files. The web server needs to have write access to the store directory under the top level web folder"] = "Este software utiliza el directorio de almacenamiento para guardar los ficheros subidos. El servidor web debe tener acceso de escritura a este directorio en la carpeta de nivel superior"; +App::$strings["store is writable"] = "\"store\" tiene permisos de escritura"; +App::$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."; +App::$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."; +App::$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 entradas públicas hagan referencia a imágenes en su propio servidor."; +App::$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."; +App::$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."; +App::$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."; +App::$strings["If you are confident that the certificate is valid and signed by a trusted authority, check to see if you have failed to install an intermediate cert. These are not normally required by browsers, but are required for server-to-server communications."] = "Si se tiene la certeza de que el certificado es válido y está firmado por una autoridad de confianza, comprobar para ver si hubo un error al instalar un certificado intermedio. Estos no son normalmente requeridos por los navegadores, pero son necesarios para las comunicaciones de servidor a servidor."; +App::$strings["SSL certificate validation"] = "validación del certificado SSL"; +App::$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:"; +App::$strings["Url rewrite is working"] = "La reescritura de las direcciones funciona correctamente"; +App::$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."; +App::$strings["Errors encountered creating database tables."] = "Se han encontrado errores al crear las tablas de la base de datos."; +App::$strings["

        What next

        "] = "

        Siguiente paso

        "; +App::$strings["IMPORTANT: You will need to [manually] setup a scheduled task for the poller."] = "IMPORTANTE: Debe crear [manualmente] una tarea programada para el \"poller\"."; +App::$strings["Item is not editable"] = "El elemento no es editable"; +App::$strings["This site is not a directory server"] = "Este sitio no es un servidor de directorio"; +App::$strings["Create Channel"] = "Crear un canal"; +App::$strings["A channel is your identity on this network. It can represent a person, a blog, or a forum to name a few. Channels can make connections with other channels to share information with highly detailed permissions."] = "Un canal es su identidad en esta red. Puede representar a una persona, un blog o un foro, por nombrar unos pocos ejemplos. Los canales se pueden conectar con otros canales para compartir información con una gama de permisos extremadamente detallada."; +App::$strings["or import an existing channel from another location."] = "O importar un canal existente desde otro lugar."; +App::$strings["Mark all system notifications seen"] = "Marcar todas las notificaciones de sistema como leídas"; +App::$strings["Poke"] = "Toques y otras cosas"; +App::$strings["Poke somebody"] = "Dar un toque a alguien"; +App::$strings["Poke/Prod"] = "Toque/Incitación"; +App::$strings["Poke, prod or do other things to somebody"] = "Dar un toque, incitar o hacer otras cosas a alguien"; +App::$strings["Recipient"] = "Destinatario"; +App::$strings["Choose what you wish to do to recipient"] = "Elegir qué desea enviar al destinatario"; +App::$strings["Make this post private"] = "Convertir en privado este envío"; App::$strings["Profile not found."] = "Perfil no encontrado."; App::$strings["Profile deleted."] = "Perfil eliminado."; App::$strings["Profile-"] = "Perfil-"; @@ -780,121 +1039,70 @@ App::$strings["Contact information and social networks"] = "Información de cont App::$strings["My other channels"] = "Mis otros canales"; App::$strings["Profile Image"] = "Imagen del perfil"; App::$strings["Edit Profiles"] = "Editar perfiles"; -App::$strings["Unable to create element."] = "No se puede crear el elemento."; -App::$strings["Unable to update menu element."] = "No es posible actualizar el elemento del menú."; -App::$strings["Unable to add menu element."] = "No es posible añadir el elemento al menú"; -App::$strings["Menu Item Permissions"] = "Permisos del elemento del menú"; -App::$strings["(click to open/close)"] = "(pulsar para abrir o cerrar)"; -App::$strings["Link Name"] = "Nombre del enlace"; -App::$strings["Link or Submenu Target"] = "Destino del enlace o submenú"; -App::$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ú"; -App::$strings["Use magic-auth if available"] = "Usar la autenticación mágica si está disponible"; -App::$strings["Open link in new window"] = "Abrir el enlace en una nueva ventana"; -App::$strings["Order in list"] = "Orden en la lista"; -App::$strings["Higher numbers will sink to bottom of listing"] = "Los números más altos irán al final de la lista"; -App::$strings["Submit and finish"] = "Enviar y terminar"; -App::$strings["Submit and continue"] = "Enviar y continuar"; -App::$strings["Menu:"] = "Menú:"; -App::$strings["Link Target"] = "Destino del enlace"; -App::$strings["Edit menu"] = "Editar menú"; -App::$strings["Edit element"] = "Editar el elemento"; -App::$strings["Drop element"] = "Eliminar el elemento"; -App::$strings["New element"] = "Nuevo elemento"; -App::$strings["Edit this menu container"] = "Modificar el contenedor del menú"; -App::$strings["Add menu element"] = "Añadir un elemento al menú"; -App::$strings["Delete this menu item"] = "Eliminar este elemento del menú"; -App::$strings["Edit this menu item"] = "Modificar este elemento del menú"; -App::$strings["Menu item not found."] = "Este elemento del menú no se ha encontrado"; -App::$strings["Menu item deleted."] = "Este elemento del menú ha sido borrado"; -App::$strings["Menu item could not be deleted."] = "Este elemento del menú no puede ser borrado."; -App::$strings["Edit Menu Element"] = "Editar elemento del menú"; -App::$strings["Link text"] = "Texto del enlace"; -App::$strings["\$Projectname Server - Setup"] = "Servidor \$Projectname - Instalación"; -App::$strings["Could not connect to database."] = "No se ha podido conectar a la base de datos."; -App::$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."; -App::$strings["Could not create table."] = "No se puede crear la tabla."; -App::$strings["Your site database has been installed."] = "La base de datos del sitio ha sido instalada."; -App::$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."; -App::$strings["Please see the file \"install/INSTALL.txt\"."] = "Por favor, lea el fichero \"install/INSTALL.txt\"."; -App::$strings["System check"] = "Verificación del sistema"; -App::$strings["Next"] = "Siguiente"; -App::$strings["Check again"] = "Verificar de nuevo"; -App::$strings["Database connection"] = "Conexión a la base de datos"; -App::$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."; -App::$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."; -App::$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."; -App::$strings["Database Server Name"] = "Nombre del servidor de base de datos"; -App::$strings["Default is 127.0.0.1"] = "De forma predeterminada es 127.0.0.1"; -App::$strings["Database Port"] = "Puerto de la base de datos"; -App::$strings["Communication port number - use 0 for default"] = "Número del puerto de comunicaciones - use 0 como valor por defecto"; -App::$strings["Database Login Name"] = "Usuario de la base de datos"; -App::$strings["Database Login Password"] = "Contraseña de acceso a la base de datos"; -App::$strings["Database Name"] = "Nombre de la base de datos"; -App::$strings["Database Type"] = "Tipo de base de datos"; -App::$strings["Site administrator email address"] = "Dirección de correo electrónico del administrador del sitio"; -App::$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."; -App::$strings["Website URL"] = "Dirección del sitio web"; -App::$strings["Please use SSL (https) URL if available."] = "Por favor, use SSL (https) si está disponible."; -App::$strings["Please select a default timezone for your website"] = "Por favor, selecciones el huso horario por defecto de su sitio web"; -App::$strings["Site settings"] = "Ajustes del sitio"; -App::$strings["PHP version 5.5 or greater is required."] = "Se requiere la versión 5.5, o superior, de PHP."; -App::$strings["PHP version"] = "Versión de PHP"; -App::$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."; -App::$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á realizar envíos en segundo plano mediante cron."; -App::$strings["PHP executable path"] = "Ruta del ejecutable PHP"; -App::$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."; -App::$strings["Command line PHP"] = "PHP en línea de comandos"; -App::$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\"."; -App::$strings["This is required for message delivery to work."] = "Esto es necesario para que funcione la transmisión de mensajes."; -App::$strings["PHP register_argc_argv"] = "PHP register_argc_argv"; -App::$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."; -App::$strings["You can adjust these settings in the servers php.ini."] = "Puede ajustar estos valores en el fichero php.ini de su servidor."; -App::$strings["PHP upload limits"] = "Límites PHP de subida"; -App::$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."; -App::$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\"."; -App::$strings["Generate encryption keys"] = "Generar claves de cifrado"; -App::$strings["libCurl PHP module"] = "módulo libCurl PHP"; -App::$strings["GD graphics PHP module"] = "módulo PHP GD graphics"; -App::$strings["OpenSSL PHP module"] = "módulo PHP OpenSSL"; -App::$strings["mysqli or postgres PHP module"] = "módulo PHP mysqli o postgres"; -App::$strings["mb_string PHP module"] = "módulo PHP mb_string"; -App::$strings["xml PHP module"] = "módulo PHP xml"; -App::$strings["Apache mod_rewrite module"] = "módulo Apache mod_rewrite "; -App::$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."; -App::$strings["proc_open"] = "proc_open"; -App::$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"; -App::$strings["Error: libCURL PHP module required but not installed."] = "Error: se necesita el módulo PHP libCURL pero no está instalado."; -App::$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."; -App::$strings["Error: openssl PHP module required but not installed."] = "Error: el módulo PHP openssl es necesario, pero no está instalado."; -App::$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."; -App::$strings["Error: mb_string PHP module required but not installed."] = "Error: el módulo PHP mb_string es necesario, pero no está instalado."; -App::$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."; -App::$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."; -App::$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."; -App::$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."; -App::$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."; -App::$strings[".htconfig.php is writable"] = ".htconfig.php tiene permisos de escritura"; -App::$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."; -App::$strings["In order to store these compiled templates, the web server needs to have write access to the directory %s under the top level web folder."] = "Para poder guardar las plantillas compiladas, el servidor web necesita permisos para acceder al directorio %s en la carpeta web principal."; -App::$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)."; -App::$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."; -App::$strings["%s is writable"] = "%s tiene permisos de escritura"; -App::$strings["This software 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"] = "Este software utiliza el directorio de almacenamiento para guardar los archivos subidos. El servidor web debe tener acceso de escritura al directorio de almacenamiento en la carpeta de nivel superior"; -App::$strings["store is writable"] = "\"store\" tiene permisos de escritura"; -App::$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."; -App::$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."; -App::$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."; -App::$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."; -App::$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."; -App::$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."; -App::$strings["If you are confident that the certificate is valid and signed by a trusted authority, check to see if you have failed to install an intermediate cert. These are not normally required by browsers, but are required for server-to-server communications."] = "Si se tiene la certeza de que el certificado es válido y está firmado por una autoridad de confianza, comprobar para ver si hubo un error al instalar un certificado intermedio. Estos no son normalmente requeridos por los navegadores, pero son necesarios para las comunicaciones de servidor a servidor."; -App::$strings["SSL certificate validation"] = "validación del certificado SSL"; -App::$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:"; -App::$strings["Url rewrite is working"] = "La reescritura de las direcciones funciona correctamente"; -App::$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."; -App::$strings["Errors encountered creating database tables."] = "Se han encontrado errores al crear las tablas de la base de datos."; -App::$strings["

        What next

        "] = "

        Siguiente paso

        "; -App::$strings["IMPORTANT: You will need to [manually] setup a scheduled task for the poller."] = "IMPORTANTE: Debe crear [manualmente] una tarea programada para el \"poller\"."; +App::$strings["Unable to find your hub."] = "No se puede encontrar su servidor."; +App::$strings["Post successful."] = "Enviado con éxito."; +App::$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."; +App::$strings["Configuration Editor"] = "Editor de configuración"; +App::$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."; +App::$strings["Blocks"] = "Bloques"; +App::$strings["Block Title"] = "Título del bloque"; +App::$strings["Layouts"] = "Plantillas"; +App::$strings["Help"] = "Ayuda"; +App::$strings["Comanche page description language help"] = "Página de ayuda del lenguaje de descripción de páginas (PDL) Comanche"; +App::$strings["Layout Description"] = "Descripción de la plantilla"; +App::$strings["Download PDL file"] = "Descargar el fichero PDL"; +App::$strings["Website:"] = "Sitio web:"; +App::$strings["Remote Channel [%s] (not yet known on this site)"] = "Canal remoto [%s] (aún no es conocido en este sitio)"; +App::$strings["Rating (this information is public)"] = "Valoración (esta información es pública)"; +App::$strings["Optionally explain your rating (this information is public)"] = "Opcionalmente puede explicar su valoración (esta información es pública)"; +App::$strings["Like/Dislike"] = "Me gusta/No me gusta"; +App::$strings["This action is restricted to members."] = "Esta acción está restringida solo para miembros."; +App::$strings["Please login with your \$Projectname ID or register as a new \$Projectname member to continue."] = "Por favor, identifíquese con su \$Projectname ID o rregístrese como un nuevo \$Projectname member para continuar."; +App::$strings["Invalid request."] = "Solicitud incorrecta."; +App::$strings["channel"] = "el canal"; +App::$strings["thing"] = "elemento"; +App::$strings["Channel unavailable."] = "Canal no disponible."; +App::$strings["Previous action reversed."] = "Acción anterior revocada."; +App::$strings["photo"] = "foto"; +App::$strings["status"] = "el mensaje de estado"; +App::$strings["event"] = "evento"; +App::$strings["%1\$s likes %2\$s's %3\$s"] = "A %1\$s le gusta %3\$s de %2\$s"; +App::$strings["%1\$s doesn't like %2\$s's %3\$s"] = "A %1\$s no le gusta %3\$s de %2\$s"; +App::$strings["%1\$s agrees with %2\$s's %3\$s"] = "%3\$s de %2\$s: %1\$s está de acuerdo"; +App::$strings["%1\$s doesn't agree with %2\$s's %3\$s"] = "%3\$s de %2\$s: %1\$s no está de acuerdo"; +App::$strings["%1\$s abstains from a decision on %2\$s's %3\$s"] = "%3\$s de %2\$s: %1\$s se abstiene"; +App::$strings["%1\$s is attending %2\$s's %3\$s"] = "%3\$s de %2\$s: %1\$s participa"; +App::$strings["%1\$s is not attending %2\$s's %3\$s"] = "%3\$s de %2\$s: %1\$s no participa"; +App::$strings["%1\$s may attend %2\$s's %3\$s"] = "%3\$s de %2\$s: %1\$s quizá participe"; +App::$strings["Action completed."] = "Acción completada."; +App::$strings["Thank you."] = "Gracias."; +App::$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."; +App::$strings["Use Photo for Profile"] = "Usar la fotografía para el perfil"; +App::$strings["Upload Profile Photo"] = "Subir foto de perfil"; +App::$strings["Use"] = "Usar"; +App::$strings["Items tagged with: %s"] = "elementos etiquetados con: %s"; +App::$strings["Search results for: %s"] = "Resultados de la búsqueda para: %s"; +App::$strings["No channel."] = "Ningún canal."; +App::$strings["Common connections"] = "Conexiones comunes"; +App::$strings["No connections in common."] = "Ninguna conexión en común."; +App::$strings["Authorize application connection"] = "Autorizar una conexión de aplicación"; +App::$strings["Return to your app and insert this Security Code:"] = "Vuelva a su aplicación e introduzca este código de seguridad: "; +App::$strings["Please login to continue."] = "Por favor inicie sesión para continuar."; +App::$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?"; +App::$strings["sent you a private message"] = "le ha enviado un mensaje privado"; +App::$strings["added your channel"] = "añadió este canal a sus conexiones"; +App::$strings["g A l F d"] = "g A l d F"; +App::$strings["[today]"] = "[hoy]"; +App::$strings["posted an event"] = "publicó un evento"; +App::$strings["About this site"] = "Acerca de este sitio"; +App::$strings["Site Name"] = "Nombre del sitio"; +App::$strings["Administrator"] = "Administrador"; +App::$strings["Software and Project information"] = "Información sobre el software y el proyecto"; +App::$strings["This site is powered by \$Projectname"] = "Este sitio funciona con \$Projectname"; +App::$strings["Federated and decentralised networking and identity services provided by Zot"] = "Servicios federados y descentralizados de identidad y redes proporcionados por Zot"; +App::$strings["Version %s"] = "Versión %s"; +App::$strings["Project homepage"] = "Página principal del proyecto"; +App::$strings["Developer homepage"] = "Página principal del desarrollador"; App::$strings["No valid account found."] = "No se ha encontrado una cuenta válida."; App::$strings["Password reset request issued. Check your email."] = "Se ha recibido una solicitud de restablecimiento de contraseña. Consulte su correo electrónico."; App::$strings["Site Member (%s)"] = "Usuario del sitio (%s)"; @@ -911,156 +1119,45 @@ App::$strings["Forgot your Password?"] = "¿Ha olvidado su contraseña?"; App::$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."; App::$strings["Email Address"] = "Dirección de correo electrónico"; App::$strings["Reset"] = "Reiniciar"; -App::$strings["__ctx:mood__ %1\$s is %2\$s"] = "%1\$s está %2\$s"; -App::$strings["Mood"] = "Estado de ánimo"; -App::$strings["Set your current mood and tell your friends"] = "Describir su estado de ánimo para comunicárselo a sus amigos"; -App::$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."; -App::$strings["Remove This Channel"] = "Eliminar este canal"; -App::$strings["WARNING: "] = "ATENCIÓN:"; -App::$strings["This channel will be completely removed from the network. "] = "Este canal va a ser completamente eliminado de la red. "; -App::$strings["This action is permanent and can not be undone!"] = "¡Esta acción tiene carácter definitivo y no se puede deshacer!"; -App::$strings["Please enter your password for verification:"] = "Por favor, introduzca su contraseña para su verificación:"; -App::$strings["Remove this channel and all its clones from the network"] = "Eliminar este canal y todos sus clones de la red"; -App::$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"; -App::$strings["Remove Channel"] = "Eliminar el canal"; -App::$strings["No more system notifications."] = "No hay más notificaciones del sistema"; -App::$strings["System Notifications"] = "Notificaciones del sistema"; -App::$strings["Profile Match"] = "Perfil compatible"; -App::$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."; -App::$strings["is interested in:"] = "está interesado en:"; -App::$strings["Connect"] = "Conectar"; -App::$strings["No matches"] = "No se han encontrado perfiles compatibles"; -App::$strings["This site is not a directory server"] = "Este sitio no es un servidor de directorio"; +App::$strings["Select a bookmark folder"] = "Seleccionar una carpeta de marcadores"; +App::$strings["Save Bookmark"] = "Guardar marcador"; +App::$strings["URL of bookmark"] = "Dirección del marcador"; +App::$strings["Or enter new bookmark folder name"] = "O introduzca un nuevo nombre para la carpeta de marcadores"; App::$strings["This directory server requires an access token"] = "El servidor de este directorio necesita un \"token\" de acceso"; -App::$strings["Hub not found."] = "Servidor no encontrado"; -App::$strings["Page owner information could not be retrieved."] = "La información del propietario de la página no pudo ser recuperada."; -App::$strings["Profile Photos"] = "Fotos del perfil"; -App::$strings["Album not found."] = "Álbum no encontrado."; -App::$strings["Delete Album"] = "Borrar álbum"; -App::$strings["Multiple storage folders exist with this album name, but within different directories. Please remove the desired folder or folders using the Files manager"] = "Hay varias carpetas con este nombre de álbum, pero dentro de diferentes directorios. Por favor, elimine la carpeta o carpetas que desee utilizando el administrador de ficheros"; -App::$strings["Delete Photo"] = "Borrar foto"; -App::$strings["Public access denied."] = "Acceso público denegado."; -App::$strings["No photos selected"] = "No hay fotos seleccionadas"; -App::$strings["Access to this item is restricted."] = "El acceso a este elemento está restringido."; -App::$strings["%1$.2f MB of %2$.2f MB photo storage used."] = "%1$.2f MB de %2$.2f MB de almacenamiento de fotos utilizado."; -App::$strings["%1$.2f MB photo storage used."] = "%1$.2f MB de almacenamiento de fotos utilizado."; -App::$strings["Upload Photos"] = "Subir fotos"; -App::$strings["Enter an album name"] = "Introducir un nombre de álbum"; -App::$strings["or select an existing album (doubleclick)"] = "o seleccionar uno existente (doble click)"; -App::$strings["Create a status post for this upload"] = "Crear un mensaje de estado para esta subida"; -App::$strings["Caption (optional):"] = "Título (opcional):"; -App::$strings["Description (optional):"] = "Descripción (opcional):"; -App::$strings["Album name could not be decoded"] = "El nombre del álbum no ha podido ser descifrado"; -App::$strings["Contact Photos"] = "Fotos de contacto"; -App::$strings["Show Newest First"] = "Mostrar lo más reciente primero"; -App::$strings["Show Oldest First"] = "Mostrar lo más antiguo primero"; -App::$strings["View Photo"] = "Ver foto"; -App::$strings["Edit Album"] = "Editar álbum"; -App::$strings["Permission denied. Access to this item may be restricted."] = "Permiso denegado. El acceso a este elemento puede estar restringido."; -App::$strings["Photo not available"] = "Foto no disponible"; -App::$strings["Use as profile photo"] = "Usar como foto del perfil"; -App::$strings["Use as cover photo"] = "Usar como imagen de portada del perfil"; -App::$strings["Private Photo"] = "Foto privada"; -App::$strings["Previous"] = "Anterior"; -App::$strings["View Full Size"] = "Ver tamaño completo"; -App::$strings["Edit photo"] = "Editar foto"; -App::$strings["Rotate CW (right)"] = "Girar CW (a la derecha)"; -App::$strings["Rotate CCW (left)"] = "Girar CCW (a la izquierda)"; -App::$strings["Move photo to album"] = "Mover la foto a un álbum"; -App::$strings["Enter a new album name"] = "Introducir un nuevo nombre de álbum"; -App::$strings["or select an existing one (doubleclick)"] = "o seleccionar uno (doble click) existente"; -App::$strings["Caption"] = "Título"; -App::$strings["Add a Tag"] = "Añadir una etiqueta"; -App::$strings["Example: @bob, @Barbara_Jensen, @jim@example.com"] = "Ejemplos: @eva, @Carmen_Osuna, @jaime@ejemplo.com"; -App::$strings["Flag as adult in album view"] = "Marcar como \"solo para adultos\" en el álbum"; -App::$strings["I like this (toggle)"] = "Me gusta (cambiar)"; -App::$strings["I don't like this (toggle)"] = "No me gusta esto (cambiar)"; -App::$strings["Share"] = "Compartir"; -App::$strings["Please wait"] = "Espere por favor"; -App::$strings["This is you"] = "Este es usted"; -App::$strings["Comment"] = "Comentar"; -App::$strings["Preview"] = "Previsualizar"; -App::$strings["__ctx:title__ Likes"] = "Me gusta"; -App::$strings["__ctx:title__ Dislikes"] = "No me gusta"; -App::$strings["__ctx:title__ Agree"] = "De acuerdo"; -App::$strings["__ctx:title__ Disagree"] = "En desacuerdo"; -App::$strings["__ctx:title__ Abstain"] = "Abstención"; -App::$strings["__ctx:title__ Attending"] = "Participaré"; -App::$strings["__ctx:title__ Not attending"] = "No participaré"; -App::$strings["__ctx:title__ Might attend"] = "Quizá participe"; -App::$strings["View all"] = "Ver todo"; -App::$strings["__ctx:noun__ Like"] = array( - 0 => "Me gusta", - 1 => "Me gusta", -); -App::$strings["__ctx:noun__ Dislike"] = array( - 0 => "No me gusta", - 1 => "No me gusta", -); -App::$strings["Photo Tools"] = "Gestión de las fotos"; -App::$strings["In This Photo:"] = "En esta foto:"; -App::$strings["Map"] = "Mapa"; -App::$strings["__ctx:noun__ Likes"] = "Me gusta"; -App::$strings["__ctx:noun__ Dislikes"] = "No me gusta"; -App::$strings["Close"] = "Cerrar"; -App::$strings["View Album"] = "Ver álbum"; -App::$strings["Recent Photos"] = "Fotos recientes"; -App::$strings["Name or caption"] = "Nombre o descripción"; -App::$strings["Examples: \"Bob Jameson\", \"Lisa and her Horses\", \"Soccer\", \"Aviation Group\""] = "Ejemplos: \"Juan García\", \"Luisa y sus caballos\", \"Fútbol\", \"Grupo de aviación\""; -App::$strings["Choose a short nickname"] = "Elija un alias corto"; -App::$strings["Your nickname will be used to create an easy to remember channel address e.g. nickname%s"] = "Su alias se usará para crear una dirección de canal fácil de recordar, p. ej.: alias%s"; -App::$strings["Channel role and privacy"] = "Clase de canal y privacidad"; -App::$strings["Select a channel role with your privacy requirements."] = "Seleccione un tipo de canal con sus requisitos de privacidad"; -App::$strings["Read more about roles"] = "Leer más sobre los roles"; -App::$strings["Create Channel"] = "Crear un canal"; -App::$strings["A channel is your identity on this network. It can represent a person, a blog, or a forum to name a few. Channels can make connections with other channels to share information with highly detailed permissions."] = "Un canal es su identidad en esta red. Puede representar a una persona, un blog o un foro, por nombrar unos pocos ejemplos. Los canales se pueden conectar con otros canales para compartir información con una gama de permisos extremadamente detallada."; -App::$strings["or import an existing channel from another location."] = "O importar un canal existente desde otro lugar."; -App::$strings["sent you a private message"] = "le ha enviado un mensaje privado"; -App::$strings["added your channel"] = "añadió este canal a sus conexiones"; -App::$strings["g A l F d"] = "g A l d F"; -App::$strings["[today]"] = "[hoy]"; -App::$strings["posted an event"] = "publicó un evento"; -App::$strings["Invalid request identifier."] = "Petición inválida del identificador."; -App::$strings["Discard"] = "Descartar"; -App::$strings["Mark all system notifications seen"] = "Marcar todas las notificaciones de sistema como leídas"; -App::$strings["Poke"] = "Toques y otras cosas"; -App::$strings["Poke somebody"] = "Dar un toque a alguien"; -App::$strings["Poke/Prod"] = "Toque/Incitación"; -App::$strings["Poke, prod or do other things to somebody"] = "Dar un toque, incitar o hacer otras cosas a alguien"; -App::$strings["Recipient"] = "Destinatario"; -App::$strings["Choose what you wish to do to recipient"] = "Elegir qué desea enviar al destinatario"; -App::$strings["Make this post private"] = "Convertir en privado este envío"; -App::$strings["Apps"] = "Aplicaciones (apps)"; -App::$strings["Unable to find your hub."] = "No se puede encontrar su servidor."; -App::$strings["Post successful."] = "Enviado con éxito."; -App::$strings["Invalid profile identifier."] = "Identificador del perfil no válido"; -App::$strings["Profile Visibility Editor"] = "Editor de visibilidad del perfil"; -App::$strings["Profile"] = "Perfil"; -App::$strings["Click on a contact to add or remove."] = "Pulsar en un contacto para añadirlo o eliminarlo."; -App::$strings["Visible To"] = "Visible para"; -App::$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."; -App::$strings["Configuration Editor"] = "Editor de configuración"; -App::$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."; -App::$strings["Version %s"] = "Versión %s"; -App::$strings["Installed plugins/addons/apps:"] = "Extensiones (plugins), complementos o aplicaciones (apps) instaladas:"; -App::$strings["No installed plugins/addons/apps"] = "No hay instalada ninguna extensión (plugin), complemento o aplicación (app)"; -App::$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."; -App::$strings["Tag: "] = "Etiqueta:"; -App::$strings["Last background fetch: "] = "Última actualización en segundo plano:"; -App::$strings["Current load average: "] = "Carga media actual:"; -App::$strings["Running at web location"] = "Corriendo en el sitio web"; -App::$strings["Please visit hubzilla.org to learn more about \$Projectname."] = "Por favor, visite hubzilla.org para más información sobre \$Projectname."; -App::$strings["Bug reports and issues: please visit"] = "Informes de errores e incidencias: por favor visite"; -App::$strings["\$projectname issues"] = "Problemas en \$projectname"; -App::$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"; -App::$strings["Site Administrators"] = "Administradores del sitio"; -App::$strings["Blocks"] = "Bloques"; -App::$strings["Block Title"] = "Título del bloque"; -App::$strings["Layouts"] = "Plantillas"; -App::$strings["Help"] = "Ayuda"; -App::$strings["Comanche page description language help"] = "Página de ayuda del lenguaje de descripción de páginas (PDL) Comanche"; -App::$strings["Layout Description"] = "Descripción de la plantilla"; -App::$strings["Download PDL file"] = "Descargar el fichero PDL"; +App::$strings["Authentication failed."] = "Falló la autenticación."; +App::$strings["Remote Authentication"] = "Acceso desde su servidor"; +App::$strings["Enter your channel address (e.g. channel@example.com)"] = "Introduzca la dirección del canal (p.ej. canal@ejemplo.com)"; +App::$strings["Authenticate"] = "Acceder"; +App::$strings["Please login."] = "Por favor, inicie sesión."; +App::$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."; +App::$strings["Remove This Account"] = "Eliminar esta cuenta"; +App::$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."; +App::$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"; +App::$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"; +App::$strings["Remove Account"] = "Eliminar cuenta"; +App::$strings["Layout updated."] = "Plantilla actualizada."; +App::$strings["Feature disabled."] = "Funcionalidad deshabilitada."; +App::$strings["Edit System Page Description"] = "Editor del Sistema de Descripción de Páginas"; +App::$strings["Layout not found."] = "Plantilla no encontrada"; +App::$strings["Module Name:"] = "Nombre del módulo:"; +App::$strings["Layout Help"] = "Ayuda para el diseño de plantillas de página"; +App::$strings["Export Channel"] = "Exportar el canal"; +App::$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."; +App::$strings["Export Content"] = "Exportar contenidos"; +App::$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."; +App::$strings["Export your posts from a given year."] = "Exporta sus publicaciones de un año dado."; +App::$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."; +App::$strings["To select all posts for a given year, such as this year, visit %2\$s"] = "Para seleccionar todos los mensajes de un año determinado, como este año, visite %2\$s"; +App::$strings["To select all posts for a given month, such as January of this year, visit %2\$s"] = "Para seleccionar todos los mensajes de un mes determinado, como el de enero de este año, visite %2\$s"; +App::$strings["These content files may be imported or restored by visiting %2\$s 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 %2\$s 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)."; +App::$strings["Permissions denied."] = "Permisos denegados."; +App::$strings["l, F j"] = "l j F"; +App::$strings["Link to Source"] = "Enlazar con la entrada en su ubicación original"; +App::$strings["Edit Event"] = "Editar el evento"; +App::$strings["Create Event"] = "Crear un evento"; +App::$strings["Export"] = "Exportar"; +App::$strings["Import"] = "Importar"; +App::$strings["Today"] = "Hoy"; App::$strings["# Accounts"] = "# Cuentas"; App::$strings["# blocked accounts"] = "# cuentas bloqueadas"; App::$strings["# expired accounts"] = "# cuentas caducadas"; @@ -1078,66 +1175,13 @@ App::$strings["Active plugins"] = "Extensiones (plugins) activas"; App::$strings["Version"] = "Versión"; App::$strings["Repository version (master)"] = "Versión del repositorio (master)"; App::$strings["Repository version (dev)"] = "Versión del repositorio (dev)"; -App::$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."; -App::$strings["Upload Profile Photo"] = "Subir foto de perfil"; -App::$strings["Permissions denied."] = "Permisos denegados."; -App::$strings["l, F j"] = "l j F"; -App::$strings["Link to Source"] = "Enlazar con la entrada en su ubicación original"; -App::$strings["Edit Event"] = "Editar el evento"; -App::$strings["Create Event"] = "Crear un evento"; -App::$strings["Export"] = "Exportar"; -App::$strings["Import"] = "Importar"; -App::$strings["Today"] = "Hoy"; -App::$strings["No channel."] = "Ningún canal."; -App::$strings["Common connections"] = "Conexiones comunes"; -App::$strings["No connections in common."] = "Ninguna conexión en común."; -App::$strings["No ratings"] = "Ninguna valoración"; -App::$strings["Rating: "] = "Valoración:"; -App::$strings["Website: "] = "Sitio web:"; -App::$strings["Description: "] = "Descripción:"; -App::$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."; -App::$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."; -App::$strings["Passwords do not match."] = "Las contraseñas no coinciden."; -App::$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."; -App::$strings["Your registration is pending approval by the site owner."] = "Su registro está pendiente de aprobación por el propietario del sitio."; -App::$strings["Your registration can not be processed."] = "Su registro no puede ser procesado."; -App::$strings["Registration on this hub is disabled."] = "El registro está deshabilitado en este sitio."; -App::$strings["Registration on this hub is by approval only."] = "El registro en este hub está sometido a aprobación previa."; -App::$strings["Register at another affiliated hub."] = "Registrarse en otro hub afiliado."; -App::$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."; -App::$strings["Terms of Service"] = "Términos del servicio"; -App::$strings["I accept the %s for this website"] = "Acepto los %s de este sitio"; -App::$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"; -App::$strings["Your email address"] = "Su dirección de correo electrónico"; -App::$strings["Choose a password"] = "Elija una contraseña"; -App::$strings["Please re-enter your password"] = "Por favor, vuelva a escribir su contraseña"; -App::$strings["Please enter your invitation code"] = "Por favor, introduzca el código de su invitación"; -App::$strings["no"] = "no"; -App::$strings["yes"] = "sí"; -App::$strings["Membership on this site is by invitation only."] = "Para registrarse en este sitio es necesaria una invitación."; -App::$strings["Register"] = "Registrarse"; -App::$strings["This site may require email verification after submitting this form. If you are returned to a login page, please check your email for instructions."] = "Este sitio puede requerir una verificación de correo electrónico después de enviar este formulario. Si es devuelto a una página de inicio de sesión, compruebe su email para recibir y leer las instrucciones."; -App::$strings["Documentation Search"] = "Búsqueda de Documentación"; -App::$strings["\$Projectname Documentation"] = "Documentación de \$Projectname"; -App::$strings["Select a bookmark folder"] = "Seleccionar una carpeta de marcadores"; -App::$strings["Save Bookmark"] = "Guardar marcador"; -App::$strings["URL of bookmark"] = "Dirección del marcador"; -App::$strings["Or enter new bookmark folder name"] = "O introduzca un nuevo nombre para la carpeta de marcadores"; -App::$strings["Authentication failed."] = "Falló la autenticación."; -App::$strings["Remote Authentication"] = "Acceso desde su servidor"; -App::$strings["Enter your channel address (e.g. channel@example.com)"] = "Introduzca la dirección del canal (p.ej. canal@ejemplo.com)"; -App::$strings["Authenticate"] = "Acceder"; -App::$strings["Please login."] = "Por favor, inicie sesión."; -App::$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."; -App::$strings["Remove This Account"] = "Eliminar esta cuenta"; -App::$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."; -App::$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"; -App::$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"; -App::$strings["Remove Account"] = "Eliminar cuenta"; +App::$strings["Remote privacy information not available."] = "La información privada remota no está disponible."; +App::$strings["Visible to:"] = "Visible para:"; +App::$strings["No service class restrictions found."] = "No se han encontrado restricciones sobre esta clase de servicio."; App::$strings["Import Webpage Elements"] = "Importar elementos de una página web"; App::$strings["Import selected"] = "Importar elementos seleccionados"; App::$strings["Export Webpage Elements"] = "Exportar elementos de una página web"; -App::$strings["Export selected"] = "Exportar elementos seleccionados"; +App::$strings["Export selected"] = "Exportar los elementos seleccionados"; App::$strings["Webpages"] = "Páginas web"; App::$strings["Actions"] = "Acciones"; App::$strings["Page Link"] = "Vínculo de la página"; @@ -1147,94 +1191,46 @@ App::$strings["Error opening zip file"] = "Error al abrir el fichero comprimido App::$strings["Invalid folder path."] = "La ruta de la carpeta no es válida."; App::$strings["No webpage elements detected."] = "No se han detectado elementos de ninguna página web."; App::$strings["Import complete."] = "Importación completada."; -App::$strings["Export Channel"] = "Exportar el canal"; -App::$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."; -App::$strings["Export Content"] = "Exportar contenidos"; -App::$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."; -App::$strings["Export your posts from a given year."] = "Exporta sus publicaciones de un año dado."; -App::$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."; -App::$strings["To select all posts for a given year, such as this year, visit %2\$s"] = "Para seleccionar todos los mensajes de un año determinado, como este año, visite %2\$s"; -App::$strings["To select all posts for a given month, such as January of this year, visit %2\$s"] = "Para seleccionar todos los mensajes de un mes determinado, como el de enero de este año, visite %2\$s"; -App::$strings["These content files may be imported or restored by visiting %2\$s 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 %2\$s 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)."; -App::$strings["Item is not editable"] = "El elemento no es editable"; -App::$strings["Items tagged with: %s"] = "elementos etiquetados con: %s"; -App::$strings["Search results for: %s"] = "Resultados de la búsqueda para: %s"; -App::$strings["Calendar entries imported."] = "Entradas de calendario importadas."; -App::$strings["No calendar entries found."] = "No se han encontrado entradas de calendario."; -App::$strings["Event can not end before it has started."] = "Un evento no puede terminar antes de que haya comenzado."; -App::$strings["Unable to generate preview."] = "No se puede crear la vista previa."; -App::$strings["Event title and start time are required."] = "Se requieren el título del evento y su hora de inicio."; -App::$strings["Event not found."] = "Evento no encontrado."; -App::$strings["Edit event title"] = "Editar el título del evento"; -App::$strings["Event title"] = "Título del evento"; -App::$strings["Categories (comma-separated list)"] = "Temas (lista separada por comas)"; -App::$strings["Edit Category"] = "Modificar el tema"; -App::$strings["Category"] = "Tema"; -App::$strings["Edit start date and time"] = "Modificar la fecha y hora de comienzo"; -App::$strings["Start date and time"] = "Fecha y hora de comienzo"; -App::$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"; -App::$strings["Edit finish date and time"] = "Modificar la fecha y hora de terminación"; -App::$strings["Finish date and time"] = "Fecha y hora de terminación"; -App::$strings["Adjust for viewer timezone"] = "Ajustar para obtener el visor de los husos horarios"; -App::$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."; -App::$strings["Edit Description"] = "Editar la descripción"; -App::$strings["Edit Location"] = "Modificar la dirección"; -App::$strings["Share this event"] = "Compartir este evento"; -App::$strings["Permission settings"] = "Configuración de permisos"; -App::$strings["Advanced Options"] = "Opciones avanzadas"; -App::$strings["Edit event"] = "Editar evento"; -App::$strings["Delete event"] = "Borrar evento"; -App::$strings["calendar"] = "calendario"; -App::$strings["Month"] = "Mes"; -App::$strings["Week"] = "Semana"; -App::$strings["Day"] = "Día"; -App::$strings["Event removed"] = "Evento borrado"; -App::$strings["Failed to remove event"] = "Error al eliminar el evento"; -App::$strings["No service class restrictions found."] = "No se han encontrado restricciones sobre esta clase de servicio."; -App::$strings["Thing updated"] = "Elemento actualizado."; -App::$strings["Object store: failed"] = "Guardar objeto: ha fallado"; -App::$strings["Thing added"] = "Elemento añadido"; -App::$strings["OBJ: %1\$s %2\$s %3\$s"] = "OBJ: %1\$s %2\$s %3\$s"; -App::$strings["Show Thing"] = "Mostrar elemento"; -App::$strings["item not found."] = "elemento no encontrado."; -App::$strings["Edit Thing"] = "Editar elemento"; -App::$strings["Select a profile"] = "Seleccionar un perfil"; -App::$strings["Post an activity"] = "Publicar una actividad"; -App::$strings["Only sends to viewers of the applicable profile"] = "Sólo enviar a espectadores del perfil pertinente."; -App::$strings["Name of thing e.g. something"] = "Nombre del elemento, p. ej.:. \"algo\""; -App::$strings["URL of thing (optional)"] = "Dirección del elemento (opcional)"; -App::$strings["URL for photo of thing (optional)"] = "Dirección para la foto o elemento (opcional)"; -App::$strings["Add Thing to your Profile"] = "Añadir alguna cosa a su perfil"; -App::$strings["Unable to locate original post."] = "No ha sido posible encontrar la entrada original."; -App::$strings["Empty post discarded."] = "La entrada vacía ha sido desechada."; -App::$strings["Executable content type not permitted to this channel."] = "Contenido de tipo ejecutable no permitido en este canal."; -App::$strings["Duplicate post suppressed."] = "Se ha suprimido la entrada duplicada."; -App::$strings["System error. Post not saved."] = "Error del sistema. La entrada no se ha podido salvar."; -App::$strings["Unable to obtain post information from database."] = "No ha sido posible obtener información de la entrada en la base de datos."; -App::$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."; -App::$strings["You have reached your limit of %1$.0f webpages."] = "Ha alcanzado su límite de %1$.0f páginas web."; +App::$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."; +App::$strings["Remove This Channel"] = "Eliminar este canal"; +App::$strings["This channel will be completely removed from the network. "] = "Este canal va a ser completamente eliminado de la red. "; +App::$strings["Remove this channel and all its clones from the network"] = "Eliminar este canal y todos sus clones de la red"; +App::$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"; +App::$strings["Remove Channel"] = "Eliminar el canal"; App::$strings["Files: shared with me"] = "Ficheros: compartidos conmigo"; App::$strings["NEW"] = "NUEVO"; App::$strings["Remove all files"] = "Eliminar todos los ficheros"; App::$strings["Remove this file"] = "Eliminar este fichero"; App::$strings["Not found"] = "No encontrado"; -App::$strings["Wiki"] = "Wiki"; -App::$strings["Sandbox"] = "Entorno de edición"; -App::$strings["\"# Wiki Sandbox\\n\\nContent you **edit** and **preview** here *will not be saved*.\""] = "\"# Entorno de edición del Wiki\\n\\nEl contenido que se **edite** y **previsualizce** aquí *no se guardará*.\""; +App::$strings["Invalid channel"] = "Canal no válido"; +App::$strings["Error retrieving wiki"] = "Error al recuperar el wiki"; +App::$strings["Error creating zip file export folder"] = "Error al crear el fichero comprimido zip de la carpeta a exportar"; +App::$strings["Error downloading wiki: "] = "Error al descargar el wiki: "; +App::$strings["Wikis"] = "Wikis"; +App::$strings["Download"] = "Descargar"; +App::$strings["Wiki name"] = "Nombre del wiki"; +App::$strings["Content type"] = "Tipo de contenido"; +App::$strings["Create a status post for this wiki"] = "Crear un mensaje de estado para este wiki"; +App::$strings["Wiki not found"] = "Wiki no encontrado"; +App::$strings["Rename page"] = "Renombrar la página"; +App::$strings["Error retrieving page content"] = "Error al recuperar el contenido de la página"; App::$strings["Revision Comparison"] = "Comparación de revisiones"; App::$strings["Revert"] = "Revertir"; -App::$strings["Enter the name of your new wiki:"] = "Nombre de su nuevo wiki:"; -App::$strings["Enter the name of the new page:"] = "Nombre de la nueva página:"; -App::$strings["Enter the new name:"] = "Nuevo nombre:"; +App::$strings["Source"] = "Fuente"; +App::$strings["New page name"] = "Nombre de la nueva página"; App::$strings["Embed image from photo albums"] = "Incluir una imagen de los álbumes de fotos"; App::$strings["Embed an image from your albums"] = "Incluir una imagen de sus álbumes"; App::$strings["OK"] = "OK"; App::$strings["Choose images to embed"] = "Elegir imágenes para incluir"; App::$strings["Choose an album"] = "Elegir un álbum"; -App::$strings["Choose a different album..."] = "Elegir un álbum diferente..."; +App::$strings["Choose a different album"] = "Elegir un álbum diferente..."; App::$strings["Error getting album list"] = "Error al obtener la lista de álbumes"; App::$strings["Error getting photo link"] = "Error al obtener el enlace de la foto"; App::$strings["Error getting album"] = "Error al obtener el álbum"; +App::$strings["Error creating wiki. Invalid name."] = "Error al crear el wiki: el nombre no es válido."; +App::$strings["Wiki created, but error creating Home page."] = "Se ha creado el wiki, pero se ha producido un error al crear la página de inicio."; +App::$strings["Error creating wiki"] = "Error al crear el wiki"; +App::$strings["New page created"] = "Se ha creado la nueva página"; App::$strings["Failed to create source. No channel selected."] = "No se ha podido crear el origen de los contenidos. No ha sido seleccionado ningún canal."; App::$strings["Source created."] = "Fuente creada."; App::$strings["Source updated."] = "Fuente actualizada."; @@ -1261,60 +1257,35 @@ App::$strings["Channel Suggestions"] = "Sugerencias de canales"; App::$strings["post"] = "la entrada"; App::$strings["comment"] = "el comentario"; App::$strings["%1\$s tagged %2\$s's %3\$s with %4\$s"] = "%1\$s ha etiquetado %3\$s de %2\$s con %4\$s"; -App::$strings["Tag removed"] = "Etiqueta eliminada."; -App::$strings["Remove Item Tag"] = "Eliminar etiqueta del elemento."; -App::$strings["Select a tag to remove: "] = "Seleccionar una etiqueta para eliminar:"; -App::$strings["Channel added."] = "Canal añadido."; -App::$strings["No connections."] = "Sin conexiones."; -App::$strings["Visit %s's profile [%s]"] = "Visitar el perfil de %s [%s]"; -App::$strings["View Connections"] = "Ver conexiones"; -App::$strings["Source of Item"] = "Origen del elemento"; -App::$strings["Room not found"] = "Sala no encontrada"; -App::$strings["Leave Room"] = "Abandonar la sala"; -App::$strings["Delete Room"] = "Eliminar esta sala"; -App::$strings["I am away right now"] = "Estoy ausente momentáneamente"; -App::$strings["I am online"] = "Estoy conectado/a"; -App::$strings["Bookmark this room"] = "Añadir esta sala a Marcadores"; -App::$strings["New Chatroom"] = "Nueva sala de chat"; -App::$strings["Chatroom name"] = "Nombre de la sala de chat"; -App::$strings["Expiration of chats (minutes)"] = "Caducidad de los mensajes en los chats (en minutos)"; -App::$strings["%1\$s's Chatrooms"] = "Salas de chat de %1\$s"; -App::$strings["No chatrooms available"] = "No hay salas de chat disponibles"; -App::$strings["Expiration"] = "Caducidad"; -App::$strings["min"] = "min"; -App::$strings["Xchan Lookup"] = "Búsqueda de canales"; -App::$strings["Lookup xchan beginning with (or webbie): "] = "Buscar un canal (o un \"webbie\") que comience por:"; -App::$strings["%d rating"] = array( - 0 => "%d valoración", - 1 => "%d valoraciones", -); -App::$strings["Gender: "] = "Género:"; -App::$strings["Status: "] = "Estado:"; -App::$strings["Homepage: "] = "Página personal:"; -App::$strings["Age:"] = "Edad:"; -App::$strings["Location:"] = "Ubicación:"; -App::$strings["Description:"] = "Descripción:"; -App::$strings["Hometown:"] = "Lugar de nacimiento:"; -App::$strings["About:"] = "Sobre mí:"; -App::$strings["Public Forum:"] = "Foro público:"; -App::$strings["Keywords: "] = "Palabras clave:"; -App::$strings["Don't suggest"] = "No sugerir:"; -App::$strings["Common connections:"] = "Conexiones comunes:"; -App::$strings["Global Directory"] = "Directorio global:"; -App::$strings["Local Directory"] = "Directorio local:"; -App::$strings["Finding:"] = "Encontrar:"; -App::$strings["next page"] = "siguiente página"; -App::$strings["previous page"] = "página anterior"; -App::$strings["Sort options"] = "Ordenar opciones"; -App::$strings["Alphabetic"] = "Alfabético"; -App::$strings["Reverse Alphabetic"] = "Alfabético inverso"; -App::$strings["Newest to Oldest"] = "De más nuevo a más antiguo"; -App::$strings["Oldest to Newest"] = "De más antiguo a más nuevo"; -App::$strings["No entries (some entries may be hidden)."] = "Sin entradas (algunas entradas pueden estar ocultas)."; +App::$strings["Additional Features"] = "Funcionalidades"; +App::$strings["Name is required"] = "El nombre es obligatorio"; +App::$strings["Key and Secret are required"] = "\"Key\" y \"Secret\" son obligatorios"; +App::$strings["Add application"] = "Añadir aplicación"; +App::$strings["Name of application"] = "Nombre de la aplicación"; +App::$strings["Consumer Key"] = "Consumer Key"; +App::$strings["Automatically generated - change if desired. Max length 20"] = "Generado automáticamente - si lo desea, cámbielo. Longitud máxima: 20"; +App::$strings["Consumer Secret"] = "Consumer Secret"; +App::$strings["Redirect"] = "Redirigir"; +App::$strings["Redirect URI - leave blank unless your application specifically requires this"] = "URI de redirección - dejar en blanco a menos que su aplicación específicamente lo requiera"; +App::$strings["Icon url"] = "Dirección del icono"; +App::$strings["Application not found."] = "Aplicación no encontrada."; +App::$strings["Connected Apps"] = "Aplicaciones (apps) conectadas"; +App::$strings["Client key starts with"] = "La \"client key\" empieza por"; +App::$strings["No name"] = "Sin nombre"; +App::$strings["Remove authorization"] = "Eliminar autorización"; +App::$strings["This channel is limited to %d tokens"] = "Este canal tiene un límite de %d tokens"; +App::$strings["Name and Password are required."] = "Se requiere el nombre y la contraseña."; +App::$strings["Token saved."] = "Token salvado."; +App::$strings["Use this form to create temporary access identifiers to share things with non-members. These identities may be used in Access Control Lists and visitors may login using these credentials to access private content."] = "Utilice este formulario para crear identificadores de acceso temporal para compartir cosas con los no miembros de Hubzilla. Estas identidades se pueden usar en las Listas de control de acceso (ACL) y así los visitantes pueden iniciar sesión, utilizando estas credenciales, para acceder a su contenido privado."; +App::$strings["You may also provide dropbox style access links to friends and associates by adding the Login Password to any specific site URL as shown. Examples:"] = "También puede proporcionar, con el estilo dropbox, enlaces de acceso a sus amigos y asociados añadiendo la contraseña de inicio de sesión a cualquier dirección URL, como se muestra. Ejemplos: "; +App::$strings["Guest Access Tokens"] = "Tokens de acceso para invitados"; +App::$strings["Login Name"] = "Nombre de inicio de sesión"; +App::$strings["Login Password"] = "Contraseña de inicio de sesión"; +App::$strings["Expires (yyyy-mm-dd)"] = "Expira (aaaa-mm-dd)"; App::$strings["Not valid email."] = "Correo electrónico no válido."; App::$strings["Protected email address. Cannot change to that email."] = "Dirección de correo electrónico protegida. No se puede cambiar a ella."; App::$strings["System failure storing new email. Please try again."] = "Fallo de sistema al guardar el nuevo correo electrónico. Por favor, inténtelo de nuevo."; -App::$strings["Technical skill level updated"] = "Nivel de habilidad técnica actualizado"; +App::$strings["Technical skill level updated"] = "Se ha actualizado el nivel de habilidad técnica"; App::$strings["Password verification failed."] = "La comprobación de la contraseña ha fallado."; App::$strings["Passwords do not match. Password unchanged."] = "Las contraseñas no coinciden. La contraseña no se ha cambiado."; App::$strings["Empty passwords are not allowed. Password unchanged."] = "No se permiten contraseñas vacías. La contraseña no se ha cambiado."; @@ -1341,6 +1312,7 @@ App::$strings["Anybody on the internet"] = "Cualquiera en internet"; App::$strings["Publish your default profile in the network directory"] = "Publicar su perfil principal en el directorio de la red"; App::$strings["Allow us to suggest you as a potential friend to new members?"] = "¿Nos permite sugerirle como amigo potencial a los nuevos miembros?"; App::$strings["Your channel address is"] = "Su dirección de canal es"; +App::$strings["Your files/photos are accessible via WebDAV at"] = "Sus archivos y fotos son accesibles a través de WebDAV en "; App::$strings["Channel Settings"] = "Ajustes del canal"; App::$strings["Basic Settings"] = "Configuración básica"; App::$strings["Full Name:"] = "Nombre completo:"; @@ -1388,6 +1360,7 @@ App::$strings["You receive a private message"] = "Reciba un mensaje privado"; App::$strings["You receive a friend suggestion"] = "Reciba una sugerencia de amistad"; App::$strings["You are tagged in a post"] = "Usted sea etiquetado en una publicación"; App::$strings["You are poked/prodded/etc. in a post"] = "Reciba un toque o incitación en una publicación"; +App::$strings["Someone likes your post/comment"] = "Alguien muestre agrado por su entrada o comentario"; App::$strings["Show visual notifications including:"] = "Mostrar notificaciones visuales que incluyan:"; App::$strings["Unseen grid activity"] = "Nueva actividad en la red"; App::$strings["Unseen channel activity"] = "Actividad no vista en el canal"; @@ -1410,7 +1383,7 @@ App::$strings["Change the behaviour of this account for special situations"] = " App::$strings["Miscellaneous Settings"] = "Ajustes diversos"; App::$strings["Default photo upload folder"] = "Carpeta por defecto de las fotos subidas"; App::$strings["%Y - current year, %m - current month"] = "%Y - año en curso, %m - mes actual"; -App::$strings["Default file upload folder"] = "Carpeta por defecto de los archivos subidos"; +App::$strings["Default file upload folder"] = "Carpeta por defecto de los ficheros subidos"; App::$strings["Personal menu to display in your channel pages"] = "Menú personal que debe mostrarse en las páginas de su canal"; App::$strings["Remove this channel."] = "Eliminar este canal."; App::$strings["Firefox Share \$Projectname provider"] = "Servicio de compartición de Firefox: proveedor \$Projectname"; @@ -1432,6 +1405,8 @@ App::$strings["Minimum of 10 seconds, no maximum"] = "Mínimo de 10 segundos, si App::$strings["Maximum number of conversations to load at any time:"] = "Máximo número de conversaciones a cargar en cualquier momento:"; App::$strings["Maximum of 100 items"] = "Máximo de 100 elementos"; App::$strings["Show emoticons (smilies) as images"] = "Mostrar emoticonos (smilies) como imágenes"; +App::$strings["Manual conversation updates"] = "Actualizaciones manuales de la conversación"; +App::$strings["Default is automatic, which may increase screen jumping"] = "El valor predeterminado es automático, lo que puede aumentar el salto de pantalla"; App::$strings["Link post titles to source"] = "Enlazar título de la publicación a la fuente original"; App::$strings["System Page Layout Editor - (advanced)"] = "Editor de plantilla de página del sistema - (avanzado)"; App::$strings["Use blog/list mode on channel page"] = "Usar modo blog/lista en la página de inicio del canal"; @@ -1442,78 +1417,106 @@ App::$strings["click to expand content exceeding this height"] = "Pulsar para ex App::$strings["Grid page max height of content (in pixels)"] = "Altura máxima del contenido de mi red (en píxeles)"; App::$strings["No feature settings configured"] = "No se ha establecido la configuración de los complementos"; App::$strings["Feature/Addon Settings"] = "Ajustes de los complementos"; -App::$strings["Additional Features"] = "Funcionalidades"; -App::$strings["Name is required"] = "El nombre es obligatorio"; -App::$strings["Key and Secret are required"] = "\"Key\" y \"Secret\" son obligatorios"; -App::$strings["Add application"] = "Añadir aplicación"; -App::$strings["Name of application"] = "Nombre de la aplicación"; -App::$strings["Consumer Key"] = "Consumer Key"; -App::$strings["Automatically generated - change if desired. Max length 20"] = "Generado automáticamente - si lo desea, cámbielo. Longitud máxima: 20"; -App::$strings["Consumer Secret"] = "Consumer Secret"; -App::$strings["Redirect"] = "Redirigir"; -App::$strings["Redirect URI - leave blank unless your application specifically requires this"] = "URI de redirección - dejar en blanco a menos que su aplicación específicamente lo requiera"; -App::$strings["Icon url"] = "Dirección del icono"; -App::$strings["Application not found."] = "Aplicación no encontrada."; -App::$strings["Connected Apps"] = "Aplicaciones (apps) conectadas"; -App::$strings["Client key starts with"] = "La \"client key\" empieza por"; -App::$strings["No name"] = "Sin nombre"; -App::$strings["Remove authorization"] = "Eliminar autorización"; -App::$strings["This channel is limited to %d tokens"] = "Este canal tiene un límite de %d tokens"; -App::$strings["Name and Password are required."] = "Se requiere el nombre y la contraseña."; -App::$strings["Token saved."] = "Token salvado."; -App::$strings["Use this form to create temporary access identifiers to share things with non-members. These identities may be used in Access Control Lists and visitors may login using these credentials to access private content."] = "Utilice este formulario para crear identificadores de acceso temporal para compartir cosas con los no miembros de Hubzilla. Estas identidades se pueden usar en las Listas de control de acceso (ACL) y así los visitantes pueden iniciar sesión, utilizando estas credenciales, para acceder a su contenido privado."; -App::$strings["You may also provide dropbox style access links to friends and associates by adding the Login Password to any specific site URL as shown. Examples:"] = "También puede proporcionar, con el estilo dropbox, enlaces de acceso a sus amigos y asociados añadiendo la contraseña de inicio de sesión a cualquier dirección URL, como se muestra. Ejemplos: "; -App::$strings["Guest Access Tokens"] = "Tokens de acceso para invitados"; -App::$strings["Login Name"] = "Nombre de inicio de sesión"; -App::$strings["Login Password"] = "Contraseña de inicio de sesión"; -App::$strings["Expires (yyyy-mm-dd)"] = "Expira (aaaa-mm-dd)"; +App::$strings["Tag removed"] = "Etiqueta eliminada."; +App::$strings["Remove Item Tag"] = "Eliminar etiqueta del elemento."; +App::$strings["Select a tag to remove: "] = "Seleccionar una etiqueta para eliminar:"; +App::$strings["Thing updated"] = "Elemento actualizado."; +App::$strings["Object store: failed"] = "Guardar objeto: ha fallado"; +App::$strings["Thing added"] = "Elemento añadido"; +App::$strings["OBJ: %1\$s %2\$s %3\$s"] = "OBJ: %1\$s %2\$s %3\$s"; +App::$strings["Show Thing"] = "Mostrar elemento"; +App::$strings["item not found."] = "elemento no encontrado."; +App::$strings["Edit Thing"] = "Editar elemento"; +App::$strings["Select a profile"] = "Seleccionar un perfil"; +App::$strings["Post an activity"] = "Publicar una actividad"; +App::$strings["Only sends to viewers of the applicable profile"] = "Sólo enviar a espectadores del perfil pertinente."; +App::$strings["Name of thing e.g. something"] = "Nombre del elemento, p. ej.:. \"algo\""; +App::$strings["URL of thing (optional)"] = "Dirección del elemento (opcional)"; +App::$strings["URL for photo of thing (optional)"] = "Dirección para la foto o elemento (opcional)"; +App::$strings["Add Thing to your Profile"] = "Añadir alguna cosa a su perfil"; +App::$strings["Your service plan only allows %d channels."] = "Su paquete de servicios solo permite %d canales."; +App::$strings["Cloned channel not found. Import failed."] = "No se ha podido importar el canal porque el canal clonado no se ha encontrado."; +App::$strings["No channel. Import failed."] = "No hay canal. La importación ha fallado"; +App::$strings["Import completed."] = "Importación completada."; +App::$strings["You must be logged in to use this feature."] = "Debe estar registrado para poder usar esta funcionalidad."; +App::$strings["Import Channel"] = "Importar canal"; +App::$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."; +App::$strings["Or provide the old server/hub details"] = "O proporcione los detalles de su antiguo servidor/hub"; +App::$strings["Your old identity address (xyz@example.com)"] = "Su identidad en el antiguo servidor (canal@ejemplo.com)"; +App::$strings["Your old login email address"] = "Su antigua dirección de correo electrónico"; +App::$strings["Your old login password"] = "Su antigua contraseña"; +App::$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 direcció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."; +App::$strings["Make this hub my primary location"] = "Convertir este servidor en mi ubicación primaria"; +App::$strings["Import existing posts if possible (experimental - limited by available memory"] = "Importar el contenido publicado si es posible (experimental - limitado por la memoria disponible"; +App::$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."; +App::$strings["No connections."] = "Sin conexiones."; +App::$strings["Visit %s's profile [%s]"] = "Visitar el perfil de %s [%s]"; +App::$strings["View Connections"] = "Ver conexiones"; +App::$strings["Source of Item"] = "Origen del elemento"; +App::$strings["Room not found"] = "Sala no encontrada"; +App::$strings["Leave Room"] = "Abandonar la sala"; +App::$strings["Delete Room"] = "Eliminar esta sala"; +App::$strings["I am away right now"] = "Estoy ausente momentáneamente"; +App::$strings["I am online"] = "Estoy conectado/a"; +App::$strings["Bookmark this room"] = "Añadir esta sala a Marcadores"; +App::$strings["New Chatroom"] = "Nueva sala de chat"; +App::$strings["Chatroom name"] = "Nombre de la sala de chat"; +App::$strings["Expiration of chats (minutes)"] = "Caducidad de los mensajes en los chats (en minutos)"; +App::$strings["%1\$s's Chatrooms"] = "Salas de chat de %1\$s"; +App::$strings["No chatrooms available"] = "No hay salas de chat disponibles"; +App::$strings["Expiration"] = "Caducidad"; +App::$strings["min"] = "min"; +App::$strings["Xchan Lookup"] = "Búsqueda de canales"; +App::$strings["Lookup xchan beginning with (or webbie): "] = "Buscar un canal (o un \"webbie\") que comience por:"; +App::$strings["Calendar entries imported."] = "Entradas de calendario importadas."; +App::$strings["No calendar entries found."] = "No se han encontrado entradas de calendario."; +App::$strings["Event can not end before it has started."] = "Un evento no puede terminar antes de que haya comenzado."; +App::$strings["Unable to generate preview."] = "No se puede crear la vista previa."; +App::$strings["Event title and start time are required."] = "Se requieren el título del evento y su hora de inicio."; +App::$strings["Event not found."] = "Evento no encontrado."; +App::$strings["Edit event title"] = "Editar el título del evento"; +App::$strings["Event title"] = "Título del evento"; +App::$strings["Categories (comma-separated list)"] = "Temas (lista separada por comas)"; +App::$strings["Edit Category"] = "Modificar el tema"; +App::$strings["Category"] = "Tema"; +App::$strings["Edit start date and time"] = "Modificar la fecha y hora de comienzo"; +App::$strings["Start date and time"] = "Fecha y hora de comienzo"; +App::$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"; +App::$strings["Edit finish date and time"] = "Modificar la fecha y hora de terminación"; +App::$strings["Finish date and time"] = "Fecha y hora de terminación"; +App::$strings["Adjust for viewer timezone"] = "Ajustar para obtener el visor de los husos horarios"; +App::$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."; +App::$strings["Edit Description"] = "Editar la descripción"; +App::$strings["Edit Location"] = "Modificar la dirección"; +App::$strings["Permission settings"] = "Configuración de permisos"; +App::$strings["Advanced Options"] = "Opciones avanzadas"; +App::$strings["Edit event"] = "Editar evento"; +App::$strings["Delete event"] = "Borrar evento"; +App::$strings["calendar"] = "calendario"; +App::$strings["Month"] = "Mes"; +App::$strings["Week"] = "Semana"; +App::$strings["Day"] = "Día"; +App::$strings["Event removed"] = "Evento borrado"; +App::$strings["Failed to remove event"] = "Error al eliminar el evento"; App::$strings["Missing room name"] = "Sala de chat sin nombre"; App::$strings["Duplicate room name"] = "Nombre de sala duplicado."; App::$strings["Invalid room specifier."] = "Especificador de sala no válido."; App::$strings["Room not found."] = "Sala no encontrada."; App::$strings["Room is full"] = "La sala está llena."; -App::$strings["\$Projectname Notification"] = "Notificación de \$Projectname"; -App::$strings["\$projectname"] = "\$projectname"; -App::$strings["Thank You,"] = "Gracias,"; -App::$strings["%s Administrator"] = "%s Administrador"; -App::$strings["%s "] = "%s "; -App::$strings["[\$Projectname:Notify] New mail received at %s"] = "[\$Projectname:Aviso] Nuevo correo recibido en %s"; -App::$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."; -App::$strings["%1\$s sent you %2\$s."] = "%1\$s le ha enviado %2\$s."; -App::$strings["a private message"] = "un mensaje privado"; -App::$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."; -App::$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]"; -App::$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] "; -App::$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]"; -App::$strings["[\$Projectname:Notify] Comment to conversation #%1\$d by %2\$s"] = "[\$Projectname:Aviso] Nuevo comentario de %2\$s en la conversación #%1\$d"; -App::$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."; -App::$strings["Please visit %s to view and/or reply to the conversation."] = "Para ver o comentar la conversación, visite %s"; -App::$strings["[\$Projectname:Notify] %s posted to your profile wall"] = "[\$Projectname:Aviso] %s ha publicado una entrada en su página de inicio del perfil (\"muro\")"; -App::$strings["%1\$s, %2\$s posted to your profile wall at %3\$s"] = "%1\$s, %2\$s ha publicado en su página del perfil en %3\$s"; -App::$strings["%1\$s, %2\$s posted to [zrl=%3\$s]your wall[/zrl]"] = "%1\$s, %2\$s ha publicado en [zrl=%3\$s]su página del perfil[/zrl]"; -App::$strings["[\$Projectname:Notify] %s tagged you"] = "[\$Projectname:Aviso] %s le ha etiquetado"; -App::$strings["%1\$s, %2\$s tagged you at %3\$s"] = "%1\$s, %2\$s le ha etiquetado en %3\$s"; -App::$strings["%1\$s, %2\$s [zrl=%3\$s]tagged you[/zrl]."] = "%1\$s, %2\$s [zrl=%3\$s]le etiquetó[/zrl]."; -App::$strings["[\$Projectname:Notify] %1\$s poked you"] = "[\$Projectname:Aviso] %1\$s le ha dado un toque"; -App::$strings["%1\$s, %2\$s poked you at %3\$s"] = "%1\$s, %2\$s le ha dado un toque en %3\$s"; -App::$strings["%1\$s, %2\$s [zrl=%2\$s]poked you[/zrl]."] = "%1\$s, %2\$s [zrl=%2\$s]le ha dado un toque[/zrl]."; -App::$strings["[\$Projectname:Notify] %s tagged your post"] = "[\$Projectname:Aviso] %s ha etiquetado su entrada"; -App::$strings["%1\$s, %2\$s tagged your post at %3\$s"] = "%1\$s, %2\$s ha etiquetado su publicación en %3\$s"; -App::$strings["%1\$s, %2\$s tagged [zrl=%3\$s]your post[/zrl]"] = "%1\$s, %2\$s ha etiquetado [zrl=%3\$s]su publicación[/zrl]"; -App::$strings["[\$Projectname:Notify] Introduction received"] = "[\$Projectname:Aviso] Ha recibido una solicitud de conexión"; -App::$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"; -App::$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."; -App::$strings["You may visit their profile at %s"] = "Puede visitar su perfil en %s"; -App::$strings["Please visit %s to approve or reject the connection request."] = "Por favor, visite %s para permitir o rechazar la solicitad de conexión."; -App::$strings["[\$Projectname:Notify] Friend suggestion received"] = "[\$Projectname:Aviso] Ha recibido una sugerencia de conexión"; -App::$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"; -App::$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."; -App::$strings["Name:"] = "Nombre:"; -App::$strings["Photo:"] = "Foto:"; -App::$strings["Please visit %s to approve or reject the suggestion."] = "Por favor, visite %s para aprobar o rechazar la sugerencia."; -App::$strings["[\$Projectname:Notify]"] = "[\$Projectname:Aviso]"; -App::$strings["created a new post"] = "ha creado una nueva entrada"; -App::$strings["commented on %s's post"] = "ha comentado la entrada de %s"; +App::$strings["Visible to your default audience"] = "Visible para su público predeterminado."; +App::$strings["Only me"] = "Sólo yo"; +App::$strings["Public"] = "Público"; +App::$strings["Anybody in the \$Projectname network"] = "Cualquiera en la red \$Projectname"; +App::$strings["Any account on %s"] = "Cualquier cuenta en %s"; +App::$strings["Any of my connections"] = "Cualquiera de mis conexiones"; +App::$strings["Only connections I specifically allow"] = "Sólo las conexiones que yo permita de forma explícita"; +App::$strings["Anybody authenticated (could include visitors from other networks)"] = "Cualquiera que esté autenticado (podría incluir a los visitantes de otras redes)"; +App::$strings["Any connections including those who haven't yet been approved"] = "Cualquier conexión incluyendo aquellas que aún no han sido aprobadas"; +App::$strings["This is your default setting for the audience of your normal stream, and posts."] = "Esta es la configuración predeterminada para su flujo (stream) habitual de publicaciones."; +App::$strings["This is your default setting for who can view your default channel profile"] = "Esta es su configuración por defecto para establecer quién puede ver su perfil del canal predeterminado"; +App::$strings["This is your default setting for who can view your connections"] = "Este es su ajuste predeterminado para establecer quién puede ver sus conexiones"; +App::$strings["This is your default setting for who can view your file storage and photos"] = "Este es su ajuste predeterminado para establecer quién puede ver su repositorio de ficheros y sus fotos"; +App::$strings["This is your default setting for the audience of your webpages"] = "Este es el ajuste predeterminado para establecer la audiencia de sus páginas web"; App::$strings["Private Message"] = "Mensaje Privado"; App::$strings["Select"] = "Seleccionar"; App::$strings["Save to Folder"] = "Guardar en carpeta"; @@ -1547,6 +1550,10 @@ App::$strings["via Wall-To-Wall:"] = "Mediante el procedimiento página del perf App::$strings["from %s"] = "desde %s"; App::$strings["last edited: %s"] = "último cambio: %s"; App::$strings["Expires: %s"] = "Caduca: %s"; +App::$strings["Attend"] = "Participar o asistir"; +App::$strings["Attendance Options"] = "Opciones de participación o asistencia"; +App::$strings["Vote"] = "Votar"; +App::$strings["Voting Options"] = "Opciones de votación"; App::$strings["Save Bookmarks"] = "Guardar en Marcadores"; App::$strings["Add to Calendar"] = "Añadir al calendario"; App::$strings["Mark all seen"] = "Marcar todo como visto"; @@ -1559,22 +1566,8 @@ App::$strings["Code"] = "Código"; App::$strings["Image"] = "Imagen"; App::$strings["Insert Link"] = "Insertar enlace"; App::$strings["Video"] = "Vídeo"; -App::$strings["Visible to your default audience"] = "Visible para su público predeterminado."; -App::$strings["Only me"] = "Sólo yo"; -App::$strings["Public"] = "Público"; -App::$strings["Anybody in the \$Projectname network"] = "Cualquiera en la red \$Projectname"; -App::$strings["Any account on %s"] = "Cualquier cuenta en %s"; -App::$strings["Any of my connections"] = "Cualquiera de mis conexiones"; -App::$strings["Only connections I specifically allow"] = "Sólo las conexiones que yo permita de forma explícita"; -App::$strings["Anybody authenticated (could include visitors from other networks)"] = "Cualquiera que esté autenticado (podría incluir a los visitantes de otras redes)"; -App::$strings["Any connections including those who haven't yet been approved"] = "Cualquier conexión incluyendo aquellas que aún no han sido aprobadas"; -App::$strings["This is your default setting for the audience of your normal stream, and posts."] = "Esta es la configuración predeterminada para su flujo (stream) habitual de publicaciones."; -App::$strings["This is your default setting for who can view your default channel profile"] = "Esta es su configuración por defecto para establecer quién puede ver su perfil del canal predeterminado"; -App::$strings["This is your default setting for who can view your connections"] = "Este es su ajuste predeterminado para establecer quién puede ver sus conexiones"; -App::$strings["This is your default setting for who can view your file storage and photos"] = "Este es su ajuste predeterminado para establecer quién puede ver su repositorio de ficheros y sus fotos"; -App::$strings["This is your default setting for the audience of your webpages"] = "Este es el ajuste predeterminado para establecer la audiencia de sus páginas web"; App::$strings["Site Admin"] = "Administrador del sitio"; -App::$strings["Bug Report"] = "Informe de errores"; +App::$strings["Report Bug"] = "Informe de errores"; App::$strings["View Bookmarks"] = "Ver los marcadores"; App::$strings["My Chatrooms"] = "Mis salas de chat"; App::$strings["Firefox Share"] = "Servicio de compartición de Firefox"; @@ -1582,6 +1575,7 @@ App::$strings["Remote Diagnostics"] = "Diagnóstico remoto"; App::$strings["Suggest Channels"] = "Sugerir canales"; App::$strings["Login"] = "Iniciar sesión"; App::$strings["Grid"] = "Red"; +App::$strings["Wiki"] = "Wiki"; App::$strings["Channel Home"] = "Mi canal"; App::$strings["Events"] = "Eventos"; App::$strings["Directory"] = "Directorio"; @@ -1596,196 +1590,752 @@ App::$strings["Language"] = "Idioma"; App::$strings["Post"] = "Publicación"; App::$strings["Profile Photo"] = "Foto del perfil"; App::$strings["Purchase"] = "Comprar"; +App::$strings["Undelete"] = "Recuperar"; +App::$strings["\$Projectname Notification"] = "Notificación de \$Projectname"; +App::$strings["\$projectname"] = "\$projectname"; +App::$strings["Thank You,"] = "Gracias,"; +App::$strings["%s Administrator"] = "%s Administrador"; +App::$strings["%s "] = "%s "; +App::$strings["[\$Projectname:Notify] New mail received at %s"] = "[\$Projectname:Aviso] Nuevo correo recibido en %s"; +App::$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."; +App::$strings["%1\$s sent you %2\$s."] = "%1\$s le ha enviado %2\$s."; +App::$strings["a private message"] = "un mensaje privado"; +App::$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."; +App::$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]"; +App::$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] "; +App::$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]"; +App::$strings["[\$Projectname:Notify] Comment to conversation #%1\$d by %2\$s"] = "[\$Projectname:Aviso] Nuevo comentario de %2\$s en la conversación #%1\$d"; +App::$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."; +App::$strings["Please visit %s to view and/or reply to the conversation."] = "Para ver o comentar la conversación, visite %s"; +App::$strings["%1\$s, %2\$s liked [zrl=%3\$s]your %4\$s[/zrl]"] = "%1\$s, %2\$s ha mostrado su agrado por [zrl=%3\$s]%4\$s creado por usted[/zrl]"; +App::$strings["[\$Projectname:Notify] Like received to conversation #%1\$d by %2\$s"] = "[\$Projectname:Aviso] \"Me gusta\" de %2\$s en la conversación #%1\$d"; +App::$strings["%1\$s, %2\$s liked an item/conversation you created."] = "%1\$s, %2\$s ha mostrado su agrado por un elemento o conversación que ha creado usted."; +App::$strings["[\$Projectname:Notify] %s posted to your profile wall"] = "[\$Projectname:Aviso] %s ha publicado una entrada en su página de inicio del perfil (\"muro\")"; +App::$strings["%1\$s, %2\$s posted to your profile wall at %3\$s"] = "%1\$s, %2\$s ha publicado en su página del perfil en %3\$s"; +App::$strings["%1\$s, %2\$s posted to [zrl=%3\$s]your wall[/zrl]"] = "%1\$s, %2\$s ha publicado en [zrl=%3\$s]su página del perfil[/zrl]"; +App::$strings["[\$Projectname:Notify] %s tagged you"] = "[\$Projectname:Aviso] %s le ha etiquetado"; +App::$strings["%1\$s, %2\$s tagged you at %3\$s"] = "%1\$s, %2\$s le ha etiquetado en %3\$s"; +App::$strings["%1\$s, %2\$s [zrl=%3\$s]tagged you[/zrl]."] = "%1\$s, %2\$s [zrl=%3\$s]le etiquetó[/zrl]."; +App::$strings["[\$Projectname:Notify] %1\$s poked you"] = "[\$Projectname:Aviso] %1\$s le ha dado un toque"; +App::$strings["%1\$s, %2\$s poked you at %3\$s"] = "%1\$s, %2\$s le ha dado un toque en %3\$s"; +App::$strings["%1\$s, %2\$s [zrl=%2\$s]poked you[/zrl]."] = "%1\$s, %2\$s [zrl=%2\$s]le ha dado un toque[/zrl]."; +App::$strings["[\$Projectname:Notify] %s tagged your post"] = "[\$Projectname:Aviso] %s ha etiquetado su entrada"; +App::$strings["%1\$s, %2\$s tagged your post at %3\$s"] = "%1\$s, %2\$s ha etiquetado su publicación en %3\$s"; +App::$strings["%1\$s, %2\$s tagged [zrl=%3\$s]your post[/zrl]"] = "%1\$s, %2\$s ha etiquetado [zrl=%3\$s]su publicación[/zrl]"; +App::$strings["[\$Projectname:Notify] Introduction received"] = "[\$Projectname:Aviso] Ha recibido una solicitud de conexión"; +App::$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"; +App::$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."; +App::$strings["You may visit their profile at %s"] = "Puede visitar su perfil en %s"; +App::$strings["Please visit %s to approve or reject the connection request."] = "Por favor, visite %s para permitir o rechazar la solicitad de conexión."; +App::$strings["[\$Projectname:Notify] Friend suggestion received"] = "[\$Projectname:Aviso] Ha recibido una sugerencia de conexión"; +App::$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"; +App::$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."; +App::$strings["Name:"] = "Nombre:"; +App::$strings["Photo:"] = "Foto:"; +App::$strings["Please visit %s to approve or reject the suggestion."] = "Por favor, visite %s para aprobar o rechazar la sugerencia."; +App::$strings["[\$Projectname:Notify]"] = "[\$Projectname:Aviso]"; +App::$strings["created a new post"] = "ha creado una nueva entrada"; +App::$strings["commented on %s's post"] = "ha comentado la entrada de %s"; +App::$strings["Flag Adult Photos"] = "Indicador (\"flag\") de fotos de adultos"; +App::$strings["Provide photo edit option to hide inappropriate photos from default album view"] = "Proporcionar una opción de edición de fotos para ocultar las fotos inapropiadas de la vista de álbum predeterminada"; +App::$strings["This is a fairly comprehensive and complete guitar chord dictionary which will list most of the available ways to play a certain chord, starting from the base of the fingerboard up to a few frets beyond the twelfth fret (beyond which everything repeats). A couple of non-standard tunings are provided for the benefit of slide players, etc."] = "Se trata de un diccionario bastante amplio y completo de acordes de guitarra que enumerará la mayor parte de las formas disponibles para tocar un acorde determinado, partiendo de la base del diapasón hasta unos pocos trastes más allá del traste doce (más allá del cual todo se repite). Se proporcionan un par de afinaciones no convencionales para provecho de los guitarristas con \"slides\" ( barras de acero), etc."; +App::$strings["Chord names start with a root note (A-G) and may include sharps (#) and flats (b). This software will parse most of the standard naming conventions such as maj, min, dim, sus(2 or 4), aug, with optional repeating elements."] = "Los nombres de acordes comienzan con una nota fundamental (La-Sol) y pueden incluir sostenidos (#) y bemoles (b). Este software analizará la mayor parte de las convenciones de nomenclatura estándar como maj, min, tenue, SUS (2 ó 4), aug, con la repetición de elementos opcionales."; +App::$strings["Valid examples include A, A7, Am7, Amaj7, Amaj9, Ammaj7, Aadd4, Asus2Add4, E7b13b11 ..."] = "Ejemplos válidos son A, A7, Am7, Amaj7, Amaj9, Ammaj7, Aadd4, Asus2Add4, E7b13b11 ..."; +App::$strings["Guitar Chords"] = "Acordes de guitarra"; +App::$strings["The complete online chord dictionary"] = "El diccionario completo de acordes en línea"; +App::$strings["Tuning"] = "Afinación"; +App::$strings["Chord name: example: Em7"] = "Nombre del acorde, por ejemplo: Em7"; +App::$strings["Show for left handed stringing"] = "Mostrar para tocadores zurdos"; +App::$strings["Quick Reference"] = "Referencia rápida"; +App::$strings["Diaspora Protocol Settings updated."] = "Los ajustes del protocolo de Diaspora se han actualizado."; +App::$strings["Enable the Diaspora protocol for this channel"] = "Activar el protocolo de Diaspora para este canal"; +App::$strings["Allow any Diaspora member to comment on your public posts"] = "Permitir a cualquier miembro de Diaspora comentar sus entradas públicas"; +App::$strings["Prevent your hashtags from being redirected to other sites"] = "Impedir que sus \"hashtags\" sean redirigidos a otros sitios "; +App::$strings["Followed hashtags (comma separated, do not include the #)"] = "\"Hashtags\" seguidos (separados por comas, sin incluir #)"; +App::$strings["Diaspora Protocol Settings"] = "Ajustes del protocolo de Diaspora"; +App::$strings["Hubzilla Directory Stats"] = "Estadísticas de directorio de Hubzilla"; +App::$strings["Total Hubs"] = "Número total de servidores"; +App::$strings["Hubzilla Hubs"] = "Servidores (hubs) de Hubzilla"; +App::$strings["Friendica Hubs"] = "Servidores (hubs) de Friendica"; +App::$strings["Diaspora Pods"] = "Servidores (pods) de Diaspora"; +App::$strings["Hubzilla Channels"] = "Canales de Hubzilla"; +App::$strings["Friendica Channels"] = "Canales de Friendica"; +App::$strings["Diaspora Channels"] = "Canales de Diaspora"; +App::$strings["Aged 35 and above"] = "De 35 años de edad en adelante"; +App::$strings["Aged 34 and under"] = "De 34 o menos años de edad"; +App::$strings["Average Age"] = "Promedio de edad"; +App::$strings["Known Chatrooms"] = "Salas de chat conocidas"; +App::$strings["Known Tags"] = "Etiquetas conocidas"; +App::$strings["Please note Diaspora and Friendica statistics are merely those **this directory** is aware of, and not all those known in the network. This also applies to chatrooms,"] = "Tenga en cuenta que las estadísticas de Diaspora y Friendica se refieren únicamente a aquellas de las que **este directorio** es consciente, y no a todos los conocidos en la red. Esto también es aplicable a las salas de chat,"; +App::$strings["Project Servers and Resources"] = "Servidores y recursos del proyecto"; +App::$strings["Project Creator and Tech Lead"] = "Creador del proyecto y director técnico"; +App::$strings["Admin, developer, directorymin, support bloke"] = "Administrador, desarrollador, administrador del directorio, trabajador de apoyo"; +App::$strings["And the hundreds of other people and organisations who helped make the Hubzilla possible."] = "Y los cientos de personas y organizaciones más que ayudaron a hacer posible Hubzilla."; +App::$strings["The Redmatrix/Hubzilla projects are provided primarily by volunteers giving their time and expertise - and often paying out of pocket for services they share with others."] = "Los proyectos Redmatrix / Hubzilla están proporcionados principalmente por voluntarios que les prestan su tiempo y experiencia, pagando a menudo de su bolsillo por los servicios que comparten con otros."; +App::$strings["There is no corporate funding and no ads, and we do not collect and sell your personal information. (We don't control your personal information - you do.)"] = "No hay financiación corporativa ni publicidad y no recogemos ni vendemos su información personal. (De hecho, no tenemos control sobre sus datos privados. Usted lo tiene.)"; +App::$strings["Help support our ground-breaking work in decentralisation, web identity, and privacy."] = "Ayude apoyando nuestro trabajo pionero en la descentralización, la identidad web, y la privacidad."; +App::$strings["Your donations keep servers and services running and also helps us to provide innovative new features and continued development."] = "Sus donaciones mantienen servidores y servicios en ejecución y también nos ayudan a proporcionar nuevas características innovadoras y a mantener el desarrollo de forma continuada."; +App::$strings["Donate"] = "Donar"; +App::$strings["Choose a project, developer, or public hub to support with a one-time donation"] = "Elija un proyecto, desarrollador, o \"hub\" público para apoyar con una donación de una sola vez"; +App::$strings["Donate Now"] = "Donar ahora"; +App::$strings["Or become a project sponsor (Hubzilla Project only)"] = "O convertirse en un patrocinador del proyecto (sólo del proyecto Hubzilla)"; +App::$strings["Please indicate if you would like your first name or full name (or nothing) to appear in our sponsor listing"] = "Por favor, indique si desea que su nombre de pila o el nombre completo (o nada) aparezca en nuestra lista de patrocinadores"; +App::$strings["Sponsor"] = "Patrocinador"; +App::$strings["Special thanks to: "] = "Agradecimiento especial a: "; +App::$strings["Post to Dreamwidth"] = "Publicar en Dreamwidth"; +App::$strings["Enable Dreamwidth Post Plugin"] = "Activar el plugin de publicación en Dreamwidth"; +App::$strings["Dreamwidth username"] = "Nombre de usuario en Dreamwidth"; +App::$strings["Dreamwidth password"] = "Contraseña en Dreamwidth"; +App::$strings["Post to Dreamwidth by default"] = "Publicar en Dreamwidth de forma predeterminada"; +App::$strings["Dreamwidth Post Settings"] = "Ajustes de publicación en Dreamwidth"; +App::$strings["Flattr this!"] = "¡Apoyar esto en Flattr!"; +App::$strings["Flattr widget settings updated."] = "Los ajustes del widget Flattr han sido actualizados."; +App::$strings["Flattr user"] = "Usuario en Flattr"; +App::$strings["URL of the Thing to flattr"] = "URL de la Cosa para apoyar en flattr"; +App::$strings["If empty channel URL is used"] = "Si está vacío, se usa la URL del canal"; +App::$strings["Title of the Thing to flattr"] = "Título de la Cosa para apoyar en flattr"; +App::$strings["If empty \"channel name on The Hubzilla\" will be used"] = "Si está vacío, se usará \"nombre del canal en Hubzilla\""; +App::$strings["Static or dynamic flattr button"] = "Botón de flattr estático o dinámico"; +App::$strings["static"] = "estático"; +App::$strings["dynamic"] = "dinámico"; +App::$strings["Alignment of the widget"] = "Alineamiento del widget"; +App::$strings["left"] = "izquierda"; +App::$strings["right"] = "derecha"; +App::$strings["Enable Flattr widget"] = "Habilitar el widget Flattr"; +App::$strings["Flattr Widget Settings"] = "Ajustes del widget Flattr"; +App::$strings["Contact not found."] = "No se ha encontrado el contacto."; +App::$strings["This may occasionally happen if contact was requested by both persons and it has already been approved."] = "Esto puede ocurrir de vez en cuando si el contacto fue solicitado por ambas personas y ya había sido aprobado."; +App::$strings["Response from remote site was not understood."] = "No se entendió la respuesta del sitio remoto."; +App::$strings["Unexpected response from remote site: "] = "Respuesta inesperada desde el sitio remoto: "; +App::$strings["Confirmation completed successfully."] = "La confirmación se ha completado satisfactoriamente."; +App::$strings["Remote site reported: "] = "El sitio remoto informó: "; +App::$strings["Temporary failure. Please wait and try again."] = "Fallo temporal. Por favor, espere e inténtelo de nuevo."; +App::$strings["Introduction failed or was revoked."] = "La solicitud ha fallado o ha sido revocada."; +App::$strings["Unable to set contact photo."] = "No se puede establecer la foto del contacto."; +App::$strings["%1\$s is now friends with %2\$s"] = "%1\$s es amigo ahora de %2\$s"; +App::$strings["No user record found for '%s' "] = "No se encuentra ningún registro de usuario para '%s' "; +App::$strings["Our site encryption key is apparently messed up."] = "La clave de cifrado de nuestro sitio está aparentemente en mal estado."; +App::$strings["Empty site URL was provided or URL could not be decrypted by us."] = "Se ha proporcionado la URL de un sitio inexistente o la URL no ha podido ser descifrada por nosotros."; +App::$strings["Contact record was not found for you on our site."] = "No se ha encontrado un registro de contacto para usted en nuestro sitio."; +App::$strings["Site public key not available in contact record for URL %s."] = "La clave del sitio público no está disponible en el registro de contacto para la URL %s."; +App::$strings["The ID provided by your system is a duplicate on our system. It should work if you try again."] = "La ID proporcionada por su sistema está duplicada en el nuestro. Debería funcionar si lo intenta de nuevo."; +App::$strings["Unable to set your contact credentials on our system."] = "No se pueden establecer sus credenciales de contacto en nuestro sistema."; +App::$strings["Unable to update your contact profile details on our system"] = "No se pueden actualizar los detalles del perfil de su contacto en nuestro sistema"; +App::$strings["[Name Withheld]"] = "[Nombre omitido]"; +App::$strings["%1\$s has joined %2\$s"] = "%1\$s se ha unido a %2\$s"; +App::$strings["%1\$s welcomes %2\$s"] = "%1\$s da la bienvenida a %2\$s"; +App::$strings["This introduction has already been accepted."] = "Esta solicitud ya ha sido aceptada."; +App::$strings["Profile location is not valid or does not contain profile information."] = "La ubicación del perfil no es válida o no contiene información del perfil."; +App::$strings["Warning: profile location has no identifiable owner name."] = "Advertencia: el perfil de la ubicación no tiene un nombre de propietario identificable."; +App::$strings["Warning: profile location has no profile photo."] = "Advertencia: el perfil de la ubicación no tiene ninguna foto de perfil."; +App::$strings["%d required parameter was not found at the given location"] = array( + 0 => "Los parámetros requeridos de %d no se han encontrado en la localización proporcionada", + 1 => "Los parámetros requeridos de %d no se han encontrado en la localización proporcionada", +); +App::$strings["Introduction complete."] = "Solicitud completa."; +App::$strings["Unrecoverable protocol error."] = "Error irrecuperable de protocolo."; +App::$strings["Profile unavailable."] = "Perfil no disponible."; +App::$strings["%s has received too many connection requests today."] = "%s ha recibido demasiadas peticiones de conexión hoy."; +App::$strings["Spam protection measures have been invoked."] = "Se han activado las medidas de protección contra el spam."; +App::$strings["Friends are advised to please try again in 24 hours."] = "Se aconseja a los amigos que por favor lo intenten de nuevo en 24 horas."; +App::$strings["Invalid locator"] = "Localizador no válido"; +App::$strings["Invalid email address."] = "Dirección de correo no válida."; +App::$strings["This account has not been configured for email. Request failed."] = "Esta cuenta no se ha configurado para el correo electrónico. La petición ha fallado."; +App::$strings["Unable to resolve your name at the provided location."] = "No se puede resolver el nombre en la localización proporcionada."; +App::$strings["You have already introduced yourself here."] = "Ya se ha inscrito usted mismo aquí."; +App::$strings["Apparently you are already friends with %s."] = "Al parecer ya es amigo de %s"; +App::$strings["Invalid profile URL."] = "URL del perfil no válida."; +App::$strings["Disallowed profile URL."] = "No se ha permitido la URL del perfil."; +App::$strings["Failed to update contact record."] = "Se ha producido un error al actualizar el registro del contacto."; +App::$strings["Your introduction has been sent."] = "Su solicitud ha sido enviada."; +App::$strings["Please login to confirm introduction."] = "Por favor, inicie sesión para confirmar la solicitud."; +App::$strings["Incorrect identity currently logged in. Please login to this profile."] = "Actualmente su identidad en el sistema es incorrecta. Por favor, inicie sesión en este perfil."; +App::$strings["Confirm"] = "Confirmar"; +App::$strings["Hide this contact"] = "Ocultar este contacto"; +App::$strings["Welcome home %s."] = "Bienvenido a la página principal %s."; +App::$strings["Please confirm your introduction/connection request to %s."] = "Por favor, confirme su solicitud de conexión a %s."; +App::$strings["Please enter your 'Identity Address' from one of the following supported communications networks:"] = "Por favor, elija su 'dirección identificativa' de entre las siguientes redes de comunicación soportadas: "; +App::$strings["If you are not yet a member of the free social web, follow this link to find a public Friendica site and join us today."] = "Si aún no es miembro de las redes sociales libres, siga este enlace para encontrar un sitio público de Friendica y unirse a nosotros hoy."; +App::$strings["Friend/Connection Request"] = "Solicitud de conexión o amistad"; +App::$strings["Examples: jojo@demo.friendica.com, http://demo.friendica.com/profile/jojo, testuser@identi.ca"] = "Ejemplos: jojo@demo.friendica.com, http://demo.friendica.com/profile/jojo, testuser@identi.ca"; +App::$strings["Please answer the following:"] = "Por favor, responda a lo siguiente: "; +App::$strings["Does %s know you?"] = "¿%s le conoce?"; +App::$strings["Add a personal note:"] = "Añadir un comentario personal: "; +App::$strings["Friendica"] = "Friendica"; +App::$strings["StatusNet/Federated Social Web"] = "Red social federada StatusNet"; +App::$strings["Diaspora"] = "Diaspora"; +App::$strings[" - please do not use this form. Instead, enter %s into your Diaspora search bar."] = "- Por favor, no use este formato. En su lugar, escriba %s en la barra de búsqueda de Diaspora."; +App::$strings["Your Identity Address:"] = "Su dirección identificativa: "; +App::$strings["Submit Request"] = "Enviar la solicitud"; +App::$strings["GNU-Social Protocol Settings updated."] = "Se han actualizado los ajustes del protocolo de GNU-Social."; +App::$strings["Enable the (experimental) GNU-Social protocol for this channel"] = "Activar el protocolo (experimental) de GNU-Social para este canal"; +App::$strings["GNU-Social Protocol Settings"] = "Ajustes del protocolo de GNU-Social"; +App::$strings["Follow"] = "Seguir"; +App::$strings["%1\$s is now following %2\$s"] = "%1\$s está siguiendo ahora a %2\$s"; +App::$strings["Friendica Photo Album Import"] = "Importar un álbum de fotos de Friendica"; +App::$strings["This will import all your Friendica photo albums to this Red channel."] = "Esto importará todos sus álbumes de fotos de Friendica a este canal de Hubzilla."; +App::$strings["Friendica Server base URL"] = "URL base del servidor de Friendica"; +App::$strings["Friendica Login Username"] = "Nombre de inicio de sesión en Friendica"; +App::$strings["Friendica Login Password"] = "Contraseña de inicio de sesión en Friendica"; +App::$strings["Enable the GNU-Social protocol for this channel"] = "Activar el protocolo de GNU-Social para este canal"; +App::$strings["Send email to all members"] = "Enviar un correo electrónico a todos los miembros"; +App::$strings["$1%s Administrator"] = "Administrador de $1%s "; +App::$strings["No recipients found."] = "No se han encontrado destinatarios."; +App::$strings["%1\$d of %2\$d messages sent."] = "%1\$d de %2\$d mensajes enviados."; +App::$strings["Send email to all hub members."] = "Enviar un correo electrónico a todos los miembros del hub."; +App::$strings["Message subject"] = "Asunto del mensaje"; +App::$strings["Sender Email address"] = "Dirección de correo electrónico del remitente"; +App::$strings["Test mode (only send to hub administrator)"] = "Modo de prueba (enviar sólo al administrador del hub)"; +App::$strings["Post to Insanejournal"] = "Publicar en Insanejournal"; +App::$strings["Enable InsaneJournal Post Plugin"] = "Habilitar el plugin de publicación en InsaneJournal"; +App::$strings["InsaneJournal username"] = "Nombre de usuario en InsaneJournal"; +App::$strings["InsaneJournal password"] = "Contraseña en InsaneJournal"; +App::$strings["Post to InsaneJournal by default"] = "Publicar por defecto en InsaneJournal"; +App::$strings["InsaneJournal Post Settings"] = "Ajustes de publicación en InsaneJournal"; +App::$strings["Insane Journal Settings saved."] = "Se han guardado los ajustes de InsaneJournal."; +App::$strings["Channels to auto connect"] = "Canales para conexión automática"; +App::$strings["Comma separated list"] = "Lista separada por comas"; +App::$strings["Popular Channels"] = "Canales populares"; +App::$strings["IRC Settings"] = "Ajustes de IRC"; +App::$strings["IRC settings saved."] = "Se han guardado los ajustes de IRC."; +App::$strings["IRC Chatroom"] = "Sala de chat IRC"; +App::$strings["Status:"] = "Estado:"; +App::$strings["Activate addon"] = "Habilitar complemento"; +App::$strings["Hide Jappixmini Chat-Widget from the webinterface"] = "Ocultar el widget de chat Jappixmini en la interfaz web"; +App::$strings["Jabber username"] = "Nombre de usuario en Jabber"; +App::$strings["Jabber server"] = "Servidor de Jabber"; +App::$strings["Jabber BOSH host URL"] = "URL del host BOSH de Jabber"; +App::$strings["Jabber password"] = "Contraseña en Jabber"; +App::$strings["Encrypt Jabber password with Hubzilla password"] = "Cifrar la contraseña de Jabber con la contraseña de Hubzilla"; +App::$strings["Hubzilla password"] = "Contraseña de Hubzilla"; +App::$strings["Approve subscription requests from Hubzilla contacts automatically"] = "Aprobar automáticamente las solicitudes de suscripción de los contactos de Hubzilla"; +App::$strings["Purge internal list of jabber addresses of contacts"] = "Purgar la lista interna de las direcciones de contactos de jabber"; +App::$strings["Configuration Help"] = "Ayuda para los ajustes"; +App::$strings["Add Contact"] = "Añadir un contacto"; +App::$strings["Jappix Mini Settings"] = "Ajustes de Jappix Mini"; +App::$strings["Upload a file"] = "Subir un fichero"; +App::$strings["Drop files here to upload"] = "Arrastre los ficheros aquí para subirlos"; +App::$strings["Failed"] = "Ha fallado"; +App::$strings["No files were uploaded."] = "No se han subido ficheros."; +App::$strings["Uploaded file is empty"] = "El fichero subido está vacío"; +App::$strings["Image exceeds size limit of "] = "La imagen supera el límite de tamaño de "; +App::$strings["File has an invalid extension, it should be one of "] = "El fichero tiene una extensión no válida, debería ser una de estas: "; +App::$strings["Upload was cancelled, or server error encountered"] = "Se canceló la carga o se encontró un error del servidor"; +App::$strings["An account has been created for you."] = "Se ha creado una cuenta para usted."; +App::$strings["Authentication successful but rejected: account creation is disabled."] = "Autenticación correcta pero rechazada: la creación de cuentas está deshabilitada."; +App::$strings["Post to Libertree"] = "Publicar en Libertree"; +App::$strings["Enable Libertree Post Plugin"] = "Habilitar el plugin de publicación en Libertree"; +App::$strings["Libertree API token"] = "Token de la API de Libertree"; +App::$strings["Libertree site URL"] = "URL del servidor de Libertree"; +App::$strings["Post to Libertree by default"] = "Publicar en Libertree por defecto"; +App::$strings["Libertree Post Settings"] = "Ajustes de publicación en Libertree"; +App::$strings["Libertree Settings saved."] = "Se han guardado los ajustes de Libertree."; +App::$strings["Post to LiveJournal"] = "Publicar en LiveJournal"; +App::$strings["Enable LiveJournal Post Plugin"] = "Habilitar el plugin de publicación en LiveJournal"; +App::$strings["LiveJournal username"] = "Nombre de usuario en LiveJournal"; +App::$strings["LiveJournal password"] = "Contraseña en LiveJournal"; +App::$strings["Post to LiveJournal by default"] = "Publicar en LiveJournal por defecto"; +App::$strings["LiveJournal Post Settings"] = "Ajustes de publicación en LiveJournal"; +App::$strings["LiveJournal Settings saved."] = "Se han guardado los ajustes de LiveJournal."; +App::$strings["Logfile archive directory"] = "Directorio de los ficheros de informe"; +App::$strings["Directory to store rotated logs"] = "Directorio para almacenar los informes rotados"; +App::$strings["Logfile size in bytes before rotating"] = "Tamaño del fichero de informe en bytes antes de rotarlo"; +App::$strings["Number of logfiles to retain"] = "Número de ficheros de informe que se deben retener"; +App::$strings["Email notification hub"] = "Notificación por correo electrónico del hub"; +App::$strings["Hostname"] = "Nombre del host"; +App::$strings["Mailhost Settings"] = "Ajustes de Mailhost"; +App::$strings["MAILHOST Settings saved."] = "Se han guardado los ajustes de MAILHOST."; +App::$strings["lonely"] = "Solo/a"; +App::$strings["drunk"] = "ebrio/a"; +App::$strings["horny"] = "caliente"; +App::$strings["stoned"] = "drogado/a"; +App::$strings["fucked up"] = "jodido/a"; +App::$strings["clusterfucked"] = "hecho/a polvo"; +App::$strings["crazy"] = "loco/a"; +App::$strings["hurt"] = "ofendido/a"; +App::$strings["sleepy"] = "soñoliento/a"; +App::$strings["grumpy"] = "gruñón/ona"; +App::$strings["high"] = "superior"; +App::$strings["semi-conscious"] = "semiconsciente"; +App::$strings["in love"] = "enamorado/a"; +App::$strings["in lust"] = "lujurioso/a"; +App::$strings["naked"] = "desnudo/a"; +App::$strings["stinky"] = "apestoso/a"; +App::$strings["sweaty"] = "sudoroso/a"; +App::$strings["bleeding out"] = "desangrado/a"; +App::$strings["victorious"] = "victorioso/a"; +App::$strings["defeated"] = "derrotado/a"; +App::$strings["envious"] = "envidioso/a"; +App::$strings["jealous"] = "celoso/a"; +App::$strings["bitchslap"] = "una bofetada humillante"; +App::$strings["bitchslapped"] = "ha abofeteado de forma humillante a"; +App::$strings["shag"] = "unas pelusas"; +App::$strings["shagged"] = "ha dejado exhausto/a a"; +App::$strings["patent"] = "una patente"; +App::$strings["patented"] = "ha patentado a"; +App::$strings["hug"] = "un abrazo"; +App::$strings["hugged"] = "ha abrazado a"; +App::$strings["murder"] = "un asesinato"; +App::$strings["murdered"] = "ha asesinado a"; +App::$strings["worship"] = "una alabanza"; +App::$strings["worshipped"] = "ha elogiado a"; +App::$strings["kiss"] = "un beso"; +App::$strings["kissed"] = "ha besado a"; +App::$strings["tempt"] = "una tentación"; +App::$strings["tempted"] = "ha tentado a"; +App::$strings["raise eyebrows at"] = "un levantamiento de cejas"; +App::$strings["raised their eyebrows at"] = "ha levantado las cejas a"; +App::$strings["insult"] = "un insulto"; +App::$strings["insulted"] = "ha insultado a"; +App::$strings["praise"] = "un elogio"; +App::$strings["praised"] = "ha elogiado a"; +App::$strings["be dubious of"] = "una duda"; +App::$strings["was dubious of"] = "estaba dudoso de"; +App::$strings["eat"] = "una comida"; +App::$strings["ate"] = "ha comido"; +App::$strings["giggle and fawn at"] = "una sonrisa aduladora"; +App::$strings["giggled and fawned at"] = "ha sonreído y adulado a"; +App::$strings["doubt"] = "una duda"; +App::$strings["doubted"] = "ha dudado de"; +App::$strings["glare"] = "una mirada furiosa"; +App::$strings["glared at"] = "ha mirado con furia a"; +App::$strings["fuck"] = "un polvo"; +App::$strings["fucked"] = "ha jodido a"; +App::$strings["bonk"] = "un golpe"; +App::$strings["bonked"] = "ha golpeado a"; +App::$strings["declare undying love for"] = "una declaración de amor eterno"; +App::$strings["declared undying love for"] = "ha declarado amor eterno"; +App::$strings["Save Settings"] = "Guardar ajustes"; +App::$strings["text to include in all outgoing posts from this site"] = "texto a incluir en todos los mensajes salientes de este sitio"; +App::$strings["Federate"] = "Federar"; +App::$strings["nofed Settings saved."] = "Se han guardado los ajustes de nofed."; +App::$strings["Allow Federation Toggle"] = "Permitir alternancia de federación"; +App::$strings["Federate posts by default"] = "Federar las publicaciones por defecto"; +App::$strings["NoFed Settings"] = "Ajustes de NoFed"; +App::$strings["Nsabait Settings updated."] = "Se han actualizado los ajustes de Nsabait"; +App::$strings["Enable NSAbait Plugin"] = "Habilitar el plugin NSAbait"; +App::$strings["NSAbait Settings"] = "Ajustes de NSAbait"; +App::$strings["This plugin looks in posts for the words/text you specify below, and collapses any content containing those keywords so it is not displayed at inappropriate times, such as sexual innuendo that may be improper in a work setting. It is polite and recommended to tag any content containing nudity with #NSFW. This filter can also match any other word/text you specify, and can thereby be used as a general purpose content filter."] = "Este complemento busca en los mensajes las palabras o texto que se especifican a continuación y contrae cualquier contenido que contenga esas palabras clave para que no se muestre en momentos inapropiados, como insinuaciones sexuales que pueden ser impropias en un entorno de trabajo. Es una muestra de educación y se recomienda marcar cualquier contenido que contenga desnudos con #NSFW. Este filtro también puede coincidir con cualquier otra palabra o texto que especifique y, por lo tanto, puede utilizarse como un filtro de contenido de propósito general."; +App::$strings["Enable Content filter"] = "Habilitar filtro de contenido"; +App::$strings["Comma separated list of keywords to hide"] = "Lista separada por comas de palabras clave para ocultar"; +App::$strings["Use /expression/ to provide regular expressions"] = "Usar /expression/ para proporcionar expresiones regulares"; +App::$strings["Not Safe For Work Settings"] = "No es seguro para ajustes de trabajo"; +App::$strings["General Purpose Content Filter"] = "Filtro de contenido de propósito general"; +App::$strings["NSFW Settings saved."] = "Se han guardado los ajustes de NSFW."; +App::$strings["Possible adult content"] = "Posible contenido para adultos"; +App::$strings["%s - click to open/close"] = "%s - pulsar para abrir o cerrar"; +App::$strings["System defaults:"] = "Valores predeterminados del sistema: "; +App::$strings["Preferred Clipart IDs"] = "IDs de las imágenes clipart preferidas"; +App::$strings["List of preferred clipart ids. These will be shown first."] = "Lista de ids de imágenes de clipart preferidas. Se verán en primer lugar."; +App::$strings["Default Search Term"] = "Términos de búsqueda predeterminados"; +App::$strings["The default search term. These will be shown second."] = "Los términos de búsqueda predeterminados. Estos se mostrarán en segundo lugar."; +App::$strings["Return After"] = "Regresar después"; +App::$strings["Page to load after image selection."] = "Página para cargar después de la selección de imágenes."; +App::$strings["Edit Profile"] = "Editar el perfil"; +App::$strings["Profile List"] = "Lista de perfiles"; +App::$strings["Order of Preferred"] = "Orden de preferencia"; +App::$strings["Sort order of preferred clipart ids."] = "Orden de clasificación de los identificadores de imágenes clipart preferidas."; +App::$strings["Newest first"] = "Las más nuevas en primer lugar"; +App::$strings["As entered"] = "Tal como se ingresaron"; +App::$strings["Order of other"] = "Orden de los demás"; +App::$strings["Sort order of other clipart ids."] = "Orden de clasificación de otros ids de imágenes clipart."; +App::$strings["Most downloaded first"] = "Las más descargadas en primer lugar"; +App::$strings["Most liked first"] = "Las más apreciadas en primer lugar"; +App::$strings["Preferred IDs Message"] = "Mensaje de IDs preferido"; +App::$strings["Message to display above preferred results."] = "Mensaje para mostrar sobre los resultados preferidos."; +App::$strings["Uploaded by: "] = "Subida por: "; +App::$strings["Drawn by: "] = "Creada por: "; +App::$strings["Or select from a free OpenClipart.org image:"] = "O seleccionar una imagen gratuita de OpenClipart.org: "; +App::$strings["Search Term"] = "Término de búsqueda"; +App::$strings["Unknown error. Please try again later."] = "Error desconocido. Por favor, inténtelo otra vez."; +App::$strings["Profile photo updated successfully."] = "Se ha actualizado con éxito la foto de perfil."; +App::$strings["View Larger"] = "Ver más grande"; +App::$strings["Tile Server URL"] = "URL del servidor de mosaicos de imágenes "; +App::$strings["A list of public tile servers"] = "Una lista de servidores públicos de mosaicos de imágenes"; +App::$strings["Nominatim (reverse geocoding) Server URL"] = "URL del servidor nominatim (geocodificación inversa)"; +App::$strings["A list of Nominatim servers"] = "Una lista de servidores nominatim"; +App::$strings["Default zoom"] = "Zoom predeterminado"; +App::$strings["The default zoom level. (1:world, 18:highest, also depends on tile server)"] = "El nivel de zoom predeterminado. (1: mundo, 18: el más alto, también depende del servidor del mosaico de imágenes)"; +App::$strings["Include marker on map"] = "Incluir un marcador en el mapa"; +App::$strings["Include a marker on the map."] = "Incluir un marcador en el mapa."; +App::$strings["Message to display on every page on this server"] = "Mensaje para mostrar en todas las páginas de este servidor"; +App::$strings["Pageheader Settings"] = "Ajustes del encabezado de página"; +App::$strings["pageheader Settings saved."] = "Se han guardado los ajustes del encabezado de página."; +App::$strings["This website is tracked using the Piwik analytics tool."] = "Este sitio es rastreado mediante la herramienta analítica Piwik."; +App::$strings["If you do not want that your visits are logged this way you can set a cookie to prevent Piwik from tracking further visits of the site (opt-out)."] = "Si usted no quiere que sus visitas se registren de esta manera puede establecer una cookie para evitar que Piwik rastree otras visitas del sitio (opt-out)."; +App::$strings["Piwik Base URL"] = "URL base de Piwik"; +App::$strings["Absolute path to your Piwik installation. (without protocol (http/s), with trailing slash)"] = "Ruta absoluta a la instalación de Piwik. (Sin protocolo (http/s), con barra diagonal)"; +App::$strings["Site ID"] = "ID del sitio"; +App::$strings["Show opt-out cookie link?"] = "Mostrar el enlace de la cookie opt-out?"; +App::$strings["Asynchronous tracking"] = "Rastreo asíncrono"; +App::$strings["Enable frontend JavaScript error tracking"] = "Habilitar la interfaz JavaScript de seguimiento de errores"; +App::$strings["This feature requires Piwik >= 2.2.0"] = "Esta funcionalidad requiere Piwik >= 2.2.0"; +App::$strings["Planets Settings updated."] = "Se han guardado los ajustes de Planets."; +App::$strings["Enable Planets Plugin"] = "Habilitar el plugin Planets"; +App::$strings["Planets Settings"] = "Ajustes de Planets"; +App::$strings["You are now authenticated to pumpio."] = "Ahora está autenticado en pump.io."; +App::$strings["return to the featured settings page"] = "Volver a la página de configuración destacada"; +App::$strings["Post to Pump.io"] = "Publicar en Pump.io"; +App::$strings["Pump.io servername"] = "Nombre del servidor de Pump.io"; +App::$strings["Without \"http://\" or \"https://\""] = "Sin \"http://\" or \"https://\""; +App::$strings["Pump.io username"] = "Nombre de usuario en Pump.io"; +App::$strings["Without the servername"] = "Sin el nombre del servidor"; +App::$strings["You are not authenticated to pumpio"] = "No está autenticado en pump.io"; +App::$strings["(Re-)Authenticate your pump.io connection"] = "(Re-)Autenticar su conexión en pump.io"; +App::$strings["Enable pump.io Post Plugin"] = "Habilitar el plugin de publicación en pump.io"; +App::$strings["Post to pump.io by default"] = "Publicar por defecto en pump.io"; +App::$strings["Should posts be public"] = "¿Las entradas deben ser públicas?"; +App::$strings["Mirror all public posts"] = "Reflejar todos los mensajes públicos"; +App::$strings["Pump.io Post Settings"] = "Ajustes de publicación en pump.io"; +App::$strings["PumpIO Settings saved."] = "Se han guardado los ajustes de PumpIO."; +App::$strings["QR code"] = "Código QR"; +App::$strings["QR Generator"] = "Generador QR"; +App::$strings["Enter some text"] = "Escribir algún texto"; +App::$strings["Enable Rainbowtag"] = "Habilitar Rainbowtag"; +App::$strings["Rainbowtag Settings"] = "Ajustes de Rainbowtag"; +App::$strings["Rainbowtag Settings saved."] = "Se han guardado los ajustes de Rainbowtag."; +App::$strings["You're welcome."] = "Bienvenido."; +App::$strings["Ah shucks..."] = "Ah, joder..."; +App::$strings["Don't mention it."] = "No lo menciones."; +App::$strings["<blush>"] = "<sonrojo>"; +App::$strings["Redmatrix File Storage Import"] = "Importar repositorio de ficheros de Redmatrix"; +App::$strings["This will import all your Redmatrix cloud files to this channel."] = "Esto importará todos sus ficheros de la nube de Redmatrix a este canal."; +App::$strings["Redmatrix Server base URL"] = "URL base del servidor Redmatrix"; +App::$strings["Redmatrix Login Username"] = "Nombre de inicio de sesión en Redmatrix"; +App::$strings["Redmatrix Login Password"] = "Contraseña de inicio de sesión en Redmatrix"; +App::$strings["file"] = "fichero"; +App::$strings["Photos imported"] = "Se han importado las fotos"; +App::$strings["Redmatrix Photo Album Import"] = "Importar un álbum de fotos de Redmatrix"; +App::$strings["This will import all your Redmatrix photo albums to this channel."] = "Esto importará todos sus álbumes de fotos de Redmatrix a este canal."; +App::$strings["Import just this album"] = "Importar solo este álbum"; +App::$strings["Leave blank to import all albums"] = "Dejar en blanco para importar todos los álbumes"; +App::$strings["Maximum count to import"] = "Límite máximo de importación"; +App::$strings["0 or blank to import all available"] = "0 o en blanco para importar todos los disponibles"; +App::$strings["Post to Red"] = "Enviar a Red"; +App::$strings["Channel is required."] = "Se requiere un canal."; +App::$strings["Invalid channel."] = "El canal no es válido."; +App::$strings["redred Settings saved."] = "Se han salvado los ajustes de redred."; +App::$strings["Allow posting to another Hubzilla Channel"] = "Permitir la publicación en otro canal de Hubzilla"; +App::$strings["Send public postings to Hubzilla channel by default"] = "Enviar entradas públicas al canal Hubzilla por defecto"; +App::$strings["Hubzilla API Path"] = "Ruta de la API de Hubzilla"; +App::$strings["https://{sitename}/api"] = "https://{sitename}/api"; +App::$strings["Hubzilla login name"] = "Nombre de inicio de sesión en Hubzilla"; +App::$strings["Hubzilla channel name"] = "Nombre del canal de Hubzilla"; +App::$strings["Nickname"] = "Alias"; +App::$strings["Hubzilla Crosspost Settings"] = "Ajustes de Hubzilla Crosspost"; +App::$strings["Post to Friendica"] = "Publicar en Friendica"; +App::$strings["rtof Settings saved."] = "Se han guardado los ajustes de rtof"; +App::$strings["Allow posting to Friendica"] = "Permitir publicar en Friendica"; +App::$strings["Send public postings to Friendica by default"] = "Enviar entradas públicas a Friendica por defecto"; +App::$strings["Friendica API Path"] = "Ruta a la API de Friendica"; +App::$strings["Friendica login name"] = "Nombre de inicio de sesión en Friendica"; +App::$strings["Friendica password"] = "Contraseña de Friendica"; +App::$strings["Hubzilla to Friendica Post Settings"] = "Ajustes de publicación de Hubzilla a Friendica"; +App::$strings["Extended Identity Sharing"] = "Compartir identidad extendida"; +App::$strings["Share your identity with all websites on the internet. When disabled, identity is only shared with sites in the matrix."] = "Compartir su identidad con todos los sitios web en Internet. Cuando se inhabilita, la identidad sólo se comparte con los sitios de la matriz."; +App::$strings["Some setting"] = "Algunos ajustes"; +App::$strings["A setting"] = "Un ajuste"; +App::$strings["Skeleton Settings"] = "Ajustes de Skeleton"; +App::$strings["Deactivate the feature"] = "Desactivar la funcionalidad"; +App::$strings["Hide the button and show the smilies directly."] = "Ocultar el botón y mostrar los smilies directamente."; +App::$strings["Smileybutton Settings"] = "Ajustes de Smileybutton"; +App::$strings["Page to load after login"] = "Página para cargar tras el inicio de sesión"; +App::$strings["Examples: "apps", "network?f=&gid=37" (privacy collection), "channel" or "notifications/system" (leave blank for default network page (grid)."] = "Ejemplos: "aplicaciones", "mi red?f=&gid=37" (grupo de canales), "mi canal" or "notificaciones del sistema" (dejar en blanco para la página de mi red por defecto (grid)."; +App::$strings["Startpage Settings"] = "Ajustes de startpage"; +App::$strings["Post to GNU social"] = "Publicar en GNU social"; +App::$strings["Please contact your site administrator.
        The provided API URL is not valid."] = "Por favor, contacte con el administrador de su sitio.
        La URL de la API proporcionada no es válida."; +App::$strings["We could not contact the GNU social API with the Path you entered."] = "No podemos conectar con la API de GNU social con la ruta que ha proporcionado."; +App::$strings["GNU social settings updated."] = "Se han guardado los ajustes de GNU social."; +App::$strings["Globally Available GNU social OAuthKeys"] = "OAuthKeys globales de GNU social disponibles"; +App::$strings["There are preconfigured OAuth key pairs for some GNU social servers available. If you are using one of them, please use these credentials.
        If not feel free to connect to any other GNU social instance (see below)."] = "Existen pares de claves OAuth preconfiguradas disponibles para algunos servidores libres de GNU social. Si está usando uno de ellos, utilice estas credenciales.
        Si no se siente libre de conectarse a cualquier otra instancia de GNU social (vea a continuación)."; +App::$strings["Provide your own OAuth Credentials"] = "Proporcione sus propias credenciales de OAuth"; +App::$strings["No consumer key pair for GNU social found. Register your Hubzilla Account as an desktop client on your GNU social account, copy the consumer key pair here and enter the API base root.
        Before you register your own OAuth key pair ask the administrator if there is already a key pair for this Hubzilla installation at your favourite GNU social installation."] = "No se ha encontrado un par de claves de consumidor para GNU social. Registre su cuenta de Hubzilla como un cliente de escritorio en su cuenta social GNU, copie el par de claves de consumidor aquí y escriba la dirección raíz de la API.
        Antes de registrar su propio par de claves OAuth, pregunte al administrador si ya hay un par de claves para esta instalación de Hubzilla en su instalación GNU social favorita."; +App::$strings["OAuth Consumer Key"] = "OAuth Consumer Key"; +App::$strings["OAuth Consumer Secret"] = "OAuth Consumer Secret"; +App::$strings["Base API Path"] = "Ruta base de la API"; +App::$strings["Remember the trailing /"] = "Recuerde la barra /"; +App::$strings["GNU social application name"] = "Nombre de la aplicación de GNU social"; +App::$strings["To connect to your GNU social account click the button below to get a security code from GNU social which you have to copy into the input box below and submit the form. Only your public posts will be posted to GNU social."] = "Para conectarse a su cuenta de GNU social, haga clic en el botón de abajo para obtener un código de seguridad de GNU social que tiene que copiar en el cuadro de entrada a continuación y envíe el formulario. Solo sus entradas públicas aparecerán en GNU social."; +App::$strings["Log in with GNU social"] = "Inicio de sesión en GNU social"; +App::$strings["Copy the security code from GNU social here"] = "Copiar aquí el código de seguridad de GNU social"; +App::$strings["Cancel Connection Process"] = "Cancelar el proceso de conexión"; +App::$strings["Current GNU social API is"] = "La API actual de GNU social es "; +App::$strings["Cancel GNU social Connection"] = "Cancelar la conexión de GNU social"; +App::$strings["Currently connected to: "] = "Actualmente está conectado a: "; +App::$strings["Note: Due your privacy settings (Hide your profile details from unknown viewers?) the link potentially included in public postings relayed to GNU social will lead the visitor to a blank page informing the visitor that the access to your profile has been restricted."] = "Aviso: Debido a su configuración de privacidad (Ocultar los detalles de su perfil a los visitantes desconocidos?) el vínculo potencialmente incluido en las entradas públicas retransmitidas a GNU social llevará al visitante a una página en blanco que le informará de que el acceso a su perfil ha sido restringido."; +App::$strings["Allow posting to GNU social"] = "Habilitar la publicación en GNU social"; +App::$strings["If enabled your public postings can be posted to the associated GNU-social account"] = "Si está habilitado, sus entradas públicas se pueden publicar en la cuenta GNU-social asociada"; +App::$strings["Post to GNU social by default"] = "Publicar en GNU social por defecto"; +App::$strings["If enabled your public postings will be posted to the associated GNU-social account by default"] = "Si está activado, sus entradas públicas se publicarán en la cuenta GNU-social asociada de forma predeterminada"; +App::$strings["Clear OAuth configuration"] = "Limpiar la configuración de OAuth"; +App::$strings["GNU social Post Settings"] = "Ajustes de publicación en GNU social"; +App::$strings["API URL"] = "URL de la API"; +App::$strings["Application name"] = "Nombre de la aplicación"; +App::$strings["Currently blocked"] = "Actualmente bloqueado"; +App::$strings["No channels currently blocked"] = "No hay canales bloqueados actualmente"; +App::$strings["\"Superblock\" Settings"] = "Ajustes de \"Superblock\""; +App::$strings["Block Completely"] = "Bloquear completamente"; +App::$strings["superblock settings updated"] = "se han actualizado los ajustes de superblock"; +App::$strings["Your account on %s will expire in a few days."] = "Su cuenta en %s caducará en unos pocos días."; +App::$strings["Your $Productname test account is about to expire."] = "Su cuenta de prueba de $Productname está a punto de caducar."; +App::$strings["Three Dimensional Tic-Tac-Toe"] = "Juego en 3D Tic-Tac-Toe"; +App::$strings["3D Tic-Tac-Toe"] = "3D Tic-Tac-Toe"; +App::$strings["New game"] = "Nuevo juego"; +App::$strings["New game with handicap"] = "Nuevo juego con hándicap"; +App::$strings["Three dimensional tic-tac-toe is just like the traditional game except that it is played on multiple levels simultaneously. "] = "El juego en 3D tic-tac-toe es como el juego tradicional, excepto que se juega en varios niveles simultáneamente."; +App::$strings["In this case there are three levels. You win by getting three in a row on any level, as well as up, down, and diagonally across the different levels."] = "En este caso hay tres niveles. Usted gana al conseguir tres en una fila en cualquier nivel, así como arriba, abajo, y en diagonal a través de los diferentes niveles."; +App::$strings["The handicap game disables the center position on the middle level because the player claiming this square often has an unfair advantage."] = "El juego con hándicap deshabilita la posición central en el nivel medio porque el jugador que reclama este cuadrado a menudo tiene una ventaja injusta."; +App::$strings["You go first..."] = "Usted va primero..."; +App::$strings["I'm going first this time..."] = "Yo voy primero esta vez..."; +App::$strings["You won!"] = "¡Usted ha ganado!"; +App::$strings["\"Cat\" game!"] = "¡El juego del \"gato\"!"; +App::$strings["I won!"] = "¡He ganado yo!"; +App::$strings["Edit your profile and change settings."] = "Editar su perfil y cambiar los ajustes."; +App::$strings["Click here to see activity from your connections."] = "Pulsar aquí para ver la actividad de sus conexiones."; +App::$strings["Click here to see your channel home."] = "Pulsar aquí para ver la página de inicio de su canal."; +App::$strings["You can access your private messages from here."] = "Puede acceder a sus mensajes privados desde aquí."; +App::$strings["Create new events here."] = "Crear nuevos eventos aquí."; +App::$strings["You can accept new connections and change permissions for existing ones here. You can also e.g. create groups of contacts."] = "Puede aceptar nuevas conexiones y cambiar permisos para las existentes aquí. También puede, por ejemplo, crear grupos de contactos."; +App::$strings["System notifications will arrive here"] = "Las notificaciones del sistema llegarán aquí"; +App::$strings["Search for content and users"] = "Buscar contenido y usuarios"; +App::$strings["Browse for new contacts"] = "Buscar nuevos contactos"; +App::$strings["Launch installed apps"] = "Iniciar aplicaciones instaladas"; +App::$strings["Looking for help? Click here."] = "¿Busca ayuda? Pulse aquí."; +App::$strings["New events have occurred in your network. Click here to see what has happened!"] = "Se han producido nuevos eventos en su red. ¡Haga clic aquí para ver lo que ha sucedido!"; +App::$strings["You have received a new private message. Click here to see from who!"] = "Ha recibido un nuevo mensaje privado. Haga clic aquí para ver de quién!"; +App::$strings["There are events this week. Click here too see which!"] = "Hay eventos esta semana. Haga clic aquí para ver cuáles!"; +App::$strings["You have received a new introduction. Click here to see who!"] = "Ha recibido una nueva solicitud de conexión. ¡Pulse aquí para ver de quién!"; +App::$strings["There is a new system notification. Click here to see what has happened!"] = "Hay una nueva notificación del sistema. ¡Haga clic aquí para ver lo que ha sucedido!"; +App::$strings["Click here to share text, images, videos and sound."] = "Haga clic aquí para compartir texto, imágenes, vídeos y sonido."; +App::$strings["You can write an optional title for your update (good for long posts)."] = "Puede escribir un título opcional para su actualización (bueno para los mensajes largos)."; +App::$strings["Entering some categories here makes it easier to find your post later."] = "Al ingresar algunos temas aquí, es más fácil encontrar su publicación más tarde."; +App::$strings["Share photos, links, location, etc."] = "Compartir fotos, enlaces, ubicación, etc."; +App::$strings["Only want to share content for a while? Make it expire at a certain date."] = "¿Solo quieres compartir contenido durante un tiempo? Haga que expire en una fecha determinada."; +App::$strings["You can password protect content."] = "Puede proteger contenido con una contraseña."; +App::$strings["Choose who you share with."] = "Elegir con quién compartir."; +App::$strings["Click here when you are done."] = "Haga clic aquí cuando haya terminado."; +App::$strings["Adjust from which channels posts should be displayed."] = "Ajustar de qué canales se deben mostrar las publicaciones."; +App::$strings["Only show posts from channels in the specified privacy group."] = "Mostrar solo las entradas de los canales de un grupo específico de canales."; +App::$strings["Easily find posts containing tags (keywords preceded by the \"#\" symbol)."] = "Encuentre fácilmente entradas que contengan etiquetas (palabras clave precedidas del símbolo \"#\")."; +App::$strings["Easily find posts in given category."] = "Encuentre fácilmente las publicaciones en una categoría dada."; +App::$strings["Easily find posts by date."] = "Encuentre fácilmente entradas por fechas."; +App::$strings["Suggested users who have volounteered to be shown as suggestions, and who we think you might find interesting."] = "Se sugiere a los usuarios que se han ofrecido voluntariamente que se muestren como sugerencias, y que creemos que podrían resultar interesantes."; +App::$strings["Here you see channels you have connected to."] = "Aquí puede ver los canales a los que está conectado."; +App::$strings["Save your search so you can repeat it at a later date."] = "Guarde su búsqueda para poder repetirla en una fecha posterior."; +App::$strings["If you see this icon you can be sure that the sender is who it say it is. It is normal that it is not always possible to verify the sender, so the icon will be missing sometimes. There is usually no need to worry about that."] = "Si ve este icono puede estar seguro de que el remitente es quien dice ser. Es normal que no siempre sea posible verificar el remitente, por lo que el icono faltará en ocasiones. Por lo general, no hay necesidad de preocuparse por eso."; +App::$strings["Danger! It seems someone tried to forge a message! This message is not necessarily from who it says it is from!"] = "¡Peligro! ¡Parece que alguien intentó falsificar un mensaje! ¡Este mensaje no es necesariamente de quien dice que es!"; +App::$strings["Welcome to Hubzilla! Would you like to see a tour of the UI?

        You can pause it at any time and continue where you left off by reloading the page, or navigting to another page.

        You can also advance by pressing the return key"] = "¡Bienvenido/a a Hubzilla! ¿Quiere hacer un recorrido por la interfaz de usuario?

        Puede detenerlo en cualquier momento y continuar donde lo dejó recargando la página o navegando a otra.

        También puede avanzar pulsando la tecla de retorno"; +App::$strings["Post to Twitter"] = "Publicar en Twitter"; +App::$strings["Twitter settings updated."] = "Se han actualizado los ajustes de Twitter."; +App::$strings["No consumer key pair for Twitter found. Please contact your site administrator."] = "No se encontró ningún par de \"consumer key\" para Twitter. Póngase en contacto con el administrador del sitio."; +App::$strings["At this Hubzilla instance the Twitter plugin was enabled but you have not yet connected your account to your Twitter account. To do so click the button below to get a PIN from Twitter which you have to copy into the input box below and submit the form. Only your public posts will be posted to Twitter."] = "En esta instancia de Hubzilla, el complemento de Twitter estaba habilitado pero aún no ha conectado su cuenta a la cuenta de Twitter. Para ello, haga clic en el botón de abajo, para obtener un PIN de Twitter que debe copiar en el cuadro de entrada a continuación y enviar el formulario. Solo sus entradas públicas se publicarán en Twitter."; +App::$strings["Log in with Twitter"] = "Iniciar sesión en Twitter"; +App::$strings["Copy the PIN from Twitter here"] = "Copiar aquí el PIN de Twitter"; +App::$strings["Note: Due your privacy settings (Hide your profile details from unknown viewers?) the link potentially included in public postings relayed to Twitter will lead the visitor to a blank page informing the visitor that the access to your profile has been restricted."] = "Aviso: Debido a su configuración de privacidad (Ocultar los detalles de su perfil a los visitantes desconocidos?), el enlace potencialmente incluido en las entradas públicas retransmitidas a Twitter llevará al visitante a una página en blanco informándolo de que el acceso a su perfil ha sido restringido."; +App::$strings["Allow posting to Twitter"] = "Permitir la publicación en Twitter"; +App::$strings["If enabled your public postings can be posted to the associated Twitter account"] = "Si está activado, sus entradas públicas se pueden publicar en la cuenta de Twitter asociada"; +App::$strings["Send public postings to Twitter by default"] = "Enviar mensajes públicos a Twitter de forma predeterminada"; +App::$strings["If enabled your public postings will be posted to the associated Twitter account by default"] = "Si está activado, sus entradas públicas se publicarán en la cuenta de Twitter asociada de forma predeterminada."; +App::$strings["Twitter Post Settings"] = "Ajustes de publicación en Twitter"; +App::$strings["Submit Settings"] = "Enviar los ajustes"; +App::$strings["Show Upload Limits"] = "Mostrar los límites de subida"; +App::$strings["Hubzilla configured maximum size: "] = "Tamaño máximo configurado por Hubzilla: "; +App::$strings["PHP upload_max_filesize: "] = "PHP upload_max_filesize: "; +App::$strings["PHP post_max_size (must be larger than upload_max_filesize): "] = "PHP post_max_size (debe ser mayor que upload_max_filesize): "; +App::$strings["Recent Channel/Profile Viewers"] = "Visitantes recientes del canal o perfil"; +App::$strings["This plugin/addon has not been configured."] = "El plugin o complemento no se ha configurado."; +App::$strings["Please visit the Visage settings on %s"] = "Por favor, revise los ajustes de Visage en %s"; +App::$strings["your feature settings page"] = "su página de ajustes de las funcionalidades"; +App::$strings["No entries."] = "No hay entradas."; +App::$strings["Enable Visage Visitor Logging"] = "Habilitar el registro de visitantes de Visage"; +App::$strings["Visage Settings"] = "Ajustes de Visage"; +App::$strings["Who likes me?"] = "¿A quién le gusto?"; +App::$strings["Post to WordPress"] = "Publicar en WordPress"; +App::$strings["Enable WordPress Post Plugin"] = "Habilitar el plugin de publicación en WordPress"; +App::$strings["WordPress username"] = "Nombre de usuario de WordPress"; +App::$strings["WordPress password"] = "Contraseña de WordPress"; +App::$strings["WordPress API URL"] = "URL de la API de WordPress"; +App::$strings["Typically https://your-blog.tld/xmlrpc.php"] = "Habitualmente https://your-blog.tld/xmlrpc.php"; +App::$strings["WordPress blogid"] = "Blog de WordPress"; +App::$strings["For multi-user sites such as wordpress.com, otherwise leave blank"] = "Para sitios multiusuario como wordpress.com, de lo contrario, dejar en blanco"; +App::$strings["Post to WordPress by default"] = "Publicar en WordPress por defecto"; +App::$strings["Forward comments (requires hubzilla_wp plugin)"] = "Reenviar comentarios (requerido por el plugin hubzilla_wp)"; +App::$strings["WordPress Post Settings"] = "Ajustes de publicación en WordPress"; +App::$strings["Wordpress Settings saved."] = "Se han guardado los ajustes de WordPress."; +App::$strings["XMPP settings updated."] = "Se han actualizado los ajustes de XMPP."; +App::$strings["Enable Chat"] = "Habilitar el chat"; +App::$strings["Individual credentials"] = "Credenciales individuales"; +App::$strings["Jabber BOSH server"] = "Servidor BOSH de Jabber"; +App::$strings["XMPP Settings"] = "Ajustes de XMPP"; +App::$strings["Jabber BOSH host"] = "BOSH de Jabber"; +App::$strings["Use central userbase"] = "Usar la base de usuarios central"; +App::$strings["If enabled, members will automatically login to an ejabberd server that has to be installed on this machine with synchronized credentials via the \"auth_ejabberd.php\" script."] = "Si está habilitado, los miembros se conectarán automáticamente a un servidor ejabberd que debe instalarse en esta máquina con credenciales sincronizadas a través del script \"auth ejabberd.php\"."; +App::$strings["Select Channel"] = "Seleccionar un canal"; +App::$strings["Read-write"] = "Lectura y escritura"; +App::$strings["Read-only"] = "Sólo lectura"; +App::$strings["My Calendars"] = "Mis calendarios"; +App::$strings["Shared Calendars"] = "Calendarios compartidos"; +App::$strings["Share this calendar"] = "Compartir este calendario"; +App::$strings["Calendar name and color"] = "Nombre y color del calendario"; +App::$strings["Create new calendar"] = "Crear un nuevo calendario"; +App::$strings["Calendar Name"] = "Nombre del calendario"; +App::$strings["Calendar Tools"] = "Gestión de calendarios"; +App::$strings["Import calendar"] = "Importar un calendario"; +App::$strings["Select a calendar to import to"] = "Seleccionar un calendario para importarlo"; +App::$strings["Addressbooks"] = "Agenda de direcciones"; +App::$strings["Addressbook name"] = "Nombre de la agenda"; +App::$strings["Create new addressbook"] = "Crear una nueva agenda de direcciones"; +App::$strings["Addressbook Name"] = "Nombre de la agenda"; +App::$strings["Addressbook Tools"] = "Gestión de agendas de direcciones"; +App::$strings["Import addressbook"] = "Importar una agenda de direcciones"; +App::$strings["Select an addressbook to import to"] = "Seleccionar una agenda para importarla"; +App::$strings["Errors encountered creating database table: "] = "Errores encontrados al crear la tabla de la base de datos: "; +App::$strings["Default Calendar"] = "Calendario por defecto"; +App::$strings["Default Addressbook"] = "Agenda de direcciones por defecto"; +App::$strings["CalDAV/CardDAV Settings saved."] = "Se ha guardado la configuración de CalDAV/CardDAV."; +App::$strings["Enable CalDAV/CardDAV Server for this channel"] = "Habilitar el servidor CalDAV/CardDAV para este canal"; +App::$strings["Your CalDAV resources are located at %s "] = "Los recursos de CalDAV se encuentran en %s"; +App::$strings["Your CardDAV resources are located at %s "] = "Sus recursos de CalDAV están localizados en %s "; +App::$strings["CalDAV/CardDAV Settings"] = "Configuración de CalDAV/CardDAV"; +App::$strings["Mobile"] = "Móvil"; +App::$strings["Home"] = "Inicio"; +App::$strings["Home, Voice"] = "Llamadas particulares"; +App::$strings["Home, Fax"] = "Fax particular"; +App::$strings["Work"] = "Trabajo"; +App::$strings["Work, Voice"] = "Llamadas de trabajo"; +App::$strings["Work, Fax"] = "Fax de trabajo"; +App::$strings["INVALID EVENT DISMISSED!"] = "¡EVENTO NO VÁLIDO RECHAZADO!"; +App::$strings["Summary: "] = "Resumen: "; +App::$strings["Date: "] = "Fecha: "; +App::$strings["Reason: "] = "Razón: "; +App::$strings["INVALID CARD DISMISSED!"] = "¡TARJETA NO VÁLIDA RECHAZADA!"; +App::$strings["Name: "] = "Nombre: "; +App::$strings["You have to enable this plugin in Feature/Addon Settings > CalDAV/CardDAV Settings before you can use it."] = "Debe habilitar este complemento en Ajustes/Complementos>Configuración de CalDAV/CardDAV antes de poder utilizarlo."; +App::$strings["Example: YYYY-MM-DD HH:mm"] = "Ejemplo: YYYY-MM-DD HH:mm"; +App::$strings["End date and time"] = "Fecha y hora de finalización"; +App::$strings["List month"] = "Lista mensual"; +App::$strings["List week"] = "Lista semanal"; +App::$strings["List day"] = "Lista diaria"; +App::$strings["More"] = "Más"; +App::$strings["Less"] = "Menos"; +App::$strings["Select calendar"] = "Seleccionar un calendario"; +App::$strings["Delete all"] = "Eliminar todos"; +App::$strings["Sorry! Editing of recurrent events is not yet implemented."] = "¡Disculpas! La edición de eventos recurrentes aún no se ha implementado."; +App::$strings["Organisation"] = "Organización"; +App::$strings["Title"] = "Título"; +App::$strings["Phone"] = "Teléfono"; +App::$strings["Instant messenger"] = "Mensajería instantánea"; +App::$strings["Website"] = "Sitio web"; +App::$strings["Note"] = "Nota"; +App::$strings["Add Field"] = "Añadir un campo"; +App::$strings["P.O. Box"] = "Buzón de correos"; +App::$strings["Additional"] = "Adicional"; +App::$strings["Street"] = "Calle"; +App::$strings["Locality"] = "Localidad"; +App::$strings["Region"] = "Provincia, región o estado"; +App::$strings["ZIP Code"] = "Código postal"; +App::$strings["Invalid game."] = "Juego no válido."; +App::$strings["You are not a player in this game."] = "Usted no participa en este juego."; +App::$strings["You must be a local channel to create a game."] = "Debe ser un canal local para crear un juego"; +App::$strings["You must select one opponent that is not yourself."] = "Debe seleccionar un oponente que no sea usted mismo."; +App::$strings["Creating new game..."] = "Crear un nuevo juego..."; +App::$strings["You must select white or black."] = "Debe elegir blancas o negras."; +App::$strings["Error creating new game."] = "Error al crear un nuevo juego."; +App::$strings["Requested channel is not available."] = "El canal solicitado no está disponible."; +App::$strings["You must select a local channel /chess/channelname"] = "Debe seleccionar un canal local /chess/nombredelcanal"; +App::$strings["Enable notifications"] = "Habilitar notificaciones"; +App::$strings["Your Webbie:"] = "Su webbie: "; +App::$strings["Fontsize (px):"] = "Tamaño de fuente (px): "; +App::$strings["Link:"] = "Enlace: "; +App::$strings["Like us on Hubzilla"] = "Múestrenos su agrado en Hubzilla"; +App::$strings["Embed:"] = "Incorporado: "; +App::$strings["Male"] = "Hombre"; +App::$strings["Female"] = "Mujer"; +App::$strings["OpenID protocol error. No ID returned."] = "Error de protocolo OpenID. No se recuperó ninguna ID."; +App::$strings["Login failed."] = "El acceso ha fallado."; +App::$strings["First Name"] = "Nombre"; +App::$strings["Last Name"] = "Apellido"; +App::$strings["Full Name"] = "Nombre completo"; +App::$strings["Profile Photo 16px"] = "Foto del perfil 16px"; +App::$strings["Profile Photo 32px"] = "Foto del perfil 32px"; +App::$strings["Profile Photo 48px"] = "Foto del perfil 48px"; +App::$strings["Profile Photo 64px"] = "Foto del perfil 64px"; +App::$strings["Profile Photo 80px"] = "Foto del perfil 80px"; +App::$strings["Profile Photo 128px"] = "Foto del perfil 128px"; +App::$strings["Timezone"] = "Zona horaria"; +App::$strings["Birth Year"] = "Año de nacimiento"; +App::$strings["Birth Month"] = "Mes de nacimiento"; +App::$strings["Birth Day"] = "Día de nacimiento"; +App::$strings["Birthdate"] = "Fecha de nacimiento"; +App::$strings["We encountered a problem while logging in with the OpenID you provided. Please check the correct spelling of the ID."] = "Encontramos un problema al iniciar sesión con el OpenID que proporcionó. Compruebe si el ID está correctamente escrito."; +App::$strings["The error message was:"] = "El mensaje de error ha sido: "; +App::$strings["Reconnecting %d connections"] = "Reconectando %d conexiones"; +App::$strings["Diaspora Reconnect"] = "Reconectar con Diaspora"; +App::$strings["Use this form to re-establish Diaspora connections which were initially made from a different hub."] = "Utilice este formulario para restablecer las conexiones de diáspora que se hicieron inicialmente desde un hub diferente."; +App::$strings["Reconnect"] = "Reconectar"; +App::$strings["Send test email"] = "Enviar un correo electrónico de prueba"; +App::$strings["Mail sent."] = "El correo electrónico ha sido enviado."; +App::$strings["Sending of mail failed."] = "No se pudo enviar el correo."; +App::$strings["Mail Test"] = "Prueba de correo"; +App::$strings["Errors encountered deleting database table "] = "Errores encontrados al eliminar la tabla de la base de datos"; +App::$strings["Drop tables when uninstalling?"] = "¿Eliminar tablas al desinstalar?"; +App::$strings["If checked, the Rendezvous database tables will be deleted when the plugin is uninstalled."] = "Si se selecciona, las tablas de la base de datos Rendezvous se eliminarán cuando se desinstale el plugin."; +App::$strings["Mapbox Access Token"] = "Token de acceso de Mapbox"; +App::$strings["If you enter a Mapbox access token, it will be used to retrieve map tiles from Mapbox instead of the default OpenStreetMap tile server."] = "Si introduce un token de acceso a Mapbox, se utilizará para recuperar los mapas de mosaicos de imágenes de Mapbox en lugar del servidor de mosaico de imágenes OpenStreetMap predeterminado."; +App::$strings["Rendezvous"] = "Rendezvous"; +App::$strings["This identity has been deleted by another member due to inactivity. Please press the \"New identity\" button or refresh the page to register a new identity. You may use the same name."] = "Esta identidad ha sido eliminada por otro miembro debido a su inactividad. Pulse el botón \"Nueva identidad\" o actualice la página para registrar una nueva identidad. Puede usar el mismo nombre."; +App::$strings["Welcome to Rendezvous!"] = "¡Bienvenido/a a Rendevous!"; +App::$strings["Enter your name to join this rendezvous. To begin sharing your location with the other members, tap the GPS control. When your location is discovered, a red dot will appear and others will be able to see you on the map."] = "Introduzca tu nombre para unirse a esta cita. Para comenzar a compartir su ubicación con los demás miembros, pulse en el control GPS. Cuando se descubra su ubicación, aparecerá un punto rojo y otros podrán verlo en el mapa."; +App::$strings["Let's meet here"] = "Reunámonos aquí"; +App::$strings["New marker"] = "Nuevo marcador"; +App::$strings["Edit marker"] = "Editar un marcador"; +App::$strings["New identity"] = "Nueva identidad"; +App::$strings["Delete marker"] = "Eliminar un marcador"; +App::$strings["Delete member"] = "Eliminar un miembro"; +App::$strings["Edit proximity alert"] = "Editar alerta de proximidad"; +App::$strings["A proximity alert will be issued when this member is within a certain radius of you.

        Enter a radius in meters (0 to disable):"] = "Se emitirá una alerta de proximidad cuando este miembro esté dentro de un radio determinado respecto a usted.

        Ingrese el radio en metros (0 para deshabilitar):"; +App::$strings["distance"] = "distancia"; +App::$strings["Add new rendezvous"] = "Añadir una nueva cita"; +App::$strings["Create a new rendezvous and share the access link with those you wish to invite to the group. Those who open the link become members of the rendezvous. They can view other member locations, add markers to the map, or share their own locations with the group."] = "Cree una nueva cita y comparta los enlaces de acceso con los que desea invitar al grupo. Aquellos que abran el enlace se convertirán en miembros de la cita. Pueden ver otras ubicaciones de miembros, añadir marcadores al mapa o compartir sus propias ubicaciones con el grupo."; App::$strings["No username found in import file."] = "No se ha encontrado el nombre de usuario en el fichero importado."; App::$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."; App::$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”"; -App::$strings["Can view my normal stream and posts"] = "Pueden verse mi actividad y publicaciones normales"; -App::$strings["Can view my webpages"] = "Pueden verse mis páginas web"; -App::$strings["Can post on my channel page (\"wall\")"] = "Pueden crearse entradas en mi página de inicio del canal (“muro”)"; -App::$strings["Can like/dislike stuff"] = "Puede marcarse contenido como me gusta/no me gusta"; -App::$strings["Profiles and things other than posts/comments"] = "Perfiles y otras cosas aparte de publicaciones/comentarios"; -App::$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"; -App::$strings["Advanced - useful for creating group forum channels"] = "Avanzado - útil para crear canales de foros de discusión o grupos"; -App::$strings["Can chat with me (when available)"] = "Se puede charlar conmigo (cuando esté disponible)"; -App::$strings["Can write to my file storage and photos"] = "Puede escribirse en mi repositorio de ficheros y fotos"; -App::$strings["Can edit my webpages"] = "Pueden editarse mis páginas web"; -App::$strings["Somewhat advanced - very useful in open communities"] = "Algo avanzado - muy útil en comunidades abiertas"; -App::$strings["Can administer my channel resources"] = "Pueden administrarse mis recursos del canal"; -App::$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."; -App::$strings["Image exceeds website size limit of %lu bytes"] = "La imagen excede el límite de %lu bytes del sitio"; -App::$strings["Image file is empty."] = "El fichero de imagen está vacío. "; -App::$strings["Photo storage failed."] = "La foto no ha podido ser guardada."; -App::$strings["a new photo"] = "una nueva foto"; -App::$strings["__ctx:photo_upload__ %1\$s posted %2\$s to %3\$s"] = "%1\$s ha publicado %2\$s en %3\$s"; -App::$strings["Photo Albums"] = "Álbumes de fotos"; -App::$strings["Upload New Photos"] = "Subir nuevas fotos"; -App::$strings["General Features"] = "Funcionalidades básicas"; -App::$strings["Multiple Profiles"] = "Múltiples perfiles"; -App::$strings["Ability to create multiple profiles"] = "Capacidad de crear múltiples perfiles"; -App::$strings["Advanced Profiles"] = "Perfiles avanzados"; -App::$strings["Additional profile sections and selections"] = "Secciones y selecciones de perfil adicionales"; -App::$strings["Profile Import/Export"] = "Importar/Exportar perfil"; -App::$strings["Save and load profile details across sites/channels"] = "Guardar y cargar detalles del perfil a través de sitios/canales"; -App::$strings["Web Pages"] = "Páginas web"; -App::$strings["Provide managed web pages on your channel"] = "Proveer páginas web gestionadas en su canal"; -App::$strings["Provide a wiki for your channel"] = "Proporcionar un wiki para su canal"; -App::$strings["Private Notes"] = "Notas privadas"; -App::$strings["Enables a tool to store notes and reminders (note: not encrypted)"] = "Habilita una herramienta para guardar notas y recordatorios (advertencia: las notas no estarán cifradas)"; -App::$strings["Navigation Channel Select"] = "Navegación por el selector de canales"; -App::$strings["Change channels directly from within the navigation dropdown menu"] = "Cambiar de canales directamente desde el menú de navegación desplegable"; -App::$strings["Photo Location"] = "Ubicación de las fotos"; -App::$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."; -App::$strings["Access Controlled Chatrooms"] = "Salas de chat moderadas"; -App::$strings["Provide chatrooms and chat services with access control."] = "Proporcionar salas y servicios de chat moderados."; -App::$strings["Smart Birthdays"] = "Cumpleaños inteligentes"; -App::$strings["Make birthday events timezone aware in case your friends are scattered across the planet."] = "Enlazar los eventos de cumpleaños con el huso horario en el caso de que sus amigos estén dispersos por el mundo."; -App::$strings["Advanced Directory Search"] = "Búsqueda avanzada en el directorio"; -App::$strings["Allows creation of complex directory search queries"] = "Permitir la creación de consultas complejas en las búsquedas en el directorio"; -App::$strings["Advanced Theme and Layout Settings"] = "Ajustes avanzados de temas y esquemas"; -App::$strings["Allows fine tuning of themes and page layouts"] = "Permitir el ajuste fino de temas y esquemas de páginas"; -App::$strings["Post Composition Features"] = "Opciones para la redacción de entradas"; -App::$strings["Large Photos"] = "Fotos de gran tamaño"; -App::$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 (640px)"; -App::$strings["Automatically import channel content from other channels or feeds"] = "Importar automáticamente contenido de otros canales o \"feeds\""; -App::$strings["Even More Encryption"] = "Más cifrado todavía"; -App::$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."; -App::$strings["Enable Voting Tools"] = "Permitir entradas con votación"; -App::$strings["Provide a class of post which others can vote on"] = "Proveer una clase de publicación en la que otros puedan votar"; -App::$strings["Disable Comments"] = "Deshabilitar comentarios"; -App::$strings["Provide the option to disable comments for a post"] = "Proporcionar la opción de desactivar los comentarios de una publicación"; -App::$strings["Delayed Posting"] = "Publicación aplazada"; -App::$strings["Allow posts to be published at a later date"] = "Permitir mensajes que se publicarán en una fecha posterior"; -App::$strings["Content Expiration"] = "Caducidad del contenido"; -App::$strings["Remove posts/comments and/or private messages at a future time"] = "Eliminar publicaciones/comentarios y/o mensajes privados más adelante"; -App::$strings["Suppress Duplicate Posts/Comments"] = "Prevenir entradas o comentarios duplicados"; -App::$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."; -App::$strings["Network and Stream Filtering"] = "Filtrado del contenido"; -App::$strings["Search by Date"] = "Buscar por fecha"; -App::$strings["Ability to select posts by date ranges"] = "Capacidad de seleccionar entradas por rango de fechas"; -App::$strings["Privacy Groups"] = "Grupos de canales"; -App::$strings["Enable management and selection of privacy groups"] = "Activar la gestión y selección de grupos de canales"; -App::$strings["Saved Searches"] = "Búsquedas guardadas"; -App::$strings["Save search terms for re-use"] = "Guardar términos de búsqueda para su reutilización"; -App::$strings["Network Personal Tab"] = "Actividad personal"; -App::$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."; -App::$strings["Network New Tab"] = "Contenido nuevo"; -App::$strings["Enable tab to display all new Network activity"] = "Habilitar una pestaña en la que se muestre solo el contenido nuevo"; -App::$strings["Affinity Tool"] = "Herramienta de afinidad"; -App::$strings["Filter stream activity by depth of relationships"] = "Filtrar el contenido según la profundidad de las relaciones"; -App::$strings["Show friend and connection suggestions"] = "Mostrar sugerencias de amigos y conexiones"; -App::$strings["Connection Filtering"] = "Filtrado de conexiones"; -App::$strings["Filter incoming posts from connections based on keywords/content"] = "Filtrar publicaciones entrantes de conexiones por palabras clave o contenido"; -App::$strings["Post/Comment Tools"] = "Gestión de entradas y comentarios"; -App::$strings["Community Tagging"] = "Etiquetas de la comunidad"; -App::$strings["Ability to tag existing posts"] = "Capacidad de etiquetar entradas existentes"; -App::$strings["Post Categories"] = "Temas de las entradas"; -App::$strings["Add categories to your posts"] = "Añadir temas a sus publicaciones"; -App::$strings["Emoji Reactions"] = "Emoticonos \"emoji\""; -App::$strings["Add emoji reaction ability to posts"] = "Activar la capacidad de añadir un emoticono \"emoji\" a las entradas"; -App::$strings["Saved Folders"] = "Carpetas guardadas"; -App::$strings["Ability to file posts under folders"] = "Capacidad de archivar entradas en carpetas"; -App::$strings["Dislike Posts"] = "Desagrado de publicaciones"; -App::$strings["Ability to dislike posts/comments"] = "Capacidad de mostrar desacuerdo con el contenido de entradas y comentarios"; -App::$strings["Star Posts"] = "Entradas destacadas"; -App::$strings["Ability to mark special posts with a star indicator"] = "Capacidad de marcar entradas destacadas con un indicador de estrella"; -App::$strings["Tag Cloud"] = "Nube de etiquetas"; -App::$strings["Provide a personal tag cloud on your channel page"] = "Proveer nube de etiquetas personal en su página de canal"; -App::$strings["Premium Channel"] = "Canal premium"; -App::$strings["Allows you to set restrictions and terms on those that connect with your channel"] = "Le permite configurar restricciones y normas de uso a aquellos que conectan con su canal"; -App::$strings["Help:"] = "Ayuda:"; -App::$strings["guest:"] = "invitado: "; -App::$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"; -App::$strings["prev"] = "anterior"; -App::$strings["first"] = "primera"; -App::$strings["last"] = "última"; -App::$strings["next"] = "próxima"; -App::$strings["older"] = "más antiguas"; -App::$strings["newer"] = "más recientes"; -App::$strings["No connections"] = "Sin conexiones"; -App::$strings["View all %s connections"] = "Ver todas las %s conexiones"; -App::$strings["poke"] = "un toque"; -App::$strings["poked"] = "ha dado un toque a"; -App::$strings["ping"] = "un \"ping\""; -App::$strings["pinged"] = "ha enviado un \"ping\" a"; -App::$strings["prod"] = "una incitación "; -App::$strings["prodded"] = "ha incitado a "; -App::$strings["slap"] = "una bofetada "; -App::$strings["slapped"] = "ha abofeteado a "; -App::$strings["finger"] = "un \"finger\" "; -App::$strings["fingered"] = "envió un \"finger\" a"; -App::$strings["rebuff"] = "un reproche"; -App::$strings["rebuffed"] = "ha hecho un reproche a "; -App::$strings["happy"] = "feliz "; -App::$strings["sad"] = "triste "; -App::$strings["mellow"] = "tranquilo/a"; -App::$strings["tired"] = "cansado/a "; -App::$strings["perky"] = "vivaz"; -App::$strings["angry"] = "enfadado/a"; -App::$strings["stupefied"] = "asombrado/a"; -App::$strings["puzzled"] = "perplejo/a"; -App::$strings["interested"] = "interesado/a"; -App::$strings["bitter"] = "amargado/a"; -App::$strings["cheerful"] = "alegre"; -App::$strings["alive"] = "animado/a"; -App::$strings["annoyed"] = "molesto/a"; -App::$strings["anxious"] = "ansioso/a"; -App::$strings["cranky"] = "de mal humor"; -App::$strings["disturbed"] = "perturbado/a"; -App::$strings["frustrated"] = "frustrado/a"; -App::$strings["depressed"] = "deprimido/a"; -App::$strings["motivated"] = "motivado/a"; -App::$strings["relaxed"] = "relajado/a"; -App::$strings["surprised"] = "sorprendido/a"; -App::$strings["Monday"] = "lunes"; -App::$strings["Tuesday"] = "martes"; -App::$strings["Wednesday"] = "miércoles"; -App::$strings["Thursday"] = "jueves"; -App::$strings["Friday"] = "viernes"; -App::$strings["Saturday"] = "sábado"; -App::$strings["Sunday"] = "domingo"; -App::$strings["January"] = "enero"; -App::$strings["February"] = "febrero"; -App::$strings["March"] = "marzo"; -App::$strings["April"] = "abril"; -App::$strings["May"] = "mayo"; -App::$strings["June"] = "junio"; -App::$strings["July"] = "julio"; -App::$strings["August"] = "agosto"; -App::$strings["September"] = "septiembre"; -App::$strings["October"] = "octubre"; -App::$strings["November"] = "noviembre"; -App::$strings["December"] = "diciembre"; -App::$strings["Unknown Attachment"] = "Adjunto no reconocido"; -App::$strings["unknown"] = "desconocido"; -App::$strings["remove category"] = "eliminar el tema"; -App::$strings["remove from file"] = "eliminar del fichero"; -App::$strings["default"] = "por defecto"; -App::$strings["Page layout"] = "Plantilla de la página"; -App::$strings["You can create your own with the layouts tool"] = "Puede crear su propia disposición gráfica con la herramienta de plantillas"; -App::$strings["Page content type"] = "Tipo de contenido de la página"; -App::$strings["Select an alternate language"] = "Seleccionar un idioma alternativo"; -App::$strings["activity"] = "la actividad"; -App::$strings["Design Tools"] = "Herramientas de diseño web"; -App::$strings["Pages"] = "Páginas"; -App::$strings["Import website..."] = "Importar un sitio web..."; -App::$strings["Select folder to import"] = "Seleccionar la carpeta que se va a importar"; -App::$strings["Import from a zipped folder:"] = "Importar desde una carpeta comprimida: "; -App::$strings["Import from cloud files:"] = "Importar desde los ficheros en la nube: "; -App::$strings["/cloud/channel/path/to/folder"] = "/cloud/canal/ruta/a la/carpeta"; -App::$strings["Enter path to website files"] = "Ruta a los ficheros del sitio web"; -App::$strings["Select folder"] = "Seleccionar la carpeta"; -App::$strings["Export website..."] = "Exportar un sitio web..."; -App::$strings["Export to a zip file"] = "Exportar a un fichero comprimido .zip"; -App::$strings["website.zip"] = "sitio_web.zip"; -App::$strings["Enter a name for the zip file."] = "Escribir un nombre para el fichero .zip."; -App::$strings["Export to cloud files"] = "Exportar a los ficheros en la nube"; -App::$strings["/path/to/export/folder"] = "/ruta/para/exportar/carpeta"; -App::$strings["Enter a path to a cloud files destination."] = "Escribir una ruta de destino para los ficheros en la nube"; -App::$strings["Specify folder"] = "Especificar una carpeta"; -App::$strings["Invalid data packet"] = "Paquete de datos no válido"; -App::$strings["Unable to verify channel signature"] = "No ha sido posible de verificar la firma del canal"; -App::$strings["Unable to verify site signature for %s"] = "No ha sido posible de verificar la firma del sitio para %s"; -App::$strings["invalid target signature"] = "La firma recibida no es válida"; +App::$strings["Birthday"] = "Cumpleaños"; +App::$strings["Age: "] = "Edad:"; +App::$strings["YYYY-MM-DD or MM-DD"] = "AAAA-MM-DD o MM-DD"; +App::$strings["never"] = "nunca"; +App::$strings["less than a second ago"] = "hace un instante"; +App::$strings["__ctx:e.g. 22 hours ago, 1 minute ago__ %1\$d %2\$s ago"] = "hace %1\$d %2\$s"; +App::$strings["__ctx:relative_date__ year"] = array( + 0 => "año", + 1 => "años", +); +App::$strings["__ctx:relative_date__ month"] = array( + 0 => "mes", + 1 => "meses", +); +App::$strings["__ctx:relative_date__ week"] = array( + 0 => "semana", + 1 => "semanas", +); +App::$strings["__ctx:relative_date__ day"] = array( + 0 => "día", + 1 => "días", +); +App::$strings["__ctx:relative_date__ hour"] = array( + 0 => "hora", + 1 => "horas", +); +App::$strings["__ctx:relative_date__ minute"] = array( + 0 => "minuto", + 1 => "minutos", +); +App::$strings["__ctx:relative_date__ second"] = array( + 0 => "segundo", + 1 => "segundos", +); +App::$strings["%1\$s's birthday"] = "Cumpleaños de %1\$s"; +App::$strings["Happy Birthday %1\$s"] = "Feliz cumpleaños %1\$s"; App::$strings["Not a valid email address"] = "Dirección de correo no válida"; App::$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."; App::$strings["Your email address is already registered at this site."] = "Su dirección de correo está ya registrada en este sitio."; @@ -1795,7 +2345,6 @@ App::$strings["Please enter the required information."] = "Por favor introduzca App::$strings["Failed to store account information."] = "La información de la cuenta no se ha podido guardar."; App::$strings["Registration confirmation for %s"] = "Confirmación de registro para %s"; App::$strings["Registration request at %s"] = "Solicitud de registro en %s"; -App::$strings["Administrator"] = "Administrador"; App::$strings["your registration password"] = "su contraseña de registro"; App::$strings["Registration details for %s"] = "Detalles del registro de %s"; App::$strings["Account approved."] = "Cuenta aprobada."; @@ -1803,18 +2352,12 @@ App::$strings["Registration revoked for %s"] = "Registro revocado para %s"; App::$strings["Click here to upgrade."] = "Pulse aquí para actualizar"; App::$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 "; App::$strings["This action is not available under your subscription plan."] = "Esta acción no está disponible en su plan de suscripción."; -App::$strings["No recipient provided."] = "No se ha especificado ningún destinatario."; -App::$strings["[no subject]"] = "[sin asunto]"; -App::$strings["Unable to determine sender."] = "No ha sido posible determinar el remitente. "; -App::$strings["Stored post could not be verified."] = "No se han podido verificar las publicaciones guardadas."; App::$strings["Frequently"] = "Frecuentemente"; App::$strings["Hourly"] = "Cada hora"; App::$strings["Twice daily"] = "Dos veces al día"; App::$strings["Daily"] = "Diariamente"; App::$strings["Weekly"] = "Semanalmente"; App::$strings["Monthly"] = "Mensualmente"; -App::$strings["Male"] = "Hombre"; -App::$strings["Female"] = "Mujer"; App::$strings["Currently Male"] = "Actualmente hombre"; App::$strings["Currently Female"] = "Actualmente mujer"; App::$strings["Mostly Male"] = "Generalmente hombre"; @@ -1878,12 +2421,9 @@ App::$strings["Reserved nickname. Please choose another."] = "Sobrenombre en uso App::$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 miembros de este sitio."; App::$strings["Unable to retrieve created identity"] = "No ha sido posible recuperar la identidad creada"; App::$strings["Default Profile"] = "Perfil principal"; -App::$strings["Requested channel is not available."] = "El canal solicitado no está disponible."; App::$strings["Create New Profile"] = "Crear un nuevo perfil"; -App::$strings["Edit Profile"] = "Editar el perfil"; App::$strings["Visible to everybody"] = "Visible para todos"; App::$strings["Gender:"] = "Género:"; -App::$strings["Status:"] = "Estado:"; App::$strings["Homepage:"] = "Página personal:"; App::$strings["Online Now"] = "Ahora en línea"; App::$strings["Like this channel"] = "Me gusta este canal"; @@ -1908,29 +2448,15 @@ App::$strings["Love/Romance:"] = "Vida sentimental o amorosa:"; App::$strings["Work/employment:"] = "Trabajo:"; App::$strings["School/education:"] = "Estudios:"; App::$strings["Like this thing"] = "Me gusta esto"; -App::$strings["Who can see this?"] = "¿Quién puede ver esto?"; -App::$strings["Custom selection"] = "Selección personalizada"; -App::$strings["Select \"Show\" to allow viewing. \"Don't show\" lets you override and limit the scope of \"Show\"."] = "Seleccione \"Mostrar\" para permitir la visualización. La opción \"No mostrar\" le permite anular y limitar el alcance de \"Mostrar\"."; -App::$strings["Show"] = "Mostrar"; -App::$strings["Don't show"] = "No mostrar"; -App::$strings["Post permissions %s cannot be changed %s after a post is shared.
        These permissions set who is allowed to view the post."] = "Los permisos de la entrada %s no se pueden cambiar %s una vez que se ha compartido.
        Estos permisos establecen quién está autorizado para ver el mensaje."; -App::$strings["%1\$s's bookmarks"] = "Marcadores de %1\$s"; -App::$strings["A deleted group with this name was revived. Existing item permissions may 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. Es posible 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."; -App::$strings["Add new connections to this privacy group"] = "Añadir conexiones nuevas a este grupo de canales"; -App::$strings["edit"] = "editar"; -App::$strings["Edit group"] = "Editar grupo"; -App::$strings["Add privacy group"] = "Añadir un grupo de canales"; -App::$strings["Channels not in any privacy group"] = "Sin canales en ningún grupo"; -App::$strings["add"] = "añadir"; App::$strings["New window"] = "Nueva ventana"; App::$strings["Open the selected location in a different window or browser tab"] = "Abrir la dirección seleccionada en una ventana o pestaña aparte"; App::$strings["User '%s' deleted"] = "El usuario '%s' ha sido eliminado"; -App::$strings["New Page"] = "Nueva página"; -App::$strings["Title"] = "Título"; -App::$strings["Different viewers will see this text differently"] = "Visitantes diferentes verán este texto de forma distinta"; +App::$strings["Directory Options"] = "Opciones del directorio"; +App::$strings["Safe Mode"] = "Modo seguro"; +App::$strings["Public Forums Only"] = "Solo foros públicos"; +App::$strings["This Website Only"] = "Solo este sitio web"; App::$strings["Logout"] = "Finalizar sesión"; App::$strings["End this session"] = "Finalizar esta sesión"; -App::$strings["Home"] = "Inicio"; App::$strings["Your posts and conversations"] = "Sus publicaciones y conversaciones"; App::$strings["Your profile page"] = "Su página del perfil"; App::$strings["Manage/Edit profiles"] = "Administrar/editar perfiles"; @@ -1941,12 +2467,12 @@ App::$strings["Your chatrooms"] = "Sus salas de chat"; App::$strings["Bookmarks"] = "Marcadores"; App::$strings["Your bookmarks"] = "Sus marcadores"; App::$strings["Your webpages"] = "Sus páginas web"; -App::$strings["Your wiki"] = "Su wiki"; +App::$strings["Your wikis"] = "Sus wikis"; App::$strings["Sign in"] = "Acceder"; -App::$strings["%s - click to logout"] = "%s - pulsar para finalizar sesión"; App::$strings["Remote authentication"] = "Acceder desde su servidor"; App::$strings["Click to authenticate to your home hub"] = "Pulsar para identificarse en su servidor de inicio"; -App::$strings["Home Page"] = "Página de inicio"; +App::$strings["Get me home"] = "Volver a la página principal"; +App::$strings["Log me out of this site"] = "Salir de este sitio"; App::$strings["Create an account"] = "Crear una cuenta"; App::$strings["Help and documentation"] = "Ayuda y documentación"; App::$strings["Applications, utilities, links, games"] = "Aplicaciones, utilidades, enlaces, juegos"; @@ -1975,11 +2501,115 @@ App::$strings["Site Setup and Configuration"] = "Ajustes y configuración del si App::$strings["Loading..."] = "Cargando..."; App::$strings["@name, #tag, ?doc, content"] = "@nombre, #etiqueta, ?ayuda, contenido"; App::$strings["Please wait..."] = "Espere por favor…"; +App::$strings["General Features"] = "Funcionalidades básicas"; +App::$strings["Multiple Profiles"] = "Múltiples perfiles"; +App::$strings["Ability to create multiple profiles"] = "Capacidad de crear múltiples perfiles"; +App::$strings["Advanced Profiles"] = "Perfiles avanzados"; +App::$strings["Additional profile sections and selections"] = "Secciones y selecciones de perfil adicionales"; +App::$strings["Profile Import/Export"] = "Importar/Exportar perfil"; +App::$strings["Save and load profile details across sites/channels"] = "Guardar y cargar detalles del perfil a través de sitios/canales"; +App::$strings["Web Pages"] = "Páginas web"; +App::$strings["Provide managed web pages on your channel"] = "Proveer páginas web gestionadas en su canal"; +App::$strings["Provide a wiki for your channel"] = "Proporcionar un wiki para su canal"; +App::$strings["Private Notes"] = "Notas privadas"; +App::$strings["Enables a tool to store notes and reminders (note: not encrypted)"] = "Habilita una herramienta para guardar notas y recordatorios (advertencia: las notas no estarán cifradas)"; +App::$strings["Navigation Channel Select"] = "Navegación por el selector de canales"; +App::$strings["Change channels directly from within the navigation dropdown menu"] = "Cambiar de canales directamente desde el menú de navegación desplegable"; +App::$strings["Photo Location"] = "Ubicación de las fotos"; +App::$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."; +App::$strings["Access Controlled Chatrooms"] = "Salas de chat moderadas"; +App::$strings["Provide chatrooms and chat services with access control."] = "Proporcionar salas y servicios de chat moderados."; +App::$strings["Smart Birthdays"] = "Cumpleaños inteligentes"; +App::$strings["Make birthday events timezone aware in case your friends are scattered across the planet."] = "Enlazar los eventos de cumpleaños con el huso horario en el caso de que sus amigos estén dispersos por el mundo."; +App::$strings["Advanced Directory Search"] = "Búsqueda avanzada en el directorio"; +App::$strings["Allows creation of complex directory search queries"] = "Permitir la creación de consultas complejas en las búsquedas en el directorio"; +App::$strings["Advanced Theme and Layout Settings"] = "Ajustes avanzados de temas y esquemas"; +App::$strings["Allows fine tuning of themes and page layouts"] = "Permitir el ajuste fino de temas y esquemas de páginas"; +App::$strings["Post Composition Features"] = "Opciones para la redacción de entradas"; +App::$strings["Large Photos"] = "Fotos de gran tamaño"; +App::$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 (640px)"; +App::$strings["Automatically import channel content from other channels or feeds"] = "Importar automáticamente contenido de otros canales o \"feeds\""; +App::$strings["Even More Encryption"] = "Más cifrado todavía"; +App::$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."; +App::$strings["Enable Voting Tools"] = "Permitir entradas con votación"; +App::$strings["Provide a class of post which others can vote on"] = "Proveer una clase de publicación en la que otros puedan votar"; +App::$strings["Disable Comments"] = "Deshabilitar comentarios"; +App::$strings["Provide the option to disable comments for a post"] = "Proporcionar la opción de desactivar los comentarios para una entrada"; +App::$strings["Delayed Posting"] = "Publicación aplazada"; +App::$strings["Allow posts to be published at a later date"] = "Permitir mensajes que se publicarán en una fecha posterior"; +App::$strings["Content Expiration"] = "Caducidad del contenido"; +App::$strings["Remove posts/comments and/or private messages at a future time"] = "Eliminar publicaciones/comentarios y/o mensajes privados más adelante"; +App::$strings["Suppress Duplicate Posts/Comments"] = "Prevenir entradas o comentarios duplicados"; +App::$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."; +App::$strings["Network and Stream Filtering"] = "Filtrado del contenido"; +App::$strings["Search by Date"] = "Buscar por fecha"; +App::$strings["Ability to select posts by date ranges"] = "Capacidad de seleccionar entradas por rango de fechas"; +App::$strings["Privacy Groups"] = "Grupos de canales"; +App::$strings["Enable management and selection of privacy groups"] = "Activar la gestión y selección de grupos de canales"; +App::$strings["Saved Searches"] = "Búsquedas guardadas"; +App::$strings["Save search terms for re-use"] = "Guardar términos de búsqueda para su reutilización"; +App::$strings["Network Personal Tab"] = "Actividad personal"; +App::$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."; +App::$strings["Network New Tab"] = "Contenido nuevo"; +App::$strings["Enable tab to display all new Network activity"] = "Habilitar una pestaña en la que se muestre solo el contenido nuevo"; +App::$strings["Affinity Tool"] = "Herramienta de afinidad"; +App::$strings["Filter stream activity by depth of relationships"] = "Filtrar el contenido según la profundidad de las relaciones"; +App::$strings["Show friend and connection suggestions"] = "Mostrar sugerencias de amigos y conexiones"; +App::$strings["Connection Filtering"] = "Filtrado de conexiones"; +App::$strings["Filter incoming posts from connections based on keywords/content"] = "Filtrar publicaciones entrantes de conexiones por palabras clave o contenido"; +App::$strings["Post/Comment Tools"] = "Gestión de entradas y comentarios"; +App::$strings["Community Tagging"] = "Etiquetas de la comunidad"; +App::$strings["Ability to tag existing posts"] = "Capacidad de etiquetar entradas existentes"; +App::$strings["Post Categories"] = "Temas de las entradas"; +App::$strings["Add categories to your posts"] = "Añadir temas a sus publicaciones"; +App::$strings["Emoji Reactions"] = "Emoticonos \"emoji\""; +App::$strings["Add emoji reaction ability to posts"] = "Activar la capacidad de añadir un emoticono \"emoji\" a las entradas"; +App::$strings["Saved Folders"] = "Carpetas guardadas"; +App::$strings["Ability to file posts under folders"] = "Capacidad de archivar entradas en carpetas"; +App::$strings["Dislike Posts"] = "Desagrado de publicaciones"; +App::$strings["Ability to dislike posts/comments"] = "Capacidad de mostrar desacuerdo con el contenido de entradas y comentarios"; +App::$strings["Star Posts"] = "Entradas destacadas"; +App::$strings["Ability to mark special posts with a star indicator"] = "Capacidad de marcar entradas destacadas con un indicador de estrella"; +App::$strings["Tag Cloud"] = "Nube de etiquetas"; +App::$strings["Provide a personal tag cloud on your channel page"] = "Proveer nube de etiquetas personal en su página de canal"; +App::$strings["Premium Channel"] = "Canal premium"; +App::$strings["Allows you to set restrictions and terms on those that connect with your channel"] = "Le permite configurar restricciones y normas de uso a aquellos que conectan con su canal"; App::$strings["Attachments:"] = "Ficheros adjuntos:"; App::$strings["l F d, Y \\@ g:i A"] = "l d de F, Y \\@ G:i"; App::$strings["\$Projectname event notification:"] = "Notificación de eventos de \$Projectname:"; App::$strings["Starts:"] = "Comienza:"; App::$strings["Finishes:"] = "Finaliza:"; +App::$strings["%1\$s's bookmarks"] = "Marcadores de %1\$s"; +App::$strings["Help:"] = "Ayuda:"; +App::$strings["Not Found"] = "No encontrado"; +App::$strings["Different viewers will see this text differently"] = "Visitantes diferentes verán este texto de forma distinta"; +App::$strings["Invalid data packet"] = "Paquete de datos no válido"; +App::$strings["Unable to verify channel signature"] = "No ha sido posible de verificar la firma del canal"; +App::$strings["Unable to verify site signature for %s"] = "No ha sido posible de verificar la firma del sitio para %s"; +App::$strings["invalid target signature"] = "La firma recibida no es válida"; +App::$strings["New Page"] = "Nueva página"; +App::$strings["Unable to determine sender."] = "No ha sido posible determinar el remitente. "; +App::$strings["No recipient provided."] = "No se ha especificado ningún destinatario."; +App::$strings["[no subject]"] = "[sin asunto]"; +App::$strings["Stored post could not be verified."] = "No se han podido verificar las publicaciones guardadas."; +App::$strings["%d invitation available"] = array( + 0 => "%d invitación pendiente", + 1 => "%d invitaciones disponibles", +); +App::$strings["Find Channels"] = "Encontrar canales"; +App::$strings["Enter name or interest"] = "Introducir nombre o interés"; +App::$strings["Connect/Follow"] = "Conectar/Seguir"; +App::$strings["Examples: Robert Morgenstein, Fishing"] = "Ejemplos: José Fernández, Pesca"; +App::$strings["Random Profile"] = "Perfil aleatorio"; +App::$strings["Invite Friends"] = "Invitar a amigos"; +App::$strings["Advanced example: name=fred and country=iceland"] = "Ejemplo avanzado: nombre=juan y país=españa"; +App::$strings["Everything"] = "Todo"; +App::$strings["Categories"] = "Temas"; +App::$strings["%d connection in common"] = array( + 0 => "%d conexión en común", + 1 => "%d conexiones en común", +); +App::$strings["show more"] = "mostrar más"; App::$strings["Delete this item?"] = "¿Borrar este elemento?"; App::$strings["%s show less"] = "%s mostrar menos"; App::$strings["%s expand"] = "%s expandir"; @@ -2013,7 +2643,18 @@ App::$strings["about a year"] = "alrededor de un año"; App::$strings["%d years"] = "%d años"; App::$strings[" "] = " "; App::$strings["timeago.numbers"] = "timeago.numbers"; +App::$strings["January"] = "enero"; +App::$strings["February"] = "febrero"; +App::$strings["March"] = "marzo"; +App::$strings["April"] = "abril"; App::$strings["__ctx:long__ May"] = "mayo"; +App::$strings["June"] = "junio"; +App::$strings["July"] = "julio"; +App::$strings["August"] = "agosto"; +App::$strings["September"] = "septiembre"; +App::$strings["October"] = "octubre"; +App::$strings["November"] = "noviembre"; +App::$strings["December"] = "diciembre"; App::$strings["Jan"] = "ene"; App::$strings["Feb"] = "feb"; App::$strings["Mar"] = "mar"; @@ -2026,6 +2667,13 @@ App::$strings["Sep"] = "sep"; App::$strings["Oct"] = "oct"; App::$strings["Nov"] = "nov"; App::$strings["Dec"] = "dic"; +App::$strings["Sunday"] = "domingo"; +App::$strings["Monday"] = "lunes"; +App::$strings["Tuesday"] = "martes"; +App::$strings["Wednesday"] = "miércoles"; +App::$strings["Thursday"] = "jueves"; +App::$strings["Friday"] = "viernes"; +App::$strings["Saturday"] = "sábado"; App::$strings["Sun"] = "dom"; App::$strings["Mon"] = "lun"; App::$strings["Tue"] = "mar"; @@ -2038,6 +2686,131 @@ App::$strings["__ctx:calendar__ month"] = "mes"; App::$strings["__ctx:calendar__ week"] = "semana"; App::$strings["__ctx:calendar__ day"] = "día"; App::$strings["__ctx:calendar__ All day"] = "Todos los días"; +App::$strings["Tags"] = "Etiquetas"; +App::$strings["Keywords"] = "Palabras clave"; +App::$strings["have"] = "tener"; +App::$strings["has"] = "tiene"; +App::$strings["want"] = "quiero"; +App::$strings["wants"] = "quiere"; +App::$strings["likes"] = "gusta de"; +App::$strings["dislikes"] = "no gusta de"; +App::$strings["prev"] = "anterior"; +App::$strings["first"] = "primera"; +App::$strings["last"] = "última"; +App::$strings["next"] = "próxima"; +App::$strings["older"] = "más antiguas"; +App::$strings["newer"] = "más recientes"; +App::$strings["No connections"] = "Sin conexiones"; +App::$strings["View all %s connections"] = "Ver todas las %s conexiones"; +App::$strings["poke"] = "un toque"; +App::$strings["poked"] = "ha dado un toque a"; +App::$strings["ping"] = "un \"ping\""; +App::$strings["pinged"] = "ha enviado un \"ping\" a"; +App::$strings["prod"] = "una incitación "; +App::$strings["prodded"] = "ha incitado a "; +App::$strings["slap"] = "una bofetada "; +App::$strings["slapped"] = "ha abofeteado a "; +App::$strings["finger"] = "un \"finger\" "; +App::$strings["fingered"] = "envió un \"finger\" a"; +App::$strings["rebuff"] = "un reproche"; +App::$strings["rebuffed"] = "ha hecho un reproche a "; +App::$strings["happy"] = "feliz "; +App::$strings["sad"] = "triste "; +App::$strings["mellow"] = "tranquilo/a"; +App::$strings["tired"] = "cansado/a "; +App::$strings["perky"] = "vivaz"; +App::$strings["angry"] = "enfadado/a"; +App::$strings["stupefied"] = "asombrado/a"; +App::$strings["puzzled"] = "perplejo/a"; +App::$strings["interested"] = "interesado/a"; +App::$strings["bitter"] = "amargado/a"; +App::$strings["cheerful"] = "alegre"; +App::$strings["alive"] = "animado/a"; +App::$strings["annoyed"] = "molesto/a"; +App::$strings["anxious"] = "ansioso/a"; +App::$strings["cranky"] = "de mal humor"; +App::$strings["disturbed"] = "perturbado/a"; +App::$strings["frustrated"] = "frustrado/a"; +App::$strings["depressed"] = "deprimido/a"; +App::$strings["motivated"] = "motivado/a"; +App::$strings["relaxed"] = "relajado/a"; +App::$strings["surprised"] = "sorprendido/a"; +App::$strings["May"] = "mayo"; +App::$strings["Unknown Attachment"] = "Adjunto no reconocido"; +App::$strings["unknown"] = "desconocido"; +App::$strings["remove category"] = "eliminar el tema"; +App::$strings["remove from file"] = "eliminar del fichero"; +App::$strings["default"] = "por defecto"; +App::$strings["Page layout"] = "Plantilla de la página"; +App::$strings["You can create your own with the layouts tool"] = "Puede crear su propia disposición gráfica con la herramienta de plantillas"; +App::$strings["Page content type"] = "Tipo de contenido de la página"; +App::$strings["activity"] = "la actividad"; +App::$strings["Design Tools"] = "Herramientas de diseño web"; +App::$strings["Pages"] = "Páginas"; +App::$strings["Import website..."] = "Importar un sitio web..."; +App::$strings["Select folder to import"] = "Seleccionar la carpeta que se va a importar"; +App::$strings["Import from a zipped folder:"] = "Importar desde una carpeta comprimida: "; +App::$strings["Import from cloud files:"] = "Importar desde los ficheros en la nube: "; +App::$strings["/cloud/channel/path/to/folder"] = "/cloud/canal/ruta/a la/carpeta"; +App::$strings["Enter path to website files"] = "Ruta a los ficheros del sitio web"; +App::$strings["Select folder"] = "Seleccionar la carpeta"; +App::$strings["Export website..."] = "Exportar un sitio web..."; +App::$strings["Export to a zip file"] = "Exportar a un fichero comprimido .zip"; +App::$strings["website.zip"] = "sitio_web.zip"; +App::$strings["Enter a name for the zip file."] = "Escriba un nombre para el fichero zip."; +App::$strings["Export to cloud files"] = "Exportar a la nube de ficheros"; +App::$strings["/path/to/export/folder"] = "/ruta/para/exportar/carpeta"; +App::$strings["Enter a path to a cloud files destination."] = "Escriba una ruta de destino a la nube de ficheros."; +App::$strings["Specify folder"] = "Especificar una carpeta"; +App::$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."; +App::$strings["Channel clone failed. Import failed."] = "La clonación del canal no ha salido bien. La importación ha fallado."; +App::$strings["Unable to import element \""] = "No se puede importar un elemento \""; +App::$strings["guest:"] = "invitado: "; +App::$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"; +App::$strings["(Unknown)"] = "(Desconocido)"; +App::$strings["Visible to anybody on the internet."] = "Visible para cualquiera en internet."; +App::$strings["Visible to you only."] = "Visible sólo para usted."; +App::$strings["Visible to anybody in this network."] = "Visible para cualquiera en esta red."; +App::$strings["Visible to anybody authenticated."] = "Visible para cualquiera que esté autenticado."; +App::$strings["Visible to anybody on %s."] = "Visible para cualquiera en %s."; +App::$strings["Visible to all connections."] = "Visible para todas las conexiones."; +App::$strings["Visible to approved connections."] = "Visible para las conexiones permitidas."; +App::$strings["Visible to specific connections."] = "Visible para conexiones específicas."; +App::$strings["Privacy group is empty."] = "El grupo de canales está vacío."; +App::$strings["Privacy group: %s"] = "Grupo de canales: %s"; +App::$strings["Connection not found."] = "Conexión no encontrada"; +App::$strings["profile photo"] = "foto del perfil"; +App::$strings["[Edited %s]"] = "[se ha editado %s]"; +App::$strings["__ctx:edit_activity__ Post"] = "Publicar"; +App::$strings["__ctx:edit_activity__ Comment"] = "Comentar"; +App::$strings["Logged out."] = "Desconectado/a."; +App::$strings["Failed authentication"] = "Autenticación fallida."; +App::$strings[" and "] = " y "; +App::$strings["public profile"] = "el perfil público"; +App::$strings["%1\$s changed %2\$s to “%3\$s”"] = "%1\$s ha cambiado %2\$s a “%3\$s”"; +App::$strings["Visit %1\$s's %2\$s"] = "Visitar %2\$s de %1\$s"; +App::$strings["%1\$s has an updated %2\$s, changing %3\$s."] = "%1\$s ha actualizado %2\$s, cambiando %3\$s."; +App::$strings["Item was not found."] = "Elemento no encontrado."; +App::$strings["No source file."] = "Ningún fichero de origen"; +App::$strings["Cannot locate file to replace"] = "No se puede localizar el fichero que va a ser sustituido."; +App::$strings["Cannot locate file to revise/update"] = "No se puede localizar el fichero para revisar/actualizar"; +App::$strings["File exceeds size limit of %d"] = "El fichero supera el limite de tamaño de %d"; +App::$strings["You have reached your limit of %1$.0f Mbytes attachment storage."] = "Ha alcanzado su límite de %1$.0f Mbytes de almacenamiento de adjuntos."; +App::$strings["File upload failed. Possible system limit or action terminated."] = "Error de carga, posiblemente por limite del sistema o porque la acción ha finalizado."; +App::$strings["Stored file could not be verified. Upload failed."] = "El fichero almacenado no ha podido ser verificado. El envío ha fallado."; +App::$strings["Path not available."] = "Ruta no disponible."; +App::$strings["Empty pathname"] = "Ruta vacía"; +App::$strings["duplicate filename or path"] = "Nombre duplicado de ruta o fichero"; +App::$strings["Path not found."] = "Ruta no encontrada"; +App::$strings["mkdir failed."] = "mkdir ha fallado."; +App::$strings["database storage failed."] = "el almacenamiento en la base de datos ha fallado."; +App::$strings["Empty path"] = "Ruta vacía"; +App::$strings["This event has been added to your calendar."] = "Este evento ha sido añadido a su calendario."; +App::$strings["Not specified"] = "Sin especificar"; +App::$strings["Needs Action"] = "Necesita de una intervención"; +App::$strings["Completed"] = "Completado/a"; +App::$strings["In Process"] = "En proceso"; +App::$strings["Cancelled"] = "Cancelado/a"; App::$strings["Channel is blocked on this site."] = "El canal está bloqueado en este sitio."; App::$strings["Channel location missing."] = "Falta la dirección del canal."; App::$strings["Response from remote channel was incomplete."] = "Respuesta incompleta del canal."; @@ -2045,14 +2818,105 @@ App::$strings["Channel was deleted and no longer exists."] = "El canal ha sido e App::$strings["Protocol disabled."] = "Protocolo deshabilitado."; App::$strings["Channel discovery failed."] = "El intento de acceder al canal ha fallado."; App::$strings["Cannot connect to yourself."] = "No puede conectarse consigo mismo."; -App::$strings["Image/photo"] = "Imagen/foto"; -App::$strings["Encrypted content"] = "Contenido cifrado"; -App::$strings["Install %s element: "] = "Instalar el elemento %s:"; -App::$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."; -App::$strings["%1\$s wrote the following %2\$s %3\$s"] = "%1\$s escribió %2\$s siguiente %3\$s"; -App::$strings["Click to open/close"] = "Pulsar para abrir/cerrar"; -App::$strings["spoiler"] = "spoiler"; -App::$strings["$1 wrote:"] = "$1 escribió:"; +App::$strings["A deleted group with this name was revived. Existing item permissions may 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. Es posible 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."; +App::$strings["Add new connections to this privacy group"] = "Añadir conexiones nuevas a este grupo de canales"; +App::$strings["edit"] = "editar"; +App::$strings["Edit group"] = "Editar grupo"; +App::$strings["Add privacy group"] = "Añadir un grupo de canales"; +App::$strings["Channels not in any privacy group"] = "Sin canales en ningún grupo"; +App::$strings["add"] = "añadir"; +App::$strings["Select an alternate language"] = "Seleccionar un idioma alternativo"; +App::$strings["Image exceeds website size limit of %lu bytes"] = "La imagen excede el límite de %lu bytes del sitio"; +App::$strings["Image file is empty."] = "El fichero de imagen está vacío. "; +App::$strings["Photo storage failed."] = "La foto no ha podido ser guardada."; +App::$strings["a new photo"] = "una nueva foto"; +App::$strings["__ctx:photo_upload__ %1\$s posted %2\$s to %3\$s"] = "%1\$s ha publicado %2\$s en %3\$s"; +App::$strings["Photo Albums"] = "Álbumes de fotos"; +App::$strings["Upload New Photos"] = "Subir nuevas fotos"; +App::$strings["Who can see this?"] = "¿Quién puede ver esto?"; +App::$strings["Custom selection"] = "Selección personalizada"; +App::$strings["Select \"Show\" to allow viewing. \"Don't show\" lets you override and limit the scope of \"Show\"."] = "Seleccione \"Mostrar\" para permitir la visualización. La opción \"No mostrar\" le permite anular y limitar el alcance de \"Mostrar\"."; +App::$strings["Show"] = "Mostrar"; +App::$strings["Don't show"] = "No mostrar"; +App::$strings["Post permissions %s cannot be changed %s after a post is shared.
        These permissions set who is allowed to view the post."] = "Los permisos de la entrada %s no se pueden cambiar %s una vez que se ha compartido.
        Estos permisos establecen quién está autorizado para ver el mensaje."; +App::$strings[" by "] = "por"; +App::$strings[" on "] = "en"; +App::$strings["Embedded content"] = "Contenido incorporado"; +App::$strings["Embedding disabled"] = "Incrustación deshabilitada"; +App::$strings["System"] = "Sistema"; +App::$strings["New App"] = "Nueva aplicación (app)"; +App::$strings["Suggestions"] = "Sugerencias"; +App::$strings["See more..."] = "Ver más..."; +App::$strings["You have %1$.0f of %2$.0f allowed connections."] = "Tiene %1$.0f de %2$.0f conexiones permitidas."; +App::$strings["Add New Connection"] = "Añadir nueva conexión"; +App::$strings["Enter channel address"] = "Dirección del canal"; +App::$strings["Examples: bob@example.com, https://example.com/barbara"] = "Ejemplos: manuel@ejemplo.com, https://ejemplo.com/carmen"; +App::$strings["Notes"] = "Notas"; +App::$strings["Remove term"] = "Eliminar término"; +App::$strings["Archives"] = "Hemeroteca"; +App::$strings["Refresh"] = "Recargar"; +App::$strings["Account settings"] = "Configuración de la cuenta"; +App::$strings["Channel settings"] = "Configuración del canal"; +App::$strings["Additional features"] = "Funcionalidades"; +App::$strings["Feature/Addon settings"] = "Complementos"; +App::$strings["Display settings"] = "Ajustes de visualización"; +App::$strings["Manage locations"] = "Gestión de ubicaciones (clones) del canal"; +App::$strings["Export channel"] = "Exportar canal"; +App::$strings["Connected apps"] = "Aplicaciones (apps) conectadas"; +App::$strings["Premium Channel Settings"] = "Configuración del canal premium"; +App::$strings["Private Mail Menu"] = "Menú de correo privado"; +App::$strings["Combined View"] = "Vista combinada"; +App::$strings["Conversations"] = "Conversaciones"; +App::$strings["Received Messages"] = "Mensajes recibidos"; +App::$strings["Sent Messages"] = "Enviar mensajes"; +App::$strings["No messages."] = "Sin mensajes."; +App::$strings["Delete conversation"] = "Eliminar conversación"; +App::$strings["Events Tools"] = "Gestión de eventos"; +App::$strings["Export Calendar"] = "Exportar el calendario"; +App::$strings["Import Calendar"] = "Importar un calendario"; +App::$strings["Chatrooms"] = "Salas de chat"; +App::$strings["Overview"] = "Resumen"; +App::$strings["Chat Members"] = "Miembros del chat"; +App::$strings["Wiki List"] = "Lista de wikis"; +App::$strings["Wiki Pages"] = "Páginas del wiki"; +App::$strings["Add new page"] = "Añadir una nueva página"; +App::$strings["Page name"] = "Nombre de la página"; +App::$strings["Bookmarked Chatrooms"] = "Salas de chat preferidas"; +App::$strings["Suggested Chatrooms"] = "Salas de chat sugeridas"; +App::$strings["photo/image"] = "foto/imagen"; +App::$strings["Click to show more"] = "Hacer clic para ver más"; +App::$strings["Rating Tools"] = "Valoraciones"; +App::$strings["Rate Me"] = "Valorar este canal"; +App::$strings["View Ratings"] = "Mostrar las valoraciones"; +App::$strings["Forums"] = "Foros"; +App::$strings["Tasks"] = "Tareas"; +App::$strings["Member registrations waiting for confirmation"] = "Inscripciones de nuevos miembros pendientes de aprobación"; +App::$strings["Inspect queue"] = "Examinar la cola"; +App::$strings["DB updates"] = "Actualizaciones de la base de datos"; +App::$strings["Plugin Features"] = "Extensiones"; +App::$strings["view full size"] = "Ver en el tamaño original"; +App::$strings["No Subject"] = "Sin asunto"; +App::$strings["OStatus"] = "OStatus"; +App::$strings["GNU-Social"] = "GNU Social"; +App::$strings["RSS/Atom"] = "RSS/Atom"; +App::$strings["Facebook"] = "Facebook"; +App::$strings["Zot"] = "Zot"; +App::$strings["LinkedIn"] = "LinkedIn"; +App::$strings["XMPP/IM"] = "XMPP/IM"; +App::$strings["MySpace"] = "MySpace"; +App::$strings["Can view my normal stream and posts"] = "Pueden verse mi actividad y publicaciones normales"; +App::$strings["Can view my webpages"] = "Pueden verse mis páginas web"; +App::$strings["Can post on my channel page (\"wall\")"] = "Pueden crearse entradas en mi página de inicio del canal (“muro”)"; +App::$strings["Can like/dislike stuff"] = "Puede marcarse contenido como me gusta/no me gusta"; +App::$strings["Profiles and things other than posts/comments"] = "Perfiles y otras cosas aparte de publicaciones/comentarios"; +App::$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"; +App::$strings["Advanced - useful for creating group forum channels"] = "Avanzado - útil para crear canales de foros de discusión o grupos"; +App::$strings["Can chat with me (when available)"] = "Se puede charlar conmigo (cuando esté disponible)"; +App::$strings["Can write to my file storage and photos"] = "Puede escribirse en mi repositorio de ficheros y fotos"; +App::$strings["Can edit my webpages"] = "Pueden editarse mis páginas web"; +App::$strings["Somewhat advanced - very useful in open communities"] = "Algo avanzado - muy útil en comunidades abiertas"; +App::$strings["Can administer my channel resources"] = "Pueden administrarse mis recursos del canal"; +App::$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."; App::$strings["%1\$s is now connected with %2\$s"] = "%1\$s ahora está conectado/a con %2\$s"; App::$strings["%1\$s poked %2\$s"] = "%1\$s ha dado un toque a %2\$s"; App::$strings["View %s's profile @ %s"] = "Ver el perfil @ %s de %s"; @@ -2088,6 +2952,7 @@ App::$strings["Set your location"] = "Establecer su ubicación"; App::$strings["Clear browser location"] = "Eliminar los datos de localización geográfica del navegador"; App::$strings["Tag term:"] = "Término de la etiqueta:"; App::$strings["Where are you right now?"] = "¿Donde está ahora?"; +App::$strings["Choose a different album..."] = "Elegir un álbum diferente..."; App::$strings["Comments enabled"] = "Comentarios habilitados"; App::$strings["Comments disabled"] = "Comentarios deshabilitados"; App::$strings["Page link name"] = "Nombre del enlace de la página"; @@ -2111,10 +2976,8 @@ App::$strings["Favourite Posts"] = "Publicaciones favoritas"; App::$strings["Spam"] = "Correo basura"; App::$strings["Posts flagged as SPAM"] = "Publicaciones marcadas como basura"; App::$strings["Status Messages and Posts"] = "Mensajes de estado y publicaciones"; -App::$strings["About"] = "Mi perfil"; App::$strings["Profile Details"] = "Detalles del perfil"; App::$strings["Files and Storage"] = "Ficheros y repositorio"; -App::$strings["Chatrooms"] = "Salas de chat"; App::$strings["Saved Bookmarks"] = "Marcadores guardados"; App::$strings["Manage Webpages"] = "Administrar páginas web"; App::$strings["__ctx:noun__ Attending"] = array( @@ -2141,187 +3004,15 @@ App::$strings["__ctx:noun__ Abstain"] = array( 0 => "se abstiene", 1 => "Se abstienen", ); -App::$strings["Birthday"] = "Cumpleaños"; -App::$strings["Age: "] = "Edad:"; -App::$strings["YYYY-MM-DD or MM-DD"] = "AAAA-MM-DD o MM-DD"; -App::$strings["never"] = "nunca"; -App::$strings["less than a second ago"] = "hace un instante"; -App::$strings["__ctx:e.g. 22 hours ago, 1 minute ago__ %1\$d %2\$s ago"] = "hace %1\$d %2\$s"; -App::$strings["__ctx:relative_date__ year"] = array( - 0 => "año", - 1 => "años", -); -App::$strings["__ctx:relative_date__ month"] = array( - 0 => "mes", - 1 => "meses", -); -App::$strings["__ctx:relative_date__ week"] = array( - 0 => "semana", - 1 => "semanas", -); -App::$strings["__ctx:relative_date__ day"] = array( - 0 => "día", - 1 => "días", -); -App::$strings["__ctx:relative_date__ hour"] = array( - 0 => "hora", - 1 => "horas", -); -App::$strings["__ctx:relative_date__ minute"] = array( - 0 => "minuto", - 1 => "minutos", -); -App::$strings["__ctx:relative_date__ second"] = array( - 0 => "segundo", - 1 => "segundos", -); -App::$strings["%1\$s's birthday"] = "Cumpleaños de %1\$s"; -App::$strings["Happy Birthday %1\$s"] = "Feliz cumpleaños %1\$s"; -App::$strings["Directory Options"] = "Opciones del directorio"; -App::$strings["Safe Mode"] = "Modo seguro"; -App::$strings["Public Forums Only"] = "Solo foros públicos"; -App::$strings["This Website Only"] = "Solo este sitio web"; -App::$strings["This event has been added to your calendar."] = "Este evento ha sido añadido a su calendario."; -App::$strings["Not specified"] = "Sin especificar"; -App::$strings["Needs Action"] = "Necesita de una intervención"; -App::$strings["Completed"] = "Completado/a"; -App::$strings["In Process"] = "En proceso"; -App::$strings["Cancelled"] = "Cancelado/a"; -App::$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."; -App::$strings["Channel clone failed. Import failed."] = "La clonación del canal no ha salido bien. La importación ha fallado."; -App::$strings["Unable to import element \""] = "No se puede importar un elemento \""; -App::$strings["Logged out."] = "Desconectado/a."; -App::$strings["Failed authentication"] = "Autenticación fallida."; -App::$strings["Login failed."] = "El acceso ha fallado."; -App::$strings[" and "] = " y "; -App::$strings["public profile"] = "el perfil público"; -App::$strings["%1\$s changed %2\$s to “%3\$s”"] = "%1\$s ha cambiado %2\$s a “%3\$s”"; -App::$strings["Visit %1\$s's %2\$s"] = "Visitar %2\$s de %1\$s"; -App::$strings["%1\$s has an updated %2\$s, changing %3\$s."] = "%1\$s ha actualizado %2\$s, cambiando %3\$s."; -App::$strings["view full size"] = "Ver en el tamaño original"; -App::$strings["No Subject"] = "Sin asunto"; -App::$strings["Friendica"] = "Friendica"; -App::$strings["OStatus"] = "OStatus"; -App::$strings["GNU-Social"] = "GNU Social"; -App::$strings["RSS/Atom"] = "RSS/Atom"; -App::$strings["Diaspora"] = "Diaspora"; -App::$strings["Facebook"] = "Facebook"; -App::$strings["Zot"] = "Zot"; -App::$strings["LinkedIn"] = "LinkedIn"; -App::$strings["XMPP/IM"] = "XMPP/IM"; -App::$strings["MySpace"] = "MySpace"; -App::$strings["Categories"] = "Temas"; -App::$strings["Tags"] = "Etiquetas"; -App::$strings["Keywords"] = "Palabras clave"; -App::$strings["have"] = "tener"; -App::$strings["has"] = "tiene"; -App::$strings["want"] = "quiero"; -App::$strings["wants"] = "quiere"; -App::$strings["likes"] = "gusta de"; -App::$strings["dislikes"] = "no gusta de"; -App::$strings["%d invitation available"] = array( - 0 => "%d invitación pendiente", - 1 => "%d invitaciones disponibles", -); -App::$strings["Find Channels"] = "Encontrar canales"; -App::$strings["Enter name or interest"] = "Introducir nombre o interés"; -App::$strings["Connect/Follow"] = "Conectar/Seguir"; -App::$strings["Examples: Robert Morgenstein, Fishing"] = "Ejemplos: José Fernández, Pesca"; -App::$strings["Random Profile"] = "Perfil aleatorio"; -App::$strings["Invite Friends"] = "Invitar a amigos"; -App::$strings["Advanced example: name=fred and country=iceland"] = "Ejemplo avanzado: nombre=juan y país=españa"; -App::$strings["Everything"] = "Todo"; -App::$strings["%d connection in common"] = array( - 0 => "%d conexión en común", - 1 => "%d conexiones en común", -); -App::$strings["show more"] = "mostrar más"; -App::$strings["System"] = "Sistema"; -App::$strings["New App"] = "Nueva aplicación (app)"; -App::$strings["Suggestions"] = "Sugerencias"; -App::$strings["See more..."] = "Ver más..."; -App::$strings["You have %1$.0f of %2$.0f allowed connections."] = "Tiene %1$.0f de %2$.0f conexiones permitidas."; -App::$strings["Add New Connection"] = "Añadir nueva conexión"; -App::$strings["Enter channel address"] = "Dirección del canal"; -App::$strings["Examples: bob@example.com, https://example.com/barbara"] = "Ejemplos: manuel@ejemplo.com, https://ejemplo.com/carmen"; -App::$strings["Notes"] = "Notas"; -App::$strings["Remove term"] = "Eliminar término"; -App::$strings["Archives"] = "Hemeroteca"; -App::$strings["Refresh"] = "Recargar"; -App::$strings["Account settings"] = "Configuración de la cuenta"; -App::$strings["Channel settings"] = "Configuración del canal"; -App::$strings["Additional features"] = "Funcionalidades"; -App::$strings["Feature/Addon settings"] = "Complementos"; -App::$strings["Display settings"] = "Ajustes de visualización"; -App::$strings["Manage locations"] = "Gestión de ubicaciones (clones) del canal"; -App::$strings["Export channel"] = "Exportar canal"; -App::$strings["Connected apps"] = "Aplicaciones (apps) conectadas"; -App::$strings["Premium Channel Settings"] = "Configuración del canal premium"; -App::$strings["Private Mail Menu"] = "Menú de correo privado"; -App::$strings["Combined View"] = "Vista combinada"; -App::$strings["Inbox"] = "Bandeja de entrada"; -App::$strings["Outbox"] = "Bandeja de salida"; -App::$strings["New Message"] = "Nuevo mensaje"; -App::$strings["Conversations"] = "Conversaciones"; -App::$strings["Received Messages"] = "Mensajes recibidos"; -App::$strings["Sent Messages"] = "Enviar mensajes"; -App::$strings["No messages."] = "Sin mensajes."; -App::$strings["Delete conversation"] = "Eliminar conversación"; -App::$strings["Events Tools"] = "Gestión de eventos"; -App::$strings["Export Calendar"] = "Exportar el calendario"; -App::$strings["Import Calendar"] = "Importar un calendario"; -App::$strings["Overview"] = "Resumen"; -App::$strings["Chat Members"] = "Miembros del chat"; -App::$strings["Wiki List"] = "Lista de wikis"; -App::$strings["Wiki Pages"] = "Páginas del wiki"; -App::$strings["Bookmarked Chatrooms"] = "Salas de chat preferidas"; -App::$strings["Suggested Chatrooms"] = "Salas de chat sugeridas"; -App::$strings["photo/image"] = "foto/imagen"; -App::$strings["Click to show more"] = "Hacer clic para ver más"; -App::$strings["Rating Tools"] = "Valoraciones"; -App::$strings["Rate Me"] = "Valorar este canal"; -App::$strings["View Ratings"] = "Mostrar las valoraciones"; -App::$strings["Forums"] = "Foros"; -App::$strings["Tasks"] = "Tareas"; -App::$strings["Documentation"] = "Documentación"; -App::$strings["Member registrations waiting for confirmation"] = "Inscripciones de nuevos miembros pendientes de aprobación"; -App::$strings["Inspect queue"] = "Examinar la cola"; -App::$strings["DB updates"] = "Actualizaciones de la base de datos"; -App::$strings["Admin"] = "Administrador"; -App::$strings["Plugin Features"] = "Extensiones"; -App::$strings["Public Timeline"] = "Cronología pública"; -App::$strings[" by "] = "por"; -App::$strings[" on "] = "en"; -App::$strings["Embedded content"] = "Contenido incorporado"; -App::$strings["Embedding disabled"] = "Incrustación deshabilitada"; -App::$strings["(Unknown)"] = "(Desconocido)"; -App::$strings["Visible to anybody on the internet."] = "Visible para cualquiera en internet."; -App::$strings["Visible to you only."] = "Visible sólo para usted."; -App::$strings["Visible to anybody in this network."] = "Visible para cualquiera en esta red."; -App::$strings["Visible to anybody authenticated."] = "Visible para cualquiera que esté autenticado."; -App::$strings["Visible to anybody on %s."] = "Visible para cualquiera en %s."; -App::$strings["Visible to all connections."] = "Visible para todas las conexiones."; -App::$strings["Visible to approved connections."] = "Visible para las conexiones permitidas."; -App::$strings["Visible to specific connections."] = "Visible para conexiones específicas."; -App::$strings["Privacy group is empty."] = "El grupo de canales está vacío."; -App::$strings["Privacy group: %s"] = "Grupo de canales: %s"; -App::$strings["Connection not found."] = "Conexión no encontrada"; -App::$strings["profile photo"] = "foto del perfil"; -App::$strings["Item was not found."] = "Elemento no encontrado."; -App::$strings["No source file."] = "Ningún fichero de origen"; -App::$strings["Cannot locate file to replace"] = "No se puede localizar el fichero que va a ser sustituido."; -App::$strings["Cannot locate file to revise/update"] = "No se puede localizar el fichero para revisar/actualizar"; -App::$strings["File exceeds size limit of %d"] = "El fichero supera el limite de tamaño de %d"; -App::$strings["You have reached your limit of %1$.0f Mbytes attachment storage."] = "Ha alcanzado su límite de %1$.0f Mbytes de almacenamiento de adjuntos."; -App::$strings["File upload failed. Possible system limit or action terminated."] = "Error de carga, posiblemente por limite del sistema o porque la acción ha finalizado."; -App::$strings["Stored file could not be verified. Upload failed."] = "El fichero almacenado no ha podido ser verificado. El envío ha fallado."; -App::$strings["Path not available."] = "Ruta no disponible."; -App::$strings["Empty pathname"] = "Ruta vacía"; -App::$strings["duplicate filename or path"] = "Nombre duplicado de ruta o fichero"; -App::$strings["Path not found."] = "Ruta no encontrada"; -App::$strings["mkdir failed."] = "mkdir ha fallado."; -App::$strings["database storage failed."] = "el almacenamiento en la base de datos ha fallado."; -App::$strings["Empty path"] = "Ruta vacía"; +App::$strings["Image/photo"] = "Imagen/foto"; +App::$strings["Encrypted content"] = "Contenido cifrado"; +App::$strings["Install %s element: "] = "Instalar el elemento %s:"; +App::$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."; +App::$strings["%1\$s wrote the following %2\$s %3\$s"] = "%1\$s escribió %2\$s siguiente %3\$s"; +App::$strings["Click to open/close"] = "Pulsar para abrir/cerrar"; +App::$strings["spoiler"] = "spoiler"; +App::$strings["$1 wrote:"] = "$1 escribió:"; +App::$strings["Source channel not found."] = "No se ha encontrado el canal de origen."; App::$strings["Focus (Hubzilla default)"] = "Focus (predefinido)"; App::$strings["Theme settings"] = "Ajustes del tema"; App::$strings["Narrow navbar"] = "Estrechar la barra de navegación"; diff --git a/view/js/autocomplete.js b/view/js/autocomplete.js index 62a3b6f06..62fc37420 100644 --- a/view/js/autocomplete.js +++ b/view/js/autocomplete.js @@ -164,6 +164,7 @@ function string2bb(element) { else if(element == 'strike') return 's'; else if(element == 'superscript') return 'sup'; else if(element == 'subscript') return 'sub'; + else if(element == 'highlight') return 'hl'; else return element; } @@ -202,7 +203,7 @@ function string2bb(element) { $.fn.search_autocomplete = function(backend_url) { // Autocomplete contacts contacts = { - match: /(^@)([^\n]{2,})$/, + match: /(^@)([^\n]{3,})$/, index: 2, search: function(term, callback) { contact_search(term, callback, backend_url, 'x', [], spinelement='#nav-search-spinner'); }, replace: basic_replace, @@ -269,7 +270,7 @@ function string2bb(element) { $.fn.bbco_autocomplete = function(type) { if(type=='bbcode') { - var open_close_elements = ['bold', 'italic', 'underline', 'overline', 'strike', 'superscript', 'subscript', 'quote', 'code', 'open', 'spoiler', 'map', 'nobb', 'list', 'checklist', 'ul', 'ol', 'dl', 'li', 'table', 'tr', 'th', 'td', 'center', 'color', 'font', 'size', 'zrl', 'zmg', 'rpost', 'qr', 'observer']; + var open_close_elements = ['bold', 'italic', 'underline', 'overline', 'strike', 'superscript', 'subscript', 'quote', 'code', 'open', 'spoiler', 'map', 'nobb', 'list', 'checklist', 'ul', 'ol', 'dl', 'li', 'table', 'tr', 'th', 'td', 'center', 'color', 'font', 'size', 'zrl', 'zmg', 'rpost', 'qr', 'observer', 'embed', 'highlight']; var open_elements = ['observer.baseurl', 'observer.address', 'observer.photo', 'observer.name', 'observer.webname', 'observer.url', '*', 'hr', ]; var elements = open_close_elements.concat(open_elements); diff --git a/view/js/main.js b/view/js/main.js index 5435dfd87..a6164e602 100644 --- a/view/js/main.js +++ b/view/js/main.js @@ -249,7 +249,7 @@ var divmore_height = 400; var last_filestorage_id = null; var mediaPlaying = false; var contentHeightDiff = 0; - +var liveRecurse = 0; $(function() { $.ajaxSetup({cache: false}); @@ -444,16 +444,26 @@ function contextualHelp() { } function contextualHelpFocus(target, openSidePanel) { - if (openSidePanel) { - $("main").addClass('region_1-on'); // Open the side panel to highlight element - } - else { - $("main").removeClass('region_1-on'); - } - $('html,body').animate({ scrollTop: $(target).offset().top - $('nav').outerHeight(true) - $('#contextual-help-content').outerHeight(true)}, 'slow'); - for (i = 0; i < 3; i++) { - $(target).fadeTo('slow', 0.1).fadeTo('slow', 1.0); - } + if($(target).length) { + if (openSidePanel) { + $("main").addClass('region_1-on'); // Open the side panel to highlight element + } + else { + $("main").removeClass('region_1-on'); + } + + var css_position = $(target).parent().css('position'); + if (css_position === 'fixed') { + $(target).parent().css('position', 'static'); + } + + $('html,body').animate({ scrollTop: $(target).offset().top - $('nav').outerHeight(true) - $('#contextual-help-content').outerHeight(true)}, 'slow'); + for (i = 0; i < 3; i++) { + $(target).fadeTo('slow', 0.1).fadeTo('slow', 1.0); + } + + $(target).parent().css('position', css_position); + } } function updatePageItems(mode, data) { @@ -664,6 +674,8 @@ function updateConvItems(mode,data) { $('.item_' + bParam_mid.substring(0,32)).addClass('item-highlight'); } + $(document.body).trigger("sticky_kit:recalc"); + } function collapseHeight() { @@ -754,6 +766,13 @@ function liveUpdate() { update_mode = 'append'; } else { +// if(bParam_static) { +// in_progress = false; +// if(timer) clearTimeout(timer); +// timer = setTimeout(NavUpdate,10000); +// return; +// } + update_mode = 'update'; var orgHeight = $("#region_2").height(); } @@ -762,6 +781,27 @@ function liveUpdate() { var dstart = new Date(); console.log('LOADING data...'); $.get(update_url, function(data) { + + // on shared hosts occasionally the live update process will be killed + // leaving an incomplete HTML structure, which leads to conversations getting + // truncated and the page messed up if all the divs aren't closed. We will try + // again and give up if we can't get a valid HTML response after 10 tries. + + if((data.indexOf("") != (-1)) && (data.indexOf("") == (-1))) { + console.log('Incomplete data. Reloading'); + in_progress = false; + liveRecurse ++; + if(liveRecurse < 10) { + liveUpdate(); + } + else { + console.log('Incomplete data. Too many attempts. Giving up.'); + } + } + + // else data was valid - reset the recursion counter + liveRecurse = 0; + var dready = new Date(); console.log('DATA ready in: ' + (dready - dstart)/1000 + ' seconds.'); @@ -1285,7 +1325,6 @@ $(document).ready(function() { numbers : aStr['t17'], }; - $("#toc").toc(); }); function zFormError(elm,x) { diff --git a/view/nl/hmessages.po b/view/nl/hmessages.po index 212722caa..a1f9729d0 100644 --- a/view/nl/hmessages.po +++ b/view/nl/hmessages.po @@ -1,16 +1,17 @@ -# Hubzilla Project -# Copyright (C) 2012-2014 the Hubzilla Project -# This file is distributed under the same license as the Red package. +# hubzilla +# Copyright (C) 2012-2016 hubzilla +# This file is distributed under the same license as the hubzilla package. # # Translators: -# jeroenpraat , 2015-2016 +# jeroenpraat , 2015-2016 +# jeroenpraat , 2016 msgid "" msgstr "" "Project-Id-Version: Redmatrix\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-09-30 00:02-0700\n" -"PO-Revision-Date: 2016-10-05 20:11+0000\n" -"Last-Translator: jeroenpraat \n" +"POT-Creation-Date: 2016-12-16 00:04-0800\n" +"PO-Revision-Date: 2016-12-19 15:18+0000\n" +"Last-Translator: jeroenpraat \n" "Language-Team: Dutch (http://www.transifex.com/Friendica/red-matrix/language/nl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -18,274 +19,294 @@ msgstr "" "Language: nl\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ../../Zotlabs/Access/PermissionRoles.php:182 +#: ../../Zotlabs/Access/PermissionRoles.php:227 #: ../../include/permissions.php:945 msgid "Social Networking" msgstr "Sociaal netwerk" -#: ../../Zotlabs/Access/PermissionRoles.php:183 +#: ../../Zotlabs/Access/PermissionRoles.php:228 #: ../../include/permissions.php:945 msgid "Social - Mostly Public" msgstr "Sociaal - Vrijwel alles openbaar" -#: ../../Zotlabs/Access/PermissionRoles.php:184 +#: ../../Zotlabs/Access/PermissionRoles.php:229 #: ../../include/permissions.php:945 msgid "Social - Restricted" msgstr "Sociaal - Beperkt zichtbaar" -#: ../../Zotlabs/Access/PermissionRoles.php:185 +#: ../../Zotlabs/Access/PermissionRoles.php:230 #: ../../include/permissions.php:945 msgid "Social - Private" msgstr "Sociaal - Verborgen kanaal" -#: ../../Zotlabs/Access/PermissionRoles.php:188 +#: ../../Zotlabs/Access/PermissionRoles.php:233 #: ../../include/permissions.php:946 msgid "Community Forum" msgstr "Groepsforum" -#: ../../Zotlabs/Access/PermissionRoles.php:189 +#: ../../Zotlabs/Access/PermissionRoles.php:234 #: ../../include/permissions.php:946 msgid "Forum - Mostly Public" msgstr "Forum - Vrijwel alles openbaar" -#: ../../Zotlabs/Access/PermissionRoles.php:190 +#: ../../Zotlabs/Access/PermissionRoles.php:235 #: ../../include/permissions.php:946 msgid "Forum - Restricted" msgstr "Forum - Beperkt zichtbaar" -#: ../../Zotlabs/Access/PermissionRoles.php:191 +#: ../../Zotlabs/Access/PermissionRoles.php:236 #: ../../include/permissions.php:946 msgid "Forum - Private" msgstr "Forum - Verborgen kanaal" -#: ../../Zotlabs/Access/PermissionRoles.php:194 +#: ../../Zotlabs/Access/PermissionRoles.php:239 #: ../../include/permissions.php:947 msgid "Feed Republish" msgstr "Feed herpubliceren" -#: ../../Zotlabs/Access/PermissionRoles.php:195 +#: ../../Zotlabs/Access/PermissionRoles.php:240 #: ../../include/permissions.php:947 msgid "Feed - Mostly Public" msgstr "Feed - Vrijwel alles openbaar" -#: ../../Zotlabs/Access/PermissionRoles.php:196 +#: ../../Zotlabs/Access/PermissionRoles.php:241 #: ../../include/permissions.php:947 msgid "Feed - Restricted" msgstr "Feed - Beperkt zichtbaar" -#: ../../Zotlabs/Access/PermissionRoles.php:199 +#: ../../Zotlabs/Access/PermissionRoles.php:244 #: ../../include/permissions.php:948 msgid "Special Purpose" msgstr "Speciaal doel" -#: ../../Zotlabs/Access/PermissionRoles.php:200 +#: ../../Zotlabs/Access/PermissionRoles.php:245 #: ../../include/permissions.php:948 msgid "Special - Celebrity/Soapbox" msgstr "Speciaal - Beroemdheid/alleen volgen" -#: ../../Zotlabs/Access/PermissionRoles.php:201 +#: ../../Zotlabs/Access/PermissionRoles.php:246 #: ../../include/permissions.php:948 msgid "Special - Group Repository" msgstr "Speciaal - Groepsopslag" -#: ../../Zotlabs/Access/PermissionRoles.php:204 -#: ../../Zotlabs/Module/New_channel.php:132 +#: ../../Zotlabs/Access/PermissionRoles.php:249 #: ../../Zotlabs/Module/Register.php:213 -#: ../../Zotlabs/Module/Settings/Channel.php:442 -#: ../../include/permissions.php:949 ../../include/selectors.php:49 -#: ../../include/selectors.php:66 ../../include/selectors.php:104 -#: ../../include/selectors.php:140 +#: ../../Zotlabs/Module/New_channel.php:132 +#: ../../Zotlabs/Module/Settings/Channel.php:445 +#: ../../extend/addon/addon/cdav/cdav.php:277 +#: ../../extend/addon/addon/cdav/cdav.php:284 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1148 +#: ../../include/selectors.php:49 ../../include/selectors.php:66 +#: ../../include/selectors.php:104 ../../include/selectors.php:140 +#: ../../include/permissions.php:949 msgid "Other" msgstr "Anders" -#: ../../Zotlabs/Access/PermissionRoles.php:205 +#: ../../Zotlabs/Access/PermissionRoles.php:250 #: ../../include/permissions.php:949 msgid "Custom/Expert Mode" msgstr "Expertmodus/handmatig aanpassen" -#: ../../Zotlabs/Access/Permissions.php:30 +#: ../../Zotlabs/Access/Permissions.php:46 msgid "Can view my channel stream and posts" msgstr "Kan mijn kanaal en berichten bekijken" -#: ../../Zotlabs/Access/Permissions.php:31 ../../include/permissions.php:42 +#: ../../Zotlabs/Access/Permissions.php:47 ../../include/permissions.php:42 msgid "Can send me their channel stream and posts" msgstr "Kan mij de inhoud van hun kanaal en berichten sturen" -#: ../../Zotlabs/Access/Permissions.php:32 ../../include/permissions.php:36 +#: ../../Zotlabs/Access/Permissions.php:48 ../../include/permissions.php:36 msgid "Can view my default channel profile" msgstr "Kan mijn standaard kanaalprofiel bekijken" -#: ../../Zotlabs/Access/Permissions.php:33 ../../include/permissions.php:37 +#: ../../Zotlabs/Access/Permissions.php:49 ../../include/permissions.php:37 msgid "Can view my connections" msgstr "Kan een lijst met mijn connecties bekijken" -#: ../../Zotlabs/Access/Permissions.php:34 ../../include/permissions.php:38 +#: ../../Zotlabs/Access/Permissions.php:50 ../../include/permissions.php:38 msgid "Can view my file storage and photos" msgstr "Kan mijn foto's en andere bestanden bekijken" -#: ../../Zotlabs/Access/Permissions.php:35 +#: ../../Zotlabs/Access/Permissions.php:51 msgid "Can upload/modify my file storage and photos" msgstr "Kan foto's en andere bestanden aan mijn bestandsopslag toevoegen" -#: ../../Zotlabs/Access/Permissions.php:36 +#: ../../Zotlabs/Access/Permissions.php:52 msgid "Can view my channel webpages" msgstr "Kan de webpagina's van mijn kanaal bekijken" -#: ../../Zotlabs/Access/Permissions.php:37 +#: ../../Zotlabs/Access/Permissions.php:53 msgid "Can create/edit my channel webpages" msgstr "Kan wegpagina's van mijn kanaal aanmaken en bewerken" -#: ../../Zotlabs/Access/Permissions.php:38 +#: ../../Zotlabs/Access/Permissions.php:54 msgid "Can post on my channel (wall) page" msgstr "Kan een bericht in mijn kanaal plaatsen" -#: ../../Zotlabs/Access/Permissions.php:39 ../../include/permissions.php:44 +#: ../../Zotlabs/Access/Permissions.php:55 ../../include/permissions.php:44 msgid "Can comment on or like my posts" msgstr "Kan op mijn berichten reageren of deze (niet) leuk vinden" -#: ../../Zotlabs/Access/Permissions.php:40 ../../include/permissions.php:45 +#: ../../Zotlabs/Access/Permissions.php:56 ../../include/permissions.php:45 msgid "Can send me private mail messages" msgstr "Kan mij privéberichten sturen" -#: ../../Zotlabs/Access/Permissions.php:41 +#: ../../Zotlabs/Access/Permissions.php:57 msgid "Can like/dislike profiles and profile things" msgstr "Kan profielen en profieldingen leuk en niet leuk vinden " -#: ../../Zotlabs/Access/Permissions.php:42 +#: ../../Zotlabs/Access/Permissions.php:58 msgid "Can forward to all my channel connections via @+ mentions in posts" msgstr "Kan naar al mijn kanaalconnecties berichten doorsturen met behulp van @vermeldingen+" -#: ../../Zotlabs/Access/Permissions.php:43 +#: ../../Zotlabs/Access/Permissions.php:59 msgid "Can chat with me" msgstr "Kan met mij chatten" -#: ../../Zotlabs/Access/Permissions.php:44 ../../include/permissions.php:53 +#: ../../Zotlabs/Access/Permissions.php:60 ../../include/permissions.php:53 msgid "Can source my public posts in derived channels" msgstr "Kan mijn openbare berichten als bron voor andere kanalen gebruiken" -#: ../../Zotlabs/Access/Permissions.php:45 +#: ../../Zotlabs/Access/Permissions.php:61 msgid "Can administer my channel" msgstr "Kan mijn kanaal beheren" -#: ../../Zotlabs/Storage/Browser.php:107 ../../Zotlabs/Storage/Browser.php:238 +#: ../../Zotlabs/Storage/Browser.php:106 ../../Zotlabs/Storage/Browser.php:237 msgid "parent" msgstr "omhoog" -#: ../../Zotlabs/Storage/Browser.php:131 ../../include/text.php:2711 +#: ../../Zotlabs/Storage/Browser.php:130 ../../include/text.php:2682 msgid "Collection" msgstr "map" -#: ../../Zotlabs/Storage/Browser.php:134 +#: ../../Zotlabs/Storage/Browser.php:133 msgid "Principal" msgstr "principal" -#: ../../Zotlabs/Storage/Browser.php:137 +#: ../../Zotlabs/Storage/Browser.php:136 msgid "Addressbook" msgstr "Adresboek" -#: ../../Zotlabs/Storage/Browser.php:140 +#: ../../Zotlabs/Storage/Browser.php:139 msgid "Calendar" msgstr "Agenda" -#: ../../Zotlabs/Storage/Browser.php:143 +#: ../../Zotlabs/Storage/Browser.php:142 msgid "Schedule Inbox" msgstr "Planning-postvak IN" -#: ../../Zotlabs/Storage/Browser.php:146 +#: ../../Zotlabs/Storage/Browser.php:145 msgid "Schedule Outbox" msgstr "Planning-postvak UIT" -#: ../../Zotlabs/Storage/Browser.php:164 ../../Zotlabs/Module/Photos.php:789 +#: ../../Zotlabs/Storage/Browser.php:163 ../../Zotlabs/Module/Photos.php:789 #: ../../Zotlabs/Module/Photos.php:1249 -#: ../../Zotlabs/Module/Embedphotos.php:147 ../../Zotlabs/Lib/Apps.php:490 -#: ../../Zotlabs/Lib/Apps.php:565 ../../include/conversation.php:1031 -#: ../../include/widgets.php:1683 +#: ../../Zotlabs/Module/Embedphotos.php:145 ../../Zotlabs/Lib/Apps.php:526 +#: ../../Zotlabs/Lib/Apps.php:603 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:745 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:746 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:753 +#: ../../include/widgets.php:1684 ../../include/conversation.php:1029 msgid "Unknown" msgstr "Onbekend" -#: ../../Zotlabs/Storage/Browser.php:225 ../../Zotlabs/Module/Fbrowser.php:85 -#: ../../Zotlabs/Lib/Apps.php:217 ../../include/nav.php:96 -#: ../../include/conversation.php:1679 +#: ../../Zotlabs/Storage/Browser.php:224 ../../Zotlabs/Module/Fbrowser.php:85 +#: ../../Zotlabs/Lib/Apps.php:219 ../../include/nav.php:96 +#: ../../include/conversation.php:1681 msgid "Files" msgstr "Bestanden" -#: ../../Zotlabs/Storage/Browser.php:226 +#: ../../Zotlabs/Storage/Browser.php:225 msgid "Total" msgstr "Totaal" -#: ../../Zotlabs/Storage/Browser.php:228 +#: ../../Zotlabs/Storage/Browser.php:227 msgid "Shared" msgstr "Gedeeld" -#: ../../Zotlabs/Storage/Browser.php:229 ../../Zotlabs/Storage/Browser.php:321 +#: ../../Zotlabs/Storage/Browser.php:228 ../../Zotlabs/Storage/Browser.php:321 #: ../../Zotlabs/Module/Menu.php:118 ../../Zotlabs/Module/New_channel.php:147 #: ../../Zotlabs/Module/Blocks.php:159 ../../Zotlabs/Module/Layouts.php:184 #: ../../Zotlabs/Module/Webpages.php:239 +#: ../../extend/addon/addon/cdav/include/widgets.php:127 +#: ../../extend/addon/addon/cdav/include/widgets.php:164 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1151 msgid "Create" msgstr "Aanmaken" -#: ../../Zotlabs/Storage/Browser.php:230 ../../Zotlabs/Storage/Browser.php:323 +#: ../../Zotlabs/Storage/Browser.php:229 ../../Zotlabs/Storage/Browser.php:323 #: ../../Zotlabs/Module/Cover_photo.php:357 #: ../../Zotlabs/Module/Photos.php:816 ../../Zotlabs/Module/Photos.php:1370 -#: ../../Zotlabs/Module/Profile_photo.php:390 -#: ../../Zotlabs/Module/Embedphotos.php:159 ../../include/widgets.php:1696 +#: ../../Zotlabs/Module/Profile_photo.php:410 +#: ../../Zotlabs/Module/Embedphotos.php:157 +#: ../../extend/addon/addon/cdav/include/widgets.php:132 +#: ../../extend/addon/addon/cdav/include/widgets.php:168 +#: ../../include/widgets.php:1697 msgid "Upload" msgstr "Uploaden" -#: ../../Zotlabs/Storage/Browser.php:234 -#: ../../Zotlabs/Module/Admin/Channels.php:163 -#: ../../Zotlabs/Module/Sharedwithme.php:99 ../../Zotlabs/Module/Chat.php:250 +#: ../../Zotlabs/Storage/Browser.php:233 +#: ../../Zotlabs/Module/Admin/Channels.php:159 +#: ../../Zotlabs/Module/Sharedwithme.php:99 ../../Zotlabs/Module/Wiki.php:151 #: ../../Zotlabs/Module/Settings/Oauth.php:89 #: ../../Zotlabs/Module/Settings/Oauth.php:115 +#: ../../Zotlabs/Module/Chat.php:250 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1136 +#: ../../extend/addon/addon/rendezvous/rendezvous.php:164 msgid "Name" msgstr "Naam" -#: ../../Zotlabs/Storage/Browser.php:235 +#: ../../Zotlabs/Storage/Browser.php:234 ../../Zotlabs/Module/Wiki.php:152 msgid "Type" msgstr "Type" -#: ../../Zotlabs/Storage/Browser.php:236 -#: ../../Zotlabs/Module/Sharedwithme.php:101 ../../include/text.php:1372 +#: ../../Zotlabs/Storage/Browser.php:235 +#: ../../Zotlabs/Module/Sharedwithme.php:101 ../../include/text.php:1390 msgid "Size" msgstr "Grootte" -#: ../../Zotlabs/Storage/Browser.php:237 +#: ../../Zotlabs/Storage/Browser.php:236 #: ../../Zotlabs/Module/Sharedwithme.php:102 msgid "Last Modified" msgstr "Laatst gewijzigd" -#: ../../Zotlabs/Storage/Browser.php:239 -#: ../../Zotlabs/Module/Admin/Profs.php:154 +#: ../../Zotlabs/Storage/Browser.php:238 #: ../../Zotlabs/Module/Connections.php:290 #: ../../Zotlabs/Module/Connections.php:310 -#: ../../Zotlabs/Module/Editblock.php:109 +#: ../../Zotlabs/Module/Admin/Profs.php:154 #: ../../Zotlabs/Module/Editlayout.php:114 #: ../../Zotlabs/Module/Editwebpage.php:145 ../../Zotlabs/Module/Menu.php:112 +#: ../../Zotlabs/Module/Editblock.php:109 ../../Zotlabs/Module/Editpost.php:84 #: ../../Zotlabs/Module/Blocks.php:160 ../../Zotlabs/Module/Layouts.php:192 -#: ../../Zotlabs/Module/Webpages.php:240 ../../Zotlabs/Module/Editpost.php:84 -#: ../../Zotlabs/Module/Thing.php:260 +#: ../../Zotlabs/Module/Webpages.php:240 ../../Zotlabs/Module/Wiki.php:144 +#: ../../Zotlabs/Module/Wiki.php:246 #: ../../Zotlabs/Module/Settings/Oauth.php:149 -#: ../../Zotlabs/Lib/ThreadItem.php:106 ../../Zotlabs/Lib/Apps.php:341 -#: ../../include/channel.php:959 ../../include/channel.php:963 +#: ../../Zotlabs/Module/Thing.php:260 ../../Zotlabs/Lib/ThreadItem.php:106 +#: ../../Zotlabs/Lib/Apps.php:346 +#: ../../extend/addon/addon/cdav/include/widgets.php:125 +#: ../../extend/addon/addon/cdav/include/widgets.php:161 +#: ../../include/channel.php:961 ../../include/channel.php:965 #: ../../include/page_widgets.php:9 ../../include/page_widgets.php:39 #: ../../include/menu.php:113 msgid "Edit" msgstr "Bewerken" -#: ../../Zotlabs/Storage/Browser.php:240 -#: ../../Zotlabs/Module/Admin/Accounts.php:174 -#: ../../Zotlabs/Module/Admin/Channels.php:153 -#: ../../Zotlabs/Module/Admin/Profs.php:155 +#: ../../Zotlabs/Storage/Browser.php:239 ../../Zotlabs/Module/Connedit.php:635 #: ../../Zotlabs/Module/Connections.php:263 -#: ../../Zotlabs/Module/Connedit.php:607 -#: ../../Zotlabs/Module/Editblock.php:134 +#: ../../Zotlabs/Module/Admin/Profs.php:155 +#: ../../Zotlabs/Module/Admin/Accounts.php:173 +#: ../../Zotlabs/Module/Admin/Channels.php:149 #: ../../Zotlabs/Module/Editlayout.php:137 -#: ../../Zotlabs/Module/Editwebpage.php:170 ../../Zotlabs/Module/Group.php:177 +#: ../../Zotlabs/Module/Editwebpage.php:170 +#: ../../Zotlabs/Module/Editblock.php:134 ../../Zotlabs/Module/Group.php:177 #: ../../Zotlabs/Module/Photos.php:1179 ../../Zotlabs/Module/Blocks.php:162 -#: ../../Zotlabs/Module/Webpages.php:242 ../../Zotlabs/Module/Thing.php:261 +#: ../../Zotlabs/Module/Webpages.php:242 #: ../../Zotlabs/Module/Settings/Oauth.php:150 -#: ../../Zotlabs/Lib/ThreadItem.php:126 ../../Zotlabs/Lib/Apps.php:342 -#: ../../include/conversation.php:660 +#: ../../Zotlabs/Module/Thing.php:261 ../../Zotlabs/Lib/ThreadItem.php:126 +#: ../../Zotlabs/Lib/Apps.php:347 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:864 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1153 +#: ../../include/conversation.php:656 msgid "Delete" msgstr "Verwijderen" @@ -313,84 +334,92 @@ msgstr "Bestand uploaden" #: ../../Zotlabs/Storage/Browser.php:335 msgid "Drop files here to immediately upload" -msgstr "Sleep bestanden hierheen om ze onmiddelijk te uploaden" +msgstr "Sleep bestanden hierheen om ze onmiddellijk te uploaden" -#: ../../Zotlabs/Web/Router.php:65 ../../Zotlabs/Web/WebServer.php:128 +#: ../../Zotlabs/Web/Router.php:67 ../../Zotlabs/Web/WebServer.php:128 #: ../../Zotlabs/Module/Achievements.php:34 -#: ../../Zotlabs/Module/Network.php:15 ../../Zotlabs/Module/Channel.php:104 -#: ../../Zotlabs/Module/Channel.php:229 ../../Zotlabs/Module/Channel.php:270 +#: ../../Zotlabs/Module/Register.php:77 ../../Zotlabs/Module/Connedit.php:397 #: ../../Zotlabs/Module/Authtest.php:16 ../../Zotlabs/Module/Bookmarks.php:61 -#: ../../Zotlabs/Module/Page.php:35 ../../Zotlabs/Module/Page.php:91 -#: ../../Zotlabs/Module/Mail.php:121 ../../Zotlabs/Module/Connections.php:33 +#: ../../Zotlabs/Module/Locs.php:87 ../../Zotlabs/Module/Page.php:35 +#: ../../Zotlabs/Module/Page.php:91 ../../Zotlabs/Module/Manage.php:10 +#: ../../Zotlabs/Module/Connections.php:33 #: ../../Zotlabs/Module/Cover_photo.php:277 #: ../../Zotlabs/Module/Cover_photo.php:290 -#: ../../Zotlabs/Module/Connedit.php:395 ../../Zotlabs/Module/Editblock.php:67 #: ../../Zotlabs/Module/Editlayout.php:67 #: ../../Zotlabs/Module/Editlayout.php:90 #: ../../Zotlabs/Module/Editwebpage.php:68 #: ../../Zotlabs/Module/Editwebpage.php:89 #: ../../Zotlabs/Module/Editwebpage.php:104 -#: ../../Zotlabs/Module/Editwebpage.php:126 ../../Zotlabs/Module/Menu.php:78 -#: ../../Zotlabs/Module/Appman.php:75 ../../Zotlabs/Module/Api.php:12 -#: ../../Zotlabs/Module/Pdledit.php:29 ../../Zotlabs/Module/Filestorage.php:23 +#: ../../Zotlabs/Module/Editwebpage.php:126 +#: ../../Zotlabs/Module/Channel.php:107 ../../Zotlabs/Module/Channel.php:237 +#: ../../Zotlabs/Module/Channel.php:277 ../../Zotlabs/Module/Network.php:15 +#: ../../Zotlabs/Module/Menu.php:78 ../../Zotlabs/Module/Appman.php:76 +#: ../../Zotlabs/Module/Filestorage.php:23 #: ../../Zotlabs/Module/Filestorage.php:78 #: ../../Zotlabs/Module/Filestorage.php:93 -#: ../../Zotlabs/Module/Filestorage.php:120 ../../Zotlabs/Module/Manage.php:10 -#: ../../Zotlabs/Module/Group.php:13 ../../Zotlabs/Module/Block.php:26 -#: ../../Zotlabs/Module/Block.php:76 ../../Zotlabs/Module/Invite.php:17 -#: ../../Zotlabs/Module/Invite.php:91 ../../Zotlabs/Module/Locs.php:87 -#: ../../Zotlabs/Module/Rate.php:113 ../../Zotlabs/Module/Like.php:181 -#: ../../Zotlabs/Module/Profiles.php:203 ../../Zotlabs/Module/Profiles.php:601 +#: ../../Zotlabs/Module/Filestorage.php:120 ../../Zotlabs/Module/Item.php:220 +#: ../../Zotlabs/Module/Item.php:230 ../../Zotlabs/Module/Item.php:1064 +#: ../../Zotlabs/Module/Settings.php:59 ../../Zotlabs/Module/Mail.php:163 +#: ../../Zotlabs/Module/Block.php:26 ../../Zotlabs/Module/Block.php:76 +#: ../../Zotlabs/Module/Invite.php:17 ../../Zotlabs/Module/Invite.php:94 +#: ../../Zotlabs/Module/Editblock.php:67 ../../Zotlabs/Module/Group.php:13 #: ../../Zotlabs/Module/Mitem.php:115 ../../Zotlabs/Module/Message.php:18 -#: ../../Zotlabs/Module/Setup.php:220 ../../Zotlabs/Module/Mood.php:116 -#: ../../Zotlabs/Module/Photos.php:73 ../../Zotlabs/Module/New_channel.php:77 +#: ../../Zotlabs/Module/Mood.php:116 ../../Zotlabs/Module/Photos.php:73 +#: ../../Zotlabs/Module/Setup.php:212 ../../Zotlabs/Module/Editpost.php:17 +#: ../../Zotlabs/Module/New_channel.php:77 #: ../../Zotlabs/Module/New_channel.php:104 -#: ../../Zotlabs/Module/Notifications.php:70 ../../Zotlabs/Module/Poke.php:137 +#: ../../Zotlabs/Module/Notifications.php:11 ../../Zotlabs/Module/Poke.php:137 +#: ../../Zotlabs/Module/Profiles.php:197 ../../Zotlabs/Module/Profiles.php:595 #: ../../Zotlabs/Module/Profile.php:68 ../../Zotlabs/Module/Profile.php:76 #: ../../Zotlabs/Module/Blocks.php:73 ../../Zotlabs/Module/Blocks.php:80 #: ../../Zotlabs/Module/Layouts.php:71 ../../Zotlabs/Module/Layouts.php:78 -#: ../../Zotlabs/Module/Layouts.php:89 -#: ../../Zotlabs/Module/Profile_photo.php:265 -#: ../../Zotlabs/Module/Profile_photo.php:278 -#: ../../Zotlabs/Module/Common.php:39 ../../Zotlabs/Module/Settings.php:59 -#: ../../Zotlabs/Module/Register.php:77 ../../Zotlabs/Module/Regmod.php:21 -#: ../../Zotlabs/Module/Webpages.php:116 ../../Zotlabs/Module/Editpost.php:17 -#: ../../Zotlabs/Module/Events.php:264 +#: ../../Zotlabs/Module/Layouts.php:89 ../../Zotlabs/Module/Rate.php:113 +#: ../../Zotlabs/Module/Like.php:181 +#: ../../Zotlabs/Module/Profile_photo.php:273 +#: ../../Zotlabs/Module/Profile_photo.php:286 +#: ../../Zotlabs/Module/Common.php:39 ../../Zotlabs/Module/Api.php:24 +#: ../../Zotlabs/Module/Regmod.php:21 ../../Zotlabs/Module/Pdledit.php:29 #: ../../Zotlabs/Module/Service_limits.php:11 -#: ../../Zotlabs/Module/Thing.php:274 ../../Zotlabs/Module/Thing.php:294 -#: ../../Zotlabs/Module/Thing.php:335 ../../Zotlabs/Module/Item.php:214 -#: ../../Zotlabs/Module/Item.php:222 ../../Zotlabs/Module/Item.php:1068 -#: ../../Zotlabs/Module/Sharedwithme.php:11 -#: ../../Zotlabs/Module/Sources.php:74 ../../Zotlabs/Module/Suggest.php:30 +#: ../../Zotlabs/Module/Webpages.php:116 +#: ../../Zotlabs/Module/Sharedwithme.php:11 ../../Zotlabs/Module/Wiki.php:189 +#: ../../Zotlabs/Module/Wiki.php:286 ../../Zotlabs/Module/Sources.php:74 +#: ../../Zotlabs/Module/Suggest.php:30 ../../Zotlabs/Module/Thing.php:274 +#: ../../Zotlabs/Module/Thing.php:294 ../../Zotlabs/Module/Thing.php:335 #: ../../Zotlabs/Module/Viewconnections.php:28 #: ../../Zotlabs/Module/Viewconnections.php:33 #: ../../Zotlabs/Module/Viewsrc.php:18 ../../Zotlabs/Module/Chat.php:100 -#: ../../Zotlabs/Module/Chat.php:105 ../../Zotlabs/Lib/Chatroom.php:137 -#: ../../include/photos.php:27 ../../include/items.php:3506 -#: ../../include/attach.php:142 ../../include/attach.php:190 -#: ../../include/attach.php:253 ../../include/attach.php:267 -#: ../../include/attach.php:274 ../../include/attach.php:339 -#: ../../include/attach.php:353 ../../include/attach.php:360 -#: ../../include/attach.php:440 ../../include/attach.php:909 -#: ../../include/attach.php:980 ../../include/attach.php:1132 +#: ../../Zotlabs/Module/Chat.php:105 ../../Zotlabs/Module/Events.php:267 +#: ../../Zotlabs/Lib/Chatroom.php:137 +#: ../../extend/addon/addon/friendica/dfrn_confirm.php:55 +#: ../../extend/addon/addon/keepout/keepout.php:36 +#: ../../extend/addon/addon/pumpio/pumpio.php:40 +#: ../../extend/addon/addon/openid/Mod_Id.php:53 +#: ../../extend/addon/addon/diaspora_reconnect/diaspora_reconnect.php:58 +#: ../../include/items.php:3422 ../../include/attach.php:142 +#: ../../include/attach.php:189 ../../include/attach.php:253 +#: ../../include/attach.php:267 ../../include/attach.php:274 +#: ../../include/attach.php:341 ../../include/attach.php:355 +#: ../../include/attach.php:362 ../../include/attach.php:439 +#: ../../include/attach.php:906 ../../include/attach.php:977 +#: ../../include/attach.php:1135 ../../include/photos.php:27 msgid "Permission denied." msgstr "Toegang geweigerd." -#: ../../Zotlabs/Web/Router.php:146 ../../include/help.php:56 -msgid "Not Found" -msgstr "Niet gevonden" - -#: ../../Zotlabs/Web/Router.php:149 ../../Zotlabs/Module/Page.php:94 -#: ../../Zotlabs/Module/Block.php:79 ../../Zotlabs/Module/Display.php:120 -#: ../../include/help.php:59 +#: ../../Zotlabs/Web/Router.php:157 ../../Zotlabs/Module/Page.php:94 +#: ../../Zotlabs/Module/Display.php:120 ../../Zotlabs/Module/Block.php:79 +#: ../../include/help.php:66 msgid "Page not found." msgstr "Pagina niet gevonden." -#: ../../Zotlabs/Web/WebServer.php:127 ../../Zotlabs/Module/Group.php:72 -#: ../../Zotlabs/Module/Dreport.php:10 ../../Zotlabs/Module/Dreport.php:66 -#: ../../Zotlabs/Module/Import_items.php:114 ../../Zotlabs/Module/Like.php:283 -#: ../../Zotlabs/Module/Profperm.php:28 ../../Zotlabs/Module/Subthread.php:62 -#: ../../include/items.php:403 +#: ../../Zotlabs/Web/WebServer.php:127 ../../Zotlabs/Module/Dreport.php:10 +#: ../../Zotlabs/Module/Dreport.php:68 +#: ../../Zotlabs/Module/Import_items.php:114 ../../Zotlabs/Module/Group.php:72 +#: ../../Zotlabs/Module/Profperm.php:28 ../../Zotlabs/Module/Like.php:283 +#: ../../Zotlabs/Module/Subthread.php:62 +#: ../../extend/addon/addon/frphotos/frphotos.php:81 +#: ../../extend/addon/addon/redfiles/redfiles.php:109 +#: ../../extend/addon/addon/redphotos/redphotos.php:119 +#: ../../include/items.php:327 msgid "Permission denied" msgstr "Toegang geweigerd" @@ -400,19 +429,21 @@ msgid "" " logout and retry." msgstr "Authenticatie op afstand geblokkeerd. Je bent lokaal op deze hub ingelogd. Uitloggen en opnieuw proberen." -#: ../../Zotlabs/Zot/Auth.php:246 +#: ../../Zotlabs/Zot/Auth.php:250 +#: ../../extend/addon/addon/openid/Mod_Openid.php:76 +#: ../../extend/addon/addon/openid/Mod_Openid.php:183 #, php-format msgid "Welcome %s. Remote authentication successful." msgstr "Welkom %s. Authenticatie op afstand geslaagd." #: ../../Zotlabs/Module/Achievements.php:15 -#: ../../Zotlabs/Module/Editblock.php:31 -#: ../../Zotlabs/Module/Editlayout.php:31 +#: ../../Zotlabs/Module/Connect.php:17 ../../Zotlabs/Module/Editlayout.php:31 #: ../../Zotlabs/Module/Editwebpage.php:32 -#: ../../Zotlabs/Module/Filestorage.php:59 ../../Zotlabs/Module/Connect.php:17 -#: ../../Zotlabs/Module/Hcard.php:12 ../../Zotlabs/Module/Profile.php:20 -#: ../../Zotlabs/Module/Blocks.php:33 ../../Zotlabs/Module/Layouts.php:31 -#: ../../Zotlabs/Module/Webpages.php:33 ../../include/channel.php:859 +#: ../../Zotlabs/Module/Filestorage.php:59 +#: ../../Zotlabs/Module/Editblock.php:31 ../../Zotlabs/Module/Hcard.php:12 +#: ../../Zotlabs/Module/Profile.php:20 ../../Zotlabs/Module/Blocks.php:33 +#: ../../Zotlabs/Module/Layouts.php:31 ../../Zotlabs/Module/Webpages.php:33 +#: ../../include/channel.php:862 msgid "Requested profile is not available." msgstr "Opgevraagd profiel is niet beschikbaar" @@ -428,258 +459,9 @@ msgstr "Afwezig" msgid "Online" msgstr "Online" -#: ../../Zotlabs/Module/Network.php:95 -msgid "No such group" -msgstr "Collectie niet gevonden" - -#: ../../Zotlabs/Module/Network.php:135 -msgid "No such channel" -msgstr "Niet zo'n kanaal" - -#: ../../Zotlabs/Module/Network.php:140 -msgid "forum" -msgstr "forum" - -#: ../../Zotlabs/Module/Network.php:152 -msgid "Search Results For:" -msgstr "Zoekresultaten voor:" - -#: ../../Zotlabs/Module/Network.php:218 -msgid "Privacy group is empty" -msgstr "Privacygroep is leeg" - -#: ../../Zotlabs/Module/Network.php:227 -msgid "Privacy group: " -msgstr "Privacygroep: " - -#: ../../Zotlabs/Module/Network.php:253 -msgid "Invalid connection." -msgstr "Ongeldige connectie." - -#: ../../Zotlabs/Module/Probe.php:28 ../../Zotlabs/Module/Probe.php:32 -#, php-format -msgid "Fetching URL returns error: %1$s" -msgstr "Ophalen URL gaf een foutmelding terug: %1$s" - -#: ../../Zotlabs/Module/Acl.php:313 -msgid "network" -msgstr "netwerk" - -#: ../../Zotlabs/Module/Acl.php:323 -msgid "RSS" -msgstr "RSS" - -#: ../../Zotlabs/Module/Channel.php:28 ../../Zotlabs/Module/Wiki.php:20 -#: ../../Zotlabs/Module/Chat.php:25 -msgid "You must be logged in to see this page." -msgstr "Je moet zijn ingelogd om deze pagina te kunnen bekijken." - -#: ../../Zotlabs/Module/Channel.php:40 -msgid "Posts and comments" -msgstr "Berichten en reacties" - -#: ../../Zotlabs/Module/Channel.php:41 -msgid "Only posts" -msgstr "Alleen berichten" - -#: ../../Zotlabs/Module/Channel.php:101 -msgid "Insufficient permissions. Request redirected to profile page." -msgstr "Onvoldoende permissies. Doorgestuurd naar profielpagina." - -#: ../../Zotlabs/Module/Import.php:33 -#, php-format -msgid "Your service plan only allows %d channels." -msgstr "Jouw abonnement staat maar %d kanalen toe." - -#: ../../Zotlabs/Module/Import.php:71 ../../Zotlabs/Module/Import_items.php:42 -msgid "Nothing to import." -msgstr "Niets gevonden om te importeren" - -#: ../../Zotlabs/Module/Import.php:95 ../../Zotlabs/Module/Import_items.php:66 -msgid "Unable to download data from old server" -msgstr "Niet in staat om gegevens van de oude hub te downloaden" - -#: ../../Zotlabs/Module/Import.php:101 -#: ../../Zotlabs/Module/Import_items.php:72 -msgid "Imported file is empty." -msgstr "Geïmporteerde bestand is leeg" - -#: ../../Zotlabs/Module/Import.php:123 -#: ../../Zotlabs/Module/Import_items.php:88 -#, php-format -msgid "Warning: Database versions differ by %1$d updates." -msgstr "Waarschuwing: database-versies lopen %1$d updates achter." - -#: ../../Zotlabs/Module/Import.php:153 ../../include/import.php:107 -msgid "Cloned channel not found. Import failed." -msgstr "Gekloond kanaal niet gevonden. Importeren mislukt." - -#: ../../Zotlabs/Module/Import.php:163 -msgid "No channel. Import failed." -msgstr "Geen kanaal. Importeren mislukt." - -#: ../../Zotlabs/Module/Import.php:520 -#: ../../include/Import/import_diaspora.php:142 -msgid "Import completed." -msgstr "Import voltooid." - -#: ../../Zotlabs/Module/Import.php:542 -msgid "You must be logged in to use this feature." -msgstr "Je moet ingelogd zijn om dit onderdeel te kunnen gebruiken." - -#: ../../Zotlabs/Module/Import.php:547 -msgid "Import Channel" -msgstr "Kanaal importeren" - -#: ../../Zotlabs/Module/Import.php:548 -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." - -#: ../../Zotlabs/Module/Import.php:549 -#: ../../Zotlabs/Module/Import_items.php:121 -msgid "File to Upload" -msgstr "Bestand om te uploaden" - -#: ../../Zotlabs/Module/Import.php:550 -msgid "Or provide the old server/hub details" -msgstr "Of vul de gegevens van de oude hub in" - -#: ../../Zotlabs/Module/Import.php:551 -msgid "Your old identity address (xyz@example.com)" -msgstr "Jouw oude kanaaladres (xyz@example.com)" - -#: ../../Zotlabs/Module/Import.php:552 -msgid "Your old login email address" -msgstr "Het e-mailadres van je oude account" - -#: ../../Zotlabs/Module/Import.php:553 -msgid "Your old login password" -msgstr "Wachtwoord van jouw oude account" - -#: ../../Zotlabs/Module/Import.php:554 -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." - -#: ../../Zotlabs/Module/Import.php:555 -msgid "Make this hub my primary location" -msgstr "Stel deze hub als mijn primaire locatie in" - -#: ../../Zotlabs/Module/Import.php:556 -msgid "" -"Import existing posts if possible (experimental - limited by available " -"memory" -msgstr "Importeer bestaande berichten wanneer mogelijk (experimenteel - afhankelijk van beschikbaar servergeheugen)" - -#: ../../Zotlabs/Module/Import.php:557 -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." - -#: ../../Zotlabs/Module/Import.php:560 -#: ../../Zotlabs/Module/Admin/Accounts.php:167 -#: ../../Zotlabs/Module/Admin/Channels.php:151 -#: ../../Zotlabs/Module/Admin/Features.php:66 -#: ../../Zotlabs/Module/Admin/Logs.php:84 -#: ../../Zotlabs/Module/Admin/Plugins.php:429 -#: ../../Zotlabs/Module/Admin/Profs.php:157 -#: ../../Zotlabs/Module/Admin/Security.php:104 -#: ../../Zotlabs/Module/Admin/Site.php:267 -#: ../../Zotlabs/Module/Admin/Themes.php:156 ../../Zotlabs/Module/Mail.php:370 -#: ../../Zotlabs/Module/Connedit.php:779 ../../Zotlabs/Module/Appman.php:126 -#: ../../Zotlabs/Module/Pdledit.php:74 -#: ../../Zotlabs/Module/Filestorage.php:165 -#: ../../Zotlabs/Module/Connect.php:98 ../../Zotlabs/Module/Group.php:85 -#: ../../Zotlabs/Module/Import_items.php:122 -#: ../../Zotlabs/Module/Invite.php:146 ../../Zotlabs/Module/Locs.php:121 -#: ../../Zotlabs/Module/Rate.php:166 ../../Zotlabs/Module/Profiles.php:687 -#: ../../Zotlabs/Module/Mitem.php:243 ../../Zotlabs/Module/Setup.php:317 -#: ../../Zotlabs/Module/Setup.php:365 ../../Zotlabs/Module/Mood.php:139 -#: ../../Zotlabs/Module/Photos.php:668 ../../Zotlabs/Module/Photos.php:1058 -#: ../../Zotlabs/Module/Photos.php:1098 ../../Zotlabs/Module/Photos.php:1216 -#: ../../Zotlabs/Module/Poke.php:186 ../../Zotlabs/Module/Pconfig.php:107 -#: ../../Zotlabs/Module/Cal.php:338 ../../Zotlabs/Module/Events.php:484 -#: ../../Zotlabs/Module/Thing.php:320 ../../Zotlabs/Module/Thing.php:370 -#: ../../Zotlabs/Module/Sources.php:114 ../../Zotlabs/Module/Sources.php:149 -#: ../../Zotlabs/Module/Chat.php:196 ../../Zotlabs/Module/Chat.php:241 -#: ../../Zotlabs/Module/Xchan.php:15 -#: ../../Zotlabs/Module/Settings/Account.php:126 -#: ../../Zotlabs/Module/Settings/Channel.php:452 -#: ../../Zotlabs/Module/Settings/Display.php:194 -#: ../../Zotlabs/Module/Settings/Features.php:47 -#: ../../Zotlabs/Module/Settings/Oauth.php:87 -#: ../../Zotlabs/Module/Settings/Tokens.php:167 -#: ../../Zotlabs/Lib/ThreadItem.php:725 ../../include/js_strings.php:22 -#: ../../include/widgets.php:796 ../../view/theme/redbasic/php/config.php:106 -msgid "Submit" -msgstr "Opslaan" - -#: ../../Zotlabs/Module/Wiki.php:100 -msgid "" -"\"# Wiki Sandbox\\n\\nContent you **edit** and **preview** here *will not be" -" saved*.\"" -msgstr "\"# Wiki Sandbox\\n\\nWat er hier onder **edit** en **preview** staat *wordt niet opgeslagen*.\"" - -#: ../../Zotlabs/Module/Wiki.php:169 -msgid "Revision Comparison" -msgstr "Revisies vergelijken" - -#: ../../Zotlabs/Module/Wiki.php:170 -msgid "Revert" -msgstr "Ongedaan maken" - -#: ../../Zotlabs/Module/Admin/Accounts.php:36 -#, 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" - -#: ../../Zotlabs/Module/Admin/Accounts.php:43 -#, php-format -msgid "%s account deleted" -msgid_plural "%s accounts deleted" -msgstr[0] "%s account verwijderd" -msgstr[1] "%s accounts verwijderd" - -#: ../../Zotlabs/Module/Admin/Accounts.php:79 -msgid "Account not found" -msgstr "Account niet gevonden" - -#: ../../Zotlabs/Module/Admin/Accounts.php:90 -#, php-format -msgid "Account '%s' deleted" -msgstr "Account '%s' verwijderd" - -#: ../../Zotlabs/Module/Admin/Accounts.php:98 -#, php-format -msgid "Account '%s' blocked" -msgstr "Account '%s' geblokkeerd" - -#: ../../Zotlabs/Module/Admin/Accounts.php:106 -#, php-format -msgid "Account '%s' unblocked" -msgstr "Account '%s' gedeblokkeerd" - -#: ../../Zotlabs/Module/Admin/Accounts.php:165 -#: ../../Zotlabs/Module/Admin/Channels.php:149 -#: ../../Zotlabs/Module/Admin/Logs.php:82 -#: ../../Zotlabs/Module/Admin/Plugins.php:336 -#: ../../Zotlabs/Module/Admin/Plugins.php:427 -#: ../../Zotlabs/Module/Admin/Security.php:86 -#: ../../Zotlabs/Module/Admin/Site.php:265 -#: ../../Zotlabs/Module/Admin/Themes.php:120 -#: ../../Zotlabs/Module/Admin/Themes.php:154 -#: ../../Zotlabs/Module/Admin.php:141 -msgid "Administration" -msgstr "Beheer" +#: ../../Zotlabs/Module/Register.php:49 +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." #: ../../Zotlabs/Module/Admin/Accounts.php:166 #: ../../Zotlabs/Module/Admin/Accounts.php:179 ../../include/widgets.php:1561 @@ -757,147 +539,1182 @@ msgid "" " 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?" -#: ../../Zotlabs/Module/Admin/Accounts.php:190 -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?" +#: ../../Zotlabs/Module/Register.php:221 ../../Zotlabs/Module/Siteinfo.php:27 +msgid "Terms of Service" +msgstr "Gebruiksvoorwaarden" -#: ../../Zotlabs/Module/Admin/Channels.php:30 +#: ../../Zotlabs/Module/Register.php:227 #, 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" -#: ../../Zotlabs/Module/Admin/Channels.php:39 +#: ../../Zotlabs/Module/Register.php:229 #, 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" +msgid "I am over 13 years of age and accept the %s for this website" +msgstr "Ik ben 13 jaar of ouder en accepteer de %s van deze $Projectname-hub" -#: ../../Zotlabs/Module/Admin/Channels.php:45 -#, php-format -msgid "%s channel deleted" -msgid_plural "%s channels deleted" -msgstr[0] "%s kanaal verwijderd" -msgstr[1] "%s kanalen verwijderd" +#: ../../Zotlabs/Module/Register.php:233 +msgid "Your email address" +msgstr "Jouw e-mailadres" -#: ../../Zotlabs/Module/Admin/Channels.php:66 -msgid "Channel not found" -msgstr "Kanaal niet gevonden" +#: ../../Zotlabs/Module/Register.php:234 +msgid "Choose a password" +msgstr "Geef een wachtwoord op" -#: ../../Zotlabs/Module/Admin/Channels.php:76 -#, php-format -msgid "Channel '%s' deleted" -msgstr "Kanaal '%s' verwijderd" +#: ../../Zotlabs/Module/Register.php:235 +msgid "Please re-enter your password" +msgstr "Geef het wachtwoord opnieuw op" -#: ../../Zotlabs/Module/Admin/Channels.php:88 -#, php-format -msgid "Channel '%s' censored" -msgstr "Kanaal '%s' gecensureerd" +#: ../../Zotlabs/Module/Register.php:236 +msgid "Please enter your invitation code" +msgstr "Vul jouw uitnodigingscode in" -#: ../../Zotlabs/Module/Admin/Channels.php:88 -#, php-format -msgid "Channel '%s' uncensored" -msgstr "Kanaal '%s' ongecensureerd" +#: ../../Zotlabs/Module/Register.php:237 +#: ../../Zotlabs/Module/New_channel.php:134 +msgid "Name or caption" +msgstr "Naam" -#: ../../Zotlabs/Module/Admin/Channels.php:99 -#, php-format -msgid "Channel '%s' code allowed" -msgstr "Scripts toegestaan voor kanaal '%s'" +#: ../../Zotlabs/Module/Register.php:237 +#: ../../Zotlabs/Module/New_channel.php:134 +msgid "Examples: \"Bob Jameson\", \"Lisa and her Horses\", \"Soccer\", \"Aviation Group\"" +msgstr "Voorbeelden: \"Jan Pietersen\", \"Willems weblog\", \"Computerforum\"" -#: ../../Zotlabs/Module/Admin/Channels.php:99 +#: ../../Zotlabs/Module/Register.php:239 +#: ../../Zotlabs/Module/New_channel.php:136 +msgid "Choose a short nickname" +msgstr "Korte bijnaam" + +#: ../../Zotlabs/Module/Register.php:239 +#: ../../Zotlabs/Module/New_channel.php:136 #, php-format msgid "Channel '%s' code disallowed" msgstr "Scripts niet toegestaan voor kanaal '%s'" -#: ../../Zotlabs/Module/Admin/Channels.php:150 ../../include/widgets.php:1562 -msgid "Channels" -msgstr "Kanalen" +#: ../../Zotlabs/Module/Register.php:240 +#: ../../Zotlabs/Module/New_channel.php:137 +msgid "Channel role and privacy" +msgstr "Kanaaltype en privacy" -#: ../../Zotlabs/Module/Admin/Channels.php:154 -msgid "Censor" -msgstr "Censureren" +#: ../../Zotlabs/Module/Register.php:240 +#: ../../Zotlabs/Module/New_channel.php:137 +msgid "Select a channel role with your privacy requirements." +msgstr "Kies een kanaaltype met het door jou gewenste privacyniveau." -#: ../../Zotlabs/Module/Admin/Channels.php:155 -msgid "Uncensor" -msgstr "Niet censureren" +#: ../../Zotlabs/Module/Register.php:240 +#: ../../Zotlabs/Module/New_channel.php:137 +msgid "Read more about roles" +msgstr "Lees meer over kanaaltypes" -#: ../../Zotlabs/Module/Admin/Channels.php:156 -msgid "Allow Code" -msgstr "Scripts toestaan" +#: ../../Zotlabs/Module/Register.php:241 +msgid "no" +msgstr "Nee" -#: ../../Zotlabs/Module/Admin/Channels.php:157 -msgid "Disallow Code" -msgstr "Scripts niet toestaan" +#: ../../Zotlabs/Module/Register.php:241 +msgid "yes" +msgstr "Ja" -#: ../../Zotlabs/Module/Admin/Channels.php:158 -#: ../../include/conversation.php:1651 -msgid "Channel" -msgstr "Kanaal" +#: ../../Zotlabs/Module/Register.php:253 +#: ../../Zotlabs/Module/Admin/Site.php:261 +msgid "Registration" +msgstr "Registratie" -#: ../../Zotlabs/Module/Admin/Channels.php:162 -msgid "UID" -msgstr "UID" +#: ../../Zotlabs/Module/Register.php:258 +msgid "Membership on this site is by invitation only." +msgstr "Registreren op deze $Projectname-hub kan alleen op uitnodiging." -#: ../../Zotlabs/Module/Admin/Channels.php:164 -#: ../../Zotlabs/Module/Locs.php:118 ../../Zotlabs/Module/Profiles.php:470 -msgid "Address" -msgstr "Kanaaladres" +#: ../../Zotlabs/Module/Register.php:270 ../../include/nav.php:150 +#: ../../boot.php:1702 +msgid "Register" +msgstr "Registreren" -#: ../../Zotlabs/Module/Admin/Channels.php:166 +#: ../../Zotlabs/Module/Register.php:271 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?" -#: ../../Zotlabs/Module/Admin/Channels.php:167 +#: ../../Zotlabs/Module/Probe.php:28 ../../Zotlabs/Module/Probe.php:32 +#, php-format +msgid "Fetching URL returns error: %1$s" +msgstr "Ophalen URL gaf een foutmelding terug: %1$s" + +#: ../../Zotlabs/Module/Match.php:26 +msgid "Profile Match" +msgstr "Profielovereenkomst" + +#: ../../Zotlabs/Module/Match.php:35 +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." + +#: ../../Zotlabs/Module/Match.php:67 +msgid "is interested in:" +msgstr "is geïnteresseerd in:" + +#: ../../Zotlabs/Module/Match.php:68 ../../Zotlabs/Module/Directory.php:328 +#: ../../Zotlabs/Module/Suggest.php:56 ../../include/channel.php:1036 +#: ../../include/connections.php:78 ../../include/widgets.php:147 +#: ../../include/widgets.php:184 ../../include/conversation.php:937 +msgid "Connect" +msgstr "Verbinden" + +#: ../../Zotlabs/Module/Match.php:74 +msgid "No matches" +msgstr "Geen overeenkomsten" + +#: ../../Zotlabs/Module/Connedit.php:82 +msgid "Could not access contact record." +msgstr "Kon geen toegang krijgen tot de connectie-gegevens." + +#: ../../Zotlabs/Module/Connedit.php:106 +msgid "Could not locate selected profile." +msgstr "Kon het gekozen profiel niet vinden." + +#: ../../Zotlabs/Module/Connedit.php:258 +msgid "Connection updated." +msgstr "Connectie bijgewerkt." + +#: ../../Zotlabs/Module/Connedit.php:260 +msgid "Failed to update connection record." +msgstr "Bijwerken van connectie-gegevens mislukt." + +#: ../../Zotlabs/Module/Connedit.php:310 +msgid "is now connected to" +msgstr "is nu verbonden met" + +#: ../../Zotlabs/Module/Connedit.php:411 ../../Zotlabs/Module/Connedit.php:716 +#: ../../Zotlabs/Module/Admin/Site.php:218 ../../Zotlabs/Module/Menu.php:100 +#: ../../Zotlabs/Module/Menu.php:157 ../../Zotlabs/Module/Filestorage.php:160 +#: ../../Zotlabs/Module/Filestorage.php:168 ../../Zotlabs/Module/Mitem.php:162 +#: ../../Zotlabs/Module/Mitem.php:163 ../../Zotlabs/Module/Mitem.php:240 +#: ../../Zotlabs/Module/Mitem.php:241 ../../Zotlabs/Module/Photos.php:653 +#: ../../Zotlabs/Module/Profiles.php:641 ../../Zotlabs/Module/Api.php:97 +#: ../../Zotlabs/Module/Removeme.php:63 ../../Zotlabs/Module/Wiki.php:159 +#: ../../Zotlabs/Module/Settings/Channel.php:289 +#: ../../Zotlabs/Module/Settings/Display.php:103 +#: ../../Zotlabs/Module/Events.php:463 ../../Zotlabs/Module/Events.php:464 +#: ../../extend/addon/addon/dwpost/dwpost.php:73 +#: ../../extend/addon/addon/dwpost/dwpost.php:85 +#: ../../extend/addon/addon/flattrwidget/flattrwidget.php:120 +#: ../../extend/addon/addon/friendica/dfrn_request.php:865 +#: ../../extend/addon/addon/ijpost/ijpost.php:73 +#: ../../extend/addon/addon/ijpost/ijpost.php:85 +#: ../../extend/addon/addon/jappixmini/jappixmini.php:309 +#: ../../extend/addon/addon/jappixmini/jappixmini.php:313 +#: ../../extend/addon/addon/jappixmini/jappixmini.php:343 +#: ../../extend/addon/addon/jappixmini/jappixmini.php:351 +#: ../../extend/addon/addon/jappixmini/jappixmini.php:355 +#: ../../extend/addon/addon/jappixmini/jappixmini.php:359 +#: ../../extend/addon/addon/libertree/libertree.php:69 +#: ../../extend/addon/addon/libertree/libertree.php:81 +#: ../../extend/addon/addon/ljpost/ljpost.php:70 +#: ../../extend/addon/addon/ljpost/ljpost.php:82 +#: ../../extend/addon/addon/nofed/nofed.php:72 +#: ../../extend/addon/addon/nofed/nofed.php:76 +#: ../../extend/addon/addon/nsabait/nsabait.php:157 +#: ../../extend/addon/addon/nsfw/nsfw.php:84 +#: ../../extend/addon/addon/planets/planets.php:153 +#: ../../extend/addon/addon/pumpio/pumpio.php:219 +#: ../../extend/addon/addon/pumpio/pumpio.php:223 +#: ../../extend/addon/addon/pumpio/pumpio.php:227 +#: ../../extend/addon/addon/pumpio/pumpio.php:231 +#: ../../extend/addon/addon/rainbowtag/rainbowtag.php:81 +#: ../../extend/addon/addon/redred/redred.php:95 +#: ../../extend/addon/addon/redred/redred.php:99 +#: ../../extend/addon/addon/rtof/rtof.php:81 +#: ../../extend/addon/addon/rtof/rtof.php:85 +#: ../../extend/addon/addon/smileybutton/smileybutton.php:273 +#: ../../extend/addon/addon/smileybutton/smileybutton.php:277 +#: ../../extend/addon/addon/statusnet/statusnet.php:389 +#: ../../extend/addon/addon/statusnet/statusnet.php:411 +#: ../../extend/addon/addon/statusnet/statusnet.php:415 +#: ../../extend/addon/addon/statusnet/statusnet.php:424 +#: ../../extend/addon/addon/twitter/twitter.php:242 +#: ../../extend/addon/addon/twitter/twitter.php:246 +#: ../../extend/addon/addon/twitter/twitter.php:255 +#: ../../extend/addon/addon/visage/visage.php:166 +#: ../../extend/addon/addon/wppost/wppost.php:82 +#: ../../extend/addon/addon/wppost/wppost.php:105 +#: ../../extend/addon/addon/wppost/wppost.php:109 +#: ../../extend/addon/addon/xmpp/xmpp.php:53 +#: ../../extend/addon/addon/cdav/cdav.php:234 ../../include/dir_fns.php:143 +#: ../../include/dir_fns.php:144 ../../include/dir_fns.php:145 +#: ../../view/theme/redbasic/php/config.php:111 +#: ../../view/theme/redbasic/php/config.php:136 ../../boot.php:1724 +msgid "No" +msgstr "Nee" + +#: ../../Zotlabs/Module/Connedit.php:411 +#: ../../Zotlabs/Module/Admin/Site.php:220 ../../Zotlabs/Module/Menu.php:100 +#: ../../Zotlabs/Module/Menu.php:157 ../../Zotlabs/Module/Filestorage.php:160 +#: ../../Zotlabs/Module/Filestorage.php:168 ../../Zotlabs/Module/Mitem.php:162 +#: ../../Zotlabs/Module/Mitem.php:163 ../../Zotlabs/Module/Mitem.php:240 +#: ../../Zotlabs/Module/Mitem.php:241 ../../Zotlabs/Module/Photos.php:653 +#: ../../Zotlabs/Module/Profiles.php:641 ../../Zotlabs/Module/Api.php:96 +#: ../../Zotlabs/Module/Removeme.php:63 ../../Zotlabs/Module/Wiki.php:159 +#: ../../Zotlabs/Module/Settings/Channel.php:289 +#: ../../Zotlabs/Module/Settings/Display.php:103 +#: ../../Zotlabs/Module/Events.php:463 ../../Zotlabs/Module/Events.php:464 +#: ../../extend/addon/addon/dwpost/dwpost.php:73 +#: ../../extend/addon/addon/dwpost/dwpost.php:85 +#: ../../extend/addon/addon/flattrwidget/flattrwidget.php:120 +#: ../../extend/addon/addon/friendica/dfrn_request.php:865 +#: ../../extend/addon/addon/ijpost/ijpost.php:73 +#: ../../extend/addon/addon/ijpost/ijpost.php:85 +#: ../../extend/addon/addon/jappixmini/jappixmini.php:309 +#: ../../extend/addon/addon/jappixmini/jappixmini.php:313 +#: ../../extend/addon/addon/jappixmini/jappixmini.php:343 +#: ../../extend/addon/addon/jappixmini/jappixmini.php:351 +#: ../../extend/addon/addon/jappixmini/jappixmini.php:355 +#: ../../extend/addon/addon/jappixmini/jappixmini.php:359 +#: ../../extend/addon/addon/libertree/libertree.php:69 +#: ../../extend/addon/addon/libertree/libertree.php:81 +#: ../../extend/addon/addon/ljpost/ljpost.php:70 +#: ../../extend/addon/addon/ljpost/ljpost.php:82 +#: ../../extend/addon/addon/nofed/nofed.php:72 +#: ../../extend/addon/addon/nofed/nofed.php:76 +#: ../../extend/addon/addon/nsabait/nsabait.php:157 +#: ../../extend/addon/addon/nsfw/nsfw.php:84 +#: ../../extend/addon/addon/planets/planets.php:153 +#: ../../extend/addon/addon/pumpio/pumpio.php:219 +#: ../../extend/addon/addon/pumpio/pumpio.php:223 +#: ../../extend/addon/addon/pumpio/pumpio.php:227 +#: ../../extend/addon/addon/pumpio/pumpio.php:231 +#: ../../extend/addon/addon/rainbowtag/rainbowtag.php:81 +#: ../../extend/addon/addon/redred/redred.php:95 +#: ../../extend/addon/addon/redred/redred.php:99 +#: ../../extend/addon/addon/rtof/rtof.php:81 +#: ../../extend/addon/addon/rtof/rtof.php:85 +#: ../../extend/addon/addon/smileybutton/smileybutton.php:273 +#: ../../extend/addon/addon/smileybutton/smileybutton.php:277 +#: ../../extend/addon/addon/statusnet/statusnet.php:389 +#: ../../extend/addon/addon/statusnet/statusnet.php:411 +#: ../../extend/addon/addon/statusnet/statusnet.php:415 +#: ../../extend/addon/addon/statusnet/statusnet.php:424 +#: ../../extend/addon/addon/twitter/twitter.php:242 +#: ../../extend/addon/addon/twitter/twitter.php:246 +#: ../../extend/addon/addon/twitter/twitter.php:255 +#: ../../extend/addon/addon/visage/visage.php:166 +#: ../../extend/addon/addon/wppost/wppost.php:82 +#: ../../extend/addon/addon/wppost/wppost.php:105 +#: ../../extend/addon/addon/wppost/wppost.php:109 +#: ../../extend/addon/addon/xmpp/xmpp.php:53 +#: ../../extend/addon/addon/cdav/cdav.php:234 ../../include/dir_fns.php:143 +#: ../../include/dir_fns.php:144 ../../include/dir_fns.php:145 +#: ../../view/theme/redbasic/php/config.php:111 +#: ../../view/theme/redbasic/php/config.php:136 ../../boot.php:1724 +msgid "Yes" +msgstr "Ja" + +#: ../../Zotlabs/Module/Connedit.php:443 +msgid "Could not access address book record." +msgstr "Kon geen toegang krijgen tot de record van de connectie." + +#: ../../Zotlabs/Module/Connedit.php:463 +msgid "Refresh failed - channel is currently unavailable." +msgstr "Vernieuwen mislukt - kanaal is momenteel niet beschikbaar" + +#: ../../Zotlabs/Module/Connedit.php:478 ../../Zotlabs/Module/Connedit.php:487 +#: ../../Zotlabs/Module/Connedit.php:496 ../../Zotlabs/Module/Connedit.php:505 +#: ../../Zotlabs/Module/Connedit.php:518 +msgid "Unable to set address book parameters." +msgstr "Niet in staat om de parameters van connecties in te stellen." + +#: ../../Zotlabs/Module/Connedit.php:542 +msgid "Connection has been removed." +msgstr "Connectie is verwijderd" + +#: ../../Zotlabs/Module/Connedit.php:582 ../../Zotlabs/Lib/Apps.php:223 +#: ../../extend/addon/addon/openclipatar/openclipatar.php:56 +#: ../../include/nav.php:89 ../../include/conversation.php:935 +msgid "View Profile" +msgstr "Profiel weergeven" + +#: ../../Zotlabs/Module/Connedit.php:585 +#, php-format +msgid "View %s's profile" +msgstr "Profiel van %s weergeven" + +#: ../../Zotlabs/Module/Connedit.php:589 +msgid "Refresh Permissions" +msgstr "Permissies vernieuwen" + +#: ../../Zotlabs/Module/Connedit.php:592 +msgid "Fetch updated permissions" +msgstr "Aangepaste permissies ophalen" + +#: ../../Zotlabs/Module/Connedit.php:596 +msgid "Recent Activity" +msgstr "Recente activiteit/berichten" + +#: ../../Zotlabs/Module/Connedit.php:599 +msgid "View recent posts and comments" +msgstr "Recente berichten en reacties weergeven" + +#: ../../Zotlabs/Module/Connedit.php:603 +#: ../../Zotlabs/Module/Admin/Accounts.php:175 +msgid "Unblock" +msgstr "Deblokkeren" + +#: ../../Zotlabs/Module/Connedit.php:603 +#: ../../Zotlabs/Module/Admin/Accounts.php:174 +msgid "Block" +msgstr "Blokkeren" + +#: ../../Zotlabs/Module/Connedit.php:606 +msgid "Block (or Unblock) all communications with this connection" +msgstr "Blokkeer (of deblokkeer) alle communicatie met deze connectie" + +#: ../../Zotlabs/Module/Connedit.php:607 +msgid "This connection is blocked!" +msgstr "Deze connectie is geblokkeerd!" + +#: ../../Zotlabs/Module/Connedit.php:611 +msgid "Unignore" +msgstr "Niet meer negeren" + +#: ../../Zotlabs/Module/Connedit.php:611 +#: ../../Zotlabs/Module/Connections.php:277 +msgid "Ignore" +msgstr "Negeren" + +#: ../../Zotlabs/Module/Connedit.php:614 +msgid "Ignore (or Unignore) all inbound communications from this connection" +msgstr "Negeer (of negeer niet meer) alle inkomende communicatie van deze connectie" + +#: ../../Zotlabs/Module/Connedit.php:615 +msgid "This connection is ignored!" +msgstr "Deze connectie wordt genegeerd!" + +#: ../../Zotlabs/Module/Connedit.php:619 +msgid "Unarchive" +msgstr "Niet meer archiveren" + +#: ../../Zotlabs/Module/Connedit.php:619 +msgid "Archive" +msgstr "Archiveren" + +#: ../../Zotlabs/Module/Connedit.php:622 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?" +"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" -#: ../../Zotlabs/Module/Admin/Dbsync.php:19 -msgid "Update has been marked successful" -msgstr "Update is als succesvol gemarkeerd" +#: ../../Zotlabs/Module/Connedit.php:623 +msgid "This connection is archived!" +msgstr "Deze connectie is gearchiveerd!" -#: ../../Zotlabs/Module/Admin/Dbsync.php:29 +#: ../../Zotlabs/Module/Connedit.php:627 +msgid "Unhide" +msgstr "Niet meer verbergen" + +#: ../../Zotlabs/Module/Connedit.php:627 +msgid "Hide" +msgstr "Verbergen" + +#: ../../Zotlabs/Module/Connedit.php:630 +msgid "Hide or Unhide this connection from your other connections" +msgstr "Deze connectie verbergen (of niet meer verbergen) voor jouw andere connecties" + +#: ../../Zotlabs/Module/Connedit.php:631 +msgid "This connection is hidden!" +msgstr "Deze connectie is verborgen!" + +#: ../../Zotlabs/Module/Connedit.php:638 +msgid "Delete this connection" +msgstr "Deze connectie verwijderen" + +#: ../../Zotlabs/Module/Connedit.php:655 ../../include/widgets.php:529 +msgid "Me" +msgstr "Ik" + +#: ../../Zotlabs/Module/Connedit.php:656 ../../include/widgets.php:530 +msgid "Family" +msgstr "Familie" + +#: ../../Zotlabs/Module/Connedit.php:657 +#: ../../Zotlabs/Module/Settings/Channel.php:61 +#: ../../Zotlabs/Module/Settings/Channel.php:65 +#: ../../Zotlabs/Module/Settings/Channel.php:66 +#: ../../Zotlabs/Module/Settings/Channel.php:69 +#: ../../Zotlabs/Module/Settings/Channel.php:80 +#: ../../include/selectors.php:123 ../../include/channel.php:402 +#: ../../include/channel.php:403 ../../include/channel.php:410 +#: ../../include/widgets.php:531 +msgid "Friends" +msgstr "Vrienden" + +#: ../../Zotlabs/Module/Connedit.php:658 ../../include/widgets.php:532 +msgid "Acquaintances" +msgstr "Kennissen" + +#: ../../Zotlabs/Module/Connedit.php:659 +#: ../../Zotlabs/Module/Connections.php:92 +#: ../../Zotlabs/Module/Connections.php:107 ../../include/widgets.php:533 +msgid "All" +msgstr "Alles" + +#: ../../Zotlabs/Module/Connedit.php:716 +msgid "Approve this connection" +msgstr "Deze connectie accepteren" + +#: ../../Zotlabs/Module/Connedit.php:716 +msgid "Accept connection to allow communication" +msgstr "Keur deze connectie goed om communicatie toe te staan" + +#: ../../Zotlabs/Module/Connedit.php:721 +msgid "Set Affinity" +msgstr "Verwantschapsfilter instellen" + +#: ../../Zotlabs/Module/Connedit.php:724 +msgid "Set Profile" +msgstr "Profiel instellen" + +#: ../../Zotlabs/Module/Connedit.php:727 +msgid "Set Affinity & Profile" +msgstr "Verwantschapsfilter en profiel instellen" + +#: ../../Zotlabs/Module/Connedit.php:776 +msgid "none" +msgstr "geen" + +#: ../../Zotlabs/Module/Connedit.php:780 ../../include/widgets.php:656 +msgid "Connection Default Permissions" +msgstr "Standaard permissies voor connecties" + +#: ../../Zotlabs/Module/Connedit.php:780 ../../include/items.php:3909 #, php-format -msgid "Executing %s failed. Check system logs." -msgstr "Uitvoeren van %s is mislukt. Controleer systeemlogboek." +msgid "Connection: %s" +msgstr "Connectie: %s" -#: ../../Zotlabs/Module/Admin/Dbsync.php:32 +#: ../../Zotlabs/Module/Connedit.php:781 +msgid "Apply these permissions automatically" +msgstr "Deze permissies automatisch toepassen" + +#: ../../Zotlabs/Module/Connedit.php:781 +msgid "Connection requests will be approved without your interaction" +msgstr "Connectieverzoeken zullen automatisch worden geaccepteerd" + +#: ../../Zotlabs/Module/Connedit.php:784 +msgid "This connection's primary address is" +msgstr "Het primaire kanaaladres van deze connectie is" + +#: ../../Zotlabs/Module/Connedit.php:785 +msgid "Available locations:" +msgstr "Beschikbare locaties:" + +#: ../../Zotlabs/Module/Connedit.php:789 +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." + +#: ../../Zotlabs/Module/Connedit.php:790 +msgid "Connection Tools" +msgstr "Hulpmiddelen" + +#: ../../Zotlabs/Module/Connedit.php:792 +msgid "Slide to adjust your degree of friendship" +msgstr "Schuif om te bepalen hoe goed je iemand kent en/of mag" + +#: ../../Zotlabs/Module/Connedit.php:793 ../../Zotlabs/Module/Rate.php:155 +#: ../../include/js_strings.php:20 +msgid "Rating" +msgstr "Beoordeling" + +#: ../../Zotlabs/Module/Connedit.php:794 +msgid "Slide to adjust your rating" +msgstr "Gebruik de schuif om je beoordeling te geven" + +#: ../../Zotlabs/Module/Connedit.php:795 ../../Zotlabs/Module/Connedit.php:800 +msgid "Optionally explain your rating" +msgstr "Verklaar jouw beoordeling (niet verplicht)" + +#: ../../Zotlabs/Module/Connedit.php:797 +msgid "Custom Filter" +msgstr "Berichtenfilter" + +#: ../../Zotlabs/Module/Connedit.php:798 +msgid "Only import posts with this text" +msgstr "Importeer alleen berichten met deze tekst" + +#: ../../Zotlabs/Module/Connedit.php:798 ../../Zotlabs/Module/Connedit.php:799 +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" + +#: ../../Zotlabs/Module/Connedit.php:799 +msgid "Do not import posts with this text" +msgstr "Importeer geen berichten met deze tekst" + +#: ../../Zotlabs/Module/Connedit.php:801 +msgid "This information is public!" +msgstr "Deze informatie is openbaar!" + +#: ../../Zotlabs/Module/Connedit.php:806 +msgid "Connection Pending Approval" +msgstr "Connectie moet nog geaccepteerd worden" + +#: ../../Zotlabs/Module/Connedit.php:809 +#: ../../Zotlabs/Module/Settings/Tokens.php:163 +msgid "inherited" +msgstr "geërfd" + +#: ../../Zotlabs/Module/Connedit.php:810 ../../Zotlabs/Module/Locs.php:121 +#: ../../Zotlabs/Module/Connect.php:98 +#: ../../Zotlabs/Module/Admin/Features.php:66 +#: ../../Zotlabs/Module/Admin/Logs.php:84 +#: ../../Zotlabs/Module/Admin/Plugins.php:429 +#: ../../Zotlabs/Module/Admin/Profs.php:157 +#: ../../Zotlabs/Module/Admin/Security.php:104 +#: ../../Zotlabs/Module/Admin/Themes.php:156 +#: ../../Zotlabs/Module/Admin/Account_edit.php:74 +#: ../../Zotlabs/Module/Admin/Accounts.php:166 +#: ../../Zotlabs/Module/Admin/Channels.php:147 +#: ../../Zotlabs/Module/Admin/Site.php:260 ../../Zotlabs/Module/Appman.php:127 +#: ../../Zotlabs/Module/Filestorage.php:165 ../../Zotlabs/Module/Mail.php:412 +#: ../../Zotlabs/Module/Import_items.php:122 +#: ../../Zotlabs/Module/Invite.php:149 ../../Zotlabs/Module/Group.php:85 +#: ../../Zotlabs/Module/Mitem.php:243 ../../Zotlabs/Module/Mood.php:139 +#: ../../Zotlabs/Module/Photos.php:668 ../../Zotlabs/Module/Photos.php:1058 +#: ../../Zotlabs/Module/Photos.php:1098 ../../Zotlabs/Module/Photos.php:1216 +#: ../../Zotlabs/Module/Setup.php:309 ../../Zotlabs/Module/Setup.php:357 +#: ../../Zotlabs/Module/Poke.php:186 ../../Zotlabs/Module/Profiles.php:681 +#: ../../Zotlabs/Module/Pconfig.php:107 ../../Zotlabs/Module/Rate.php:166 +#: ../../Zotlabs/Module/Pdledit.php:74 ../../Zotlabs/Module/Cal.php:342 +#: ../../Zotlabs/Module/Wiki.php:148 ../../Zotlabs/Module/Sources.php:114 +#: ../../Zotlabs/Module/Sources.php:149 +#: ../../Zotlabs/Module/Settings/Features.php:47 +#: ../../Zotlabs/Module/Settings/Oauth.php:87 +#: ../../Zotlabs/Module/Settings/Tokens.php:167 +#: ../../Zotlabs/Module/Settings/Account.php:118 +#: ../../Zotlabs/Module/Settings/Channel.php:455 +#: ../../Zotlabs/Module/Settings/Display.php:196 +#: ../../Zotlabs/Module/Thing.php:320 ../../Zotlabs/Module/Thing.php:370 +#: ../../Zotlabs/Module/Import.php:543 ../../Zotlabs/Module/Chat.php:196 +#: ../../Zotlabs/Module/Chat.php:241 ../../Zotlabs/Module/Xchan.php:15 +#: ../../Zotlabs/Module/Events.php:484 ../../Zotlabs/Lib/ThreadItem.php:729 +#: ../../extend/addon/addon/chords/Mod_Chords.php:60 +#: ../../extend/addon/addon/diaspora/diaspora.php:710 +#: ../../extend/addon/addon/dwpost/dwpost.php:89 +#: ../../extend/addon/addon/flattrwidget/flattrwidget.php:124 +#: ../../extend/addon/addon/friendica/friendica.php:128 +#: ../../extend/addon/addon/frphotos/frphotos.php:96 +#: ../../extend/addon/addon/gnusoc/gnusoc.php:129 +#: ../../extend/addon/addon/hubwall/hubwall.php:95 +#: ../../extend/addon/addon/ijpost/ijpost.php:89 +#: ../../extend/addon/addon/irc/irc.php:53 +#: ../../extend/addon/addon/jappixmini/jappixmini.php:371 +#: ../../extend/addon/addon/libertree/libertree.php:85 +#: ../../extend/addon/addon/ljpost/ljpost.php:86 +#: ../../extend/addon/addon/logrot/logrot.php:35 +#: ../../extend/addon/addon/mailhost/mailhost.php:40 +#: ../../extend/addon/addon/nofed/nofed.php:80 +#: ../../extend/addon/addon/nsabait/nsabait.php:161 +#: ../../extend/addon/addon/nsfw/nsfw.php:92 +#: ../../extend/addon/addon/openclipatar/openclipatar.php:52 +#: ../../extend/addon/addon/openstreetmap/openstreetmap.php:168 +#: ../../extend/addon/addon/pageheader/pageheader.php:48 +#: ../../extend/addon/addon/piwik/piwik.php:95 +#: ../../extend/addon/addon/planets/planets.php:157 +#: ../../extend/addon/addon/pumpio/pumpio.php:237 +#: ../../extend/addon/addon/rainbowtag/rainbowtag.php:85 +#: ../../extend/addon/addon/redfiles/redfiles.php:124 +#: ../../extend/addon/addon/redphotos/redphotos.php:136 +#: ../../extend/addon/addon/redred/redred.php:119 +#: ../../extend/addon/addon/rtof/rtof.php:101 +#: ../../extend/addon/addon/skeleton/skeleton.php:65 +#: ../../extend/addon/addon/smileybutton/smileybutton.php:281 +#: ../../extend/addon/addon/startpage/startpage.php:113 +#: ../../extend/addon/addon/statusnet/statusnet.php:322 +#: ../../extend/addon/addon/statusnet/statusnet.php:380 +#: ../../extend/addon/addon/statusnet/statusnet.php:432 +#: ../../extend/addon/addon/statusnet/statusnet.php:899 +#: ../../extend/addon/addon/superblock/superblock.php:118 +#: ../../extend/addon/addon/twitter/twitter.php:217 +#: ../../extend/addon/addon/twitter/twitter.php:259 +#: ../../extend/addon/addon/visage/visage.php:170 +#: ../../extend/addon/addon/wppost/wppost.php:113 +#: ../../extend/addon/addon/xmpp/xmpp.php:69 +#: ../../extend/addon/addon/cdav/cdav.php:246 +#: ../../extend/addon/addon/likebanner/likebanner.php:57 +#: ../../extend/addon/addon/mailtest/mailtest.php:100 +#: ../../include/js_strings.php:22 ../../include/widgets.php:796 +#: ../../view/theme/redbasic/php/config.php:106 +msgid "Submit" +msgstr "Opslaan" + +#: ../../Zotlabs/Module/Connedit.php:811 #, php-format -msgid "Update %s was successfully applied." -msgstr "Update %s was geslaagd." +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." -#: ../../Zotlabs/Module/Admin/Dbsync.php:36 +#: ../../Zotlabs/Module/Connedit.php:813 +#: ../../Zotlabs/Module/Settings/Tokens.php:160 +msgid "Their Settings" +msgstr "Hun instellingen" + +#: ../../Zotlabs/Module/Connedit.php:814 +#: ../../Zotlabs/Module/Settings/Tokens.php:161 +msgid "My Settings" +msgstr "Mijn instellingen" + +#: ../../Zotlabs/Module/Connedit.php:816 +#: ../../Zotlabs/Module/Settings/Tokens.php:165 +msgid "Individual Permissions" +msgstr "Individuele permissies" + +#: ../../Zotlabs/Module/Connedit.php:817 +#: ../../Zotlabs/Module/Settings/Tokens.php:166 +msgid "" +"Some permissions may be inherited from your channel's privacy settings, which have higher " +"priority than individual settings. You can not change those" +" settings here." +msgstr "Sommige permissies worden mogelijk overgeërfd van de privacy-instellingen van jouw kanaal, die een hogere prioriteit hebben dan deze individuele instellingen. Je kan je deze overgeërfde permissies hier niet veranderen." + +#: ../../Zotlabs/Module/Connedit.php:818 +msgid "" +"Some permissions may be inherited from your channel's privacy settings, 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 "Sommige permissies worden mogelijk overgeërfd van de privacy-instellingen 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. " + +#: ../../Zotlabs/Module/Connedit.php:819 +msgid "Last update:" +msgstr "Laatste wijziging:" + +#: ../../Zotlabs/Module/Dreport.php:45 +msgid "Invalid message" +msgstr "Ongeldig bericht" + +#: ../../Zotlabs/Module/Dreport.php:78 +msgid "no results" +msgstr "geen resultaten" + +#: ../../Zotlabs/Module/Dreport.php:93 +msgid "channel sync processed" +msgstr "kanaalsync verwerkt" + +#: ../../Zotlabs/Module/Dreport.php:97 +msgid "queued" +msgstr "in wachtrij" + +#: ../../Zotlabs/Module/Dreport.php:101 +msgid "posted" +msgstr "verstuurd" + +#: ../../Zotlabs/Module/Dreport.php:105 +msgid "accepted for delivery" +msgstr "geaccepteerd om afgeleverd te worden" + +#: ../../Zotlabs/Module/Dreport.php:109 +msgid "updated" +msgstr "geüpdatet" + +#: ../../Zotlabs/Module/Dreport.php:112 +msgid "update ignored" +msgstr "update genegeerd" + +#: ../../Zotlabs/Module/Dreport.php:115 +msgid "permission denied" +msgstr "toegang geweigerd" + +#: ../../Zotlabs/Module/Dreport.php:119 +msgid "recipient not found" +msgstr "ontvanger niet gevonden" + +#: ../../Zotlabs/Module/Dreport.php:122 +msgid "mail recalled" +msgstr "Privébericht ingetrokken" + +#: ../../Zotlabs/Module/Dreport.php:125 +msgid "duplicate mail received" +msgstr "dubbel privébericht ontvangen" + +#: ../../Zotlabs/Module/Dreport.php:128 +msgid "mail delivered" +msgstr "privébericht afgeleverd" + +#: ../../Zotlabs/Module/Dreport.php:148 #, 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." +msgid "Delivery report for %1$s" +msgstr "Afleveringsrapport voor %1$s" -#: ../../Zotlabs/Module/Admin/Dbsync.php:39 +#: ../../Zotlabs/Module/Dreport.php:151 +msgid "Options" +msgstr "Opties" + +#: ../../Zotlabs/Module/Dreport.php:152 +msgid "Redeliver" +msgstr "Opnieuw afleveren" + +#: ../../Zotlabs/Module/Bookmarks.php:53 +msgid "Bookmark added" +msgstr "Bladwijzer toegevoegd" + +#: ../../Zotlabs/Module/Bookmarks.php:75 +msgid "My Bookmarks" +msgstr "Mijn bladwijzers" + +#: ../../Zotlabs/Module/Bookmarks.php:86 +msgid "My Connections Bookmarks" +msgstr "Bladwijzers van mijn connecties" + +#: ../../Zotlabs/Module/Acl.php:313 +msgid "network" +msgstr "netwerk" + +#: ../../Zotlabs/Module/Acl.php:323 +msgid "RSS" +msgstr "RSS" + +#: ../../Zotlabs/Module/Locs.php:25 ../../Zotlabs/Module/Locs.php:54 +msgid "Location not found." +msgstr "Locatie niet gevonden." + +#: ../../Zotlabs/Module/Locs.php:62 +msgid "Location lookup failed." +msgstr "Opzoeken locatie mislukt" + +#: ../../Zotlabs/Module/Locs.php:66 +msgid "" +"Please select another location to become primary before removing the primary" +" location." +msgstr "Kies eerst een andere primaire locatie alvorens de huidige primaire locatie te verwijderen." + +#: ../../Zotlabs/Module/Locs.php:95 +msgid "Syncing locations" +msgstr "Locaties synchronizeren" + +#: ../../Zotlabs/Module/Locs.php:105 +msgid "No locations found." +msgstr "Geen locaties gevonden." + +#: ../../Zotlabs/Module/Locs.php:116 +msgid "Manage Channel Locations" +msgstr "Kanaallocaties beheren" + +#: ../../Zotlabs/Module/Locs.php:117 ../../Zotlabs/Module/Pubsites.php:51 +#: ../../Zotlabs/Module/Profiles.php:471 ../../Zotlabs/Module/Profiles.php:692 +#: ../../Zotlabs/Module/Events.php:468 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:839 +#: ../../include/js_strings.php:25 +msgid "Location" +msgstr "Locatie" + +#: ../../Zotlabs/Module/Locs.php:118 +#: ../../Zotlabs/Module/Admin/Channels.php:160 +#: ../../Zotlabs/Module/Profiles.php:464 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1143 +msgid "Address" +msgstr "Adres" + +#: ../../Zotlabs/Module/Locs.php:119 +msgid "Primary" +msgstr "Primair" + +#: ../../Zotlabs/Module/Locs.php:120 ../../Zotlabs/Module/Menu.php:113 +msgid "Drop" +msgstr "Verwijderen" + +#: ../../Zotlabs/Module/Locs.php:122 +msgid "Sync Now" +msgstr "Nu synchroniseren" + +#: ../../Zotlabs/Module/Locs.php:123 +msgid "Please wait several minutes between consecutive operations." +msgstr "Wacht enkele minuten tussen opeenvolgende handelingen." + +#: ../../Zotlabs/Module/Locs.php:124 +msgid "" +"When possible, drop a location by logging into that website/hub and removing" +" your channel." +msgstr "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." + +#: ../../Zotlabs/Module/Locs.php:125 +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." + +#: ../../Zotlabs/Module/Connect.php:61 ../../Zotlabs/Module/Connect.php:109 +msgid "Continue" +msgstr "Ga verder" + +#: ../../Zotlabs/Module/Connect.php:90 +msgid "Premium Channel Setup" +msgstr "Instellen premiumkanaal " + +#: ../../Zotlabs/Module/Connect.php:92 +msgid "Enable premium channel connection restrictions" +msgstr "Restricties voor connecties van premiumkanaal toestaan" + +#: ../../Zotlabs/Module/Connect.php:93 +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." + +#: ../../Zotlabs/Module/Connect.php:95 ../../Zotlabs/Module/Connect.php:115 +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:" + +#: ../../Zotlabs/Module/Connect.php:96 +msgid "" +"Potential connections will then see the following text before proceeding:" +msgstr "Mogelijke connecties zullen dan de volgende tekst zien voordat ze verder kunnen:" + +#: ../../Zotlabs/Module/Connect.php:97 ../../Zotlabs/Module/Connect.php:118 +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." + +#: ../../Zotlabs/Module/Connect.php:106 +msgid "(No specific instructions have been provided by the channel owner.)" +msgstr "(Er zijn geen speciale voorwaarden en aanwijzingen door de kanaal-eigenaar verstrekt) " + +#: ../../Zotlabs/Module/Connect.php:114 +msgid "Restricted or Premium Channel" +msgstr "Beperkt of premiumkanaal" + +#: ../../Zotlabs/Module/Page.php:40 ../../Zotlabs/Module/Block.php:31 +msgid "Invalid item." +msgstr "Ongeldig item." + +#: ../../Zotlabs/Module/Page.php:56 ../../Zotlabs/Module/Chanview.php:96 +#: ../../Zotlabs/Module/Block.php:43 ../../Zotlabs/Module/Cal.php:62 +#: ../../Zotlabs/Module/Wall_upload.php:31 +msgid "Channel not found." +msgstr "Kanaal niet gevonden." + +#: ../../Zotlabs/Module/Page.php:131 +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." + +#: ../../Zotlabs/Module/Filer.php:52 +msgid "Save to Folder:" +msgstr "Bewaar in map: " + +#: ../../Zotlabs/Module/Filer.php:52 +msgid "- select -" +msgstr "- kies map -" + +#: ../../Zotlabs/Module/Filer.php:53 ../../Zotlabs/Module/Admin/Profs.php:74 +#: ../../Zotlabs/Module/Admin/Profs.php:94 ../../Zotlabs/Module/Rbmark.php:32 +#: ../../Zotlabs/Module/Rbmark.php:104 ../../include/text.php:987 +#: ../../include/text.php:999 ../../include/widgets.php:201 +msgid "Save" +msgstr "Opslaan" + +#: ../../Zotlabs/Module/Manage.php:136 +#: ../../Zotlabs/Module/New_channel.php:121 #, php-format -msgid "Update function %s could not be found." -msgstr "Update-functie %s kon niet gevonden worden." +msgid "You have created %1$.0f of %2$.0f allowed channels." +msgstr "Je hebt %1$.0f van totaal %2$.0f toegestane kanalen aangemaakt." -#: ../../Zotlabs/Module/Admin/Dbsync.php:55 -msgid "No failed updates." -msgstr "Geen mislukte updates." +#: ../../Zotlabs/Module/Manage.php:143 +msgid "Create a new channel" +msgstr "Nieuw kanaal aanmaken" -#: ../../Zotlabs/Module/Admin/Dbsync.php:59 -msgid "Failed Updates" -msgstr "Mislukte updates" +#: ../../Zotlabs/Module/Manage.php:143 ../../Zotlabs/Module/Profiles.php:772 +#: ../../Zotlabs/Module/Wiki.php:147 ../../Zotlabs/Module/Chat.php:255 +msgid "Create New" +msgstr "Nieuwe aanmaken" -#: ../../Zotlabs/Module/Admin/Dbsync.php:61 -msgid "Mark success (if update was manually applied)" -msgstr "Markeer als geslaagd (wanneer de update handmatig was uitgevoerd)" +#: ../../Zotlabs/Module/Manage.php:164 ../../Zotlabs/Lib/Apps.php:216 +#: ../../include/nav.php:209 +msgid "Channel Manager" +msgstr "Kanaalbeheer" -#: ../../Zotlabs/Module/Admin/Dbsync.php:62 -msgid "Attempt to execute this update step automatically" -msgstr "Poging om deze stap van de update automatisch uit te voeren." +#: ../../Zotlabs/Module/Manage.php:165 +msgid "Current Channel" +msgstr "Huidig kanaal" + +#: ../../Zotlabs/Module/Manage.php:167 +msgid "Switch to one of your channels by selecting it." +msgstr "Activeer een van jouw andere kanalen door er op te klikken." + +#: ../../Zotlabs/Module/Manage.php:168 +msgid "Default Channel" +msgstr "Standaardkanaal" + +#: ../../Zotlabs/Module/Manage.php:169 +msgid "Make Default" +msgstr "Als standaard instellen" + +#: ../../Zotlabs/Module/Manage.php:172 +#, php-format +msgid "%d new messages" +msgstr "%d nieuwe berichten" + +#: ../../Zotlabs/Module/Manage.php:173 +#, php-format +msgid "%d new introductions" +msgstr "%d nieuwe connectieverzoeken" + +#: ../../Zotlabs/Module/Manage.php:175 +msgid "Delegated Channel" +msgstr "Uitbesteed kanaal" + +#: ../../Zotlabs/Module/Connections.php:56 +#: ../../Zotlabs/Module/Connections.php:161 +#: ../../Zotlabs/Module/Connections.php:242 +msgid "Blocked" +msgstr "Geblokkeerd" + +#: ../../Zotlabs/Module/Connections.php:61 +#: ../../Zotlabs/Module/Connections.php:168 +#: ../../Zotlabs/Module/Connections.php:241 +msgid "Ignored" +msgstr "Genegeerd" + +#: ../../Zotlabs/Module/Connections.php:66 +#: ../../Zotlabs/Module/Connections.php:182 +#: ../../Zotlabs/Module/Connections.php:240 +msgid "Hidden" +msgstr "Verborgen" + +#: ../../Zotlabs/Module/Connections.php:71 +#: ../../Zotlabs/Module/Connections.php:175 +#: ../../Zotlabs/Module/Connections.php:239 +msgid "Archived" +msgstr "Gearchiveerd" + +#: ../../Zotlabs/Module/Connections.php:76 +#: ../../Zotlabs/Module/Connections.php:86 ../../Zotlabs/Module/Menu.php:116 +#: ../../include/conversation.php:1576 +msgid "New" +msgstr "Nieuw" + +#: ../../Zotlabs/Module/Connections.php:138 +msgid "New Connections" +msgstr "Nieuwe connecties" + +#: ../../Zotlabs/Module/Connections.php:141 +msgid "Show pending (new) connections" +msgstr "Nog te accepteren (nieuwe) connecties weergeven" + +#: ../../Zotlabs/Module/Connections.php:145 +#: ../../Zotlabs/Module/Profperm.php:144 +msgid "All Connections" +msgstr "Alle connecties" + +#: ../../Zotlabs/Module/Connections.php:148 +msgid "Show all connections" +msgstr "Toon alle connecties" + +#: ../../Zotlabs/Module/Connections.php:164 +msgid "Only show blocked connections" +msgstr "Toon alleen geblokkeerde connecties" + +#: ../../Zotlabs/Module/Connections.php:171 +msgid "Only show ignored connections" +msgstr "Toon alleen genegeerde connecties" + +#: ../../Zotlabs/Module/Connections.php:178 +msgid "Only show archived connections" +msgstr "Toon alleen gearchiveerde connecties" + +#: ../../Zotlabs/Module/Connections.php:185 +msgid "Only show hidden connections" +msgstr "Toon alleen verborgen connecties" + +#: ../../Zotlabs/Module/Connections.php:238 +msgid "Pending approval" +msgstr "Moet nog geaccepteerd worden" + +#: ../../Zotlabs/Module/Connections.php:254 +#, php-format +msgid "%1$s [%2$s]" +msgstr "%1$s [%2$s]" + +#: ../../Zotlabs/Module/Connections.php:255 +msgid "Edit connection" +msgstr "Connectie bewerken" + +#: ../../Zotlabs/Module/Connections.php:256 +msgid "Delete connection" +msgstr "Connectie verwijderen" + +#: ../../Zotlabs/Module/Connections.php:265 +msgid "Channel address" +msgstr "Kanaaladres" + +#: ../../Zotlabs/Module/Connections.php:267 +msgid "Network" +msgstr "Netwerk" + +#: ../../Zotlabs/Module/Connections.php:270 +msgid "Status" +msgstr "Status" + +#: ../../Zotlabs/Module/Connections.php:272 +msgid "Connected" +msgstr "Verbonden" + +#: ../../Zotlabs/Module/Connections.php:274 +msgid "Approve connection" +msgstr "Connectie accepteren" + +#: ../../Zotlabs/Module/Connections.php:275 +#: ../../Zotlabs/Module/Admin/Accounts.php:171 +msgid "Approve" +msgstr "Goedkeuren" + +#: ../../Zotlabs/Module/Connections.php:276 +msgid "Ignore connection" +msgstr "Connectie negeren" + +#: ../../Zotlabs/Module/Connections.php:278 +msgid "Recent activity" +msgstr "Recente activiteit" + +#: ../../Zotlabs/Module/Connections.php:302 ../../Zotlabs/Lib/Apps.php:211 +#: ../../include/nav.php:189 ../../include/text.php:916 +msgid "Connections" +msgstr "Connecties" + +#: ../../Zotlabs/Module/Connections.php:306 ../../Zotlabs/Module/Search.php:44 +#: ../../Zotlabs/Lib/Apps.php:232 ../../include/nav.php:168 +#: ../../include/text.php:986 ../../include/text.php:998 +#: ../../include/acl_selectors.php:203 ../../include/widgets.php:315 +msgid "Search" +msgstr "Zoeken" + +#: ../../Zotlabs/Module/Connections.php:307 +msgid "Search your connections" +msgstr "Doorzoek jouw connecties" + +#: ../../Zotlabs/Module/Connections.php:308 +msgid "Connections search" +msgstr "Connecties zoeken" + +#: ../../Zotlabs/Module/Connections.php:309 +#: ../../Zotlabs/Module/Directory.php:391 +#: ../../Zotlabs/Module/Directory.php:396 ../../include/contact_widgets.php:23 +msgid "Find" +msgstr "Vinden" + +#: ../../Zotlabs/Module/Cover_photo.php:58 +#: ../../Zotlabs/Module/Profile_photo.php:61 +msgid "Image uploaded but image cropping failed." +msgstr "Afbeelding geüpload, maar afbeelding kon niet worden bijgesneden. " + +#: ../../Zotlabs/Module/Cover_photo.php:134 +#: ../../Zotlabs/Module/Cover_photo.php:181 +msgid "Cover Photos" +msgstr "Omslagfoto's" + +#: ../../Zotlabs/Module/Cover_photo.php:154 +#: ../../Zotlabs/Module/Profile_photo.php:135 +msgid "Image resize failed." +msgstr "Afbeelding kon niet van grootte veranderd worden." + +#: ../../Zotlabs/Module/Cover_photo.php:168 +#: ../../Zotlabs/Module/Profile_photo.php:196 ../../include/photos.php:149 +msgid "Unable to process image" +msgstr "Afbeelding kan niet verwerkt worden" + +#: ../../Zotlabs/Module/Cover_photo.php:192 +#: ../../Zotlabs/Module/Profile_photo.php:231 +msgid "Image upload failed." +msgstr "Uploaden afbeelding mislukt" + +#: ../../Zotlabs/Module/Cover_photo.php:210 +#: ../../Zotlabs/Module/Profile_photo.php:250 +msgid "Unable to process image." +msgstr "Niet in staat om afbeelding te verwerken." + +#: ../../Zotlabs/Module/Cover_photo.php:233 ../../include/items.php:4253 +msgid "female" +msgstr "vrouw" + +#: ../../Zotlabs/Module/Cover_photo.php:234 ../../include/items.php:4254 +#, php-format +msgid "%1$s updated her %2$s" +msgstr "%1$s heeft haar %2$s bijgewerkt" + +#: ../../Zotlabs/Module/Cover_photo.php:235 ../../include/items.php:4255 +msgid "male" +msgstr "man" + +#: ../../Zotlabs/Module/Cover_photo.php:236 ../../include/items.php:4256 +#, php-format +msgid "%1$s updated his %2$s" +msgstr "%1$s heeft zijn %2$s bijgewerkt" + +#: ../../Zotlabs/Module/Cover_photo.php:238 ../../include/items.php:4258 +#, php-format +msgid "%1$s updated their %2$s" +msgstr "De %2$s van %1$s is bijgewerkt" + +#: ../../Zotlabs/Module/Cover_photo.php:240 ../../include/channel.php:1677 +msgid "cover photo" +msgstr "omslagfoto" + +#: ../../Zotlabs/Module/Cover_photo.php:303 +#: ../../Zotlabs/Module/Cover_photo.php:318 +#: ../../Zotlabs/Module/Profile_photo.php:311 +#: ../../Zotlabs/Module/Profile_photo.php:352 +msgid "Photo not available." +msgstr "Foto niet beschikbaar." + +#: ../../Zotlabs/Module/Cover_photo.php:354 +#: ../../Zotlabs/Module/Profile_photo.php:407 +msgid "Upload File:" +msgstr "Bestand uploaden:" + +#: ../../Zotlabs/Module/Cover_photo.php:355 +#: ../../Zotlabs/Module/Profile_photo.php:408 +msgid "Select a profile:" +msgstr "Kies een profiel:" + +#: ../../Zotlabs/Module/Cover_photo.php:356 +msgid "Upload Cover Photo" +msgstr "Omslagfoto uploaden" + +#: ../../Zotlabs/Module/Cover_photo.php:361 +#: ../../Zotlabs/Module/Profile_photo.php:416 +#: ../../Zotlabs/Module/Settings/Channel.php:399 +msgid "or" +msgstr "of" + +#: ../../Zotlabs/Module/Cover_photo.php:361 +#: ../../Zotlabs/Module/Profile_photo.php:416 +msgid "skip this step" +msgstr "sla deze stap over" + +#: ../../Zotlabs/Module/Cover_photo.php:361 +#: ../../Zotlabs/Module/Profile_photo.php:416 +msgid "select a photo from your photo albums" +msgstr "Kies een foto uit jouw fotoalbums" + +#: ../../Zotlabs/Module/Cover_photo.php:377 +#: ../../Zotlabs/Module/Profile_photo.php:435 +msgid "Crop Image" +msgstr "Afbeelding bijsnijden" + +#: ../../Zotlabs/Module/Cover_photo.php:378 +#: ../../Zotlabs/Module/Profile_photo.php:436 +msgid "Please adjust the image cropping for optimum viewing." +msgstr "Snij de afbeelding zo uit dat deze optimaal wordt weergegeven." + +#: ../../Zotlabs/Module/Cover_photo.php:380 +#: ../../Zotlabs/Module/Profile_photo.php:438 +msgid "Done Editing" +msgstr "Klaar met bewerken" #: ../../Zotlabs/Module/Admin/Features.php:55 #: ../../Zotlabs/Module/Admin/Features.php:56 @@ -924,8 +1741,20 @@ msgstr "Beheer - Extra functies" msgid "Log settings updated." msgstr "Logboek-instellingen bijgewerkt." -#: ../../Zotlabs/Module/Admin/Logs.php:83 ../../include/widgets.php:1587 -#: ../../include/widgets.php:1597 +#: ../../Zotlabs/Module/Admin/Logs.php:82 +#: ../../Zotlabs/Module/Admin/Plugins.php:336 +#: ../../Zotlabs/Module/Admin/Plugins.php:427 +#: ../../Zotlabs/Module/Admin/Security.php:86 +#: ../../Zotlabs/Module/Admin/Themes.php:120 +#: ../../Zotlabs/Module/Admin/Themes.php:154 +#: ../../Zotlabs/Module/Admin/Accounts.php:164 +#: ../../Zotlabs/Module/Admin/Channels.php:145 +#: ../../Zotlabs/Module/Admin/Site.php:258 ../../Zotlabs/Module/Admin.php:137 +msgid "Administration" +msgstr "Beheer" + +#: ../../Zotlabs/Module/Admin/Logs.php:83 ../../include/widgets.php:1588 +#: ../../include/widgets.php:1598 msgid "Logs" msgstr "Logboeken" @@ -954,8 +1783,8 @@ msgstr "Logniveau" #: ../../Zotlabs/Module/Admin/Plugins.php:254 #: ../../Zotlabs/Module/Admin/Themes.php:69 #: ../../Zotlabs/Module/Filestorage.php:32 ../../Zotlabs/Module/Display.php:40 -#: ../../Zotlabs/Module/Admin.php:62 ../../Zotlabs/Module/Thing.php:89 -#: ../../Zotlabs/Module/Viewsrc.php:24 ../../include/items.php:3427 +#: ../../Zotlabs/Module/Admin.php:60 ../../Zotlabs/Module/Thing.php:89 +#: ../../Zotlabs/Module/Viewsrc.php:24 ../../include/items.php:3343 msgid "Item not found." msgstr "Item niet gevonden." @@ -980,7 +1809,7 @@ msgid "Enable" msgstr "Inschakelen" #: ../../Zotlabs/Module/Admin/Plugins.php:337 -#: ../../Zotlabs/Module/Admin/Plugins.php:428 ../../include/widgets.php:1565 +#: ../../Zotlabs/Module/Admin/Plugins.php:428 ../../include/widgets.php:1566 msgid "Plugins" msgstr "Plugins" @@ -990,8 +1819,8 @@ msgid "Toggle" msgstr "Omschakelen" #: ../../Zotlabs/Module/Admin/Plugins.php:339 -#: ../../Zotlabs/Module/Admin/Themes.php:123 ../../Zotlabs/Lib/Apps.php:216 -#: ../../include/nav.php:213 ../../include/widgets.php:680 +#: ../../Zotlabs/Module/Admin/Themes.php:123 ../../Zotlabs/Lib/Apps.php:218 +#: ../../include/nav.php:211 ../../include/widgets.php:680 msgid "Settings" msgstr "Instellingen" @@ -1054,17 +1883,21 @@ msgstr "Plugin-repository downloaden" msgid "Install new repo" msgstr "Nieuwe repository installeren" -#: ../../Zotlabs/Module/Admin/Plugins.php:413 ../../Zotlabs/Lib/Apps.php:334 +#: ../../Zotlabs/Module/Admin/Plugins.php:413 ../../Zotlabs/Lib/Apps.php:339 msgid "Install" msgstr "Installeren" #: ../../Zotlabs/Module/Admin/Plugins.php:414 #: ../../Zotlabs/Module/Fbrowser.php:66 ../../Zotlabs/Module/Fbrowser.php:88 -#: ../../Zotlabs/Module/Wiki.php:171 ../../Zotlabs/Module/Wiki.php:211 -#: ../../Zotlabs/Module/Tagrm.php:15 ../../Zotlabs/Module/Tagrm.php:138 +#: ../../Zotlabs/Module/Wiki.php:238 ../../Zotlabs/Module/Wiki.php:261 #: ../../Zotlabs/Module/Settings/Oauth.php:88 #: ../../Zotlabs/Module/Settings/Oauth.php:114 -#: ../../include/conversation.php:1248 ../../include/conversation.php:1297 +#: ../../Zotlabs/Module/Tagrm.php:15 ../../Zotlabs/Module/Tagrm.php:138 +#: ../../extend/addon/addon/friendica/dfrn_request.php:879 +#: ../../extend/addon/addon/js_upload/js_upload.php:46 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:866 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1154 +#: ../../include/conversation.php:1246 ../../include/conversation.php:1295 msgid "Cancel" msgstr "Annuleren" @@ -1082,7 +1915,8 @@ msgstr "Nieuwe plugin-repository toevoegen" #: ../../Zotlabs/Module/Admin/Plugins.php:443 #: ../../Zotlabs/Module/Settings/Oauth.php:42 -#: ../../Zotlabs/Module/Settings/Oauth.php:113 ../../Zotlabs/Lib/Apps.php:334 +#: ../../Zotlabs/Module/Settings/Oauth.php:113 ../../Zotlabs/Lib/Apps.php:339 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1152 msgid "Update" msgstr "Bijwerken" @@ -1092,6 +1926,7 @@ msgstr "Branch veranderen" #: ../../Zotlabs/Module/Admin/Plugins.php:445 #: ../../Zotlabs/Module/Photos.php:989 ../../Zotlabs/Module/Tagrm.php:137 +#: ../../extend/addon/addon/superblock/superblock.php:114 msgid "Remove" msgstr "Verwijderen" @@ -1134,14 +1969,6 @@ msgstr "Helptekst" msgid "Additional info (optional)" msgstr "Extra informatie (optioneel)" -#: ../../Zotlabs/Module/Admin/Profs.php:74 -#: ../../Zotlabs/Module/Admin/Profs.php:94 ../../Zotlabs/Module/Filer.php:53 -#: ../../Zotlabs/Module/Rbmark.php:32 ../../Zotlabs/Module/Rbmark.php:104 -#: ../../include/text.php:972 ../../include/text.php:984 -#: ../../include/widgets.php:201 -msgid "Save" -msgstr "Opslaan" - #: ../../Zotlabs/Module/Admin/Profs.php:83 msgid "Field definition not found" msgstr "Velddefinitie niet gevonden" @@ -1150,7 +1977,7 @@ msgstr "Velddefinitie niet gevonden" msgid "Edit Profile Field" msgstr "Profielveld bewerken" -#: ../../Zotlabs/Module/Admin/Profs.php:147 ../../include/widgets.php:1568 +#: ../../Zotlabs/Module/Admin/Profs.php:147 ../../include/widgets.php:1569 msgid "Profile Fields" msgstr "Profielvelden" @@ -1230,7 +2057,7 @@ msgid "" "embedded content from that site is explicitly blocked." msgstr "Alle andere ingesloten (embedded) inhoud wordt gefilterd, tenzij ingesloten (embedded) inhoud van een website expliciet wordt geblokkeerd." -#: ../../Zotlabs/Module/Admin/Security.php:87 ../../include/widgets.php:1563 +#: ../../Zotlabs/Module/Admin/Security.php:87 ../../include/widgets.php:1564 msgid "Security" msgstr "Beveiliging" @@ -1318,412 +2145,6 @@ msgstr "Eén website per regel. Standaard wordt ingesloten (embedded) inhoud gef msgid "Block embedded HTML from these domains" msgstr "Ingesloten (embedded) HTML vanaf deze domeinen blokkeren" -#: ../../Zotlabs/Module/Admin/Site.php:135 -msgid "Site settings updated." -msgstr "Hub-instellingen bijgewerkt." - -#: ../../Zotlabs/Module/Admin/Site.php:162 ../../include/text.php:2942 -msgid "Default" -msgstr "Standaard" - -#: ../../Zotlabs/Module/Admin/Site.php:172 -#: ../../Zotlabs/Module/Settings/Display.php:141 -msgid "mobile" -msgstr "mobiel" - -#: ../../Zotlabs/Module/Admin/Site.php:174 -msgid "experimental" -msgstr "experimenteel" - -#: ../../Zotlabs/Module/Admin/Site.php:176 -msgid "unsupported" -msgstr "Niet ondersteund" - -#: ../../Zotlabs/Module/Admin/Site.php:221 -#: ../../Zotlabs/Module/Connedit.php:408 ../../Zotlabs/Module/Connedit.php:686 -#: ../../Zotlabs/Module/Menu.php:100 ../../Zotlabs/Module/Menu.php:157 -#: ../../Zotlabs/Module/Api.php:85 ../../Zotlabs/Module/Filestorage.php:160 -#: ../../Zotlabs/Module/Filestorage.php:168 -#: ../../Zotlabs/Module/Profiles.php:647 ../../Zotlabs/Module/Mitem.php:162 -#: ../../Zotlabs/Module/Mitem.php:163 ../../Zotlabs/Module/Mitem.php:240 -#: ../../Zotlabs/Module/Mitem.php:241 ../../Zotlabs/Module/Removeme.php:63 -#: ../../Zotlabs/Module/Photos.php:653 ../../Zotlabs/Module/Events.php:462 -#: ../../Zotlabs/Module/Events.php:463 ../../Zotlabs/Module/Events.php:472 -#: ../../Zotlabs/Module/Settings/Channel.php:289 -#: ../../Zotlabs/Module/Settings/Display.php:101 ../../include/dir_fns.php:143 -#: ../../include/dir_fns.php:144 ../../include/dir_fns.php:145 -#: ../../view/theme/redbasic/php/config.php:111 -#: ../../view/theme/redbasic/php/config.php:136 ../../boot.php:1743 -msgid "No" -msgstr "Nee" - -#: ../../Zotlabs/Module/Admin/Site.php:222 -msgid "Yes - with approval" -msgstr "Ja - met goedkeuring" - -#: ../../Zotlabs/Module/Admin/Site.php:223 -#: ../../Zotlabs/Module/Connedit.php:408 ../../Zotlabs/Module/Menu.php:100 -#: ../../Zotlabs/Module/Menu.php:157 ../../Zotlabs/Module/Api.php:84 -#: ../../Zotlabs/Module/Filestorage.php:160 -#: ../../Zotlabs/Module/Filestorage.php:168 -#: ../../Zotlabs/Module/Profiles.php:647 ../../Zotlabs/Module/Mitem.php:162 -#: ../../Zotlabs/Module/Mitem.php:163 ../../Zotlabs/Module/Mitem.php:240 -#: ../../Zotlabs/Module/Mitem.php:241 ../../Zotlabs/Module/Removeme.php:63 -#: ../../Zotlabs/Module/Photos.php:653 ../../Zotlabs/Module/Events.php:462 -#: ../../Zotlabs/Module/Events.php:463 ../../Zotlabs/Module/Events.php:472 -#: ../../Zotlabs/Module/Settings/Channel.php:289 -#: ../../Zotlabs/Module/Settings/Display.php:101 ../../include/dir_fns.php:143 -#: ../../include/dir_fns.php:144 ../../include/dir_fns.php:145 -#: ../../view/theme/redbasic/php/config.php:111 -#: ../../view/theme/redbasic/php/config.php:136 ../../boot.php:1743 -msgid "Yes" -msgstr "Ja" - -#: ../../Zotlabs/Module/Admin/Site.php:228 -msgid "My site is not a public server" -msgstr "Mijn $Projectname-hub is niet openbaar" - -#: ../../Zotlabs/Module/Admin/Site.php:229 -msgid "My site has paid access only" -msgstr "Mijn $Projectname-hub kent alleen betaalde toegang" - -#: ../../Zotlabs/Module/Admin/Site.php:230 -msgid "My site has free access only" -msgstr "Mijn $Projectname-hub kent alleen gratis toegang" - -#: ../../Zotlabs/Module/Admin/Site.php:231 -msgid "My site offers free accounts with optional paid upgrades" -msgstr "Mijn $Projectname-hub biedt gratis accounts aan met betaalde uitbreidingen als optie" - -#: ../../Zotlabs/Module/Admin/Site.php:242 ../../Zotlabs/Module/Setup.php:336 -msgid "Basic/Minimal Social Networking" -msgstr "Basic/eenvoudig sociaal netwerk" - -#: ../../Zotlabs/Module/Admin/Site.php:243 ../../Zotlabs/Module/Setup.php:337 -msgid "Standard Configuration (default)" -msgstr "Standaard (standaard)" - -#: ../../Zotlabs/Module/Admin/Site.php:244 ../../Zotlabs/Module/Setup.php:338 -msgid "Professional" -msgstr "Professioneel " - -#: ../../Zotlabs/Module/Admin/Site.php:249 -#: ../../Zotlabs/Module/Settings/Account.php:105 -msgid "Beginner/Basic" -msgstr "Beginner/basic" - -#: ../../Zotlabs/Module/Admin/Site.php:250 -#: ../../Zotlabs/Module/Settings/Account.php:106 -msgid "Novice - not skilled but willing to learn" -msgstr "Onervaren - niet bekwaam, maar wil graag leren" - -#: ../../Zotlabs/Module/Admin/Site.php:251 -#: ../../Zotlabs/Module/Settings/Account.php:107 -msgid "Intermediate - somewhat comfortable" -msgstr "Ervaren - voelt zich enigszins comfortabel" - -#: ../../Zotlabs/Module/Admin/Site.php:252 -#: ../../Zotlabs/Module/Settings/Account.php:108 -msgid "Advanced - very comfortable" -msgstr "Gevorderd - voelt zich comfortabel" - -#: ../../Zotlabs/Module/Admin/Site.php:253 -#: ../../Zotlabs/Module/Settings/Account.php:109 -msgid "Expert - I can write computer code" -msgstr "Expert - kan programmeren" - -#: ../../Zotlabs/Module/Admin/Site.php:254 -#: ../../Zotlabs/Module/Settings/Account.php:110 -msgid "Wizard - I probably know more than you do" -msgstr "Tovenaar - ik weet waarschijnlijk meer dan jij" - -#: ../../Zotlabs/Module/Admin/Site.php:266 ../../include/widgets.php:1560 -msgid "Site" -msgstr "Hub-instellingen" - -#: ../../Zotlabs/Module/Admin/Site.php:268 -#: ../../Zotlabs/Module/Register.php:253 -msgid "Registration" -msgstr "Registratie" - -#: ../../Zotlabs/Module/Admin/Site.php:269 -msgid "File upload" -msgstr "Bestand uploaden" - -#: ../../Zotlabs/Module/Admin/Site.php:270 -msgid "Policies" -msgstr "Beleid" - -#: ../../Zotlabs/Module/Admin/Site.php:271 -#: ../../include/contact_widgets.php:16 -msgid "Advanced" -msgstr "Geavanceerd" - -#: ../../Zotlabs/Module/Admin/Site.php:275 -msgid "Site name" -msgstr "Naam van deze $Projectname-hub" - -#: ../../Zotlabs/Module/Admin/Site.php:277 ../../Zotlabs/Module/Setup.php:359 -msgid "Server Configuration/Role" -msgstr "Configuratietype hub" - -#: ../../Zotlabs/Module/Admin/Site.php:279 -msgid "Site default technical skill level" -msgstr "Standaard technisch niveau voor deze hub" - -#: ../../Zotlabs/Module/Admin/Site.php:279 -msgid "Used to provide a member experience matched to technical comfort level" -msgstr "Wordt gebruikt om leden een gebruikerservaring te bieden die met hun technisch niveau overeenkomt" - -#: ../../Zotlabs/Module/Admin/Site.php:281 -msgid "Lock the technical skill level setting" -msgstr "Vergrendel de functie 'Standaard technisch niveau voor deze hub'" - -#: ../../Zotlabs/Module/Admin/Site.php:281 -msgid "Members can set their own technical comfort level by default" -msgstr "Leden kunnen hun eigen technisch niveau standaard instellen" - -#: ../../Zotlabs/Module/Admin/Site.php:284 -msgid "Banner/Logo" -msgstr "Banner/logo" - -#: ../../Zotlabs/Module/Admin/Site.php:285 -msgid "Administrator Information" -msgstr "Informatie over de beheerder" - -#: ../../Zotlabs/Module/Admin/Site.php:285 -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." - -#: ../../Zotlabs/Module/Admin/Site.php:286 -msgid "System language" -msgstr "Standaardtaal" - -#: ../../Zotlabs/Module/Admin/Site.php:287 -msgid "System theme" -msgstr "Standaardthema" - -#: ../../Zotlabs/Module/Admin/Site.php:287 -msgid "" -"Default system theme - may be over-ridden by user profiles - change theme settings" -msgstr "Standaardthema voor $Projectname-hub (kan door lid veranderd worden) - verander thema-instellingen" - -#: ../../Zotlabs/Module/Admin/Site.php:288 -msgid "Mobile system theme" -msgstr "Standaardthema voor mobiel" - -#: ../../Zotlabs/Module/Admin/Site.php:288 -msgid "Theme for mobile devices" -msgstr "Thema voor mobiele apparaten" - -#: ../../Zotlabs/Module/Admin/Site.php:290 -msgid "Allow Feeds as Connections" -msgstr "Sta feeds toe als connecties" - -#: ../../Zotlabs/Module/Admin/Site.php:290 -msgid "(Heavy system resource usage)" -msgstr "(sterk negatieve invloed op systeembronnen hub)" - -#: ../../Zotlabs/Module/Admin/Site.php:291 -msgid "Maximum image size" -msgstr "Maximale grootte van afbeeldingen" - -#: ../../Zotlabs/Module/Admin/Site.php:291 -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." - -#: ../../Zotlabs/Module/Admin/Site.php:292 -msgid "Does this site allow new member registration?" -msgstr "Staat deze hub nieuwe accounts toe?" - -#: ../../Zotlabs/Module/Admin/Site.php:293 -msgid "Invitation only" -msgstr "Alleen op uitnodiging" - -#: ../../Zotlabs/Module/Admin/Site.php:293 -msgid "" -"Only allow new member registrations with an invitation code. Above register " -"policy must be set to Yes." -msgstr "Sta alleen nieuwe registraties toe van mensen die een uitnodigingscode hebben. Bovenstaand accountbeleid moet op Ja staan." - -#: ../../Zotlabs/Module/Admin/Site.php:294 -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." - -#: ../../Zotlabs/Module/Admin/Site.php:295 -msgid "Register text" -msgstr "Tekst tijdens registratie" - -#: ../../Zotlabs/Module/Admin/Site.php:295 -msgid "Will be displayed prominently on the registration page." -msgstr "Tekst dat op de pagina voor het registreren van nieuwe accounts wordt getoond." - -#: ../../Zotlabs/Module/Admin/Site.php:296 -msgid "Site homepage to show visitors (default: login box)" -msgstr "Homepagina van deze hub die aan bezoekers wordt getoond (standaard: inlogformulier)" - -#: ../../Zotlabs/Module/Admin/Site.php:296 -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." - -#: ../../Zotlabs/Module/Admin/Site.php:297 -msgid "Preserve site homepage URL" -msgstr "Behoudt de URL van de hub (/)" - -#: ../../Zotlabs/Module/Admin/Site.php:297 -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)" - -#: ../../Zotlabs/Module/Admin/Site.php:298 -msgid "Accounts abandoned after x days" -msgstr "Accounts als verlaten beschouwen na zoveel aantal dagen:" - -#: ../../Zotlabs/Module/Admin/Site.php:298 -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." - -#: ../../Zotlabs/Module/Admin/Site.php:299 -msgid "Allowed friend domains" -msgstr "Toegestane domeinen" - -#: ../../Zotlabs/Module/Admin/Site.php:299 -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." - -#: ../../Zotlabs/Module/Admin/Site.php:300 -msgid "Verify Email Addresses" -msgstr "E-mailadres verifieren" - -#: ../../Zotlabs/Module/Admin/Site.php:300 -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)." - -#: ../../Zotlabs/Module/Admin/Site.php:301 -msgid "Force publish" -msgstr "Dwing kanaalvermelding af" - -#: ../../Zotlabs/Module/Admin/Site.php:301 -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." - -#: ../../Zotlabs/Module/Admin/Site.php:302 -msgid "Import Public Streams" -msgstr "Openbare streams importeren" - -#: ../../Zotlabs/Module/Admin/Site.php:302 -msgid "" -"Import and allow access to public content pulled from other sites. Warning: " -"this content is unmoderated." -msgstr "Toegang verlenen tot openbare berichten die vanuit andere hubs worden geïmporteerd. Waarschuwing: de inhoud van deze berichten wordt niet gemodereerd." - -#: ../../Zotlabs/Module/Admin/Site.php:303 -msgid "Login on Homepage" -msgstr "Inlogformulier op de homepagina" - -#: ../../Zotlabs/Module/Admin/Site.php:303 -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. " - -#: ../../Zotlabs/Module/Admin/Site.php:304 -msgid "Enable context help" -msgstr "Schakel contextuele hulp in" - -#: ../../Zotlabs/Module/Admin/Site.php:304 -msgid "" -"Display contextual help for the current page when the help button is " -"pressed." -msgstr "Toon hulp en documentatie voor de op dat moment getoonde pagina, wanneer op de hulp-knop wordt geklikt." - -#: ../../Zotlabs/Module/Admin/Site.php:306 -msgid "Directory Server URL" -msgstr "Server-URL voor de kanalengids" - -#: ../../Zotlabs/Module/Admin/Site.php:306 -msgid "Default directory server" -msgstr "Standaardserver voor de kanalengids" - -#: ../../Zotlabs/Module/Admin/Site.php:308 -msgid "Proxy user" -msgstr "Gebruikersnaam proxy" - -#: ../../Zotlabs/Module/Admin/Site.php:309 -msgid "Proxy URL" -msgstr "Proxy-URL" - -#: ../../Zotlabs/Module/Admin/Site.php:310 -msgid "Network timeout" -msgstr "Netwerktimeout" - -#: ../../Zotlabs/Module/Admin/Site.php:310 -msgid "Value is in seconds. Set to 0 for unlimited (not recommended)." -msgstr "Waarde is in seconden. Zet op 0 voor onbeperkt (niet aanbevolen)" - -#: ../../Zotlabs/Module/Admin/Site.php:311 -msgid "Delivery interval" -msgstr "Afleveringsinterval" - -#: ../../Zotlabs/Module/Admin/Site.php:311 -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." - -#: ../../Zotlabs/Module/Admin/Site.php:312 -msgid "Deliveries per process" -msgstr "Leveringen per serverproces" - -#: ../../Zotlabs/Module/Admin/Site.php:312 -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" - -#: ../../Zotlabs/Module/Admin/Site.php:313 -msgid "Poll interval" -msgstr "Poll-interval" - -#: ../../Zotlabs/Module/Admin/Site.php:313 -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." - -#: ../../Zotlabs/Module/Admin/Site.php:314 -msgid "Maximum Load Average" -msgstr "Maximaal gemiddelde systeembelasting" - -#: ../../Zotlabs/Module/Admin/Site.php:314 -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." - -#: ../../Zotlabs/Module/Admin/Site.php:315 -msgid "Expiration period in days for imported (grid/network) content" -msgstr "Aantal dagen waarna geïmporteerde inhoud uit iemands grid/netwerk-pagina wordt verwijderd." - -#: ../../Zotlabs/Module/Admin/Site.php:315 -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." - #: ../../Zotlabs/Module/Admin/Themes.php:18 msgid "Theme settings updated." msgstr "Thema-instellingen bijgewerkt." @@ -1737,7 +2158,7 @@ msgid "Screenshot" msgstr "Schermafdruk" #: ../../Zotlabs/Module/Admin/Themes.php:121 -#: ../../Zotlabs/Module/Admin/Themes.php:155 ../../include/widgets.php:1566 +#: ../../Zotlabs/Module/Admin/Themes.php:155 ../../include/widgets.php:1567 msgid "Themes" msgstr "Thema's" @@ -1749,731 +2170,707 @@ msgstr "[Experimenteel]" msgid "[Unsupported]" msgstr "[Niet ondersteund]" -#: ../../Zotlabs/Module/Fbrowser.php:29 ../../Zotlabs/Lib/Apps.php:222 -#: ../../include/nav.php:95 ../../include/conversation.php:1672 -msgid "Photos" -msgstr "Foto's" - -#: ../../Zotlabs/Module/Page.php:40 ../../Zotlabs/Module/Block.php:31 -msgid "Invalid item." -msgstr "Ongeldig item." - -#: ../../Zotlabs/Module/Page.php:56 ../../Zotlabs/Module/Block.php:43 -#: ../../Zotlabs/Module/Cal.php:62 ../../Zotlabs/Module/Wall_upload.php:33 -msgid "Channel not found." -msgstr "Kanaal niet gevonden." - -#: ../../Zotlabs/Module/Page.php:131 -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." - -#: ../../Zotlabs/Module/Filer.php:52 -msgid "Save to Folder:" -msgstr "Bewaar in map: " - -#: ../../Zotlabs/Module/Filer.php:52 -msgid "- select -" -msgstr "- kies map -" - -#: ../../Zotlabs/Module/Mail.php:38 -msgid "Unable to lookup recipient." -msgstr "Niet in staat om ontvanger op te zoeken." - -#: ../../Zotlabs/Module/Mail.php:45 -msgid "Unable to communicate with requested channel." -msgstr "Niet in staat om met het aangevraagde kanaal te communiceren." - -#: ../../Zotlabs/Module/Mail.php:52 -msgid "Cannot verify requested channel." -msgstr "Kan opgevraagd kanaal niet verifieren" - -#: ../../Zotlabs/Module/Mail.php:70 -msgid "Selected channel has private message restrictions. Send failed." -msgstr "Gekozen kanaal heeft restricties voor privéberichten. Verzenden mislukt." - -#: ../../Zotlabs/Module/Mail.php:135 -msgid "Messages" -msgstr "Berichten" - -#: ../../Zotlabs/Module/Mail.php:170 -msgid "Message recalled." -msgstr "Bericht ingetrokken." - -#: ../../Zotlabs/Module/Mail.php:183 -msgid "Conversation removed." -msgstr "Conversatie verwijderd" - -#: ../../Zotlabs/Module/Mail.php:197 ../../Zotlabs/Module/Mail.php:306 -#: ../../Zotlabs/Module/Chat.php:205 ../../include/conversation.php:1184 -msgid "Please enter a link URL:" -msgstr "Vul een URL in:" - -#: ../../Zotlabs/Module/Mail.php:198 ../../Zotlabs/Module/Mail.php:307 -msgid "Expires YYYY-MM-DD HH:MM" -msgstr "Verloopt op DD-MM-YYYY om HH:MM" - -#: ../../Zotlabs/Module/Mail.php:226 -msgid "Requested channel is not in this network" -msgstr "Opgevraagd kanaal is niet in dit netwerk beschikbaar" - -#: ../../Zotlabs/Module/Mail.php:234 -msgid "Send Private Message" -msgstr "Privébericht versturen" - -#: ../../Zotlabs/Module/Mail.php:235 ../../Zotlabs/Module/Mail.php:360 -msgid "To:" -msgstr "Aan:" - -#: ../../Zotlabs/Module/Mail.php:238 ../../Zotlabs/Module/Mail.php:362 -msgid "Subject:" -msgstr "Onderwerp:" - -#: ../../Zotlabs/Module/Mail.php:241 ../../Zotlabs/Module/Invite.php:135 -msgid "Your message:" -msgstr "Jouw bericht:" - -#: ../../Zotlabs/Module/Mail.php:243 ../../Zotlabs/Module/Mail.php:368 -#: ../../include/conversation.php:1244 -msgid "Attach file" -msgstr "Bestand toevoegen" - -#: ../../Zotlabs/Module/Mail.php:244 ../../Zotlabs/Module/Mail.php:369 -#: ../../Zotlabs/Module/Editblock.php:111 -#: ../../Zotlabs/Module/Editwebpage.php:146 ../../Zotlabs/Module/Chat.php:207 -#: ../../include/conversation.php:1149 -msgid "Insert web link" -msgstr "Weblink invoegen" - -#: ../../Zotlabs/Module/Mail.php:245 -msgid "Send" -msgstr "Verzenden" - -#: ../../Zotlabs/Module/Mail.php:248 ../../Zotlabs/Module/Mail.php:373 -#: ../../include/conversation.php:1289 -msgid "Set expiration date" -msgstr "Verloopdatum instellen" - -#: ../../Zotlabs/Module/Mail.php:250 ../../Zotlabs/Module/Mail.php:375 -#: ../../Zotlabs/Module/Chat.php:206 ../../Zotlabs/Lib/ThreadItem.php:737 -#: ../../include/conversation.php:1294 -msgid "Encrypt text" -msgstr "Tekst versleutelen" - -#: ../../Zotlabs/Module/Mail.php:332 -msgid "Delete message" -msgstr "Bericht verwijderen" - -#: ../../Zotlabs/Module/Mail.php:333 -msgid "Delivery report" -msgstr "Afleveringsrapport" - -#: ../../Zotlabs/Module/Mail.php:334 -msgid "Recall message" -msgstr "Bericht intrekken" - -#: ../../Zotlabs/Module/Mail.php:336 -msgid "Message has been recalled." -msgstr "Bericht is ingetrokken." - -#: ../../Zotlabs/Module/Mail.php:353 -msgid "Delete Conversation" -msgstr "Verwijder conversatie" - -#: ../../Zotlabs/Module/Mail.php:355 -msgid "" -"No secure communications available. You may be able to " -"respond from the sender's profile page." -msgstr "Geen veilige communicatie beschikbaar. Mogelijk kan je reageren op de kanaalpagina van de afzender." - -#: ../../Zotlabs/Module/Mail.php:359 -msgid "Send Reply" -msgstr "Antwoord versturen" - -#: ../../Zotlabs/Module/Mail.php:364 +#: ../../Zotlabs/Module/Admin/Account_edit.php:29 #, php-format -msgid "Your message for %s (%s):" -msgstr "Jouw privébericht aan %s (%s):" +msgid "Password changed for account %d." +msgstr "Wachtwoord veranderd voor account %d." -#: ../../Zotlabs/Module/Connections.php:56 -#: ../../Zotlabs/Module/Connections.php:161 -#: ../../Zotlabs/Module/Connections.php:242 -msgid "Blocked" -msgstr "Geblokkeerd" +#: ../../Zotlabs/Module/Admin/Account_edit.php:46 +msgid "Account settings updated." +msgstr "Account-instellingen bijgewerkt." -#: ../../Zotlabs/Module/Connections.php:61 -#: ../../Zotlabs/Module/Connections.php:168 -#: ../../Zotlabs/Module/Connections.php:241 -msgid "Ignored" -msgstr "Genegeerd" +#: ../../Zotlabs/Module/Admin/Account_edit.php:61 +msgid "Account not found." +msgstr "Account niet gevonden." -#: ../../Zotlabs/Module/Connections.php:66 -#: ../../Zotlabs/Module/Connections.php:182 -#: ../../Zotlabs/Module/Connections.php:240 -msgid "Hidden" -msgstr "Verborgen" +#: ../../Zotlabs/Module/Admin/Account_edit.php:68 +msgid "Account Edit" +msgstr "Account bewerken" -#: ../../Zotlabs/Module/Connections.php:71 -#: ../../Zotlabs/Module/Connections.php:175 -#: ../../Zotlabs/Module/Connections.php:239 -msgid "Archived" -msgstr "Gearchiveerd" +#: ../../Zotlabs/Module/Admin/Account_edit.php:69 +msgid "New Password" +msgstr "Nieuw wachtwoord" -#: ../../Zotlabs/Module/Connections.php:76 -#: ../../Zotlabs/Module/Connections.php:86 ../../Zotlabs/Module/Menu.php:116 -#: ../../include/conversation.php:1573 -msgid "New" -msgstr "Nieuw" +#: ../../Zotlabs/Module/Admin/Account_edit.php:70 +msgid "New Password again" +msgstr "Nieuw wachtwoord bevestigen" -#: ../../Zotlabs/Module/Connections.php:92 -#: ../../Zotlabs/Module/Connections.php:107 -#: ../../Zotlabs/Module/Connedit.php:629 ../../include/widgets.php:533 -msgid "All" -msgstr "Alles" +#: ../../Zotlabs/Module/Admin/Account_edit.php:71 +msgid "Technical skill level" +msgstr "Technisch niveau" -#: ../../Zotlabs/Module/Connections.php:138 -msgid "New Connections" -msgstr "Nieuwe connecties" +#: ../../Zotlabs/Module/Admin/Account_edit.php:72 +msgid "Account language (for emails)" +msgstr "Taal van account (voor e-mails)" -#: ../../Zotlabs/Module/Connections.php:141 -msgid "Show pending (new) connections" -msgstr "Nog te accepteren (nieuwe) connecties weergeven" +#: ../../Zotlabs/Module/Admin/Account_edit.php:73 +msgid "Service class" +msgstr "Abonnement" -#: ../../Zotlabs/Module/Connections.php:145 -#: ../../Zotlabs/Module/Profperm.php:144 -msgid "All Connections" -msgstr "Alle connecties" - -#: ../../Zotlabs/Module/Connections.php:148 -msgid "Show all connections" -msgstr "Toon alle connecties" - -#: ../../Zotlabs/Module/Connections.php:164 -msgid "Only show blocked connections" -msgstr "Toon alleen geblokkeerde connecties" - -#: ../../Zotlabs/Module/Connections.php:171 -msgid "Only show ignored connections" -msgstr "Toon alleen genegeerde connecties" - -#: ../../Zotlabs/Module/Connections.php:178 -msgid "Only show archived connections" -msgstr "Toon alleen gearchiveerde connecties" - -#: ../../Zotlabs/Module/Connections.php:185 -msgid "Only show hidden connections" -msgstr "Toon alleen verborgen connecties" - -#: ../../Zotlabs/Module/Connections.php:238 -msgid "Pending approval" -msgstr "Moet nog geaccepteerd worden" - -#: ../../Zotlabs/Module/Connections.php:254 +#: ../../Zotlabs/Module/Admin/Accounts.php:36 #, php-format -msgid "%1$s [%2$s]" -msgstr "%1$s [%2$s]" +msgid "%s account blocked/unblocked" +msgid_plural "%s account blocked/unblocked" +msgstr[0] "%s account geblokkeerd/gedeblokkeerd" +msgstr[1] "%s accounts geblokkeerd/gedeblokkeerd" -#: ../../Zotlabs/Module/Connections.php:255 -msgid "Edit connection" -msgstr "Connectie bewerken" - -#: ../../Zotlabs/Module/Connections.php:256 -msgid "Delete connection" -msgstr "Connectie verwijderen" - -#: ../../Zotlabs/Module/Connections.php:265 -msgid "Channel address" -msgstr "Kanaaladres" - -#: ../../Zotlabs/Module/Connections.php:267 -msgid "Network" -msgstr "Netwerk" - -#: ../../Zotlabs/Module/Connections.php:270 -msgid "Status" -msgstr "Status" - -#: ../../Zotlabs/Module/Connections.php:272 -msgid "Connected" -msgstr "Verbonden" - -#: ../../Zotlabs/Module/Connections.php:274 -msgid "Approve connection" -msgstr "Connectie accepteren" - -#: ../../Zotlabs/Module/Connections.php:276 -msgid "Ignore connection" -msgstr "Connectie negeren" - -#: ../../Zotlabs/Module/Connections.php:277 -#: ../../Zotlabs/Module/Connedit.php:583 -#: ../../Zotlabs/Module/Notifications.php:55 -msgid "Ignore" -msgstr "Negeren" - -#: ../../Zotlabs/Module/Connections.php:278 -msgid "Recent activity" -msgstr "Recente activiteit" - -#: ../../Zotlabs/Module/Connections.php:302 ../../Zotlabs/Lib/Apps.php:209 -#: ../../include/text.php:901 ../../include/nav.php:191 -msgid "Connections" -msgstr "Connecties" - -#: ../../Zotlabs/Module/Connections.php:306 ../../Zotlabs/Module/Search.php:44 -#: ../../Zotlabs/Lib/Apps.php:230 ../../include/text.php:971 -#: ../../include/text.php:983 ../../include/acl_selectors.php:174 -#: ../../include/nav.php:170 ../../include/widgets.php:315 -msgid "Search" -msgstr "Zoeken" - -#: ../../Zotlabs/Module/Connections.php:307 -msgid "Search your connections" -msgstr "Doorzoek jouw connecties" - -#: ../../Zotlabs/Module/Connections.php:308 -msgid "Connections search" -msgstr "Connecties zoeken" - -#: ../../Zotlabs/Module/Connections.php:309 -#: ../../Zotlabs/Module/Directory.php:388 -#: ../../Zotlabs/Module/Directory.php:393 ../../include/contact_widgets.php:23 -msgid "Find" -msgstr "Vinden" - -#: ../../Zotlabs/Module/Cover_photo.php:58 -#: ../../Zotlabs/Module/Profile_photo.php:61 -msgid "Image uploaded but image cropping failed." -msgstr "Afbeelding geüpload, maar afbeelding kon niet worden bijgesneden. " - -#: ../../Zotlabs/Module/Cover_photo.php:134 -#: ../../Zotlabs/Module/Cover_photo.php:181 -msgid "Cover Photos" -msgstr "Omslagfoto's" - -#: ../../Zotlabs/Module/Cover_photo.php:154 -#: ../../Zotlabs/Module/Profile_photo.php:135 -msgid "Image resize failed." -msgstr "Afbeelding kon niet van grootte veranderd worden." - -#: ../../Zotlabs/Module/Cover_photo.php:168 -#: ../../Zotlabs/Module/Profile_photo.php:196 ../../include/photos.php:148 -msgid "Unable to process image" -msgstr "Afbeelding kan niet verwerkt worden" - -#: ../../Zotlabs/Module/Cover_photo.php:192 -#: ../../Zotlabs/Module/Profile_photo.php:223 -msgid "Image upload failed." -msgstr "Uploaden afbeelding mislukt" - -#: ../../Zotlabs/Module/Cover_photo.php:210 -#: ../../Zotlabs/Module/Profile_photo.php:242 -msgid "Unable to process image." -msgstr "Niet in staat om afbeelding te verwerken." - -#: ../../Zotlabs/Module/Cover_photo.php:233 ../../include/items.php:4341 -msgid "female" -msgstr "vrouw" - -#: ../../Zotlabs/Module/Cover_photo.php:234 ../../include/items.php:4342 +#: ../../Zotlabs/Module/Admin/Accounts.php:43 #, php-format -msgid "%1$s updated her %2$s" -msgstr "%1$s heeft haar %2$s bijgewerkt" +msgid "%s account deleted" +msgid_plural "%s accounts deleted" +msgstr[0] "%s account verwijderd" +msgstr[1] "%s accounts verwijderd" -#: ../../Zotlabs/Module/Cover_photo.php:235 ../../include/items.php:4343 -msgid "male" -msgstr "man" +#: ../../Zotlabs/Module/Admin/Accounts.php:79 +msgid "Account not found" +msgstr "Account niet gevonden" -#: ../../Zotlabs/Module/Cover_photo.php:236 ../../include/items.php:4344 +#: ../../Zotlabs/Module/Admin/Accounts.php:90 #, php-format -msgid "%1$s updated his %2$s" -msgstr "%1$s heeft zijn %2$s bijgewerkt" +msgid "Account '%s' deleted" +msgstr "Account '%s' verwijderd" -#: ../../Zotlabs/Module/Cover_photo.php:238 ../../include/items.php:4346 +#: ../../Zotlabs/Module/Admin/Accounts.php:98 #, php-format -msgid "%1$s updated their %2$s" -msgstr "De %2$s van %1$s is bijgewerkt" +msgid "Account '%s' blocked" +msgstr "Account '%s' geblokkeerd" -#: ../../Zotlabs/Module/Cover_photo.php:240 ../../include/channel.php:1731 -msgid "cover photo" -msgstr "omslagfoto" - -#: ../../Zotlabs/Module/Cover_photo.php:303 -#: ../../Zotlabs/Module/Cover_photo.php:318 -#: ../../Zotlabs/Module/Profile_photo.php:300 -#: ../../Zotlabs/Module/Profile_photo.php:341 -msgid "Photo not available." -msgstr "Foto niet beschikbaar." - -#: ../../Zotlabs/Module/Cover_photo.php:354 -#: ../../Zotlabs/Module/Profile_photo.php:387 -msgid "Upload File:" -msgstr "Bestand uploaden:" - -#: ../../Zotlabs/Module/Cover_photo.php:355 -#: ../../Zotlabs/Module/Profile_photo.php:388 -msgid "Select a profile:" -msgstr "Kies een profiel:" - -#: ../../Zotlabs/Module/Cover_photo.php:356 -msgid "Upload Cover Photo" -msgstr "Omslagfoto uploaden" - -#: ../../Zotlabs/Module/Cover_photo.php:361 -#: ../../Zotlabs/Module/Profile_photo.php:396 -#: ../../Zotlabs/Module/Settings/Channel.php:399 -msgid "or" -msgstr "of" - -#: ../../Zotlabs/Module/Cover_photo.php:361 -#: ../../Zotlabs/Module/Profile_photo.php:396 -msgid "skip this step" -msgstr "sla deze stap over" - -#: ../../Zotlabs/Module/Cover_photo.php:361 -#: ../../Zotlabs/Module/Profile_photo.php:396 -msgid "select a photo from your photo albums" -msgstr "Kies een foto uit jouw fotoalbums" - -#: ../../Zotlabs/Module/Cover_photo.php:377 -#: ../../Zotlabs/Module/Profile_photo.php:415 -msgid "Crop Image" -msgstr "Afbeelding bijsnijden" - -#: ../../Zotlabs/Module/Cover_photo.php:378 -#: ../../Zotlabs/Module/Profile_photo.php:416 -msgid "Please adjust the image cropping for optimum viewing." -msgstr "Snij de afbeelding zo uit dat deze optimaal wordt weergegeven." - -#: ../../Zotlabs/Module/Cover_photo.php:380 -#: ../../Zotlabs/Module/Profile_photo.php:418 -msgid "Done Editing" -msgstr "Klaar met bewerken" - -#: ../../Zotlabs/Module/Rpost.php:138 ../../Zotlabs/Module/Editpost.php:106 -msgid "Edit post" -msgstr "Bericht bewerken" - -#: ../../Zotlabs/Module/Connedit.php:80 -msgid "Could not access contact record." -msgstr "Kon geen toegang krijgen tot de connectie-gegevens." - -#: ../../Zotlabs/Module/Connedit.php:104 -msgid "Could not locate selected profile." -msgstr "Kon het gekozen profiel niet vinden." - -#: ../../Zotlabs/Module/Connedit.php:256 -msgid "Connection updated." -msgstr "Connectie bijgewerkt." - -#: ../../Zotlabs/Module/Connedit.php:258 -msgid "Failed to update connection record." -msgstr "Bijwerken van connectie-gegevens mislukt." - -#: ../../Zotlabs/Module/Connedit.php:308 -msgid "is now connected to" -msgstr "is nu verbonden met" - -#: ../../Zotlabs/Module/Connedit.php:440 -msgid "Could not access address book record." -msgstr "Kon geen toegang krijgen tot de record van de connectie." - -#: ../../Zotlabs/Module/Connedit.php:460 -msgid "Refresh failed - channel is currently unavailable." -msgstr "Vernieuwen mislukt - kanaal is momenteel niet beschikbaar" - -#: ../../Zotlabs/Module/Connedit.php:475 ../../Zotlabs/Module/Connedit.php:484 -#: ../../Zotlabs/Module/Connedit.php:493 ../../Zotlabs/Module/Connedit.php:502 -#: ../../Zotlabs/Module/Connedit.php:515 -msgid "Unable to set address book parameters." -msgstr "Niet in staat om de parameters van connecties in te stellen." - -#: ../../Zotlabs/Module/Connedit.php:538 -msgid "Connection has been removed." -msgstr "Connectie is verwijderd" - -#: ../../Zotlabs/Module/Connedit.php:554 ../../Zotlabs/Lib/Apps.php:221 -#: ../../include/nav.php:89 ../../include/conversation.php:953 -msgid "View Profile" -msgstr "Profiel weergeven" - -#: ../../Zotlabs/Module/Connedit.php:557 +#: ../../Zotlabs/Module/Admin/Accounts.php:106 #, php-format -msgid "View %s's profile" -msgstr "Profiel van %s weergeven" +msgid "Account '%s' unblocked" +msgstr "Account '%s' gedeblokkeerd" -#: ../../Zotlabs/Module/Connedit.php:561 -msgid "Refresh Permissions" -msgstr "Permissies vernieuwen" +#: ../../Zotlabs/Module/Admin/Accounts.php:165 +#: ../../Zotlabs/Module/Admin/Accounts.php:178 ../../include/widgets.php:1562 +msgid "Accounts" +msgstr "Accounts" -#: ../../Zotlabs/Module/Connedit.php:564 -msgid "Fetch updated permissions" -msgstr "Aangepaste permissies ophalen" +#: ../../Zotlabs/Module/Admin/Accounts.php:167 +#: ../../Zotlabs/Module/Admin/Channels.php:148 +msgid "select all" +msgstr "alles selecteren" -#: ../../Zotlabs/Module/Connedit.php:568 -msgid "Recent Activity" -msgstr "Recente activiteit/berichten" +#: ../../Zotlabs/Module/Admin/Accounts.php:168 +msgid "Registrations waiting for confirm" +msgstr "Accounts die op goedkeuring wachten" -#: ../../Zotlabs/Module/Connedit.php:571 -msgid "View recent posts and comments" -msgstr "Recente berichten en reacties weergeven" +#: ../../Zotlabs/Module/Admin/Accounts.php:169 +msgid "Request date" +msgstr "Tijd/datum verzoek" -#: ../../Zotlabs/Module/Connedit.php:578 -msgid "Block (or Unblock) all communications with this connection" -msgstr "Blokkeer (of deblokkeer) alle communicatie met deze connectie" +#: ../../Zotlabs/Module/Admin/Accounts.php:169 +#: ../../Zotlabs/Module/Admin/Accounts.php:181 +#: ../../extend/addon/addon/redred/redred.php:107 +#: ../../extend/addon/addon/rtof/rtof.php:93 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1140 +#: ../../extend/addon/addon/openid/MysqlProvider.php:56 +#: ../../extend/addon/addon/openid/MysqlProvider.php:57 +#: ../../include/network.php:2237 +msgid "Email" +msgstr "E-mail" -#: ../../Zotlabs/Module/Connedit.php:579 -msgid "This connection is blocked!" -msgstr "Deze connectie is geblokkeerd!" +#: ../../Zotlabs/Module/Admin/Accounts.php:170 +msgid "No registrations." +msgstr "Geen verzoeken." -#: ../../Zotlabs/Module/Connedit.php:583 -msgid "Unignore" -msgstr "Niet meer negeren" +#: ../../Zotlabs/Module/Admin/Accounts.php:172 +msgid "Deny" +msgstr "Afkeuren" -#: ../../Zotlabs/Module/Connedit.php:586 -msgid "Ignore (or Unignore) all inbound communications from this connection" -msgstr "Negeer (of negeer niet meer) alle inkomende communicatie van deze connectie" +#: ../../Zotlabs/Module/Admin/Accounts.php:180 +msgid "ID" +msgstr "ID" -#: ../../Zotlabs/Module/Connedit.php:587 -msgid "This connection is ignored!" -msgstr "Deze connectie wordt genegeerd!" +#: ../../Zotlabs/Module/Admin/Accounts.php:182 ../../include/group.php:267 +msgid "All Channels" +msgstr "Alle kanalen" -#: ../../Zotlabs/Module/Connedit.php:591 -msgid "Unarchive" -msgstr "Niet meer archiveren" +#: ../../Zotlabs/Module/Admin/Accounts.php:183 +msgid "Register date" +msgstr "Geregistreerd" -#: ../../Zotlabs/Module/Connedit.php:591 -msgid "Archive" -msgstr "Archiveren" +#: ../../Zotlabs/Module/Admin/Accounts.php:184 +msgid "Last login" +msgstr "Laatste keer ingelogd" -#: ../../Zotlabs/Module/Connedit.php:594 +#: ../../Zotlabs/Module/Admin/Accounts.php:185 +msgid "Expires" +msgstr "Verloopt" + +#: ../../Zotlabs/Module/Admin/Accounts.php:186 +msgid "Service Class" +msgstr "Abonnement" + +#: ../../Zotlabs/Module/Admin/Accounts.php:188 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" +"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?" -#: ../../Zotlabs/Module/Connedit.php:595 -msgid "This connection is archived!" -msgstr "Deze connectie is gearchiveerd!" +#: ../../Zotlabs/Module/Admin/Accounts.php:189 +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?" -#: ../../Zotlabs/Module/Connedit.php:599 -msgid "Unhide" -msgstr "Niet meer verbergen" - -#: ../../Zotlabs/Module/Connedit.php:599 -msgid "Hide" -msgstr "Verbergen" - -#: ../../Zotlabs/Module/Connedit.php:602 -msgid "Hide or Unhide this connection from your other connections" -msgstr "Deze connectie verbergen (of niet meer verbergen) voor jouw andere connecties" - -#: ../../Zotlabs/Module/Connedit.php:603 -msgid "This connection is hidden!" -msgstr "Deze connectie is verborgen!" - -#: ../../Zotlabs/Module/Connedit.php:610 -msgid "Delete this connection" -msgstr "Deze connectie verwijderen" - -#: ../../Zotlabs/Module/Connedit.php:625 ../../include/widgets.php:529 -msgid "Me" -msgstr "Ik" - -#: ../../Zotlabs/Module/Connedit.php:626 ../../include/widgets.php:530 -msgid "Family" -msgstr "Familie" - -#: ../../Zotlabs/Module/Connedit.php:627 -#: ../../Zotlabs/Module/Settings/Channel.php:61 -#: ../../Zotlabs/Module/Settings/Channel.php:65 -#: ../../Zotlabs/Module/Settings/Channel.php:66 -#: ../../Zotlabs/Module/Settings/Channel.php:69 -#: ../../Zotlabs/Module/Settings/Channel.php:80 -#: ../../include/selectors.php:123 ../../include/channel.php:402 -#: ../../include/channel.php:403 ../../include/channel.php:410 -#: ../../include/widgets.php:531 -msgid "Friends" -msgstr "Vrienden" - -#: ../../Zotlabs/Module/Connedit.php:628 ../../include/widgets.php:532 -msgid "Acquaintances" -msgstr "Kennissen" - -#: ../../Zotlabs/Module/Connedit.php:686 -msgid "Approve this connection" -msgstr "Deze connectie accepteren" - -#: ../../Zotlabs/Module/Connedit.php:686 -msgid "Accept connection to allow communication" -msgstr "Keur deze connectie goed om communicatie toe te staan" - -#: ../../Zotlabs/Module/Connedit.php:691 -msgid "Set Affinity" -msgstr "Verwantschapsfilter instellen" - -#: ../../Zotlabs/Module/Connedit.php:694 -msgid "Set Profile" -msgstr "Profiel instellen" - -#: ../../Zotlabs/Module/Connedit.php:697 -msgid "Set Affinity & Profile" -msgstr "Verwantschapsfilter en profiel instellen" - -#: ../../Zotlabs/Module/Connedit.php:746 -msgid "none" -msgstr "geen" - -#: ../../Zotlabs/Module/Connedit.php:750 ../../include/widgets.php:656 -msgid "Connection Default Permissions" -msgstr "Standaard permissies voor connecties" - -#: ../../Zotlabs/Module/Connedit.php:750 ../../include/items.php:3993 +#: ../../Zotlabs/Module/Admin/Channels.php:31 #, php-format -msgid "Connection: %s" -msgstr "Connectie: %s" +msgid "%s channel censored/uncensored" +msgid_plural "%s channels censored/uncensored" +msgstr[0] "%s kanaal gecensureerd/ongecensureerd" +msgstr[1] "%s kanalen gecensureerd/ongecensureerd" -#: ../../Zotlabs/Module/Connedit.php:751 -msgid "Apply these permissions automatically" -msgstr "Deze permissies automatisch toepassen" - -#: ../../Zotlabs/Module/Connedit.php:751 -msgid "Connection requests will be approved without your interaction" -msgstr "Connectieverzoeken zullen automatisch worden geaccepteerd" - -#: ../../Zotlabs/Module/Connedit.php:753 -msgid "This connection's primary address is" -msgstr "Het primaire kanaaladres van deze connectie is" - -#: ../../Zotlabs/Module/Connedit.php:754 -msgid "Available locations:" -msgstr "Beschikbare locaties:" - -#: ../../Zotlabs/Module/Connedit.php:758 -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." - -#: ../../Zotlabs/Module/Connedit.php:759 -msgid "Connection Tools" -msgstr "Hulpmiddelen" - -#: ../../Zotlabs/Module/Connedit.php:761 -msgid "Slide to adjust your degree of friendship" -msgstr "Schuif om te bepalen hoe goed je iemand kent en/of mag" - -#: ../../Zotlabs/Module/Connedit.php:762 ../../Zotlabs/Module/Rate.php:155 -#: ../../include/js_strings.php:20 -msgid "Rating" -msgstr "Beoordeling" - -#: ../../Zotlabs/Module/Connedit.php:763 -msgid "Slide to adjust your rating" -msgstr "Gebruik de schuif om je beoordeling te geven" - -#: ../../Zotlabs/Module/Connedit.php:764 ../../Zotlabs/Module/Connedit.php:769 -msgid "Optionally explain your rating" -msgstr "Verklaar jouw beoordeling (niet verplicht)" - -#: ../../Zotlabs/Module/Connedit.php:766 -msgid "Custom Filter" -msgstr "Berichtenfilter" - -#: ../../Zotlabs/Module/Connedit.php:767 -msgid "Only import posts with this text" -msgstr "Importeer alleen berichten met deze tekst" - -#: ../../Zotlabs/Module/Connedit.php:767 ../../Zotlabs/Module/Connedit.php:768 -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" - -#: ../../Zotlabs/Module/Connedit.php:768 -msgid "Do not import posts with this text" -msgstr "Importeer geen berichten met deze tekst" - -#: ../../Zotlabs/Module/Connedit.php:770 -msgid "This information is public!" -msgstr "Deze informatie is openbaar!" - -#: ../../Zotlabs/Module/Connedit.php:775 -msgid "Connection Pending Approval" -msgstr "Connectie moet nog geaccepteerd worden" - -#: ../../Zotlabs/Module/Connedit.php:778 -#: ../../Zotlabs/Module/Settings/Tokens.php:163 -msgid "inherited" -msgstr "geërfd" - -#: ../../Zotlabs/Module/Connedit.php:780 +#: ../../Zotlabs/Module/Admin/Channels.php:40 #, 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" + +#: ../../Zotlabs/Module/Admin/Channels.php:46 +#, php-format +msgid "%s channel deleted" +msgid_plural "%s channels deleted" +msgstr[0] "%s kanaal verwijderd" +msgstr[1] "%s kanalen verwijderd" + +#: ../../Zotlabs/Module/Admin/Channels.php:65 +msgid "Channel not found" +msgstr "Kanaal niet gevonden" + +#: ../../Zotlabs/Module/Admin/Channels.php:75 +#, php-format +msgid "Channel '%s' deleted" +msgstr "Kanaal '%s' verwijderd" + +#: ../../Zotlabs/Module/Admin/Channels.php:87 +#, php-format +msgid "Channel '%s' censored" +msgstr "Kanaal '%s' gecensureerd" + +#: ../../Zotlabs/Module/Admin/Channels.php:87 +#, php-format +msgid "Channel '%s' uncensored" +msgstr "Kanaal '%s' ongecensureerd" + +#: ../../Zotlabs/Module/Admin/Channels.php:98 +#, php-format +msgid "Channel '%s' code allowed" +msgstr "Scripts toegestaan voor kanaal '%s'" + +#: ../../Zotlabs/Module/Admin/Channels.php:98 +#, php-format +msgid "Channel '%s' code disallowed" +msgstr "Scripts niet toegestaan voor kanaal '%s'" + +#: ../../Zotlabs/Module/Admin/Channels.php:146 ../../include/widgets.php:1563 +msgid "Channels" +msgstr "Kanalen" + +#: ../../Zotlabs/Module/Admin/Channels.php:150 +msgid "Censor" +msgstr "Censureren" + +#: ../../Zotlabs/Module/Admin/Channels.php:151 +msgid "Uncensor" +msgstr "Niet censureren" + +#: ../../Zotlabs/Module/Admin/Channels.php:152 +msgid "Allow Code" +msgstr "Scripts toestaan" + +#: ../../Zotlabs/Module/Admin/Channels.php:153 +msgid "Disallow Code" +msgstr "Scripts niet toestaan" + +#: ../../Zotlabs/Module/Admin/Channels.php:154 +#: ../../include/conversation.php:1653 +msgid "Channel" +msgstr "Kanaal" + +#: ../../Zotlabs/Module/Admin/Channels.php:158 +msgid "UID" +msgstr "UID" + +#: ../../Zotlabs/Module/Admin/Channels.php:162 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." +"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?" -#: ../../Zotlabs/Module/Connedit.php:782 -#: ../../Zotlabs/Module/Settings/Tokens.php:160 -msgid "Their Settings" -msgstr "Hun instellingen" - -#: ../../Zotlabs/Module/Connedit.php:783 -#: ../../Zotlabs/Module/Settings/Tokens.php:161 -msgid "My Settings" -msgstr "Mijn instellingen" - -#: ../../Zotlabs/Module/Connedit.php:785 -#: ../../Zotlabs/Module/Settings/Tokens.php:165 -msgid "Individual Permissions" -msgstr "Individuele permissies" - -#: ../../Zotlabs/Module/Connedit.php:786 -#: ../../Zotlabs/Module/Settings/Tokens.php:166 +#: ../../Zotlabs/Module/Admin/Channels.php:163 msgid "" -"Some permissions may be inherited from your channel's privacy settings, which have higher " -"priority than individual settings. You can not change those" -" settings here." -msgstr "Sommige permissies worden mogelijk overgeërfd van de privacy-instellingen van jouw kanaal, die een hogere prioriteit hebben dan deze individuele instellingen. Je kan je deze overgeërfde permissies hier niet veranderen." +"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?" -#: ../../Zotlabs/Module/Connedit.php:787 +#: ../../Zotlabs/Module/Admin/Dbsync.php:19 +msgid "Update has been marked successful" +msgstr "Update is als succesvol gemarkeerd" + +#: ../../Zotlabs/Module/Admin/Dbsync.php:29 +#, php-format +msgid "Executing %s failed. Check system logs." +msgstr "Uitvoeren van %s is mislukt. Controleer systeemlogboek." + +#: ../../Zotlabs/Module/Admin/Dbsync.php:32 +#, php-format +msgid "Update %s was successfully applied." +msgstr "Update %s was geslaagd." + +#: ../../Zotlabs/Module/Admin/Dbsync.php:36 +#, 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." + +#: ../../Zotlabs/Module/Admin/Dbsync.php:39 +#, php-format +msgid "Update function %s could not be found." +msgstr "Update-functie %s kon niet gevonden worden." + +#: ../../Zotlabs/Module/Admin/Dbsync.php:55 +msgid "No failed updates." +msgstr "Geen mislukte updates." + +#: ../../Zotlabs/Module/Admin/Dbsync.php:59 +msgid "Failed Updates" +msgstr "Mislukte updates" + +#: ../../Zotlabs/Module/Admin/Dbsync.php:61 +msgid "Mark success (if update was manually applied)" +msgstr "Markeer als geslaagd (wanneer de update handmatig was uitgevoerd)" + +#: ../../Zotlabs/Module/Admin/Dbsync.php:62 +msgid "Attempt to execute this update step automatically" +msgstr "Poging om deze stap van de update automatisch uit te voeren." + +#: ../../Zotlabs/Module/Admin/Site.php:133 +msgid "Site settings updated." +msgstr "Hub-instellingen bijgewerkt." + +#: ../../Zotlabs/Module/Admin/Site.php:159 ../../include/text.php:2918 +msgid "Default" +msgstr "Standaard" + +#: ../../Zotlabs/Module/Admin/Site.php:169 +#: ../../Zotlabs/Module/Settings/Display.php:143 +msgid "mobile" +msgstr "mobiel" + +#: ../../Zotlabs/Module/Admin/Site.php:171 +msgid "experimental" +msgstr "experimenteel" + +#: ../../Zotlabs/Module/Admin/Site.php:173 +msgid "unsupported" +msgstr "Niet ondersteund" + +#: ../../Zotlabs/Module/Admin/Site.php:219 +msgid "Yes - with approval" +msgstr "Ja - met goedkeuring" + +#: ../../Zotlabs/Module/Admin/Site.php:225 +msgid "My site is not a public server" +msgstr "Mijn $Projectname-hub is niet openbaar" + +#: ../../Zotlabs/Module/Admin/Site.php:226 +msgid "My site has paid access only" +msgstr "Mijn $Projectname-hub kent alleen betaalde toegang" + +#: ../../Zotlabs/Module/Admin/Site.php:227 +msgid "My site has free access only" +msgstr "Mijn $Projectname-hub kent alleen gratis toegang" + +#: ../../Zotlabs/Module/Admin/Site.php:228 +msgid "My site offers free accounts with optional paid upgrades" +msgstr "Mijn $Projectname-hub biedt gratis accounts aan met betaalde uitbreidingen als optie" + +#: ../../Zotlabs/Module/Admin/Site.php:239 ../../Zotlabs/Module/Setup.php:328 +msgid "Basic/Minimal Social Networking" +msgstr "Basic/eenvoudig sociaal netwerk" + +#: ../../Zotlabs/Module/Admin/Site.php:240 ../../Zotlabs/Module/Setup.php:329 +msgid "Standard Configuration (default)" +msgstr "Standaard (standaard)" + +#: ../../Zotlabs/Module/Admin/Site.php:241 ../../Zotlabs/Module/Setup.php:330 +msgid "Professional" +msgstr "Professioneel " + +#: ../../Zotlabs/Module/Admin/Site.php:245 ../../Zotlabs/Lib/Techlevels.php:10 +msgid "Beginner/Basic" +msgstr "Beginner/basic" + +#: ../../Zotlabs/Module/Admin/Site.php:246 ../../Zotlabs/Lib/Techlevels.php:11 +msgid "Novice - not skilled but willing to learn" +msgstr "Onervaren - niet bekwaam, maar wil graag leren" + +#: ../../Zotlabs/Module/Admin/Site.php:247 ../../Zotlabs/Lib/Techlevels.php:12 +msgid "Intermediate - somewhat comfortable" +msgstr "Ervaren - voelt zich enigszins comfortabel" + +#: ../../Zotlabs/Module/Admin/Site.php:248 ../../Zotlabs/Lib/Techlevels.php:13 +msgid "Advanced - very comfortable" +msgstr "Gevorderd - voelt zich comfortabel" + +#: ../../Zotlabs/Module/Admin/Site.php:249 ../../Zotlabs/Lib/Techlevels.php:14 +msgid "Expert - I can write computer code" +msgstr "Expert - kan programmeren" + +#: ../../Zotlabs/Module/Admin/Site.php:250 ../../Zotlabs/Lib/Techlevels.php:15 +msgid "Wizard - I probably know more than you do" +msgstr "Tovenaar - ik weet waarschijnlijk meer dan jij" + +#: ../../Zotlabs/Module/Admin/Site.php:259 ../../include/widgets.php:1561 +msgid "Site" +msgstr "Hub-instellingen" + +#: ../../Zotlabs/Module/Admin/Site.php:262 +msgid "File upload" +msgstr "Bestand uploaden" + +#: ../../Zotlabs/Module/Admin/Site.php:263 +msgid "Policies" +msgstr "Beleid" + +#: ../../Zotlabs/Module/Admin/Site.php:264 +#: ../../include/contact_widgets.php:16 +msgid "Advanced" +msgstr "Geavanceerd" + +#: ../../Zotlabs/Module/Admin/Site.php:268 +#: ../../extend/addon/addon/statusnet/statusnet.php:890 +msgid "Site name" +msgstr "Hubnaam" + +#: ../../Zotlabs/Module/Admin/Site.php:270 ../../Zotlabs/Module/Setup.php:351 +msgid "Server Configuration/Role" +msgstr "Configuratietype hub" + +#: ../../Zotlabs/Module/Admin/Site.php:272 +msgid "Site default technical skill level" +msgstr "Standaard technisch niveau voor deze hub" + +#: ../../Zotlabs/Module/Admin/Site.php:272 +msgid "Used to provide a member experience matched to technical comfort level" +msgstr "Wordt gebruikt om leden een gebruikerservaring te bieden die met hun technisch niveau overeenkomt" + +#: ../../Zotlabs/Module/Admin/Site.php:274 +msgid "Lock the technical skill level setting" +msgstr "Vergrendel de functie 'Standaard technisch niveau voor deze hub'" + +#: ../../Zotlabs/Module/Admin/Site.php:274 +msgid "Members can set their own technical comfort level by default" +msgstr "Leden kunnen hun eigen technisch niveau standaard instellen" + +#: ../../Zotlabs/Module/Admin/Site.php:276 +msgid "Banner/Logo" +msgstr "Banner/logo" + +#: ../../Zotlabs/Module/Admin/Site.php:277 +msgid "Administrator Information" +msgstr "Informatie over de beheerder" + +#: ../../Zotlabs/Module/Admin/Site.php:277 msgid "" -"Some permissions may be inherited from your channel's privacy settings, 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 "Sommige permissies worden mogelijk overgeërfd van de privacy-instellingen 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. " +"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." -#: ../../Zotlabs/Module/Connedit.php:788 -msgid "Last update:" -msgstr "Laatste wijziging:" +#: ../../Zotlabs/Module/Admin/Site.php:278 +#: ../../Zotlabs/Module/Siteinfo.php:23 +msgid "Site Information" +msgstr "Hub-informatie" + +#: ../../Zotlabs/Module/Admin/Site.php:278 +msgid "" +"Publicly visible description of this site. Displayed on siteinfo page. " +"BBCode can be used here" +msgstr "Openbaar zichtbare beschrijving van deze hub. Getoond op pagina met hub-informatie. Er kan hier bbcode gebruikt worden." + +#: ../../Zotlabs/Module/Admin/Site.php:279 +msgid "System language" +msgstr "Standaardtaal" + +#: ../../Zotlabs/Module/Admin/Site.php:280 +msgid "System theme" +msgstr "Standaardthema" + +#: ../../Zotlabs/Module/Admin/Site.php:280 +msgid "" +"Default system theme - may be over-ridden by user profiles - change theme settings" +msgstr "Standaardthema voor $Projectname-hub (kan door lid veranderd worden) - verander thema-instellingen" + +#: ../../Zotlabs/Module/Admin/Site.php:281 +msgid "Mobile system theme" +msgstr "Standaardthema voor mobiel" + +#: ../../Zotlabs/Module/Admin/Site.php:281 +msgid "Theme for mobile devices" +msgstr "Thema voor mobiele apparaten" + +#: ../../Zotlabs/Module/Admin/Site.php:283 +msgid "Allow Feeds as Connections" +msgstr "Sta feeds toe als connecties" + +#: ../../Zotlabs/Module/Admin/Site.php:283 +msgid "(Heavy system resource usage)" +msgstr "(sterk negatieve invloed op systeembronnen hub)" + +#: ../../Zotlabs/Module/Admin/Site.php:284 +msgid "Maximum image size" +msgstr "Maximale grootte van afbeeldingen" + +#: ../../Zotlabs/Module/Admin/Site.php:284 +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." + +#: ../../Zotlabs/Module/Admin/Site.php:285 +msgid "Does this site allow new member registration?" +msgstr "Staat deze hub nieuwe accounts toe?" + +#: ../../Zotlabs/Module/Admin/Site.php:286 +msgid "Invitation only" +msgstr "Alleen op uitnodiging" + +#: ../../Zotlabs/Module/Admin/Site.php:286 +msgid "" +"Only allow new member registrations with an invitation code. Above register " +"policy must be set to Yes." +msgstr "Sta alleen nieuwe registraties toe van mensen die een uitnodigingscode hebben. Bovenstaand accountbeleid moet op Ja staan." + +#: ../../Zotlabs/Module/Admin/Site.php:287 +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." + +#: ../../Zotlabs/Module/Admin/Site.php:288 +msgid "Register text" +msgstr "Tekst tijdens registratie" + +#: ../../Zotlabs/Module/Admin/Site.php:288 +msgid "Will be displayed prominently on the registration page." +msgstr "Tekst dat op de pagina voor het registreren van nieuwe accounts wordt getoond." + +#: ../../Zotlabs/Module/Admin/Site.php:289 +msgid "Site homepage to show visitors (default: login box)" +msgstr "Homepagina van deze hub die aan bezoekers wordt getoond (standaard: inlogformulier)" + +#: ../../Zotlabs/Module/Admin/Site.php:289 +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." + +#: ../../Zotlabs/Module/Admin/Site.php:290 +msgid "Preserve site homepage URL" +msgstr "Behoudt de URL van de hub (/)" + +#: ../../Zotlabs/Module/Admin/Site.php:290 +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)" + +#: ../../Zotlabs/Module/Admin/Site.php:291 +msgid "Accounts abandoned after x days" +msgstr "Accounts als verlaten beschouwen na zoveel aantal dagen:" + +#: ../../Zotlabs/Module/Admin/Site.php:291 +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." + +#: ../../Zotlabs/Module/Admin/Site.php:292 +msgid "Allowed friend domains" +msgstr "Toegestane domeinen" + +#: ../../Zotlabs/Module/Admin/Site.php:292 +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." + +#: ../../Zotlabs/Module/Admin/Site.php:293 +msgid "Verify Email Addresses" +msgstr "E-mailadres verifieren" + +#: ../../Zotlabs/Module/Admin/Site.php:293 +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)." + +#: ../../Zotlabs/Module/Admin/Site.php:294 +msgid "Force publish" +msgstr "Dwing kanaalvermelding af" + +#: ../../Zotlabs/Module/Admin/Site.php:294 +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." + +#: ../../Zotlabs/Module/Admin/Site.php:295 +msgid "Import Public Streams" +msgstr "Openbare streams importeren" + +#: ../../Zotlabs/Module/Admin/Site.php:295 +msgid "" +"Import and allow access to public content pulled from other sites. Warning: " +"this content is unmoderated." +msgstr "Toegang verlenen tot openbare berichten die vanuit andere hubs worden geïmporteerd. Waarschuwing: de inhoud van deze berichten wordt niet gemodereerd." + +#: ../../Zotlabs/Module/Admin/Site.php:296 +msgid "Login on Homepage" +msgstr "Inlogformulier op de homepagina" + +#: ../../Zotlabs/Module/Admin/Site.php:296 +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. " + +#: ../../Zotlabs/Module/Admin/Site.php:297 +msgid "Enable context help" +msgstr "Schakel contextuele hulp in" + +#: ../../Zotlabs/Module/Admin/Site.php:297 +msgid "" +"Display contextual help for the current page when the help button is " +"pressed." +msgstr "Toon hulp en documentatie voor de op dat moment getoonde pagina, wanneer op de hulp-knop wordt geklikt." + +#: ../../Zotlabs/Module/Admin/Site.php:299 +msgid "Directory Server URL" +msgstr "Server-URL voor de kanalengids" + +#: ../../Zotlabs/Module/Admin/Site.php:299 +msgid "Default directory server" +msgstr "Standaardserver voor de kanalengids" + +#: ../../Zotlabs/Module/Admin/Site.php:301 +msgid "Proxy user" +msgstr "Gebruikersnaam proxy" + +#: ../../Zotlabs/Module/Admin/Site.php:302 +msgid "Proxy URL" +msgstr "Proxy-URL" + +#: ../../Zotlabs/Module/Admin/Site.php:303 +msgid "Network timeout" +msgstr "Netwerktimeout" + +#: ../../Zotlabs/Module/Admin/Site.php:303 +msgid "Value is in seconds. Set to 0 for unlimited (not recommended)." +msgstr "Waarde is in seconden. Zet op 0 voor onbeperkt (niet aanbevolen)" + +#: ../../Zotlabs/Module/Admin/Site.php:304 +msgid "Delivery interval" +msgstr "Afleveringsinterval" + +#: ../../Zotlabs/Module/Admin/Site.php:304 +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." + +#: ../../Zotlabs/Module/Admin/Site.php:305 +msgid "Deliveries per process" +msgstr "Leveringen per serverproces" + +#: ../../Zotlabs/Module/Admin/Site.php:305 +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" + +#: ../../Zotlabs/Module/Admin/Site.php:306 +msgid "Poll interval" +msgstr "Poll-interval" + +#: ../../Zotlabs/Module/Admin/Site.php:306 +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." + +#: ../../Zotlabs/Module/Admin/Site.php:307 +msgid "Maximum Load Average" +msgstr "Maximaal gemiddelde systeembelasting" + +#: ../../Zotlabs/Module/Admin/Site.php:307 +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." + +#: ../../Zotlabs/Module/Admin/Site.php:308 +msgid "Expiration period in days for imported (grid/network) content" +msgstr "Aantal dagen waarna geïmporteerde inhoud uit iemands grid/netwerk-pagina wordt verwijderd." + +#: ../../Zotlabs/Module/Admin/Site.php:308 +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." + +#: ../../Zotlabs/Module/Pubsites.php:24 ../../include/widgets.php:1385 +msgid "Public Hubs" +msgstr "Openbare hubs" + +#: ../../Zotlabs/Module/Pubsites.php:27 +msgid "" +"The listed hubs allow public registration for the $Projectname network. All " +"hubs in the network are interlinked so membership on any of them conveys " +"membership in the network as a whole. Some hubs may require subscription or " +"provide tiered service plans. The hub itself may provide " +"additional details." +msgstr "Op de hier weergegeven hubs kan iedereen zich voor het $Projectname-netwerk aanmelden. Alle hubs in het 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 een financiële tegemoetkoming voor bepaalde uitbreidingen. Mogelijk wordt hierover op de hub zelf meer informatie gegeven." + +#: ../../Zotlabs/Module/Pubsites.php:33 +msgid "Hub URL" +msgstr "Hub-URL" + +#: ../../Zotlabs/Module/Pubsites.php:33 +msgid "Access Type" +msgstr "Toegangs-
         type" + +#: ../../Zotlabs/Module/Pubsites.php:33 +msgid "Registration Policy" +msgstr "Registratie-
         beleid" + +#: ../../Zotlabs/Module/Pubsites.php:33 +msgid "Stats" +msgstr "Stats" + +#: ../../Zotlabs/Module/Pubsites.php:33 +msgid "Software" +msgstr "Software" + +#: ../../Zotlabs/Module/Pubsites.php:35 ../../Zotlabs/Module/Ratings.php:97 +#: ../../include/conversation.php:940 +msgid "Ratings" +msgstr "Beoordelingen" + +#: ../../Zotlabs/Module/Pubsites.php:48 +msgid "Rate" +msgstr "Beoordeel" + +#: ../../Zotlabs/Module/Pubsites.php:59 ../../Zotlabs/Module/Blocks.php:166 +#: ../../Zotlabs/Module/Layouts.php:197 ../../Zotlabs/Module/Webpages.php:246 +#: ../../Zotlabs/Module/Wiki.php:146 ../../Zotlabs/Module/Events.php:685 +#: ../../include/page_widgets.php:42 +msgid "View" +msgstr "Weergeven" -#: ../../Zotlabs/Module/Editblock.php:79 ../../Zotlabs/Module/Editblock.php:95 #: ../../Zotlabs/Module/Editlayout.php:79 #: ../../Zotlabs/Module/Editwebpage.php:80 +#: ../../Zotlabs/Module/Editblock.php:79 ../../Zotlabs/Module/Editblock.php:95 #: ../../Zotlabs/Module/Editpost.php:24 msgid "Item not found" msgstr "Item niet gevonden" -#: ../../Zotlabs/Module/Editblock.php:108 ../../Zotlabs/Module/Blocks.php:97 -#: ../../Zotlabs/Module/Blocks.php:155 -msgid "Block Name" -msgstr "Bloknaam" - -#: ../../Zotlabs/Module/Editblock.php:124 ../../include/conversation.php:1260 -msgid "Title (optional)" -msgstr "Titel (optioneel)" - -#: ../../Zotlabs/Module/Editblock.php:133 -msgid "Edit Block" -msgstr "Blok bewerken" - #: ../../Zotlabs/Module/Editlayout.php:127 #: ../../Zotlabs/Module/Layouts.php:128 ../../Zotlabs/Module/Layouts.php:188 msgid "Layout Name" @@ -2492,10 +2889,67 @@ msgstr "Lay-out bewerken" msgid "Page link" msgstr "Paginalink" +#: ../../Zotlabs/Module/Editwebpage.php:146 ../../Zotlabs/Module/Mail.php:286 +#: ../../Zotlabs/Module/Mail.php:411 ../../Zotlabs/Module/Editblock.php:111 +#: ../../Zotlabs/Module/Chat.php:207 ../../include/conversation.php:1147 +msgid "Insert web link" +msgstr "Weblink invoegen" + #: ../../Zotlabs/Module/Editwebpage.php:169 msgid "Edit Webpage" msgstr "Webpagina bewerken" +#: ../../Zotlabs/Module/Fbrowser.php:29 ../../Zotlabs/Lib/Apps.php:224 +#: ../../include/nav.php:95 ../../include/conversation.php:1674 +msgid "Photos" +msgstr "Foto's" + +#: ../../Zotlabs/Module/Channel.php:32 ../../Zotlabs/Module/Wiki.php:20 +#: ../../Zotlabs/Module/Chat.php:25 +#: ../../extend/addon/addon/chess/chess.php:400 +msgid "You must be logged in to see this page." +msgstr "Je moet zijn ingelogd om deze pagina te kunnen bekijken." + +#: ../../Zotlabs/Module/Channel.php:44 +msgid "Posts and comments" +msgstr "Berichten en reacties" + +#: ../../Zotlabs/Module/Channel.php:45 +msgid "Only posts" +msgstr "Alleen berichten" + +#: ../../Zotlabs/Module/Channel.php:104 +msgid "Insufficient permissions. Request redirected to profile page." +msgstr "Onvoldoende permissies. Doorgestuurd naar profielpagina." + +#: ../../Zotlabs/Module/Network.php:96 +msgid "No such group" +msgstr "Collectie niet gevonden" + +#: ../../Zotlabs/Module/Network.php:136 +msgid "No such channel" +msgstr "Niet zo'n kanaal" + +#: ../../Zotlabs/Module/Network.php:141 +msgid "forum" +msgstr "forum" + +#: ../../Zotlabs/Module/Network.php:153 +msgid "Search Results For:" +msgstr "Zoekresultaten voor:" + +#: ../../Zotlabs/Module/Network.php:221 +msgid "Privacy group is empty" +msgstr "Privacygroep is leeg" + +#: ../../Zotlabs/Module/Network.php:230 +msgid "Privacy group: " +msgstr "Privacygroep: " + +#: ../../Zotlabs/Module/Network.php:256 +msgid "Invalid connection." +msgstr "Ongeldige connectie." + #: ../../Zotlabs/Module/Menu.php:49 msgid "Unable to update menu." msgstr "Niet in staat om menu aan te passen" @@ -2532,14 +2986,10 @@ msgstr "Menu kan gebruikt worden om bladwijzers in op te slaan" msgid "Submit and proceed" msgstr "Opslaan en doorgaan" -#: ../../Zotlabs/Module/Menu.php:107 ../../include/text.php:2309 +#: ../../Zotlabs/Module/Menu.php:107 ../../include/text.php:2271 msgid "Menus" msgstr "Menu's" -#: ../../Zotlabs/Module/Menu.php:113 ../../Zotlabs/Module/Locs.php:120 -msgid "Drop" -msgstr "Verwijderen" - #: ../../Zotlabs/Module/Menu.php:114 ../../Zotlabs/Module/Blocks.php:157 #: ../../Zotlabs/Module/Layouts.php:190 ../../Zotlabs/Module/Webpages.php:251 #: ../../include/page_widgets.php:47 @@ -2572,6 +3022,10 @@ msgstr "Dit menu bewerken" msgid "Menu could not be deleted." msgstr "Menu kon niet verwijderd worden." +#: ../../Zotlabs/Module/Menu.php:144 ../../Zotlabs/Module/Mitem.php:28 +msgid "Menu not found." +msgstr "Menu niet gevonden." + #: ../../Zotlabs/Module/Menu.php:149 msgid "Edit Menu" msgstr "Menu bewerken" @@ -2613,137 +3067,99 @@ msgstr "App geïnstalleerd" msgid "Malformed app." msgstr "Misvormde app." -#: ../../Zotlabs/Module/Appman.php:104 +#: ../../Zotlabs/Module/Appman.php:105 msgid "Embed code" msgstr "Insluitcode" -#: ../../Zotlabs/Module/Appman.php:110 ../../include/widgets.php:107 +#: ../../Zotlabs/Module/Appman.php:111 ../../include/widgets.php:107 msgid "Edit App" msgstr "App bewerken" -#: ../../Zotlabs/Module/Appman.php:110 +#: ../../Zotlabs/Module/Appman.php:111 msgid "Create App" msgstr "App maken" -#: ../../Zotlabs/Module/Appman.php:115 +#: ../../Zotlabs/Module/Appman.php:116 msgid "Name of app" msgstr "Naam van app" -#: ../../Zotlabs/Module/Appman.php:115 ../../Zotlabs/Module/Appman.php:116 -#: ../../Zotlabs/Module/Profiles.php:709 ../../Zotlabs/Module/Profiles.php:713 -#: ../../Zotlabs/Module/Events.php:452 ../../Zotlabs/Module/Events.php:457 -#: ../../include/datetime.php:257 +#: ../../Zotlabs/Module/Appman.php:116 ../../Zotlabs/Module/Appman.php:117 +#: ../../Zotlabs/Module/Profiles.php:703 ../../Zotlabs/Module/Profiles.php:707 +#: ../../Zotlabs/Module/Events.php:453 ../../Zotlabs/Module/Events.php:458 +#: ../../include/datetime.php:259 msgid "Required" msgstr "Vereist" -#: ../../Zotlabs/Module/Appman.php:116 +#: ../../Zotlabs/Module/Appman.php:117 msgid "Location (URL) of app" msgstr "Locatie (URL) van app" -#: ../../Zotlabs/Module/Appman.php:117 ../../Zotlabs/Module/Rbmark.php:101 -#: ../../Zotlabs/Module/Events.php:465 +#: ../../Zotlabs/Module/Appman.php:118 ../../Zotlabs/Module/Rbmark.php:101 +#: ../../Zotlabs/Module/Events.php:466 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:838 +#: ../../extend/addon/addon/rendezvous/rendezvous.php:165 msgid "Description" msgstr "Omschrijving" -#: ../../Zotlabs/Module/Appman.php:118 +#: ../../Zotlabs/Module/Appman.php:119 msgid "Photo icon URL" msgstr "URL van pictogram" -#: ../../Zotlabs/Module/Appman.php:118 +#: ../../Zotlabs/Module/Appman.php:119 msgid "80 x 80 pixels - optional" msgstr "80 x 80 pixels (optioneel)" -#: ../../Zotlabs/Module/Appman.php:119 +#: ../../Zotlabs/Module/Appman.php:120 msgid "Categories (optional, comma separated list)" msgstr "Categorieën (optioneel, door komma's gescheiden lijst)" -#: ../../Zotlabs/Module/Appman.php:120 +#: ../../Zotlabs/Module/Appman.php:121 msgid "Version ID" msgstr "Versie-ID" -#: ../../Zotlabs/Module/Appman.php:121 +#: ../../Zotlabs/Module/Appman.php:122 msgid "Price of app" msgstr "Prijs van de app" -#: ../../Zotlabs/Module/Appman.php:122 +#: ../../Zotlabs/Module/Appman.php:123 msgid "Location (URL) to purchase app" msgstr "Locatie (URL) om de app aan te schaffen" -#: ../../Zotlabs/Module/Pubsites.php:24 ../../include/widgets.php:1392 -msgid "Public Hubs" -msgstr "Openbare hubs" +#: ../../Zotlabs/Module/Rpost.php:138 ../../Zotlabs/Module/Editpost.php:107 +msgid "Edit post" +msgstr "Bericht bewerken" -#: ../../Zotlabs/Module/Pubsites.php:27 -msgid "" -"The listed hubs allow public registration for the $Projectname network. All " -"hubs in the network are interlinked so membership on any of them conveys " -"membership in the network as a whole. Some hubs may require subscription or " -"provide tiered service plans. The hub itself may provide " -"additional details." -msgstr "Op de hier weergegeven hubs kan iedereen zich voor het $Projectname-netwerk aanmelden. Alle hubs in het 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 een financiële tegemoetkoming voor bepaalde uitbreidingen. Mogelijk wordt hierover op de hub zelf meer informatie gegeven." +#: ../../Zotlabs/Module/Help.php:23 +msgid "Documentation Search" +msgstr "Zoek documentatie" -#: ../../Zotlabs/Module/Pubsites.php:33 -msgid "Hub URL" -msgstr "Hub-URL" +#: ../../Zotlabs/Module/Help.php:80 ../../include/conversation.php:1665 +msgid "About" +msgstr "Over" -#: ../../Zotlabs/Module/Pubsites.php:33 -msgid "Access Type" -msgstr "Toegangs-
         type" +#: ../../Zotlabs/Module/Help.php:81 ../../Zotlabs/Module/Group.php:197 +msgid "Members" +msgstr "Kanalen" -#: ../../Zotlabs/Module/Pubsites.php:33 -msgid "Registration Policy" -msgstr "Registratie-
         beleid" +#: ../../Zotlabs/Module/Help.php:82 +msgid "Administrators" +msgstr "Beheerders" -#: ../../Zotlabs/Module/Pubsites.php:33 -msgid "Stats" -msgstr "Stats" +#: ../../Zotlabs/Module/Help.php:83 +msgid "Developers" +msgstr "Ontwikkelaars" -#: ../../Zotlabs/Module/Pubsites.php:33 -msgid "Software" -msgstr "Software" +#: ../../Zotlabs/Module/Help.php:84 +msgid "Tutorials" +msgstr "Zelfstudie" -#: ../../Zotlabs/Module/Pubsites.php:35 ../../Zotlabs/Module/Ratings.php:97 -#: ../../include/conversation.php:958 -msgid "Ratings" -msgstr "Beoordelingen" +#: ../../Zotlabs/Module/Help.php:93 +msgid "$Projectname Documentation" +msgstr "$Projectname-documentatie" -#: ../../Zotlabs/Module/Pubsites.php:48 -msgid "Rate" -msgstr "Beoordeel" - -#: ../../Zotlabs/Module/Pubsites.php:51 ../../Zotlabs/Module/Locs.php:117 -#: ../../Zotlabs/Module/Profiles.php:477 ../../Zotlabs/Module/Profiles.php:698 -#: ../../Zotlabs/Module/Events.php:467 ../../include/js_strings.php:25 -msgid "Location" -msgstr "Locatie" - -#: ../../Zotlabs/Module/Pubsites.php:59 ../../Zotlabs/Module/Blocks.php:166 -#: ../../Zotlabs/Module/Layouts.php:197 ../../Zotlabs/Module/Webpages.php:246 -#: ../../Zotlabs/Module/Events.php:680 ../../include/page_widgets.php:42 -msgid "View" -msgstr "Weergeven" - -#: ../../Zotlabs/Module/Attach.php:13 -msgid "Item not available." -msgstr "Item is niet aanwezig." - -#: ../../Zotlabs/Module/Api.php:60 ../../Zotlabs/Module/Api.php:81 -msgid "Authorize application connection" -msgstr "Geef toestemming voor applicatiekoppeling" - -#: ../../Zotlabs/Module/Api.php:61 -msgid "Return to your app and insert this Security Code:" -msgstr "Ga terug naar je app en voeg deze beveiligingscode in:" - -#: ../../Zotlabs/Module/Api.php:71 -msgid "Please login to continue." -msgstr "Inloggen om verder te kunnen gaan." - -#: ../../Zotlabs/Module/Api.php:83 -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?" +#: ../../Zotlabs/Module/Help.php:94 +msgid "Contents" +msgstr "Inhoud" #: ../../Zotlabs/Module/Ffsapi.php:12 msgid "Share content from Firefox to $Projectname" @@ -2753,32 +3169,12 @@ msgstr "Deel webpagina's vanuit Firefox met " msgid "Activate the Firefox $Projectname provider" msgstr "Activeer de $Projectname-service in Firefox" -#: ../../Zotlabs/Module/Pdledit.php:21 -msgid "Layout updated." -msgstr "Lay-out bijgewerkt." - -#: ../../Zotlabs/Module/Pdledit.php:34 ../../Zotlabs/Module/Chat.php:218 -msgid "Feature disabled." -msgstr "Functie uitgeschakeld." - -#: ../../Zotlabs/Module/Pdledit.php:42 ../../Zotlabs/Module/Pdledit.php:69 -msgid "Edit System Page Description" -msgstr "Systeempagina's bewerken" - -#: ../../Zotlabs/Module/Pdledit.php:64 -msgid "Layout not found." -msgstr "Lay-out niet gevonden." - -#: ../../Zotlabs/Module/Pdledit.php:70 -msgid "Module Name:" -msgstr "Modulenaam:" - -#: ../../Zotlabs/Module/Pdledit.php:71 -msgid "Layout Help" -msgstr "Lay-out-hulp" +#: ../../Zotlabs/Module/Apps.php:46 ../../include/nav.php:166 +#: ../../include/widgets.php:102 +msgid "Apps" +msgstr "Apps" #: ../../Zotlabs/Module/Home.php:74 ../../Zotlabs/Module/Home.php:82 -#: ../../Zotlabs/Module/Siteinfo.php:48 msgid "$Projectname" msgstr "$Projectname" @@ -2787,14 +3183,6 @@ msgstr "$Projectname" msgid "Welcome to %s" msgstr "Welkom op %s" -#: ../../Zotlabs/Module/Lockview.php:75 -msgid "Remote privacy information not available." -msgstr "Privacy-informatie op afstand niet beschikbaar." - -#: ../../Zotlabs/Module/Lockview.php:96 -msgid "Visible to:" -msgstr "Zichtbaar voor:" - #: ../../Zotlabs/Module/Filestorage.php:87 msgid "Permission Denied." msgstr "Toegang geweigerd" @@ -2810,7 +3198,7 @@ msgstr "Bestandsrechten bewerken" #: ../../Zotlabs/Module/Filestorage.php:152 #: ../../Zotlabs/Module/Photos.php:658 ../../Zotlabs/Module/Photos.php:1047 #: ../../Zotlabs/Module/Thing.php:313 ../../Zotlabs/Module/Thing.php:363 -#: ../../Zotlabs/Module/Chat.php:234 ../../include/acl_selectors.php:179 +#: ../../Zotlabs/Module/Chat.php:234 ../../include/acl_selectors.php:208 msgid "Permissions" msgstr "Permissies" @@ -2846,98 +3234,416 @@ msgstr "Toon URL van dit bestand" msgid "Notify your contacts about this file" msgstr "Jouw connecties over dit bestand berichten" -#: ../../Zotlabs/Module/Connect.php:61 ../../Zotlabs/Module/Connect.php:109 -msgid "Continue" -msgstr "Ga verder" +#: ../../Zotlabs/Module/Directory.php:64 ../../Zotlabs/Module/Display.php:17 +#: ../../Zotlabs/Module/Ratings.php:83 ../../Zotlabs/Module/Photos.php:509 +#: ../../Zotlabs/Module/Search.php:17 +#: ../../Zotlabs/Module/Viewconnections.php:23 +#: ../../extend/addon/addon/friendica/dfrn_request.php:794 +msgid "Public access denied." +msgstr "Openbare toegang geweigerd." -#: ../../Zotlabs/Module/Connect.php:90 -msgid "Premium Channel Setup" -msgstr "Instellen premiumkanaal " - -#: ../../Zotlabs/Module/Connect.php:92 -msgid "Enable premium channel connection restrictions" -msgstr "Restricties voor connecties van premiumkanaal toestaan" - -#: ../../Zotlabs/Module/Connect.php:93 -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." - -#: ../../Zotlabs/Module/Connect.php:95 ../../Zotlabs/Module/Connect.php:115 -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:" - -#: ../../Zotlabs/Module/Connect.php:96 -msgid "" -"Potential connections will then see the following text before proceeding:" -msgstr "Mogelijke connecties zullen dan de volgende tekst zien voordat ze verder kunnen:" - -#: ../../Zotlabs/Module/Connect.php:97 ../../Zotlabs/Module/Connect.php:118 -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." - -#: ../../Zotlabs/Module/Connect.php:106 -msgid "(No specific instructions have been provided by the channel owner.)" -msgstr "(Er zijn geen speciale voorwaarden en aanwijzingen door de kanaal-eigenaar verstrekt) " - -#: ../../Zotlabs/Module/Connect.php:114 -msgid "Restricted or Premium Channel" -msgstr "Beperkt of premiumkanaal" - -#: ../../Zotlabs/Module/Manage.php:136 -#: ../../Zotlabs/Module/New_channel.php:121 +#: ../../Zotlabs/Module/Directory.php:245 #, 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." +msgid "%d rating" +msgid_plural "%d ratings" +msgstr[0] "%d beoordeling" +msgstr[1] "%d beoordelingen" -#: ../../Zotlabs/Module/Manage.php:143 -msgid "Create a new channel" -msgstr "Nieuw kanaal aanmaken" +#: ../../Zotlabs/Module/Directory.php:256 +msgid "Gender: " +msgstr "Geslacht:" -#: ../../Zotlabs/Module/Manage.php:143 ../../Zotlabs/Module/Profiles.php:778 -#: ../../Zotlabs/Module/Chat.php:255 -msgid "Create New" -msgstr "Nieuwe aanmaken" +#: ../../Zotlabs/Module/Directory.php:258 +msgid "Status: " +msgstr "Status: " -#: ../../Zotlabs/Module/Manage.php:164 ../../Zotlabs/Lib/Apps.php:214 -#: ../../include/nav.php:211 -msgid "Channel Manager" -msgstr "Kanaalbeheer" +#: ../../Zotlabs/Module/Directory.php:260 +msgid "Homepage: " +msgstr "Homepage: " -#: ../../Zotlabs/Module/Manage.php:165 -msgid "Current Channel" -msgstr "Huidig kanaal" +#: ../../Zotlabs/Module/Directory.php:309 ../../include/channel.php:1215 +msgid "Age:" +msgstr "Leeftijd:" -#: ../../Zotlabs/Module/Manage.php:167 -msgid "Switch to one of your channels by selecting it." -msgstr "Activeer een van jouw andere kanalen door er op te klikken." +#: ../../Zotlabs/Module/Directory.php:314 ../../include/channel.php:1051 +#: ../../include/bb2diaspora.php:521 ../../include/event.php:52 +#: ../../include/event.php:84 +msgid "Location:" +msgstr "Plaats:" -#: ../../Zotlabs/Module/Manage.php:168 -msgid "Default Channel" -msgstr "Standaardkanaal" +#: ../../Zotlabs/Module/Directory.php:320 +msgid "Description:" +msgstr "Omschrijving:" -#: ../../Zotlabs/Module/Manage.php:169 -msgid "Make Default" -msgstr "Als standaard instellen" +#: ../../Zotlabs/Module/Directory.php:325 ../../include/channel.php:1231 +msgid "Hometown:" +msgstr "Oorspronkelijk uit:" -#: ../../Zotlabs/Module/Manage.php:172 +#: ../../Zotlabs/Module/Directory.php:327 ../../include/channel.php:1239 +msgid "About:" +msgstr "Over:" + +#: ../../Zotlabs/Module/Directory.php:329 +msgid "Public Forum:" +msgstr "Openbaar forum:" + +#: ../../Zotlabs/Module/Directory.php:332 +msgid "Keywords: " +msgstr "Trefwoorden: " + +#: ../../Zotlabs/Module/Directory.php:335 +msgid "Don't suggest" +msgstr "Niet voorstellen" + +#: ../../Zotlabs/Module/Directory.php:337 +msgid "Common connections:" +msgstr "Gemeenschappelijke connecties:" + +#: ../../Zotlabs/Module/Directory.php:386 +msgid "Global Directory" +msgstr "Volledige kanalengids" + +#: ../../Zotlabs/Module/Directory.php:386 +msgid "Local Directory" +msgstr "Lokale kanalengids" + +#: ../../Zotlabs/Module/Directory.php:392 +msgid "Finding:" +msgstr "Gezocht naar:" + +#: ../../Zotlabs/Module/Directory.php:395 ../../Zotlabs/Module/Suggest.php:64 +#: ../../include/contact_widgets.php:24 +msgid "Channel Suggestions" +msgstr "Voorgestelde kanalen" + +#: ../../Zotlabs/Module/Directory.php:397 +msgid "next page" +msgstr "volgende pagina" + +#: ../../Zotlabs/Module/Directory.php:397 +msgid "previous page" +msgstr "vorige pagina" + +#: ../../Zotlabs/Module/Directory.php:398 +msgid "Sort options" +msgstr "Sorteeropties" + +#: ../../Zotlabs/Module/Directory.php:399 +msgid "Alphabetic" +msgstr "Alfabetisch" + +#: ../../Zotlabs/Module/Directory.php:400 +msgid "Reverse Alphabetic" +msgstr "Omgekeerd alfabetisch" + +#: ../../Zotlabs/Module/Directory.php:401 +msgid "Newest to Oldest" +msgstr "Nieuw naar oud" + +#: ../../Zotlabs/Module/Directory.php:402 +msgid "Oldest to Newest" +msgstr "Oud naar nieuw" + +#: ../../Zotlabs/Module/Directory.php:419 +msgid "No entries (some entries may be hidden)." +msgstr "Niets gevonden (sommige kanalen kunnen verborgen zijn)." + +#: ../../Zotlabs/Module/Item.php:184 +msgid "Unable to locate original post." +msgstr "Niet in staat om de originele locatie van het bericht te vinden. " + +#: ../../Zotlabs/Module/Item.php:447 +msgid "Empty post discarded." +msgstr "Leeg bericht geannuleerd" + +#: ../../Zotlabs/Module/Item.php:489 +msgid "Executable content type not permitted to this channel." +msgstr "Uitvoerbare bestanden zijn niet toegestaan op dit kanaal." + +#: ../../Zotlabs/Module/Item.php:837 +msgid "Duplicate post suppressed." +msgstr "Dubbel bericht tegengehouden." + +#: ../../Zotlabs/Module/Item.php:979 +msgid "System error. Post not saved." +msgstr "Systeemfout. Bericht niet opgeslagen." + +#: ../../Zotlabs/Module/Item.php:1111 +msgid "Unable to obtain post information from database." +msgstr "Niet in staat om informatie over dit bericht uit de database te verkrijgen." + +#: ../../Zotlabs/Module/Item.php:1118 #, php-format -msgid "%d new messages" -msgstr "%d nieuwe berichten" +msgid "You have reached your limit of %1$.0f top level posts." +msgstr "Je hebt jouw limiet van %1$.0f berichten bereikt." -#: ../../Zotlabs/Module/Manage.php:173 +#: ../../Zotlabs/Module/Item.php:1125 #, php-format -msgid "%d new introductions" -msgstr "%d nieuwe connectieverzoeken" +msgid "You have reached your limit of %1$.0f webpages." +msgstr "Je hebt jouw limiet van %1$.0f webpagina's bereikt." -#: ../../Zotlabs/Module/Manage.php:175 -msgid "Delegated Channel" -msgstr "Uitbesteed kanaal" +#: ../../Zotlabs/Module/Chanview.php:134 +msgid "toggle full screen mode" +msgstr "Volledig scherm" + +#: ../../Zotlabs/Module/Follow.php:31 +msgid "Channel added." +msgstr "Kanaal toegevoegd." + +#: ../../Zotlabs/Module/Mail.php:66 +msgid "Unable to lookup recipient." +msgstr "Niet in staat om ontvanger op te zoeken." + +#: ../../Zotlabs/Module/Mail.php:73 +msgid "Unable to communicate with requested channel." +msgstr "Niet in staat om met het aangevraagde kanaal te communiceren." + +#: ../../Zotlabs/Module/Mail.php:80 +msgid "Cannot verify requested channel." +msgstr "Kan opgevraagd kanaal niet verifieren" + +#: ../../Zotlabs/Module/Mail.php:98 +msgid "Selected channel has private message restrictions. Send failed." +msgstr "Gekozen kanaal heeft restricties voor privéberichten. Verzenden mislukt." + +#: ../../Zotlabs/Module/Mail.php:177 +msgid "Messages" +msgstr "Berichten" + +#: ../../Zotlabs/Module/Mail.php:212 +msgid "Message recalled." +msgstr "Bericht ingetrokken." + +#: ../../Zotlabs/Module/Mail.php:225 +msgid "Conversation removed." +msgstr "Conversatie verwijderd" + +#: ../../Zotlabs/Module/Mail.php:239 ../../Zotlabs/Module/Mail.php:348 +#: ../../Zotlabs/Module/Chat.php:205 ../../include/conversation.php:1182 +msgid "Please enter a link URL:" +msgstr "Vul een URL in:" + +#: ../../Zotlabs/Module/Mail.php:240 ../../Zotlabs/Module/Mail.php:349 +msgid "Expires YYYY-MM-DD HH:MM" +msgstr "Verloopt op DD-MM-YYYY om HH:MM" + +#: ../../Zotlabs/Module/Mail.php:268 +msgid "Requested channel is not in this network" +msgstr "Opgevraagd kanaal is niet in dit netwerk beschikbaar" + +#: ../../Zotlabs/Module/Mail.php:276 +msgid "Send Private Message" +msgstr "Privébericht versturen" + +#: ../../Zotlabs/Module/Mail.php:277 ../../Zotlabs/Module/Mail.php:402 +msgid "To:" +msgstr "Aan:" + +#: ../../Zotlabs/Module/Mail.php:280 ../../Zotlabs/Module/Mail.php:404 +msgid "Subject:" +msgstr "Onderwerp:" + +#: ../../Zotlabs/Module/Mail.php:283 ../../Zotlabs/Module/Invite.php:138 +msgid "Your message:" +msgstr "Jouw bericht:" + +#: ../../Zotlabs/Module/Mail.php:285 ../../Zotlabs/Module/Mail.php:410 +#: ../../include/conversation.php:1242 +msgid "Attach file" +msgstr "Bestand toevoegen" + +#: ../../Zotlabs/Module/Mail.php:287 +msgid "Send" +msgstr "Verzenden" + +#: ../../Zotlabs/Module/Mail.php:290 ../../Zotlabs/Module/Mail.php:415 +#: ../../include/conversation.php:1287 +msgid "Set expiration date" +msgstr "Verloopdatum instellen" + +#: ../../Zotlabs/Module/Mail.php:292 ../../Zotlabs/Module/Mail.php:417 +#: ../../Zotlabs/Module/Chat.php:206 ../../Zotlabs/Lib/ThreadItem.php:741 +#: ../../include/conversation.php:1292 +msgid "Encrypt text" +msgstr "Tekst versleutelen" + +#: ../../Zotlabs/Module/Mail.php:374 +msgid "Delete message" +msgstr "Bericht verwijderen" + +#: ../../Zotlabs/Module/Mail.php:375 +msgid "Delivery report" +msgstr "Afleveringsrapport" + +#: ../../Zotlabs/Module/Mail.php:376 +msgid "Recall message" +msgstr "Bericht intrekken" + +#: ../../Zotlabs/Module/Mail.php:378 +msgid "Message has been recalled." +msgstr "Bericht is ingetrokken." + +#: ../../Zotlabs/Module/Mail.php:395 +msgid "Delete Conversation" +msgstr "Verwijder conversatie" + +#: ../../Zotlabs/Module/Mail.php:397 +msgid "" +"No secure communications available. You may be able to " +"respond from the sender's profile page." +msgstr "Geen veilige communicatie beschikbaar. Mogelijk kan je reageren op de kanaalpagina van de afzender." + +#: ../../Zotlabs/Module/Mail.php:401 +msgid "Send Reply" +msgstr "Antwoord versturen" + +#: ../../Zotlabs/Module/Mail.php:406 +#, php-format +msgid "Your message for %s (%s):" +msgstr "Jouw privébericht aan %s (%s):" + +#: ../../Zotlabs/Module/Impel.php:41 ../../include/bbcode.php:203 +msgid "webpage" +msgstr "Webpagina" + +#: ../../Zotlabs/Module/Impel.php:46 ../../include/bbcode.php:209 +msgid "block" +msgstr "blok" + +#: ../../Zotlabs/Module/Impel.php:51 ../../include/bbcode.php:206 +msgid "layout" +msgstr "lay-out" + +#: ../../Zotlabs/Module/Impel.php:58 ../../include/bbcode.php:212 +msgid "menu" +msgstr "menu" + +#: ../../Zotlabs/Module/Impel.php:191 +#, php-format +msgid "%s element installed" +msgstr "%s onderdeel geïnstalleerd" + +#: ../../Zotlabs/Module/Impel.php:194 +#, php-format +msgid "%s element installation failed" +msgstr "Installatie %s-element mislukt" + +#: ../../Zotlabs/Module/Import_items.php:42 ../../Zotlabs/Module/Import.php:71 +msgid "Nothing to import." +msgstr "Niets gevonden om te importeren" + +#: ../../Zotlabs/Module/Import_items.php:66 ../../Zotlabs/Module/Import.php:83 +#: ../../Zotlabs/Module/Import.php:98 +msgid "Unable to download data from old server" +msgstr "Niet in staat om gegevens van de oude hub te downloaden" + +#: ../../Zotlabs/Module/Import_items.php:72 +#: ../../Zotlabs/Module/Import.php:105 +msgid "Imported file is empty." +msgstr "Geïmporteerde bestand is leeg" + +#: ../../Zotlabs/Module/Import_items.php:88 +#: ../../Zotlabs/Module/Import.php:127 +#, php-format +msgid "Warning: Database versions differ by %1$d updates." +msgstr "Waarschuwing: database-versies lopen %1$d updates achter." + +#: ../../Zotlabs/Module/Import_items.php:104 +msgid "Import completed" +msgstr "Importeren voltooid" + +#: ../../Zotlabs/Module/Import_items.php:119 +msgid "Import Items" +msgstr "Importeer items" + +#: ../../Zotlabs/Module/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." + +#: ../../Zotlabs/Module/Import_items.php:121 +#: ../../Zotlabs/Module/Import.php:532 +msgid "File to Upload" +msgstr "Bestand om te uploaden" + +#: ../../Zotlabs/Module/Invite.php:29 +msgid "Total invitation limit exceeded." +msgstr "Limiet voor aantal uitnodigingen overschreden." + +#: ../../Zotlabs/Module/Invite.php:53 +#, php-format +msgid "%s : Not a valid email address." +msgstr "%s : Geen geldig e-mailadres." + +#: ../../Zotlabs/Module/Invite.php:67 +msgid "Please join us on $Projectname" +msgstr "Uitnodiging voor $Projectname" + +#: ../../Zotlabs/Module/Invite.php:77 +msgid "Invitation limit exceeded. Please contact your site administrator." +msgstr "Limiet voor aantal uitnodigingen overschreden. Neem contact op met je hub-beheerder." + +#: ../../Zotlabs/Module/Invite.php:82 +#, php-format +msgid "%s : Message delivery failed." +msgstr "%s: Aflevering bericht mislukt." + +#: ../../Zotlabs/Module/Invite.php:86 +#, php-format +msgid "%d message sent." +msgid_plural "%d messages sent." +msgstr[0] "%d bericht verzonden." +msgstr[1] "%d berichten verzonden." + +#: ../../Zotlabs/Module/Invite.php:105 +msgid "You have no more invitations available" +msgstr "Je hebt geen uitnodigingen meer beschikbaar" + +#: ../../Zotlabs/Module/Invite.php:136 +msgid "Send invitations" +msgstr "Uitnodigingen verzenden" + +#: ../../Zotlabs/Module/Invite.php:137 +msgid "Enter email addresses, one per line:" +msgstr "Voer e-mailadressen in, één per regel:" + +#: ../../Zotlabs/Module/Invite.php:139 +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 http://hubzilla.org" + +#: ../../Zotlabs/Module/Invite.php:141 +msgid "You will need to supply this invitation code:" +msgstr "Je moet deze uitnodigingscode opgeven:" + +#: ../../Zotlabs/Module/Invite.php:142 +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):" + +#: ../../Zotlabs/Module/Invite.php:144 +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:" + +#: ../../Zotlabs/Module/Invite.php:145 +msgid "or visit" +msgstr "of bezoek" + +#: ../../Zotlabs/Module/Invite.php:147 +msgid "3. Click [Connect]" +msgstr "3. Klik op [+ Verbinden]" + +#: ../../Zotlabs/Module/Editblock.php:108 ../../Zotlabs/Module/Blocks.php:97 +#: ../../Zotlabs/Module/Blocks.php:155 +msgid "Block Name" +msgstr "Bloknaam" + +#: ../../Zotlabs/Module/Editblock.php:124 ../../include/conversation.php:1258 +msgid "Title (optional)" +msgstr "Titel (optioneel)" + +#: ../../Zotlabs/Module/Editblock.php:133 +msgid "Edit Block" +msgstr "Blok bewerken" #: ../../Zotlabs/Module/Group.php:24 msgid "Privacy group created." @@ -2948,7 +3654,7 @@ msgid "Could not create privacy group." msgstr "Kon privacygroep niet aanmaken" #: ../../Zotlabs/Module/Group.php:42 ../../Zotlabs/Module/Group.php:141 -#: ../../include/items.php:3960 +#: ../../include/items.php:3876 msgid "Privacy group not found." msgstr "Privacygroep niet gevonden" @@ -2980,10 +3686,6 @@ msgstr "Verwijderen privacygroep mislukt" msgid "Privacy group editor" msgstr "Privacygroep bewerken" -#: ../../Zotlabs/Module/Group.php:197 -msgid "Members" -msgstr "Kanalen" - #: ../../Zotlabs/Module/Group.php:199 msgid "All Connected Channels" msgstr "Alle kanaalconnecties" @@ -2992,616 +3694,29 @@ msgstr "Alle kanaalconnecties" msgid "Click on a channel to add or remove." msgstr "Klik op een kanaal om deze toe te voegen of te verwijderen." -#: ../../Zotlabs/Module/Dreport.php:44 -msgid "Invalid message" -msgstr "Ongeldig bericht" +#: ../../Zotlabs/Module/Profperm.php:34 ../../Zotlabs/Module/Profperm.php:63 +msgid "Invalid profile identifier." +msgstr "Ongeldige profiel-identificator" -#: ../../Zotlabs/Module/Dreport.php:76 -msgid "no results" -msgstr "geen resultaten" +#: ../../Zotlabs/Module/Profperm.php:115 +msgid "Profile Visibility Editor" +msgstr "Zichtbaarheid profiel " -#: ../../Zotlabs/Module/Dreport.php:91 -msgid "channel sync processed" -msgstr "kanaalsync verwerkt" +#: ../../Zotlabs/Module/Profperm.php:117 ../../include/channel.php:1282 +msgid "Profile" +msgstr "Profiel" -#: ../../Zotlabs/Module/Dreport.php:95 -msgid "queued" -msgstr "in wachtrij" +#: ../../Zotlabs/Module/Profperm.php:119 +msgid "Click on a contact to add or remove." +msgstr "Klik op een connectie om deze toe te voegen of te verwijderen" -#: ../../Zotlabs/Module/Dreport.php:99 -msgid "posted" -msgstr "verstuurd" +#: ../../Zotlabs/Module/Profperm.php:128 +msgid "Visible To" +msgstr "Zichtbaar voor" -#: ../../Zotlabs/Module/Dreport.php:103 -msgid "accepted for delivery" -msgstr "geaccepteerd om afgeleverd te worden" - -#: ../../Zotlabs/Module/Dreport.php:107 -msgid "updated" -msgstr "geüpdatet" - -#: ../../Zotlabs/Module/Dreport.php:110 -msgid "update ignored" -msgstr "update genegeerd" - -#: ../../Zotlabs/Module/Dreport.php:113 -msgid "permission denied" -msgstr "toegang geweigerd" - -#: ../../Zotlabs/Module/Dreport.php:117 -msgid "recipient not found" -msgstr "ontvanger niet gevonden" - -#: ../../Zotlabs/Module/Dreport.php:120 -msgid "mail recalled" -msgstr "Privébericht ingetrokken" - -#: ../../Zotlabs/Module/Dreport.php:123 -msgid "duplicate mail received" -msgstr "dubbel privébericht ontvangen" - -#: ../../Zotlabs/Module/Dreport.php:126 -msgid "mail delivered" -msgstr "privébericht afgeleverd" - -#: ../../Zotlabs/Module/Dreport.php:146 -#, php-format -msgid "Delivery report for %1$s" -msgstr "Afleveringsrapport voor %1$s" - -#: ../../Zotlabs/Module/Dreport.php:149 -msgid "Options" -msgstr "Opties" - -#: ../../Zotlabs/Module/Dreport.php:150 -msgid "Redeliver" -msgstr "Opnieuw afleveren" - -#: ../../Zotlabs/Module/Impel.php:41 ../../include/bbcode.php:192 -msgid "webpage" -msgstr "Webpagina" - -#: ../../Zotlabs/Module/Impel.php:46 ../../include/bbcode.php:198 -msgid "block" -msgstr "blok" - -#: ../../Zotlabs/Module/Impel.php:51 ../../include/bbcode.php:195 -msgid "layout" -msgstr "lay-out" - -#: ../../Zotlabs/Module/Impel.php:58 ../../include/bbcode.php:201 -msgid "menu" -msgstr "menu" - -#: ../../Zotlabs/Module/Impel.php:191 -#, php-format -msgid "%s element installed" -msgstr "%s onderdeel geïnstalleerd" - -#: ../../Zotlabs/Module/Impel.php:194 -#, php-format -msgid "%s element installation failed" -msgstr "Installatie %s-element mislukt" - -#: ../../Zotlabs/Module/Import_items.php:104 -msgid "Import completed" -msgstr "Importeren voltooid" - -#: ../../Zotlabs/Module/Import_items.php:119 -msgid "Import Items" -msgstr "Importeer items" - -#: ../../Zotlabs/Module/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." - -#: ../../Zotlabs/Module/Invite.php:29 -msgid "Total invitation limit exceeded." -msgstr "Limiet voor aantal uitnodigingen overschreden." - -#: ../../Zotlabs/Module/Invite.php:53 -#, php-format -msgid "%s : Not a valid email address." -msgstr "%s : Geen geldig e-mailadres." - -#: ../../Zotlabs/Module/Invite.php:63 -msgid "Please join us on $Projectname" -msgstr "Uitnodiging voor $Projectname" - -#: ../../Zotlabs/Module/Invite.php:74 -msgid "Invitation limit exceeded. Please contact your site administrator." -msgstr "Limiet voor aantal uitnodigingen overschreden. Neem contact op met je hub-beheerder." - -#: ../../Zotlabs/Module/Invite.php:79 -#, php-format -msgid "%s : Message delivery failed." -msgstr "%s: Aflevering bericht mislukt." - -#: ../../Zotlabs/Module/Invite.php:83 -#, php-format -msgid "%d message sent." -msgid_plural "%d messages sent." -msgstr[0] "%d bericht verzonden." -msgstr[1] "%d berichten verzonden." - -#: ../../Zotlabs/Module/Invite.php:102 -msgid "You have no more invitations available" -msgstr "Je hebt geen uitnodigingen meer beschikbaar" - -#: ../../Zotlabs/Module/Invite.php:133 -msgid "Send invitations" -msgstr "Uitnodigingen verzenden" - -#: ../../Zotlabs/Module/Invite.php:134 -msgid "Enter email addresses, one per line:" -msgstr "Voer e-mailadressen in, één per regel:" - -#: ../../Zotlabs/Module/Invite.php:136 -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 http://hubzilla.org" - -#: ../../Zotlabs/Module/Invite.php:138 -msgid "You will need to supply this invitation code:" -msgstr "Je moet deze uitnodigingscode opgeven:" - -#: ../../Zotlabs/Module/Invite.php:139 -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):" - -#: ../../Zotlabs/Module/Invite.php:141 -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:" - -#: ../../Zotlabs/Module/Invite.php:142 -msgid "or visit" -msgstr "of bezoek" - -#: ../../Zotlabs/Module/Invite.php:144 -msgid "3. Click [Connect]" -msgstr "3. Klik op [+ Verbinden]" - -#: ../../Zotlabs/Module/Locs.php:25 ../../Zotlabs/Module/Locs.php:54 -msgid "Location not found." -msgstr "Locatie niet gevonden." - -#: ../../Zotlabs/Module/Locs.php:62 -msgid "Location lookup failed." -msgstr "Opzoeken locatie mislukt" - -#: ../../Zotlabs/Module/Locs.php:66 -msgid "" -"Please select another location to become primary before removing the primary" -" location." -msgstr "Kies eerst een andere primaire locatie alvorens de huidige primaire locatie te verwijderen." - -#: ../../Zotlabs/Module/Locs.php:95 -msgid "Syncing locations" -msgstr "Locaties synchronizeren" - -#: ../../Zotlabs/Module/Locs.php:105 -msgid "No locations found." -msgstr "Geen locaties gevonden." - -#: ../../Zotlabs/Module/Locs.php:116 -msgid "Manage Channel Locations" -msgstr "Kanaallocaties beheren" - -#: ../../Zotlabs/Module/Locs.php:119 -msgid "Primary" -msgstr "Primair" - -#: ../../Zotlabs/Module/Locs.php:122 -msgid "Sync Now" -msgstr "Nu synchroniseren" - -#: ../../Zotlabs/Module/Locs.php:123 -msgid "Please wait several minutes between consecutive operations." -msgstr "Wacht enkele minuten tussen opeenvolgende handelingen." - -#: ../../Zotlabs/Module/Locs.php:124 -msgid "" -"When possible, drop a location by logging into that website/hub and removing" -" your channel." -msgstr "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." - -#: ../../Zotlabs/Module/Locs.php:125 -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." - -#: ../../Zotlabs/Module/Rate.php:156 -msgid "Website:" -msgstr "Website:" - -#: ../../Zotlabs/Module/Rate.php:159 -#, php-format -msgid "Remote Channel [%s] (not yet known on this site)" -msgstr "Kanaal op afstand [%s] (nog niet op deze hub bekend)" - -#: ../../Zotlabs/Module/Rate.php:160 -msgid "Rating (this information is public)" -msgstr "Beoordeling (deze informatie is openbaar)" - -#: ../../Zotlabs/Module/Rate.php:161 -msgid "Optionally explain your rating (this information is public)" -msgstr "Verklaar jouw beoordeling (niet verplicht, deze informatie is openbaar)" - -#: ../../Zotlabs/Module/Like.php:19 -msgid "Like/Dislike" -msgstr "Leuk/niet leuk" - -#: ../../Zotlabs/Module/Like.php:24 -msgid "This action is restricted to members." -msgstr "Deze actie kan alleen door $Projectname-leden worden uitgevoerd." - -#: ../../Zotlabs/Module/Like.php:25 -msgid "" -"Please login with your $Projectname ID or register as a new $Projectname member to continue." -msgstr "Je dient in te loggen met je $Projectname-account of een nieuw $Projectname-account aan te maken om verder te kunnen gaan." - -#: ../../Zotlabs/Module/Like.php:105 ../../Zotlabs/Module/Like.php:131 -#: ../../Zotlabs/Module/Like.php:169 -msgid "Invalid request." -msgstr "Ongeldig verzoek" - -#: ../../Zotlabs/Module/Like.php:117 ../../include/conversation.php:126 -msgid "channel" -msgstr "kanaal" - -#: ../../Zotlabs/Module/Like.php:146 -msgid "thing" -msgstr "ding" - -#: ../../Zotlabs/Module/Like.php:192 -msgid "Channel unavailable." -msgstr "Kanaal niet beschikbaar." - -#: ../../Zotlabs/Module/Like.php:240 -msgid "Previous action reversed." -msgstr "Vorige actie omgedraaid" - -#: ../../Zotlabs/Module/Like.php:370 ../../Zotlabs/Module/Subthread.php:87 -#: ../../Zotlabs/Module/Tagger.php:47 ../../include/text.php:1991 -#: ../../include/conversation.php:120 -msgid "photo" -msgstr "foto" - -#: ../../Zotlabs/Module/Like.php:370 ../../Zotlabs/Module/Subthread.php:87 -#: ../../include/text.php:1997 ../../include/conversation.php:148 -msgid "status" -msgstr "bericht" - -#: ../../Zotlabs/Module/Like.php:372 ../../Zotlabs/Module/Events.php:253 -#: ../../Zotlabs/Module/Tagger.php:51 ../../include/text.php:1994 -#: ../../include/conversation.php:123 ../../include/event.php:961 -msgid "event" -msgstr "gebeurtenis" - -#: ../../Zotlabs/Module/Like.php:419 ../../include/conversation.php:164 -#, php-format -msgid "%1$s likes %2$s's %3$s" -msgstr "%1$s vindt %3$s van %2$s leuk" - -#: ../../Zotlabs/Module/Like.php:421 ../../include/conversation.php:167 -#, php-format -msgid "%1$s doesn't like %2$s's %3$s" -msgstr "%1$s vindt %3$s van %2$s niet leuk" - -#: ../../Zotlabs/Module/Like.php:423 -#, php-format -msgid "%1$s agrees with %2$s's %3$s" -msgstr "%1$s is het eens met %2$s's %3$s" - -#: ../../Zotlabs/Module/Like.php:425 -#, php-format -msgid "%1$s doesn't agree with %2$s's %3$s" -msgstr "%1$s is het niet eens met %2$s's %3$s" - -#: ../../Zotlabs/Module/Like.php:427 -#, php-format -msgid "%1$s abstains from a decision on %2$s's %3$s" -msgstr "%1$s onthoudt zich van een besluit over %2$s's %3$s" - -#: ../../Zotlabs/Module/Like.php:429 -#, php-format -msgid "%1$s is attending %2$s's %3$s" -msgstr "%1$s is aanwezig op %2$s's %3$s" - -#: ../../Zotlabs/Module/Like.php:431 -#, php-format -msgid "%1$s is not attending %2$s's %3$s" -msgstr "%1$s is niet aanwezig op %2$s's %3$s" - -#: ../../Zotlabs/Module/Like.php:433 -#, php-format -msgid "%1$s may attend %2$s's %3$s" -msgstr "%1$s is mogelijk aanwezig op %2$s's %3$s" - -#: ../../Zotlabs/Module/Like.php:538 -msgid "Action completed." -msgstr "Actie voltooid" - -#: ../../Zotlabs/Module/Like.php:539 -msgid "Thank you." -msgstr "Bedankt" - -#: ../../Zotlabs/Module/Profiles.php:24 ../../Zotlabs/Module/Profiles.php:189 -#: ../../Zotlabs/Module/Profiles.php:246 ../../Zotlabs/Module/Profiles.php:625 -msgid "Profile not found." -msgstr "Profiel niet gevonden." - -#: ../../Zotlabs/Module/Profiles.php:44 -msgid "Profile deleted." -msgstr "Profiel verwijderd." - -#: ../../Zotlabs/Module/Profiles.php:68 ../../Zotlabs/Module/Profiles.php:104 -msgid "Profile-" -msgstr "Profiel-" - -#: ../../Zotlabs/Module/Profiles.php:89 ../../Zotlabs/Module/Profiles.php:132 -msgid "New profile created." -msgstr "Nieuw profiel aangemaakt." - -#: ../../Zotlabs/Module/Profiles.php:110 -msgid "Profile unavailable to clone." -msgstr "Profiel niet beschikbaar om te klonen" - -#: ../../Zotlabs/Module/Profiles.php:151 -msgid "Profile unavailable to export." -msgstr "Geen profiel beschikbaar om te exporteren" - -#: ../../Zotlabs/Module/Profiles.php:256 -msgid "Profile Name is required." -msgstr "Profielnaam is vereist" - -#: ../../Zotlabs/Module/Profiles.php:427 -msgid "Marital Status" -msgstr "Huwelijke status" - -#: ../../Zotlabs/Module/Profiles.php:431 -msgid "Romantic Partner" -msgstr "Romantische partner" - -#: ../../Zotlabs/Module/Profiles.php:435 ../../Zotlabs/Module/Profiles.php:736 -msgid "Likes" -msgstr "Houdt van" - -#: ../../Zotlabs/Module/Profiles.php:439 ../../Zotlabs/Module/Profiles.php:737 -msgid "Dislikes" -msgstr "Houdt niet van" - -#: ../../Zotlabs/Module/Profiles.php:443 ../../Zotlabs/Module/Profiles.php:744 -msgid "Work/Employment" -msgstr "Werk/arbeid" - -#: ../../Zotlabs/Module/Profiles.php:446 -msgid "Religion" -msgstr "Religie" - -#: ../../Zotlabs/Module/Profiles.php:450 -msgid "Political Views" -msgstr "Politieke overtuigingen" - -#: ../../Zotlabs/Module/Profiles.php:454 -msgid "Gender" -msgstr "Geslacht" - -#: ../../Zotlabs/Module/Profiles.php:458 -msgid "Sexual Preference" -msgstr "Seksuele voorkeur" - -#: ../../Zotlabs/Module/Profiles.php:462 -msgid "Homepage" -msgstr "Homepage" - -#: ../../Zotlabs/Module/Profiles.php:466 -msgid "Interests" -msgstr "Interesses" - -#: ../../Zotlabs/Module/Profiles.php:560 -msgid "Profile updated." -msgstr "Profiel bijgewerkt" - -#: ../../Zotlabs/Module/Profiles.php:644 -msgid "Hide your connections list from viewers of this profile" -msgstr "Laat de lijst met connecties niet aan bezoekers van dit profiel zien." - -#: ../../Zotlabs/Module/Profiles.php:686 -msgid "Edit Profile Details" -msgstr "Profiel bewerken" - -#: ../../Zotlabs/Module/Profiles.php:688 -msgid "View this profile" -msgstr "Profiel weergeven" - -#: ../../Zotlabs/Module/Profiles.php:689 ../../Zotlabs/Module/Profiles.php:771 -#: ../../include/channel.php:981 -msgid "Edit visibility" -msgstr "Zichtbaarheid bewerken" - -#: ../../Zotlabs/Module/Profiles.php:690 -msgid "Profile Tools" -msgstr "Hulpmiddelen" - -#: ../../Zotlabs/Module/Profiles.php:691 -msgid "Change cover photo" -msgstr "Omslagfoto wijzigen" - -#: ../../Zotlabs/Module/Profiles.php:692 ../../include/channel.php:952 -msgid "Change profile photo" -msgstr "Profielfoto veranderen" - -#: ../../Zotlabs/Module/Profiles.php:693 -msgid "Create a new profile using these settings" -msgstr "Een nieuw profiel aanmaken met dit profiel als basis" - -#: ../../Zotlabs/Module/Profiles.php:694 -msgid "Clone this profile" -msgstr "Dit profiel klonen" - -#: ../../Zotlabs/Module/Profiles.php:695 -msgid "Delete this profile" -msgstr "Dit profiel verwijderen" - -#: ../../Zotlabs/Module/Profiles.php:696 -msgid "Add profile things" -msgstr "Dingen aan je profiel toevoegen" - -#: ../../Zotlabs/Module/Profiles.php:697 ../../include/conversation.php:1564 -#: ../../include/widgets.php:105 -msgid "Personal" -msgstr "Persoonlijk" - -#: ../../Zotlabs/Module/Profiles.php:699 -msgid "Relation" -msgstr "Relatie" - -#: ../../Zotlabs/Module/Profiles.php:700 ../../include/datetime.php:55 -msgid "Miscellaneous" -msgstr "Diversen" - -#: ../../Zotlabs/Module/Profiles.php:702 -msgid "Import profile from file" -msgstr "Profiel vanuit bestand importeren" - -#: ../../Zotlabs/Module/Profiles.php:703 -msgid "Export profile to file" -msgstr "Profiel naar bestand exporteren" - -#: ../../Zotlabs/Module/Profiles.php:704 -msgid "Your gender" -msgstr "Jouw geslacht" - -#: ../../Zotlabs/Module/Profiles.php:705 -msgid "Marital status" -msgstr "Burgerlijke staat" - -#: ../../Zotlabs/Module/Profiles.php:706 -msgid "Sexual preference" -msgstr "Seksuele voorkeur" - -#: ../../Zotlabs/Module/Profiles.php:709 -msgid "Profile name" -msgstr "Profielnaam" - -#: ../../Zotlabs/Module/Profiles.php:711 -msgid "This is your default profile." -msgstr "Dit is jouw standaardprofiel" - -#: ../../Zotlabs/Module/Profiles.php:713 -msgid "Your full name" -msgstr "Jouw volledige naam" - -#: ../../Zotlabs/Module/Profiles.php:714 -msgid "Title/Description" -msgstr "Titel/omschrijving" - -#: ../../Zotlabs/Module/Profiles.php:717 -msgid "Street address" -msgstr "Straat en huisnummer" - -#: ../../Zotlabs/Module/Profiles.php:718 -msgid "Locality/City" -msgstr "Woonplaats" - -#: ../../Zotlabs/Module/Profiles.php:719 -msgid "Region/State" -msgstr "Provincie/gewest/deelstaat" - -#: ../../Zotlabs/Module/Profiles.php:720 -msgid "Postal/Zip code" -msgstr "Postcode" - -#: ../../Zotlabs/Module/Profiles.php:721 -msgid "Country" -msgstr "Land" - -#: ../../Zotlabs/Module/Profiles.php:726 -msgid "Who (if applicable)" -msgstr "Wie (wanneer van toepassing)" - -#: ../../Zotlabs/Module/Profiles.php:726 -msgid "Examples: cathy123, Cathy Williams, cathy@example.com" -msgstr "Voorbeelden: petra123, Petra Jansen, petra@voorbeeld.nl" - -#: ../../Zotlabs/Module/Profiles.php:727 -msgid "Since (date)" -msgstr "Sinds (datum)" - -#: ../../Zotlabs/Module/Profiles.php:730 -msgid "Tell us about yourself" -msgstr "Vertel ons iets over jezelf" - -#: ../../Zotlabs/Module/Profiles.php:731 -msgid "Homepage URL" -msgstr "URL homepagina" - -#: ../../Zotlabs/Module/Profiles.php:732 -msgid "Hometown" -msgstr "Oorspronkelijk uit" - -#: ../../Zotlabs/Module/Profiles.php:733 -msgid "Political views" -msgstr "Politieke overtuigingen" - -#: ../../Zotlabs/Module/Profiles.php:734 -msgid "Religious views" -msgstr "Religieuze overtuigingen" - -#: ../../Zotlabs/Module/Profiles.php:735 -msgid "Keywords used in directory listings" -msgstr "Trefwoorden voor in de kanalengids" - -#: ../../Zotlabs/Module/Profiles.php:735 -msgid "Example: fishing photography software" -msgstr "Voorbeeld: muziek, fotografie, software" - -#: ../../Zotlabs/Module/Profiles.php:738 -msgid "Musical interests" -msgstr "Muzikale interesses" - -#: ../../Zotlabs/Module/Profiles.php:739 -msgid "Books, literature" -msgstr "Boeken/literatuur" - -#: ../../Zotlabs/Module/Profiles.php:740 -msgid "Television" -msgstr "Televisie" - -#: ../../Zotlabs/Module/Profiles.php:741 -msgid "Film/Dance/Culture/Entertainment" -msgstr "Film/dans/cultuur/entertainment" - -#: ../../Zotlabs/Module/Profiles.php:742 -msgid "Hobbies/Interests" -msgstr "Hobby's/interesses" - -#: ../../Zotlabs/Module/Profiles.php:743 -msgid "Love/Romance" -msgstr "Liefde/romantiek" - -#: ../../Zotlabs/Module/Profiles.php:745 -msgid "School/Education" -msgstr "School/opleiding" - -#: ../../Zotlabs/Module/Profiles.php:746 -msgid "Contact information and social networks" -msgstr "Contactinformatie en sociale netwerken" - -#: ../../Zotlabs/Module/Profiles.php:747 -msgid "My other channels" -msgstr "Mijn andere kanalen" - -#: ../../Zotlabs/Module/Profiles.php:767 ../../include/channel.php:977 -msgid "Profile Image" -msgstr "Profielfoto" - -#: ../../Zotlabs/Module/Profiles.php:777 ../../include/channel.php:959 -#: ../../include/nav.php:91 -msgid "Edit Profiles" -msgstr "Bewerk profielen" +#: ../../Zotlabs/Module/Magic.php:71 +msgid "Hub not found." +msgstr "Hub niet gevonden." #: ../../Zotlabs/Module/Mitem.php:52 msgid "Unable to create element." @@ -3620,7 +3735,7 @@ msgid "Menu Item Permissions" msgstr "Permissies menu-item" #: ../../Zotlabs/Module/Mitem.php:154 ../../Zotlabs/Module/Mitem.php:231 -#: ../../Zotlabs/Module/Settings/Channel.php:486 +#: ../../Zotlabs/Module/Settings/Channel.php:489 msgid "(click to open/close)" msgstr "(klik om te openen/sluiten)" @@ -3720,502 +3835,25 @@ msgstr "Menu-element bewerken" msgid "Link text" msgstr "Linktekst" -#: ../../Zotlabs/Module/Setup.php:184 -msgid "$Projectname Server - Setup" -msgstr "$Projectname Hub - Setup" +#: ../../Zotlabs/Module/Ratings.php:70 +msgid "No ratings" +msgstr "Geen beoordelingen" -#: ../../Zotlabs/Module/Setup.php:188 -msgid "Could not connect to database." -msgstr "Could not connect to database." +#: ../../Zotlabs/Module/Ratings.php:98 +msgid "Rating: " +msgstr "Beoordeling: " -#: ../../Zotlabs/Module/Setup.php:192 -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." +#: ../../Zotlabs/Module/Ratings.php:99 +msgid "Website: " +msgstr "Website: " -#: ../../Zotlabs/Module/Setup.php:199 -msgid "Could not create table." -msgstr "Could not create table." +#: ../../Zotlabs/Module/Ratings.php:101 +msgid "Description: " +msgstr "Omschrijving: " -#: ../../Zotlabs/Module/Setup.php:204 -msgid "Your site database has been installed." -msgstr "Your hub database has been installed." - -#: ../../Zotlabs/Module/Setup.php:208 -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." - -#: ../../Zotlabs/Module/Setup.php:209 ../../Zotlabs/Module/Setup.php:271 -#: ../../Zotlabs/Module/Setup.php:734 -msgid "Please see the file \"install/INSTALL.txt\"." -msgstr "Please see the file \"install/INSTALL.txt\"." - -#: ../../Zotlabs/Module/Setup.php:268 -msgid "System check" -msgstr "System check" - -#: ../../Zotlabs/Module/Setup.php:272 ../../Zotlabs/Module/Photos.php:949 -#: ../../Zotlabs/Module/Cal.php:333 ../../Zotlabs/Module/Cal.php:340 -#: ../../Zotlabs/Module/Events.php:676 ../../Zotlabs/Module/Events.php:685 -msgid "Next" -msgstr "Volgende" - -#: ../../Zotlabs/Module/Setup.php:273 -msgid "Check again" -msgstr "Check again" - -#: ../../Zotlabs/Module/Setup.php:295 -msgid "Database connection" -msgstr "Database connection" - -#: ../../Zotlabs/Module/Setup.php:296 -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." - -#: ../../Zotlabs/Module/Setup.php:297 -msgid "" -"Please contact your hosting provider or site administrator if you have " -"questions about these settings." -msgstr "Please contact your hosting provider or server administrator if you have questions about these settings." - -#: ../../Zotlabs/Module/Setup.php:298 -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." - -#: ../../Zotlabs/Module/Setup.php:302 -msgid "Database Server Name" -msgstr "Database Server Name" - -#: ../../Zotlabs/Module/Setup.php:302 -msgid "Default is 127.0.0.1" -msgstr "Default is 127.0.0.1" - -#: ../../Zotlabs/Module/Setup.php:303 -msgid "Database Port" -msgstr "Database Port" - -#: ../../Zotlabs/Module/Setup.php:303 -msgid "Communication port number - use 0 for default" -msgstr "Communication port number - use 0 for default" - -#: ../../Zotlabs/Module/Setup.php:304 -msgid "Database Login Name" -msgstr "Database Login Name" - -#: ../../Zotlabs/Module/Setup.php:305 -msgid "Database Login Password" -msgstr "Database Login Password" - -#: ../../Zotlabs/Module/Setup.php:306 -msgid "Database Name" -msgstr "Database Name" - -#: ../../Zotlabs/Module/Setup.php:307 -msgid "Database Type" -msgstr "Database Type" - -#: ../../Zotlabs/Module/Setup.php:309 ../../Zotlabs/Module/Setup.php:355 -msgid "Site administrator email address" -msgstr "Hub administrator email address" - -#: ../../Zotlabs/Module/Setup.php:309 ../../Zotlabs/Module/Setup.php:355 -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." - -#: ../../Zotlabs/Module/Setup.php:310 ../../Zotlabs/Module/Setup.php:357 -msgid "Website URL" -msgstr "Hub URL" - -#: ../../Zotlabs/Module/Setup.php:310 ../../Zotlabs/Module/Setup.php:357 -msgid "Please use SSL (https) URL if available." -msgstr "Please use SSL (https) URL if available." - -#: ../../Zotlabs/Module/Setup.php:311 ../../Zotlabs/Module/Setup.php:361 -msgid "Please select a default timezone for your website" -msgstr "Please select a default timezone for your hub" - -#: ../../Zotlabs/Module/Setup.php:344 -msgid "Site settings" -msgstr "Hub settings" - -#: ../../Zotlabs/Module/Setup.php:400 -msgid "PHP version 5.5 or greater is required." -msgstr "PHP version 5.5 or greater is required." - -#: ../../Zotlabs/Module/Setup.php:401 -msgid "PHP version" -msgstr "PHP version" - -#: ../../Zotlabs/Module/Setup.php:416 -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." - -#: ../../Zotlabs/Module/Setup.php:417 -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." - -#: ../../Zotlabs/Module/Setup.php:421 -msgid "PHP executable path" -msgstr "PHP executable path" - -#: ../../Zotlabs/Module/Setup.php:421 -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." - -#: ../../Zotlabs/Module/Setup.php:426 -msgid "Command line PHP" -msgstr "Command line PHP" - -#: ../../Zotlabs/Module/Setup.php:435 -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." - -#: ../../Zotlabs/Module/Setup.php:436 -msgid "This is required for message delivery to work." -msgstr "This is required for message delivery to work." - -#: ../../Zotlabs/Module/Setup.php:439 -msgid "PHP register_argc_argv" -msgstr "PHP register_argc_argv" - -#: ../../Zotlabs/Module/Setup.php:457 -#, 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." - -#: ../../Zotlabs/Module/Setup.php:462 -msgid "You can adjust these settings in the servers php.ini." -msgstr "You can adjust these settings in the servers php.ini." - -#: ../../Zotlabs/Module/Setup.php:464 -msgid "PHP upload limits" -msgstr "PHP upload limits" - -#: ../../Zotlabs/Module/Setup.php:487 -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" - -#: ../../Zotlabs/Module/Setup.php:488 -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\"." - -#: ../../Zotlabs/Module/Setup.php:491 -msgid "Generate encryption keys" -msgstr "Generate encryption keys" - -#: ../../Zotlabs/Module/Setup.php:503 -msgid "libCurl PHP module" -msgstr "libCurl PHP module" - -#: ../../Zotlabs/Module/Setup.php:504 -msgid "GD graphics PHP module" -msgstr "GD graphics PHP module" - -#: ../../Zotlabs/Module/Setup.php:505 -msgid "OpenSSL PHP module" -msgstr "OpenSSL PHP module" - -#: ../../Zotlabs/Module/Setup.php:506 -msgid "mysqli or postgres PHP module" -msgstr "mysqli or postgres PHP module" - -#: ../../Zotlabs/Module/Setup.php:507 -msgid "mb_string PHP module" -msgstr "mb_string PHP module" - -#: ../../Zotlabs/Module/Setup.php:508 -msgid "xml PHP module" -msgstr "xml PHP module" - -#: ../../Zotlabs/Module/Setup.php:512 ../../Zotlabs/Module/Setup.php:514 -msgid "Apache mod_rewrite module" -msgstr "Apache mod_rewrite module" - -#: ../../Zotlabs/Module/Setup.php:512 -msgid "" -"Error: Apache webserver mod-rewrite module is required but not installed." -msgstr "Error: Apache webserver mod-rewrite module is required but not installed." - -#: ../../Zotlabs/Module/Setup.php:518 ../../Zotlabs/Module/Setup.php:521 -msgid "proc_open" -msgstr "proc_open" - -#: ../../Zotlabs/Module/Setup.php:518 -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" - -#: ../../Zotlabs/Module/Setup.php:526 -msgid "Error: libCURL PHP module required but not installed." -msgstr "Error: libCURL PHP module required but not installed." - -#: ../../Zotlabs/Module/Setup.php:530 -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." - -#: ../../Zotlabs/Module/Setup.php:534 -msgid "Error: openssl PHP module required but not installed." -msgstr "Error: openssl PHP module required but not installed." - -#: ../../Zotlabs/Module/Setup.php:538 -msgid "" -"Error: mysqli or postgres PHP module required but neither are installed." -msgstr "Error: mysqli or postgres PHP module required but neither are installed." - -#: ../../Zotlabs/Module/Setup.php:542 -msgid "Error: mb_string PHP module required but not installed." -msgstr "Error: mb_string PHP module required but not installed." - -#: ../../Zotlabs/Module/Setup.php:546 -msgid "Error: xml PHP module required for DAV but not installed." -msgstr "Error: xml PHP module required for DAV but not installed." - -#: ../../Zotlabs/Module/Setup.php:564 -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." - -#: ../../Zotlabs/Module/Setup.php:565 -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." - -#: ../../Zotlabs/Module/Setup.php:566 -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." - -#: ../../Zotlabs/Module/Setup.php:567 -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." - -#: ../../Zotlabs/Module/Setup.php:570 -msgid ".htconfig.php is writable" -msgstr ".htconfig.php is writable" - -#: ../../Zotlabs/Module/Setup.php:584 -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." - -#: ../../Zotlabs/Module/Setup.php:585 -#, php-format -msgid "" -"In order to store these compiled templates, the web server needs to have " -"write access to the directory %s under the top level web folder." -msgstr "In order to store these compiled templates, the web server needs to have write access to the directory %s under the top level web folder." - -#: ../../Zotlabs/Module/Setup.php:586 ../../Zotlabs/Module/Setup.php:607 -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." - -#: ../../Zotlabs/Module/Setup.php:587 -#, 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." - -#: ../../Zotlabs/Module/Setup.php:590 -#, php-format -msgid "%s is writable" -msgstr "%s is writable" - -#: ../../Zotlabs/Module/Setup.php:606 -msgid "" -"This software 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 "This software 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" - -#: ../../Zotlabs/Module/Setup.php:610 -msgid "store is writable" -msgstr "store is writable" - -#: ../../Zotlabs/Module/Setup.php:643 -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." - -#: ../../Zotlabs/Module/Setup.php:644 -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!" - -#: ../../Zotlabs/Module/Setup.php:645 -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." - -#: ../../Zotlabs/Module/Setup.php:646 -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." - -#: ../../Zotlabs/Module/Setup.php:647 -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." - -#: ../../Zotlabs/Module/Setup.php:648 -msgid "" -"Providers are available that issue free certificates which are browser-" -"valid." -msgstr "Providers are available that issue free certificates which are browser-valid." - -#: ../../Zotlabs/Module/Setup.php:650 -msgid "" -"If you are confident that the certificate is valid and signed by a trusted " -"authority, check to see if you have failed to install an intermediate cert. " -"These are not normally required by browsers, but are required for server-to-" -"server communications." -msgstr "If you are confident that the certificate is valid and signed by a trusted authority, check to see if you have failed to install an intermediate cert. These are not normally required by browsers, but are required for server-to-server communications." - -#: ../../Zotlabs/Module/Setup.php:653 -msgid "SSL certificate validation" -msgstr "SSL certificate validation" - -#: ../../Zotlabs/Module/Setup.php:659 -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: " - -#: ../../Zotlabs/Module/Setup.php:662 -msgid "Url rewrite is working" -msgstr "Url rewrite is working" - -#: ../../Zotlabs/Module/Setup.php:671 -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." - -#: ../../Zotlabs/Module/Setup.php:695 -msgid "Errors encountered creating database tables." -msgstr "Errors encountered creating database tables." - -#: ../../Zotlabs/Module/Setup.php:732 -msgid "

        What next

        " -msgstr "

        What next

        " - -#: ../../Zotlabs/Module/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." - -#: ../../Zotlabs/Module/Lostpass.php:19 -msgid "No valid account found." -msgstr "Geen geldige account gevonden." - -#: ../../Zotlabs/Module/Lostpass.php:33 -msgid "Password reset request issued. Check your email." -msgstr "Het verzoek om je wachtwoord opnieuw in te stellen is behandeld. Controleer je e-mail." - -#: ../../Zotlabs/Module/Lostpass.php:39 ../../Zotlabs/Module/Lostpass.php:107 -#, php-format -msgid "Site Member (%s)" -msgstr "Lid van hub (%s)" - -#: ../../Zotlabs/Module/Lostpass.php:44 -#, php-format -msgid "Password reset requested at %s" -msgstr "Verzoek tot het opnieuw instellen van een wachtwoord op %s is ingediend" - -#: ../../Zotlabs/Module/Lostpass.php:67 -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." - -#: ../../Zotlabs/Module/Lostpass.php:90 ../../boot.php:1747 -msgid "Password Reset" -msgstr "Wachtwoord vergeten?" - -#: ../../Zotlabs/Module/Lostpass.php:91 -msgid "Your password has been reset as requested." -msgstr "Jouw wachtwoord is opnieuw ingesteld zoals je had verzocht." - -#: ../../Zotlabs/Module/Lostpass.php:92 -msgid "Your new password is" -msgstr "Jouw nieuwe wachtwoord is" - -#: ../../Zotlabs/Module/Lostpass.php:93 -msgid "Save or copy your new password - and then" -msgstr "Kopieer of sla je nieuwe wachtwoord op - en" - -#: ../../Zotlabs/Module/Lostpass.php:94 -msgid "click here to login" -msgstr "klik dan hier om in te loggen" - -#: ../../Zotlabs/Module/Lostpass.php:95 -msgid "" -"Your password may be changed from the Settings page after " -"successful login." -msgstr "Jouw wachtwoord kan worden veranderd onder instellingen, nadat je succesvol bent ingelogd." - -#: ../../Zotlabs/Module/Lostpass.php:112 -#, php-format -msgid "Your password has changed at %s" -msgstr "Jouw wachtwoord op %s is veranderd" - -#: ../../Zotlabs/Module/Lostpass.php:127 -msgid "Forgot your Password?" -msgstr "Wachtwoord vergeten?" - -#: ../../Zotlabs/Module/Lostpass.php:128 -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." - -#: ../../Zotlabs/Module/Lostpass.php:129 -msgid "Email Address" -msgstr "E-mailadres" - -#: ../../Zotlabs/Module/Lostpass.php:130 -msgid "Reset" -msgstr "Opnieuw instellen" +#: ../../Zotlabs/Module/Attach.php:13 +msgid "Item not available." +msgstr "Item is niet aanwezig." #: ../../Zotlabs/Module/Mood.php:67 ../../include/conversation.php:260 #, php-format @@ -4223,7 +3861,7 @@ msgctxt "mood" msgid "%1$s is %2$s" msgstr "%1$s is %2$s" -#: ../../Zotlabs/Module/Mood.php:135 ../../Zotlabs/Lib/Apps.php:227 +#: ../../Zotlabs/Module/Mood.php:135 ../../Zotlabs/Lib/Apps.php:229 msgid "Mood" msgstr "Stemming" @@ -4231,103 +3869,24 @@ msgstr "Stemming" msgid "Set your current mood and tell your friends" msgstr "Noteer je huidige stemming en toon het aan je connecties" -#: ../../Zotlabs/Module/Removeme.php:35 -msgid "" -"Channel removals are not allowed within 48 hours of changing the account " -"password." -msgstr "Het verwijderen van een kanaal is niet toegestaan binnen 48 uur nadat het wachtwoord van het account is veranderd." - -#: ../../Zotlabs/Module/Removeme.php:60 -msgid "Remove This Channel" -msgstr "Verwijder dit kanaal" - -#: ../../Zotlabs/Module/Removeme.php:61 -#: ../../Zotlabs/Module/Removeaccount.php:58 -msgid "WARNING: " -msgstr "WAARSCHUWING: " - -#: ../../Zotlabs/Module/Removeme.php:61 -msgid "This channel will be completely removed from the network. " -msgstr "Dit kanaal wordt volledig uit het $Projectname-netwerk verwijderd." - -#: ../../Zotlabs/Module/Removeme.php:61 -#: ../../Zotlabs/Module/Removeaccount.php:58 -msgid "This action is permanent and can not be undone!" -msgstr "Deze handeling is van permanente aard en kan niet meer worden teruggedraaid!" - -#: ../../Zotlabs/Module/Removeme.php:62 -#: ../../Zotlabs/Module/Removeaccount.php:59 -msgid "Please enter your password for verification:" -msgstr "Vul je wachtwoord in ter verificatie:" - -#: ../../Zotlabs/Module/Removeme.php:63 -msgid "Remove this channel and all its clones from the network" -msgstr "Dit kanaal en alle klonen hiervan uit het $Projectname-netwerk verwijderen" - -#: ../../Zotlabs/Module/Removeme.php:63 -msgid "" -"By default only the instance of the channel located on this hub will be " -"removed from the network" -msgstr "Standaard wordt alleen het kanaal dat zich op deze hub bevindt uit het $Projectname-netwerk verwijderd" - -#: ../../Zotlabs/Module/Removeme.php:64 -#: ../../Zotlabs/Module/Settings/Channel.php:544 -msgid "Remove Channel" -msgstr "Kanaal verwijderen" - #: ../../Zotlabs/Module/Notify.php:57 -#: ../../Zotlabs/Module/Notifications.php:98 +#: ../../Zotlabs/Module/Notifications.php:35 msgid "No more system notifications." msgstr "Geen systeemnotificaties meer." #: ../../Zotlabs/Module/Notify.php:61 -#: ../../Zotlabs/Module/Notifications.php:102 +#: ../../Zotlabs/Module/Notifications.php:39 msgid "System Notifications" msgstr "Systeemnotificaties" -#: ../../Zotlabs/Module/Match.php:26 -msgid "Profile Match" -msgstr "Profielovereenkomst" - -#: ../../Zotlabs/Module/Match.php:35 -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." - -#: ../../Zotlabs/Module/Match.php:67 -msgid "is interested in:" -msgstr "is geïnteresseerd in:" - -#: ../../Zotlabs/Module/Match.php:68 ../../Zotlabs/Module/Suggest.php:56 -#: ../../Zotlabs/Module/Directory.php:325 ../../include/channel.php:1034 -#: ../../include/connections.php:78 ../../include/conversation.php:955 -#: ../../include/widgets.php:147 ../../include/widgets.php:184 -msgid "Connect" -msgstr "Verbinden" - -#: ../../Zotlabs/Module/Match.php:74 -msgid "No matches" -msgstr "Geen overeenkomsten" - -#: ../../Zotlabs/Module/Dirsearch.php:25 ../../Zotlabs/Module/Regdir.php:49 -msgid "This site is not a directory server" -msgstr "Deze hub is geen kanalengidshub (directoryserver)" - -#: ../../Zotlabs/Module/Dirsearch.php:33 -msgid "This directory server requires an access token" -msgstr "Deze kanalengidshub (directoryserver) heeft een toegangs-token nodig" - -#: ../../Zotlabs/Module/Magic.php:71 -msgid "Hub not found." -msgstr "Hub niet gevonden." - #: ../../Zotlabs/Module/Photos.php:82 msgid "Page owner information could not be retrieved." msgstr "Informatie over de pagina-eigenaar werd niet ontvangen." #: ../../Zotlabs/Module/Photos.php:97 ../../Zotlabs/Module/Photos.php:734 #: ../../Zotlabs/Module/Profile_photo.php:115 -#: ../../Zotlabs/Module/Profile_photo.php:212 -#: ../../Zotlabs/Module/Profile_photo.php:311 +#: ../../Zotlabs/Module/Profile_photo.php:219 +#: ../../extend/addon/addon/openclipatar/openclipatar.php:225 #: ../../include/photo/photo_driver.php:728 msgid "Profile Photos" msgstr "Profielfoto's" @@ -4351,13 +3910,6 @@ msgstr "Er bestaan meerdere submappen met deze albumnaam, maar verspreidt over v msgid "Delete Photo" msgstr "Verwijder foto" -#: ../../Zotlabs/Module/Photos.php:509 ../../Zotlabs/Module/Display.php:17 -#: ../../Zotlabs/Module/Ratings.php:83 ../../Zotlabs/Module/Search.php:17 -#: ../../Zotlabs/Module/Viewconnections.php:23 -#: ../../Zotlabs/Module/Directory.php:63 -msgid "Public access denied." -msgstr "Openbare toegang geweigerd." - #: ../../Zotlabs/Module/Photos.php:520 msgid "No photos selected" msgstr "Geen foto's geselecteerd" @@ -4417,12 +3969,12 @@ msgid "Show Oldest First" msgstr "Oudste eerst weergeven" #: ../../Zotlabs/Module/Photos.php:783 ../../Zotlabs/Module/Photos.php:1337 -#: ../../Zotlabs/Module/Embedphotos.php:141 ../../include/widgets.php:1677 +#: ../../Zotlabs/Module/Embedphotos.php:139 ../../include/widgets.php:1678 msgid "View Photo" msgstr "Foto weergeven" #: ../../Zotlabs/Module/Photos.php:814 -#: ../../Zotlabs/Module/Embedphotos.php:157 ../../include/widgets.php:1694 +#: ../../Zotlabs/Module/Embedphotos.php:155 ../../include/widgets.php:1695 msgid "Edit Album" msgstr "Album bewerken" @@ -4446,9 +3998,10 @@ msgstr "Als omslagfoto gebruiken" msgid "Private Photo" msgstr "Privéfoto" -#: ../../Zotlabs/Module/Photos.php:940 ../../Zotlabs/Module/Cal.php:332 -#: ../../Zotlabs/Module/Cal.php:339 ../../Zotlabs/Module/Events.php:675 -#: ../../Zotlabs/Module/Events.php:684 +#: ../../Zotlabs/Module/Photos.php:940 ../../Zotlabs/Module/Cal.php:336 +#: ../../Zotlabs/Module/Cal.php:343 ../../Zotlabs/Module/Events.php:680 +#: ../../Zotlabs/Module/Events.php:689 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:846 msgid "Previous" msgstr "Vorige" @@ -4456,6 +4009,13 @@ msgstr "Vorige" msgid "View Full Size" msgstr "Volledige grootte weergeven" +#: ../../Zotlabs/Module/Photos.php:949 ../../Zotlabs/Module/Setup.php:264 +#: ../../Zotlabs/Module/Cal.php:337 ../../Zotlabs/Module/Cal.php:344 +#: ../../Zotlabs/Module/Events.php:681 ../../Zotlabs/Module/Events.php:690 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:847 +msgid "Next" +msgstr "Volgende" + #: ../../Zotlabs/Module/Photos.php:1033 msgid "Edit photo" msgstr "Foto bewerken" @@ -4506,28 +4066,29 @@ msgstr "Vind ik niet leuk" #: ../../Zotlabs/Module/Photos.php:1078 ../../Zotlabs/Module/Blocks.php:161 #: ../../Zotlabs/Module/Layouts.php:193 ../../Zotlabs/Module/Webpages.php:241 -#: ../../include/conversation.php:1232 +#: ../../extend/addon/addon/cdav/include/widgets.php:123 +#: ../../include/conversation.php:1230 msgid "Share" msgstr "Delen" -#: ../../Zotlabs/Module/Photos.php:1079 ../../Zotlabs/Lib/ThreadItem.php:405 -#: ../../include/conversation.php:741 +#: ../../Zotlabs/Module/Photos.php:1079 ../../Zotlabs/Lib/ThreadItem.php:409 +#: ../../include/conversation.php:737 msgid "Please wait" msgstr "Even wachten" #: ../../Zotlabs/Module/Photos.php:1095 ../../Zotlabs/Module/Photos.php:1213 -#: ../../Zotlabs/Lib/ThreadItem.php:722 +#: ../../Zotlabs/Lib/ThreadItem.php:726 msgid "This is you" msgstr "Dit ben jij" #: ../../Zotlabs/Module/Photos.php:1097 ../../Zotlabs/Module/Photos.php:1215 -#: ../../Zotlabs/Lib/ThreadItem.php:724 ../../include/js_strings.php:6 +#: ../../Zotlabs/Lib/ThreadItem.php:728 ../../include/js_strings.php:6 msgid "Comment" msgstr "Reactie" #: ../../Zotlabs/Module/Photos.php:1099 ../../Zotlabs/Module/Webpages.php:247 -#: ../../Zotlabs/Module/Events.php:473 ../../Zotlabs/Lib/ThreadItem.php:734 -#: ../../include/page_widgets.php:43 ../../include/conversation.php:1201 +#: ../../Zotlabs/Module/Events.php:471 ../../Zotlabs/Lib/ThreadItem.php:738 +#: ../../include/page_widgets.php:43 ../../include/conversation.php:1199 msgid "Preview" msgstr "Voorvertoning" @@ -4573,13 +4134,13 @@ msgstr "mogelijk aanwezig" #: ../../Zotlabs/Module/Photos.php:1132 ../../Zotlabs/Module/Photos.php:1144 #: ../../Zotlabs/Lib/ThreadItem.php:186 ../../Zotlabs/Lib/ThreadItem.php:198 -#: ../../include/conversation.php:1763 +#: ../../include/conversation.php:1765 msgid "View all" msgstr "Toon alles" #: ../../Zotlabs/Module/Photos.php:1136 ../../Zotlabs/Lib/ThreadItem.php:190 -#: ../../include/channel.php:1182 ../../include/conversation.php:1787 -#: ../../include/taxonomy.php:403 +#: ../../include/channel.php:1190 ../../include/taxonomy.php:403 +#: ../../include/conversation.php:1789 msgctxt "noun" msgid "Like" msgid_plural "Likes" @@ -4587,7 +4148,7 @@ msgstr[0] "vindt dit leuk" msgstr[1] "vinden dit leuk" #: ../../Zotlabs/Module/Photos.php:1141 ../../Zotlabs/Lib/ThreadItem.php:195 -#: ../../include/conversation.php:1790 +#: ../../include/conversation.php:1792 msgctxt "noun" msgid "Dislike" msgid_plural "Dislikes" @@ -4606,18 +4167,18 @@ msgstr "Op deze foto:" msgid "Map" msgstr "Kaart" -#: ../../Zotlabs/Module/Photos.php:1263 ../../Zotlabs/Lib/ThreadItem.php:394 +#: ../../Zotlabs/Module/Photos.php:1263 ../../Zotlabs/Lib/ThreadItem.php:398 msgctxt "noun" msgid "Likes" msgstr "vinden dit leuk" -#: ../../Zotlabs/Module/Photos.php:1264 ../../Zotlabs/Lib/ThreadItem.php:395 +#: ../../Zotlabs/Module/Photos.php:1264 ../../Zotlabs/Lib/ThreadItem.php:399 msgctxt "noun" msgid "Dislikes" msgstr "vinden dit niet leuk" -#: ../../Zotlabs/Module/Photos.php:1269 ../../Zotlabs/Lib/ThreadItem.php:400 -#: ../../include/acl_selectors.php:181 +#: ../../Zotlabs/Module/Photos.php:1269 ../../Zotlabs/Lib/ThreadItem.php:404 +#: ../../include/acl_selectors.php:210 msgid "Close" msgstr "Sluiten" @@ -4630,43 +4191,447 @@ msgstr "Album weergeven" msgid "Recent Photos" msgstr "Recente foto's" -#: ../../Zotlabs/Module/New_channel.php:134 -#: ../../Zotlabs/Module/Register.php:237 -msgid "Name or caption" -msgstr "Naam" +#: ../../Zotlabs/Module/Setup.php:176 +msgid "$Projectname Server - Setup" +msgstr "$Projectname Hub - Setup" -#: ../../Zotlabs/Module/New_channel.php:134 -#: ../../Zotlabs/Module/Register.php:237 -msgid "Examples: \"Bob Jameson\", \"Lisa and her Horses\", \"Soccer\", \"Aviation Group\"" -msgstr "Voorbeelden: \"Jan Pietersen\", \"Willems weblog\", \"Computerforum\"" +#: ../../Zotlabs/Module/Setup.php:180 +msgid "Could not connect to database." +msgstr "Could not connect to database." -#: ../../Zotlabs/Module/New_channel.php:136 -#: ../../Zotlabs/Module/Register.php:239 -msgid "Choose a short nickname" -msgstr "Korte bijnaam" +#: ../../Zotlabs/Module/Setup.php:184 +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." -#: ../../Zotlabs/Module/New_channel.php:136 -#: ../../Zotlabs/Module/Register.php:239 +#: ../../Zotlabs/Module/Setup.php:191 +msgid "Could not create table." +msgstr "Could not create table." + +#: ../../Zotlabs/Module/Setup.php:196 +msgid "Your site database has been installed." +msgstr "Your hub database has been installed." + +#: ../../Zotlabs/Module/Setup.php:200 +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." + +#: ../../Zotlabs/Module/Setup.php:201 ../../Zotlabs/Module/Setup.php:263 +#: ../../Zotlabs/Module/Setup.php:745 +msgid "Please see the file \"install/INSTALL.txt\"." +msgstr "Please see the file \"install/INSTALL.txt\"." + +#: ../../Zotlabs/Module/Setup.php:260 +msgid "System check" +msgstr "System check" + +#: ../../Zotlabs/Module/Setup.php:265 +msgid "Check again" +msgstr "Check again" + +#: ../../Zotlabs/Module/Setup.php:287 +msgid "Database connection" +msgstr "Database connection" + +#: ../../Zotlabs/Module/Setup.php:288 +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." + +#: ../../Zotlabs/Module/Setup.php:289 +msgid "" +"Please contact your hosting provider or site administrator if you have " +"questions about these settings." +msgstr "Please contact your hosting provider or server administrator if you have questions about these settings." + +#: ../../Zotlabs/Module/Setup.php:290 +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." + +#: ../../Zotlabs/Module/Setup.php:294 +msgid "Database Server Name" +msgstr "Database Server Name" + +#: ../../Zotlabs/Module/Setup.php:294 +msgid "Default is 127.0.0.1" +msgstr "Default is 127.0.0.1" + +#: ../../Zotlabs/Module/Setup.php:295 +msgid "Database Port" +msgstr "Database Port" + +#: ../../Zotlabs/Module/Setup.php:295 +msgid "Communication port number - use 0 for default" +msgstr "Communication port number - use 0 for default" + +#: ../../Zotlabs/Module/Setup.php:296 +msgid "Database Login Name" +msgstr "Database Login Name" + +#: ../../Zotlabs/Module/Setup.php:297 +msgid "Database Login Password" +msgstr "Database Login Password" + +#: ../../Zotlabs/Module/Setup.php:298 +msgid "Database Name" +msgstr "Database Name" + +#: ../../Zotlabs/Module/Setup.php:299 +msgid "Database Type" +msgstr "Database Type" + +#: ../../Zotlabs/Module/Setup.php:301 ../../Zotlabs/Module/Setup.php:347 +msgid "Site administrator email address" +msgstr "Hub administrator email address" + +#: ../../Zotlabs/Module/Setup.php:301 ../../Zotlabs/Module/Setup.php:347 +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." + +#: ../../Zotlabs/Module/Setup.php:302 ../../Zotlabs/Module/Setup.php:349 +msgid "Website URL" +msgstr "Hub URL" + +#: ../../Zotlabs/Module/Setup.php:302 ../../Zotlabs/Module/Setup.php:349 +msgid "Please use SSL (https) URL if available." +msgstr "Please use SSL (https) URL if available." + +#: ../../Zotlabs/Module/Setup.php:303 ../../Zotlabs/Module/Setup.php:353 +msgid "Please select a default timezone for your website" +msgstr "Please select a default timezone for your hub" + +#: ../../Zotlabs/Module/Setup.php:336 +msgid "Site settings" +msgstr "Hub settings" + +#: ../../Zotlabs/Module/Setup.php:392 +msgid "PHP version 5.5 or greater is required." +msgstr "PHP version 5.5 or greater is required." + +#: ../../Zotlabs/Module/Setup.php:393 +msgid "PHP version" +msgstr "PHP version" + +#: ../../Zotlabs/Module/Setup.php:409 +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." + +#: ../../Zotlabs/Module/Setup.php:410 +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." + +#: ../../Zotlabs/Module/Setup.php:414 +msgid "PHP executable path" +msgstr "PHP executable path" + +#: ../../Zotlabs/Module/Setup.php:414 +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." + +#: ../../Zotlabs/Module/Setup.php:419 +msgid "Command line PHP" +msgstr "Command line PHP" + +#: ../../Zotlabs/Module/Setup.php:429 +msgid "" +"Unable to check command line PHP, as shell_exec() is disabled. This is " +"required." +msgstr "Unable to check command line PHP, as shell_exec() is disabled. This is required." + +#: ../../Zotlabs/Module/Setup.php:432 +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." + +#: ../../Zotlabs/Module/Setup.php:433 +msgid "This is required for message delivery to work." +msgstr "This is required for message delivery to work." + +#: ../../Zotlabs/Module/Setup.php:436 +msgid "PHP register_argc_argv" +msgstr "PHP register_argc_argv" + +#: ../../Zotlabs/Module/Setup.php:454 #, php-format msgid "" -"Your nickname will be used to create an easy to remember channel address " -"e.g. nickname%s" -msgstr "Deze bijnaam wordt gebruikt om een makkelijk te onthouden kanaaladres van jouw kanaal aan te maken, die je dan met anderen kunt delen. Bijvoorbeeld: bijnaam%s" +"Default system theme - may be over-ridden by user profiles - change theme settings" +msgstr "Standaardthema voor $Projectname-hub (kan door lid veranderd worden) - verander thema-instellingen" -#: ../../Zotlabs/Module/New_channel.php:137 -#: ../../Zotlabs/Module/Register.php:240 -msgid "Channel role and privacy" -msgstr "Kanaaltype en privacy" +#: ../../Zotlabs/Module/Setup.php:459 +msgid "You can adjust these settings in the server php.ini file." +msgstr "You can adjust these settings in the server php.ini file." -#: ../../Zotlabs/Module/New_channel.php:137 -#: ../../Zotlabs/Module/Register.php:240 -msgid "Select a channel role with your privacy requirements." -msgstr "Kies een kanaaltype met het door jou gewenste privacyniveau." +#: ../../Zotlabs/Module/Setup.php:461 +msgid "PHP upload limits" +msgstr "PHP upload limits" -#: ../../Zotlabs/Module/New_channel.php:137 -#: ../../Zotlabs/Module/Register.php:240 -msgid "Read more about roles" -msgstr "Lees meer over kanaaltypes" +#: ../../Zotlabs/Module/Setup.php:484 +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" + +#: ../../Zotlabs/Module/Setup.php:485 +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\"." + +#: ../../Zotlabs/Module/Setup.php:488 +msgid "Generate encryption keys" +msgstr "Generate encryption keys" + +#: ../../Zotlabs/Module/Setup.php:500 +msgid "libCurl PHP module" +msgstr "libCurl PHP module" + +#: ../../Zotlabs/Module/Setup.php:501 +msgid "GD graphics PHP module" +msgstr "GD graphics PHP module" + +#: ../../Zotlabs/Module/Setup.php:502 +msgid "OpenSSL PHP module" +msgstr "OpenSSL PHP module" + +#: ../../Zotlabs/Module/Setup.php:503 +msgid "PDO database PHP module" +msgstr "PDO database PHP module" + +#: ../../Zotlabs/Module/Setup.php:504 +msgid "mb_string PHP module" +msgstr "mb_string PHP module" + +#: ../../Zotlabs/Module/Setup.php:505 +msgid "xml PHP module" +msgstr "xml PHP module" + +#: ../../Zotlabs/Module/Setup.php:509 ../../Zotlabs/Module/Setup.php:511 +msgid "Apache mod_rewrite module" +msgstr "Apache mod_rewrite module" + +#: ../../Zotlabs/Module/Setup.php:509 +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." + +#: ../../Zotlabs/Module/Setup.php:515 ../../Zotlabs/Module/Setup.php:518 +msgid "exec" +msgstr "exec" + +#: ../../Zotlabs/Module/Setup.php:515 +msgid "" +"Error: exec is required but is either not installed or has been disabled in " +"php.ini" +msgstr "Error: exec is required but is either not installed or has been disabled in php.ini" + +#: ../../Zotlabs/Module/Setup.php:521 ../../Zotlabs/Module/Setup.php:524 +msgid "shell_exec" +msgstr "shell_exec" + +#: ../../Zotlabs/Module/Setup.php:521 +msgid "" +"Error: shell_exec is required but is either not installed or has been " +"disabled in php.ini" +msgstr "Error: shell_exec is required but is either not installed or has been disabled in php.ini" + +#: ../../Zotlabs/Module/Setup.php:529 +msgid "Error: libCURL PHP module required but not installed." +msgstr "Error: libCURL PHP module required but not installed." + +#: ../../Zotlabs/Module/Setup.php:533 +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." + +#: ../../Zotlabs/Module/Setup.php:537 +msgid "Error: openssl PHP module required but not installed." +msgstr "Error: openssl PHP module required but not installed." + +#: ../../Zotlabs/Module/Setup.php:541 +msgid "Error: PDO database PHP module required but not installed." +msgstr "Error: PDO database PHP module required but not installed." + +#: ../../Zotlabs/Module/Setup.php:545 +msgid "Error: mb_string PHP module required but not installed." +msgstr "Error: mb_string PHP module required but not installed." + +#: ../../Zotlabs/Module/Setup.php:549 +msgid "Error: xml PHP module required for DAV but not installed." +msgstr "Error: xml PHP module required for DAV but not installed." + +#: ../../Zotlabs/Module/Setup.php:567 +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)." + +#: ../../Zotlabs/Module/Setup.php:568 +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." + +#: ../../Zotlabs/Module/Setup.php:569 +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." + +#: ../../Zotlabs/Module/Setup.php:570 +msgid "" +"Import and allow access to public content pulled from other sites. Warning: " +"this content is unmoderated." +msgstr "Toegang verlenen tot openbare berichten die vanuit andere hubs worden geïmporteerd. Waarschuwing: de inhoud van deze berichten wordt niet gemodereerd." + +#: ../../Zotlabs/Module/Setup.php:573 +msgid ".htconfig.php is writable" +msgstr ".htconfig.php is writable" + +#: ../../Zotlabs/Module/Setup.php:587 +msgid "" +"This software uses the Smarty3 template engine to render its web views. " +"Smarty3 compiles templates to PHP to speed up rendering." +msgstr "This software uses the Smarty3 template engine to render its web views. Smarty3 compiles templates to PHP to speed up rendering." + +#: ../../Zotlabs/Module/Setup.php:588 +#, php-format +msgid "" +"In order to store these compiled templates, the web server needs to have " +"write access to the directory %s under the top level web folder." +msgstr "In order to store these compiled templates, the web server needs to have write access to the directory %s under the top level web folder." + +#: ../../Zotlabs/Module/Setup.php:589 ../../Zotlabs/Module/Setup.php:610 +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." + +#: ../../Zotlabs/Module/Setup.php:590 +#, 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." + +#: ../../Zotlabs/Module/Setup.php:593 +#, php-format +msgid "%s is writable" +msgstr "%s is writable" + +#: ../../Zotlabs/Module/Setup.php:609 +msgid "" +"This software uses the store directory to save uploaded files. The web " +"server needs to have write access to the store directory under the top level" +" web folder" +msgstr "This software uses the store directory to save uploaded files. The web server needs to have write access to the store directory under the top level web folder" + +#: ../../Zotlabs/Module/Setup.php:613 +msgid "store is writable" +msgstr "store is writable" + +#: ../../Zotlabs/Module/Setup.php:646 +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." + +#: ../../Zotlabs/Module/Setup.php:647 +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!" + +#: ../../Zotlabs/Module/Setup.php:648 +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." + +#: ../../Zotlabs/Module/Setup.php:649 +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." + +#: ../../Zotlabs/Module/Setup.php:650 +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." + +#: ../../Zotlabs/Module/Setup.php:651 +msgid "" +"Providers are available that issue free certificates which are browser-" +"valid." +msgstr "Providers are available that issue free certificates which are browser-valid." + +#: ../../Zotlabs/Module/Setup.php:653 +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" + +#: ../../Zotlabs/Module/Setup.php:655 +msgid "SSL certificate validation" +msgstr "SSL certificate validation" + +#: ../../Zotlabs/Module/Setup.php:661 +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." + +#: ../../Zotlabs/Module/Setup.php:664 +msgid "Url rewrite is working" +msgstr "Url rewrite is working" + +#: ../../Zotlabs/Module/Setup.php:678 +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." + +#: ../../Zotlabs/Module/Setup.php:702 +#: ../../extend/addon/addon/cdav/cdav.php:41 +#: ../../extend/addon/addon/rendezvous/rendezvous.php:385 +msgid "Errors encountered creating database tables." +msgstr "Errors encountered creating database tables." + +#: ../../Zotlabs/Module/Setup.php:743 +msgid "

        What next

        " +msgstr "

        What next

        " + +#: ../../Zotlabs/Module/Setup.php:744 +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." + +#: ../../Zotlabs/Module/Editpost.php:35 +msgid "Item is not editable" +msgstr "Item is niet te bewerken" + +#: ../../Zotlabs/Module/Regdir.php:49 ../../Zotlabs/Module/Dirsearch.php:25 +msgid "This site is not a directory server" +msgstr "Deze hub is geen kanalengidshub (directoryserver)" #: ../../Zotlabs/Module/New_channel.php:140 msgid "Create Channel" @@ -4684,40 +4649,12 @@ msgid "" "or import an existing channel from another location." msgstr "Of importeer een bestaand kanaal vanaf een andere locatie" -#: ../../Zotlabs/Module/Ping.php:265 -msgid "sent you a private message" -msgstr "stuurde jou een privébericht" - -#: ../../Zotlabs/Module/Ping.php:313 -msgid "added your channel" -msgstr "voegde jouw kanaal toe" - -#: ../../Zotlabs/Module/Ping.php:323 -msgid "g A l F d" -msgstr "G:i, l d F" - -#: ../../Zotlabs/Module/Ping.php:346 -msgid "[today]" -msgstr "[vandaag]" - -#: ../../Zotlabs/Module/Ping.php:355 -msgid "posted an event" -msgstr "plaatste een gebeurtenis" - -#: ../../Zotlabs/Module/Notifications.php:30 -msgid "Invalid request identifier." -msgstr "Ongeldige verzoek identificator (request identifier)" - -#: ../../Zotlabs/Module/Notifications.php:39 -msgid "Discard" -msgstr "Annuleren" - -#: ../../Zotlabs/Module/Notifications.php:103 ../../include/nav.php:196 +#: ../../Zotlabs/Module/Notifications.php:40 ../../include/nav.php:194 msgid "Mark all system notifications seen" msgstr "Markeer alle systeemnotificaties als bekeken" -#: ../../Zotlabs/Module/Poke.php:168 ../../Zotlabs/Lib/Apps.php:228 -#: ../../include/conversation.php:959 +#: ../../Zotlabs/Module/Poke.php:168 ../../Zotlabs/Lib/Apps.php:230 +#: ../../include/conversation.php:941 msgid "Poke" msgstr "Aanstoten" @@ -4745,10 +4682,285 @@ msgstr "Kies wat je met de ontvanger wil doen" msgid "Make this post private" msgstr "Maak dit bericht privé" -#: ../../Zotlabs/Module/Apps.php:46 ../../include/nav.php:168 -#: ../../include/widgets.php:102 -msgid "Apps" -msgstr "Apps" +#: ../../Zotlabs/Module/Profiles.php:24 ../../Zotlabs/Module/Profiles.php:183 +#: ../../Zotlabs/Module/Profiles.php:240 ../../Zotlabs/Module/Profiles.php:619 +#: ../../extend/addon/addon/friendica/dfrn_confirm.php:62 +msgid "Profile not found." +msgstr "Profiel niet gevonden." + +#: ../../Zotlabs/Module/Profiles.php:44 +msgid "Profile deleted." +msgstr "Profiel verwijderd." + +#: ../../Zotlabs/Module/Profiles.php:68 ../../Zotlabs/Module/Profiles.php:104 +msgid "Profile-" +msgstr "Profiel-" + +#: ../../Zotlabs/Module/Profiles.php:89 ../../Zotlabs/Module/Profiles.php:126 +msgid "New profile created." +msgstr "Nieuw profiel aangemaakt." + +#: ../../Zotlabs/Module/Profiles.php:110 +msgid "Profile unavailable to clone." +msgstr "Profiel niet beschikbaar om te klonen" + +#: ../../Zotlabs/Module/Profiles.php:145 +msgid "Profile unavailable to export." +msgstr "Geen profiel beschikbaar om te exporteren" + +#: ../../Zotlabs/Module/Profiles.php:250 +msgid "Profile Name is required." +msgstr "Profielnaam is vereist" + +#: ../../Zotlabs/Module/Profiles.php:421 +msgid "Marital Status" +msgstr "Huwelijke status" + +#: ../../Zotlabs/Module/Profiles.php:425 +msgid "Romantic Partner" +msgstr "Romantische partner" + +#: ../../Zotlabs/Module/Profiles.php:429 ../../Zotlabs/Module/Profiles.php:730 +msgid "Likes" +msgstr "Houdt van" + +#: ../../Zotlabs/Module/Profiles.php:433 ../../Zotlabs/Module/Profiles.php:731 +msgid "Dislikes" +msgstr "Houdt niet van" + +#: ../../Zotlabs/Module/Profiles.php:437 ../../Zotlabs/Module/Profiles.php:738 +msgid "Work/Employment" +msgstr "Werk/arbeid" + +#: ../../Zotlabs/Module/Profiles.php:440 +msgid "Religion" +msgstr "Religie" + +#: ../../Zotlabs/Module/Profiles.php:444 +msgid "Political Views" +msgstr "Politieke overtuigingen" + +#: ../../Zotlabs/Module/Profiles.php:448 +#: ../../extend/addon/addon/openid/MysqlProvider.php:74 +msgid "Gender" +msgstr "Geslacht" + +#: ../../Zotlabs/Module/Profiles.php:452 +msgid "Sexual Preference" +msgstr "Seksuele voorkeur" + +#: ../../Zotlabs/Module/Profiles.php:456 +msgid "Homepage" +msgstr "Homepage" + +#: ../../Zotlabs/Module/Profiles.php:460 +msgid "Interests" +msgstr "Interesses" + +#: ../../Zotlabs/Module/Profiles.php:554 +msgid "Profile updated." +msgstr "Profiel bijgewerkt" + +#: ../../Zotlabs/Module/Profiles.php:638 +msgid "Hide your connections list from viewers of this profile" +msgstr "Laat de lijst met connecties niet aan bezoekers van dit profiel zien." + +#: ../../Zotlabs/Module/Profiles.php:680 +msgid "Edit Profile Details" +msgstr "Profiel bewerken" + +#: ../../Zotlabs/Module/Profiles.php:682 +msgid "View this profile" +msgstr "Profiel weergeven" + +#: ../../Zotlabs/Module/Profiles.php:683 ../../Zotlabs/Module/Profiles.php:765 +#: ../../include/channel.php:983 +msgid "Edit visibility" +msgstr "Zichtbaarheid bewerken" + +#: ../../Zotlabs/Module/Profiles.php:684 +msgid "Profile Tools" +msgstr "Hulpmiddelen" + +#: ../../Zotlabs/Module/Profiles.php:685 +msgid "Change cover photo" +msgstr "Omslagfoto wijzigen" + +#: ../../Zotlabs/Module/Profiles.php:686 ../../include/channel.php:954 +msgid "Change profile photo" +msgstr "Profielfoto veranderen" + +#: ../../Zotlabs/Module/Profiles.php:687 +msgid "Create a new profile using these settings" +msgstr "Een nieuw profiel aanmaken met dit profiel als basis" + +#: ../../Zotlabs/Module/Profiles.php:688 +msgid "Clone this profile" +msgstr "Dit profiel klonen" + +#: ../../Zotlabs/Module/Profiles.php:689 +msgid "Delete this profile" +msgstr "Dit profiel verwijderen" + +#: ../../Zotlabs/Module/Profiles.php:690 +msgid "Add profile things" +msgstr "Dingen aan je profiel toevoegen" + +#: ../../Zotlabs/Module/Profiles.php:691 ../../include/widgets.php:105 +#: ../../include/conversation.php:1567 +msgid "Personal" +msgstr "Persoonlijk" + +#: ../../Zotlabs/Module/Profiles.php:693 +msgid "Relation" +msgstr "Relatie" + +#: ../../Zotlabs/Module/Profiles.php:694 ../../include/datetime.php:55 +msgid "Miscellaneous" +msgstr "Diversen" + +#: ../../Zotlabs/Module/Profiles.php:696 +msgid "Import profile from file" +msgstr "Profiel vanuit bestand importeren" + +#: ../../Zotlabs/Module/Profiles.php:697 +msgid "Export profile to file" +msgstr "Profiel naar bestand exporteren" + +#: ../../Zotlabs/Module/Profiles.php:698 +msgid "Your gender" +msgstr "Jouw geslacht" + +#: ../../Zotlabs/Module/Profiles.php:699 +msgid "Marital status" +msgstr "Burgerlijke staat" + +#: ../../Zotlabs/Module/Profiles.php:700 +msgid "Sexual preference" +msgstr "Seksuele voorkeur" + +#: ../../Zotlabs/Module/Profiles.php:703 +msgid "Profile name" +msgstr "Profielnaam" + +#: ../../Zotlabs/Module/Profiles.php:705 +msgid "This is your default profile." +msgstr "Dit is jouw standaardprofiel" + +#: ../../Zotlabs/Module/Profiles.php:707 +msgid "Your full name" +msgstr "Jouw volledige naam" + +#: ../../Zotlabs/Module/Profiles.php:708 +msgid "Title/Description" +msgstr "Titel/omschrijving" + +#: ../../Zotlabs/Module/Profiles.php:711 +msgid "Street address" +msgstr "Straat en huisnummer" + +#: ../../Zotlabs/Module/Profiles.php:712 +msgid "Locality/City" +msgstr "Woonplaats" + +#: ../../Zotlabs/Module/Profiles.php:713 +msgid "Region/State" +msgstr "Provincie/gewest/deelstaat" + +#: ../../Zotlabs/Module/Profiles.php:714 +msgid "Postal/Zip code" +msgstr "Postcode" + +#: ../../Zotlabs/Module/Profiles.php:715 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1161 +msgid "Country" +msgstr "Land" + +#: ../../Zotlabs/Module/Profiles.php:720 +msgid "Who (if applicable)" +msgstr "Wie (wanneer van toepassing)" + +#: ../../Zotlabs/Module/Profiles.php:720 +msgid "Examples: cathy123, Cathy Williams, cathy@example.com" +msgstr "Voorbeelden: petra123, Petra Jansen, petra@voorbeeld.nl" + +#: ../../Zotlabs/Module/Profiles.php:721 +msgid "Since (date)" +msgstr "Sinds (datum)" + +#: ../../Zotlabs/Module/Profiles.php:724 +msgid "Tell us about yourself" +msgstr "Vertel ons iets over jezelf" + +#: ../../Zotlabs/Module/Profiles.php:725 +#: ../../extend/addon/addon/openid/MysqlProvider.php:68 +msgid "Homepage URL" +msgstr "URL homepagina" + +#: ../../Zotlabs/Module/Profiles.php:726 +msgid "Hometown" +msgstr "Oorspronkelijk uit" + +#: ../../Zotlabs/Module/Profiles.php:727 +msgid "Political views" +msgstr "Politieke overtuigingen" + +#: ../../Zotlabs/Module/Profiles.php:728 +msgid "Religious views" +msgstr "Religieuze overtuigingen" + +#: ../../Zotlabs/Module/Profiles.php:729 +msgid "Keywords used in directory listings" +msgstr "Trefwoorden voor in de kanalengids" + +#: ../../Zotlabs/Module/Profiles.php:729 +msgid "Example: fishing photography software" +msgstr "Voorbeeld: muziek, fotografie, software" + +#: ../../Zotlabs/Module/Profiles.php:732 +msgid "Musical interests" +msgstr "Muzikale interesses" + +#: ../../Zotlabs/Module/Profiles.php:733 +msgid "Books, literature" +msgstr "Boeken/literatuur" + +#: ../../Zotlabs/Module/Profiles.php:734 +msgid "Television" +msgstr "Televisie" + +#: ../../Zotlabs/Module/Profiles.php:735 +msgid "Film/Dance/Culture/Entertainment" +msgstr "Film/dans/cultuur/entertainment" + +#: ../../Zotlabs/Module/Profiles.php:736 +msgid "Hobbies/Interests" +msgstr "Hobby's/interesses" + +#: ../../Zotlabs/Module/Profiles.php:737 +msgid "Love/Romance" +msgstr "Liefde/romantiek" + +#: ../../Zotlabs/Module/Profiles.php:739 +msgid "School/Education" +msgstr "School/opleiding" + +#: ../../Zotlabs/Module/Profiles.php:740 +msgid "Contact information and social networks" +msgstr "Contactinformatie en sociale netwerken" + +#: ../../Zotlabs/Module/Profiles.php:741 +msgid "My other channels" +msgstr "Mijn andere kanalen" + +#: ../../Zotlabs/Module/Profiles.php:761 ../../include/channel.php:979 +msgid "Profile Image" +msgstr "Profielfoto" + +#: ../../Zotlabs/Module/Profiles.php:771 ../../include/channel.php:961 +#: ../../include/nav.php:91 +msgid "Edit Profiles" +msgstr "Bewerk profielen" #: ../../Zotlabs/Module/Oexchange.php:27 msgid "Unable to find your hub." @@ -4758,26 +4970,6 @@ msgstr "Niet in staat om je hub te vinden" msgid "Post successful." msgstr "Verzenden bericht geslaagd." -#: ../../Zotlabs/Module/Profperm.php:34 ../../Zotlabs/Module/Profperm.php:63 -msgid "Invalid profile identifier." -msgstr "Ongeldige profiel-identificator" - -#: ../../Zotlabs/Module/Profperm.php:115 -msgid "Profile Visibility Editor" -msgstr "Zichtbaarheid profiel " - -#: ../../Zotlabs/Module/Profperm.php:117 ../../include/channel.php:1274 -msgid "Profile" -msgstr "Profiel" - -#: ../../Zotlabs/Module/Profperm.php:119 -msgid "Click on a contact to add or remove." -msgstr "Klik op een connectie om deze toe te voegen of te verwijderen" - -#: ../../Zotlabs/Module/Profperm.php:128 -msgid "Visible To" -msgstr "Zichtbaar voor" - #: ../../Zotlabs/Module/Pconfig.php:26 ../../Zotlabs/Module/Pconfig.php:59 msgid "This setting requires special processing and editing has been blocked." msgstr "Deze instelling vereist een speciaal proces en bewerken is geblokkeerd." @@ -4793,66 +4985,7 @@ msgid "" " 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. " -#: ../../Zotlabs/Module/Siteinfo.php:19 -#, php-format -msgid "Version %s" -msgstr "Versie %s" - -#: ../../Zotlabs/Module/Siteinfo.php:34 -msgid "Installed plugins/addons/apps:" -msgstr "Ingeschakelde plugins en apps:" - -#: ../../Zotlabs/Module/Siteinfo.php:36 -msgid "No installed plugins/addons/apps" -msgstr "Geen ingeschakelde plugins en apps" - -#: ../../Zotlabs/Module/Siteinfo.php:49 -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." - -#: ../../Zotlabs/Module/Siteinfo.php:51 -msgid "Tag: " -msgstr "Tag: " - -#: ../../Zotlabs/Module/Siteinfo.php:53 -msgid "Last background fetch: " -msgstr "Meest recente achtergrond-fetch:" - -#: ../../Zotlabs/Module/Siteinfo.php:55 -msgid "Current load average: " -msgstr "Gemiddelde systeembelasting is nu:" - -#: ../../Zotlabs/Module/Siteinfo.php:58 -msgid "Running at web location" -msgstr "Draaiend op weblocatie" - -#: ../../Zotlabs/Module/Siteinfo.php:59 -msgid "" -"Please visit hubzilla.org to learn more " -"about $Projectname." -msgstr "Bezoek hubzilla.org " - -#: ../../Zotlabs/Module/Siteinfo.php:60 -msgid "Bug reports and issues: please visit" -msgstr "Bugrapporten en andere kwesties: bezoek" - -#: ../../Zotlabs/Module/Siteinfo.php:62 -msgid "$projectname issues" -msgstr "$projectname-issues" - -#: ../../Zotlabs/Module/Siteinfo.php:63 -msgid "" -"Suggestions, praise, etc. - please email \"redmatrix\" at librelist - dot " -"com" -msgstr "Voorstellen, lofbetuigingen, enz. - e-mail \"redmatrix\" at librelist - dot com" - -#: ../../Zotlabs/Module/Siteinfo.php:65 -msgid "Site Administrators" -msgstr "Hubbeheerders: " - -#: ../../Zotlabs/Module/Blocks.php:154 ../../include/text.php:2308 +#: ../../Zotlabs/Module/Blocks.php:154 ../../include/text.php:2270 msgid "Blocks" msgstr "Blokken" @@ -4860,13 +4993,13 @@ msgstr "Blokken" msgid "Block Title" msgstr "Bloktitel" -#: ../../Zotlabs/Module/Layouts.php:183 ../../include/text.php:2310 +#: ../../Zotlabs/Module/Layouts.php:183 ../../include/text.php:2272 msgid "Layouts" msgstr "Lay-outs" -#: ../../Zotlabs/Module/Layouts.php:185 ../../Zotlabs/Lib/Apps.php:225 -#: ../../include/help.php:47 ../../include/help.php:52 -#: ../../include/nav.php:164 +#: ../../Zotlabs/Module/Layouts.php:185 ../../Zotlabs/Lib/Apps.php:227 +#: ../../include/nav.php:162 ../../include/help.php:53 +#: ../../include/help.php:59 msgid "Help" msgstr "Hulp" @@ -4882,116 +5015,158 @@ msgstr "Lay-out-omschrijving" msgid "Download PDL file" msgstr "Download PDL-bestand" -#: ../../Zotlabs/Module/Admin.php:97 -msgid "# Accounts" -msgstr "# accounts" +#: ../../Zotlabs/Module/Rate.php:156 +msgid "Website:" +msgstr "Website:" -#: ../../Zotlabs/Module/Admin.php:98 -msgid "# blocked accounts" -msgstr "# geblokkeerde accounts" +#: ../../Zotlabs/Module/Rate.php:159 +#, php-format +msgid "Remote Channel [%s] (not yet known on this site)" +msgstr "Kanaal op afstand [%s] (nog niet op deze hub bekend)" -#: ../../Zotlabs/Module/Admin.php:99 -msgid "# expired accounts" -msgstr "# verlopen accounts" +#: ../../Zotlabs/Module/Rate.php:160 +msgid "Rating (this information is public)" +msgstr "Beoordeling (deze informatie is openbaar)" -#: ../../Zotlabs/Module/Admin.php:100 -msgid "# expiring accounts" -msgstr "# accounts die nog moeten verlopen" +#: ../../Zotlabs/Module/Rate.php:161 +msgid "Optionally explain your rating (this information is public)" +msgstr "Verklaar jouw beoordeling (niet verplicht, deze informatie is openbaar)" -#: ../../Zotlabs/Module/Admin.php:111 -msgid "# Channels" -msgstr "# Kanalen" +#: ../../Zotlabs/Module/Like.php:19 +msgid "Like/Dislike" +msgstr "Leuk/niet leuk" -#: ../../Zotlabs/Module/Admin.php:112 -msgid "# primary" -msgstr "# primair" +#: ../../Zotlabs/Module/Like.php:24 +msgid "This action is restricted to members." +msgstr "Deze actie kan alleen door $Projectname-leden worden uitgevoerd." -#: ../../Zotlabs/Module/Admin.php:113 -msgid "# clones" -msgstr "# klonen" +#: ../../Zotlabs/Module/Like.php:25 +msgid "" +"Please login with your $Projectname ID or register as a new $Projectname member to continue." +msgstr "Je dient in te loggen met je $Projectname-account of een nieuw $Projectname-account aan te maken om verder te kunnen gaan." -#: ../../Zotlabs/Module/Admin.php:119 -msgid "Message queues" -msgstr "Berichtenwachtrij" +#: ../../Zotlabs/Module/Like.php:105 ../../Zotlabs/Module/Like.php:131 +#: ../../Zotlabs/Module/Like.php:169 +msgid "Invalid request." +msgstr "Ongeldig verzoek" -#: ../../Zotlabs/Module/Admin.php:136 -msgid "Your software should be updated" -msgstr "Jouw software moet worden bijgewerkt " +#: ../../Zotlabs/Module/Like.php:117 ../../include/conversation.php:126 +msgid "channel" +msgstr "kanaal" -#: ../../Zotlabs/Module/Admin.php:142 -msgid "Summary" -msgstr "Samenvatting" +#: ../../Zotlabs/Module/Like.php:146 +msgid "thing" +msgstr "ding" -#: ../../Zotlabs/Module/Admin.php:145 -msgid "Registered accounts" -msgstr "Geregistreerde accounts" +#: ../../Zotlabs/Module/Like.php:192 +msgid "Channel unavailable." +msgstr "Kanaal niet beschikbaar." -#: ../../Zotlabs/Module/Admin.php:146 -msgid "Pending registrations" -msgstr "Accounts die op goedkeuring wachten" +#: ../../Zotlabs/Module/Like.php:240 +msgid "Previous action reversed." +msgstr "Vorige actie omgedraaid" -#: ../../Zotlabs/Module/Admin.php:147 -msgid "Registered channels" -msgstr "Geregistreerde kanalen" +#: ../../Zotlabs/Module/Like.php:370 ../../Zotlabs/Module/Subthread.php:87 +#: ../../Zotlabs/Module/Tagger.php:47 +#: ../../extend/addon/addon/diaspora/inbound.php:1794 +#: ../../extend/addon/addon/redphotos/redphotohelper.php:74 +#: ../../include/text.php:1940 ../../include/conversation.php:120 +msgid "photo" +msgstr "foto" -#: ../../Zotlabs/Module/Admin.php:148 -msgid "Active plugins" -msgstr "Ingeschakelde plugins" +#: ../../Zotlabs/Module/Like.php:370 ../../Zotlabs/Module/Subthread.php:87 +#: ../../extend/addon/addon/diaspora/inbound.php:1794 +#: ../../include/text.php:1946 ../../include/conversation.php:148 +msgid "status" +msgstr "bericht" -#: ../../Zotlabs/Module/Admin.php:149 -msgid "Version" -msgstr "Versie" +#: ../../Zotlabs/Module/Like.php:372 ../../Zotlabs/Module/Tagger.php:51 +#: ../../Zotlabs/Module/Events.php:256 ../../include/text.php:1943 +#: ../../include/event.php:961 ../../include/conversation.php:123 +msgid "event" +msgstr "gebeurtenis" -#: ../../Zotlabs/Module/Admin.php:150 -msgid "Repository version (master)" -msgstr "Versie repository (master)" +#: ../../Zotlabs/Module/Like.php:419 +#: ../../extend/addon/addon/diaspora/inbound.php:1823 +#: ../../include/conversation.php:164 +#, php-format +msgid "%1$s likes %2$s's %3$s" +msgstr "%1$s vindt %3$s van %2$s leuk" -#: ../../Zotlabs/Module/Admin.php:151 -msgid "Repository version (dev)" -msgstr "Versie repository (dev)" +#: ../../Zotlabs/Module/Like.php:421 ../../include/conversation.php:167 +#, php-format +msgid "%1$s doesn't like %2$s's %3$s" +msgstr "%1$s vindt %3$s van %2$s niet leuk" + +#: ../../Zotlabs/Module/Like.php:423 +#, php-format +msgid "%1$s agrees with %2$s's %3$s" +msgstr "%1$s is het eens met %2$s's %3$s" + +#: ../../Zotlabs/Module/Like.php:425 +#, php-format +msgid "%1$s doesn't agree with %2$s's %3$s" +msgstr "%1$s is het niet eens met %2$s's %3$s" + +#: ../../Zotlabs/Module/Like.php:427 +#, php-format +msgid "%1$s abstains from a decision on %2$s's %3$s" +msgstr "%1$s onthoudt zich van een besluit over %2$s's %3$s" + +#: ../../Zotlabs/Module/Like.php:429 +#, php-format +msgid "%1$s is attending %2$s's %3$s" +msgstr "%1$s is aanwezig op %2$s's %3$s" + +#: ../../Zotlabs/Module/Like.php:431 +#, php-format +msgid "%1$s is not attending %2$s's %3$s" +msgstr "%1$s is niet aanwezig op %2$s's %3$s" + +#: ../../Zotlabs/Module/Like.php:433 +#, php-format +msgid "%1$s may attend %2$s's %3$s" +msgstr "%1$s is mogelijk aanwezig op %2$s's %3$s" + +#: ../../Zotlabs/Module/Like.php:538 +msgid "Action completed." +msgstr "Actie voltooid" + +#: ../../Zotlabs/Module/Like.php:539 +msgid "Thank you." +msgstr "Bedankt" #: ../../Zotlabs/Module/Profile_photo.php:186 +#: ../../extend/addon/addon/openclipatar/openclipatar.php:293 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." -#: ../../Zotlabs/Module/Profile_photo.php:389 +#: ../../Zotlabs/Module/Profile_photo.php:409 +msgid "Use Photo for Profile" +msgstr "Als profielfoto gebruiken" + +#: ../../Zotlabs/Module/Profile_photo.php:409 msgid "Upload Profile Photo" msgstr "Profielfoto uploaden" -#: ../../Zotlabs/Module/Cal.php:69 -msgid "Permissions denied." -msgstr "Permissies niet toegestaan" +#: ../../Zotlabs/Module/Profile_photo.php:410 +#: ../../extend/addon/addon/openclipatar/openclipatar.php:181 +#: ../../extend/addon/addon/openclipatar/openclipatar.php:193 +msgid "Use" +msgstr "Gebruiken" -#: ../../Zotlabs/Module/Cal.php:259 ../../Zotlabs/Module/Events.php:597 -msgid "l, F j" -msgstr "l j F" +#: ../../Zotlabs/Module/Search.php:223 +#, php-format +msgid "Items tagged with: %s" +msgstr "Items getagd met %s" -#: ../../Zotlabs/Module/Cal.php:308 ../../Zotlabs/Module/Events.php:646 -#: ../../include/text.php:1762 -msgid "Link to Source" -msgstr "Originele locatie" - -#: ../../Zotlabs/Module/Cal.php:331 ../../Zotlabs/Module/Events.php:674 -msgid "Edit Event" -msgstr "Gebeurtenis bewerken" - -#: ../../Zotlabs/Module/Cal.php:331 ../../Zotlabs/Module/Events.php:674 -msgid "Create Event" -msgstr "Gebeurtenis aanmaken" - -#: ../../Zotlabs/Module/Cal.php:334 ../../Zotlabs/Module/Events.php:677 -msgid "Export" -msgstr "Exporteren" - -#: ../../Zotlabs/Module/Cal.php:337 ../../include/text.php:2332 -msgid "Import" -msgstr "Importeren" - -#: ../../Zotlabs/Module/Cal.php:341 ../../Zotlabs/Module/Events.php:686 -msgid "Today" -msgstr "Vandaag" +#: ../../Zotlabs/Module/Search.php:225 +#, php-format +msgid "Search results for: %s" +msgstr "Zoekresultaten voor %s" #: ../../Zotlabs/Module/Common.php:14 msgid "No channel." @@ -5005,127 +5180,154 @@ msgstr "Veel voorkomende connecties" msgid "No connections in common." msgstr "Geen gemeenschappelijke connecties." -#: ../../Zotlabs/Module/Ratings.php:70 -msgid "No ratings" -msgstr "Geen beoordelingen" +#: ../../Zotlabs/Module/Api.php:72 ../../Zotlabs/Module/Api.php:93 +msgid "Authorize application connection" +msgstr "Geef toestemming voor applicatiekoppeling" -#: ../../Zotlabs/Module/Ratings.php:98 -msgid "Rating: " -msgstr "Beoordeling: " +#: ../../Zotlabs/Module/Api.php:73 +msgid "Return to your app and insert this Security Code:" +msgstr "Ga terug naar je app en voeg deze beveiligingscode in:" -#: ../../Zotlabs/Module/Ratings.php:99 -msgid "Website: " -msgstr "Website: " +#: ../../Zotlabs/Module/Api.php:83 +msgid "Please login to continue." +msgstr "Inloggen om verder te kunnen gaan." -#: ../../Zotlabs/Module/Ratings.php:101 -msgid "Description: " -msgstr "Omschrijving: " - -#: ../../Zotlabs/Module/Register.php:49 -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." - -#: ../../Zotlabs/Module/Register.php:55 +#: ../../Zotlabs/Module/Api.php:95 msgid "" -"Please indicate acceptance of the Terms of Service. Registration failed." -msgstr "Registratie mislukt. De gebruiksvoorwaarden dienen wel geaccepteerd te worden." +"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?" -#: ../../Zotlabs/Module/Register.php:89 -msgid "Passwords do not match." -msgstr "Wachtwoorden komen niet met elkaar overeen." +#: ../../Zotlabs/Module/Ping.php:254 +msgid "sent you a private message" +msgstr "stuurde jou een privébericht" -#: ../../Zotlabs/Module/Register.php:131 +#: ../../Zotlabs/Module/Ping.php:302 +msgid "added your channel" +msgstr "voegde jouw kanaal toe" + +#: ../../Zotlabs/Module/Ping.php:312 +msgid "g A l F d" +msgstr "G:i, l d F" + +#: ../../Zotlabs/Module/Ping.php:330 +msgid "[today]" +msgstr "[vandaag]" + +#: ../../Zotlabs/Module/Ping.php:339 +msgid "posted an event" +msgstr "plaatste een gebeurtenis" + +#: ../../Zotlabs/Module/Siteinfo.php:20 +msgid "About this site" +msgstr "Over deze hub" + +#: ../../Zotlabs/Module/Siteinfo.php:21 +msgid "Site Name" +msgstr "Hubnaam" + +#: ../../Zotlabs/Module/Siteinfo.php:25 ../../include/network.php:1962 +msgid "Administrator" +msgstr "Beheerder" + +#: ../../Zotlabs/Module/Siteinfo.php:28 +msgid "Software and Project information" +msgstr "Software- en projectinformatie" + +#: ../../Zotlabs/Module/Siteinfo.php:29 +msgid "This site is powered by $Projectname" +msgstr "Dit is een $Projectname-hub" + +#: ../../Zotlabs/Module/Siteinfo.php:30 msgid "" -"Registration successful. Please check your email for validation " -"instructions." -msgstr "Registratie geslaagd. Controleer je e-mail voor instructies." +"Federated and decentralised networking and identity services provided by Zot" +msgstr "Federatieve en gedecentraliseerde netwerk- en identiteitsdiensten, mogelijk gemaakt door Zot" -#: ../../Zotlabs/Module/Register.php:137 -msgid "Your registration is pending approval by the site owner." -msgstr "Jouw accountregistratie wacht op goedkeuring van de beheerder van deze $Projectname-hub." - -#: ../../Zotlabs/Module/Register.php:140 -msgid "Your registration can not be processed." -msgstr "Jouw registratie kan niet verwerkt worden." - -#: ../../Zotlabs/Module/Register.php:184 -msgid "Registration on this hub is disabled." -msgstr "Registreren van nieuwe accounts is op deze hub uitgeschakeld." - -#: ../../Zotlabs/Module/Register.php:193 -msgid "Registration on this hub is by approval only." -msgstr "Registraties op deze hub moeten eerst worden goedgekeurd." - -#: ../../Zotlabs/Module/Register.php:194 -msgid "Register at another affiliated hub." -msgstr "Registreer op een andere hub." - -#: ../../Zotlabs/Module/Register.php:204 -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." - -#: ../../Zotlabs/Module/Register.php:221 -msgid "Terms of Service" -msgstr "Gebruiksvoorwaarden" - -#: ../../Zotlabs/Module/Register.php:227 +#: ../../Zotlabs/Module/Siteinfo.php:32 #, php-format -msgid "I accept the %s for this website" -msgstr "Ik accepteer de %s van deze $Projectname-hub" +msgid "Version %s" +msgstr "Versie %s" -#: ../../Zotlabs/Module/Register.php:229 +#: ../../Zotlabs/Module/Siteinfo.php:33 +msgid "Project homepage" +msgstr "Projectwebsite" + +#: ../../Zotlabs/Module/Siteinfo.php:34 +msgid "Developer homepage" +msgstr "Ontwikkelaarswebsite" + +#: ../../Zotlabs/Module/Lostpass.php:19 +msgid "No valid account found." +msgstr "Geen geldige account gevonden." + +#: ../../Zotlabs/Module/Lostpass.php:33 +msgid "Password reset request issued. Check your email." +msgstr "Het verzoek om je wachtwoord opnieuw in te stellen is behandeld. Controleer je e-mail." + +#: ../../Zotlabs/Module/Lostpass.php:39 ../../Zotlabs/Module/Lostpass.php:108 #, php-format -msgid "I am over 13 years of age and accept the %s for this website" -msgstr "Ik ben 13 jaar of ouder en accepteer de %s van deze $Projectname-hub" +msgid "Site Member (%s)" +msgstr "Lid van hub (%s)" -#: ../../Zotlabs/Module/Register.php:233 -msgid "Your email address" -msgstr "Jouw e-mailadres" +#: ../../Zotlabs/Module/Lostpass.php:44 ../../Zotlabs/Module/Lostpass.php:49 +#, php-format +msgid "Password reset requested at %s" +msgstr "Verzoek tot het opnieuw instellen van een wachtwoord op %s is ingediend" -#: ../../Zotlabs/Module/Register.php:234 -msgid "Choose a password" -msgstr "Geef een wachtwoord op" - -#: ../../Zotlabs/Module/Register.php:235 -msgid "Please re-enter your password" -msgstr "Geef het wachtwoord opnieuw op" - -#: ../../Zotlabs/Module/Register.php:236 -msgid "Please enter your invitation code" -msgstr "Vul jouw uitnodigingscode in" - -#: ../../Zotlabs/Module/Register.php:241 -msgid "no" -msgstr "Nee" - -#: ../../Zotlabs/Module/Register.php:241 -msgid "yes" -msgstr "Ja" - -#: ../../Zotlabs/Module/Register.php:258 -msgid "Membership on this site is by invitation only." -msgstr "Registreren op deze $Projectname-hub kan alleen op uitnodiging." - -#: ../../Zotlabs/Module/Register.php:270 ../../include/nav.php:152 -#: ../../boot.php:1721 -msgid "Register" -msgstr "Registreren" - -#: ../../Zotlabs/Module/Register.php:271 +#: ../../Zotlabs/Module/Lostpass.php:68 msgid "" -"This site may require email verification after submitting this form. If you " -"are returned to a login page, please check your email for instructions." -msgstr "Mogelijk moet op deze hub eerst jouw e-mail geverifieerd worden. Wanneer je na het indienen van dit formulier op de inlogpagina terecht komt, dan dien je jouw e-mail te controleren voor instructies. Controleer eventueel ook jouw spamfolder." +"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." -#: ../../Zotlabs/Module/Help.php:27 -msgid "Documentation Search" -msgstr "Zoek documentatie" +#: ../../Zotlabs/Module/Lostpass.php:91 ../../boot.php:1728 +msgid "Password Reset" +msgstr "Wachtwoord vergeten?" -#: ../../Zotlabs/Module/Help.php:57 -msgid "$Projectname Documentation" -msgstr "$Projectname-documentatie" +#: ../../Zotlabs/Module/Lostpass.php:92 +msgid "Your password has been reset as requested." +msgstr "Jouw wachtwoord is opnieuw ingesteld zoals je had verzocht." + +#: ../../Zotlabs/Module/Lostpass.php:93 +msgid "Your new password is" +msgstr "Jouw nieuwe wachtwoord is" + +#: ../../Zotlabs/Module/Lostpass.php:94 +msgid "Save or copy your new password - and then" +msgstr "Kopieer of sla je nieuwe wachtwoord op - en" + +#: ../../Zotlabs/Module/Lostpass.php:95 +msgid "click here to login" +msgstr "klik dan hier om in te loggen" + +#: ../../Zotlabs/Module/Lostpass.php:96 +msgid "" +"Your password may be changed from the Settings page after " +"successful login." +msgstr "Jouw wachtwoord kan worden veranderd onder instellingen, nadat je succesvol bent ingelogd." + +#: ../../Zotlabs/Module/Lostpass.php:117 +#, php-format +msgid "Your password has changed at %s" +msgstr "Jouw wachtwoord op %s is veranderd" + +#: ../../Zotlabs/Module/Lostpass.php:130 +msgid "Forgot your Password?" +msgstr "Wachtwoord vergeten?" + +#: ../../Zotlabs/Module/Lostpass.php:131 +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." + +#: ../../Zotlabs/Module/Lostpass.php:132 +msgid "Email Address" +msgstr "E-mailadres" + +#: ../../Zotlabs/Module/Lostpass.php:133 +msgid "Reset" +msgstr "Opnieuw instellen" #: ../../Zotlabs/Module/Rbmark.php:94 msgid "Select a bookmark folder" @@ -5143,6 +5345,10 @@ msgstr "URL van bladwijzer" msgid "Or enter new bookmark folder name" msgstr "Of geef de naam op van een nieuwe bladwijzermap" +#: ../../Zotlabs/Module/Dirsearch.php:33 +msgid "This directory server requires an access token" +msgstr "Deze kanalengidshub (directoryserver) heeft een toegangs-token nodig" + #: ../../Zotlabs/Module/Rmagic.php:35 msgid "Authentication failed." msgstr "Authenticatie mislukt." @@ -5173,12 +5379,27 @@ msgstr "Het verwijderen van een account is niet toegestaan binnen 48 uur nadat h msgid "Remove This Account" msgstr "Verwijder dit account" +#: ../../Zotlabs/Module/Removeaccount.php:58 +#: ../../Zotlabs/Module/Removeme.php:61 +msgid "WARNING: " +msgstr "WAARSCHUWING: " + #: ../../Zotlabs/Module/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." +#: ../../Zotlabs/Module/Removeaccount.php:58 +#: ../../Zotlabs/Module/Removeme.php:61 +msgid "This action is permanent and can not be undone!" +msgstr "Deze handeling is van permanente aard en kan niet meer worden teruggedraaid!" + +#: ../../Zotlabs/Module/Removeaccount.php:59 +#: ../../Zotlabs/Module/Removeme.php:62 +msgid "Please enter your password for verification:" +msgstr "Vul je wachtwoord in ter verificatie:" + #: ../../Zotlabs/Module/Removeaccount.php:60 msgid "" "Remove this account, all its channels and all its channel clones from the " @@ -5192,62 +5413,33 @@ msgid "" msgstr "Standaard worden alleen de kanalen die zich op deze hub bevinden uit het $Projectname-netwerk verwijderd" #: ../../Zotlabs/Module/Removeaccount.php:61 -#: ../../Zotlabs/Module/Settings/Account.php:128 +#: ../../Zotlabs/Module/Settings/Account.php:120 msgid "Remove Account" msgstr "Account verwijderen" -#: ../../Zotlabs/Module/Webpages.php:52 -msgid "Import Webpage Elements" -msgstr "Webpagina-elementen importeren" +#: ../../Zotlabs/Module/Pdledit.php:21 +msgid "Layout updated." +msgstr "Lay-out bijgewerkt." -#: ../../Zotlabs/Module/Webpages.php:53 -msgid "Import selected" -msgstr "Importbestand geselecteerd" +#: ../../Zotlabs/Module/Pdledit.php:34 ../../Zotlabs/Module/Chat.php:218 +msgid "Feature disabled." +msgstr "Functie uitgeschakeld." -#: ../../Zotlabs/Module/Webpages.php:76 -msgid "Export Webpage Elements" -msgstr "Webpagina-elementen exporteren" +#: ../../Zotlabs/Module/Pdledit.php:42 ../../Zotlabs/Module/Pdledit.php:69 +msgid "Edit System Page Description" +msgstr "Systeempagina's bewerken" -#: ../../Zotlabs/Module/Webpages.php:77 -msgid "Export selected" -msgstr "Selectie exporteren" +#: ../../Zotlabs/Module/Pdledit.php:64 +msgid "Layout not found." +msgstr "Lay-out niet gevonden." -#: ../../Zotlabs/Module/Webpages.php:237 ../../Zotlabs/Lib/Apps.php:218 -#: ../../include/nav.php:109 ../../include/conversation.php:1725 -msgid "Webpages" -msgstr "Webpagina's" +#: ../../Zotlabs/Module/Pdledit.php:70 +msgid "Module Name:" +msgstr "Modulenaam:" -#: ../../Zotlabs/Module/Webpages.php:248 ../../include/page_widgets.php:44 -msgid "Actions" -msgstr "Acties" - -#: ../../Zotlabs/Module/Webpages.php:249 ../../include/page_widgets.php:45 -msgid "Page Link" -msgstr "Paginalink" - -#: ../../Zotlabs/Module/Webpages.php:250 -msgid "Page Title" -msgstr "Paginatitel" - -#: ../../Zotlabs/Module/Webpages.php:280 -msgid "Invalid file type." -msgstr "Ongeldig bestandsformaat" - -#: ../../Zotlabs/Module/Webpages.php:292 -msgid "Error opening zip file" -msgstr "Fout met openen zipbestand" - -#: ../../Zotlabs/Module/Webpages.php:303 -msgid "Invalid folder path." -msgstr "Ongeldige maplocatie" - -#: ../../Zotlabs/Module/Webpages.php:330 -msgid "No webpage elements detected." -msgstr "Geen webpagina-elementen gedecteerd" - -#: ../../Zotlabs/Module/Webpages.php:405 -msgid "Import complete." -msgstr "Importeren voltooid." +#: ../../Zotlabs/Module/Pdledit.php:71 +msgid "Layout Help" +msgstr "Lay-out-hulp" #: ../../Zotlabs/Module/Uexport.php:55 ../../Zotlabs/Module/Uexport.php:56 msgid "Export Channel" @@ -5307,241 +5499,201 @@ msgid "" " 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 %2$s te bezoeken. Voor het beste resultaat kan je de bestanden in chronologische volgorde importeren of herstellen." -#: ../../Zotlabs/Module/Editpost.php:35 -msgid "Item is not editable" -msgstr "Item is niet te bewerken" +#: ../../Zotlabs/Module/Cal.php:69 +msgid "Permissions denied." +msgstr "Permissies niet toegestaan" -#: ../../Zotlabs/Module/Search.php:216 -#, php-format -msgid "Items tagged with: %s" -msgstr "Items getagd met %s" +#: ../../Zotlabs/Module/Cal.php:263 ../../Zotlabs/Module/Events.php:596 +msgid "l, F j" +msgstr "l j F" -#: ../../Zotlabs/Module/Search.php:218 -#, php-format -msgid "Search results for: %s" -msgstr "Zoekresultaten voor %s" +#: ../../Zotlabs/Module/Cal.php:312 ../../Zotlabs/Module/Events.php:651 +#: ../../include/text.php:1748 +msgid "Link to Source" +msgstr "Originele locatie" -#: ../../Zotlabs/Module/Events.php:25 -msgid "Calendar entries imported." -msgstr "Agenda-items geïmporteerd." - -#: ../../Zotlabs/Module/Events.php:27 -msgid "No calendar entries found." -msgstr "Geen agenda-items gevonden." - -#: ../../Zotlabs/Module/Events.php:104 -msgid "Event can not end before it has started." -msgstr "Gebeurtenis kan niet eindigen voordat het is begonnen" - -#: ../../Zotlabs/Module/Events.php:106 ../../Zotlabs/Module/Events.php:115 -#: ../../Zotlabs/Module/Events.php:135 -msgid "Unable to generate preview." -msgstr "Niet in staat om voorvertoning te genereren" - -#: ../../Zotlabs/Module/Events.php:113 -msgid "Event title and start time are required." -msgstr "Titel en begintijd van gebeurtenis zijn vereist." - -#: ../../Zotlabs/Module/Events.php:133 ../../Zotlabs/Module/Events.php:258 -msgid "Event not found." -msgstr "Gebeurtenis niet gevonden" - -#: ../../Zotlabs/Module/Events.php:452 -msgid "Edit event title" -msgstr "Titel bewerken" - -#: ../../Zotlabs/Module/Events.php:452 -msgid "Event title" -msgstr "Titel" - -#: ../../Zotlabs/Module/Events.php:454 -msgid "Categories (comma-separated list)" -msgstr "Categorieën (door komma's gescheiden lijst)" - -#: ../../Zotlabs/Module/Events.php:455 -msgid "Edit Category" -msgstr "Categorie" - -#: ../../Zotlabs/Module/Events.php:455 -msgid "Category" -msgstr "Categorie" - -#: ../../Zotlabs/Module/Events.php:458 -msgid "Edit start date and time" -msgstr "Begindatum en -tijd bewerken" - -#: ../../Zotlabs/Module/Events.php:458 -msgid "Start date and time" -msgstr "Begindatum en -tijd" - -#: ../../Zotlabs/Module/Events.php:459 ../../Zotlabs/Module/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" - -#: ../../Zotlabs/Module/Events.php:461 -msgid "Edit finish date and time" -msgstr "Einddatum en -tijd bewerken" - -#: ../../Zotlabs/Module/Events.php:461 -msgid "Finish date and time" -msgstr "Einddatum en -tijd" - -#: ../../Zotlabs/Module/Events.php:463 ../../Zotlabs/Module/Events.php:464 -msgid "Adjust for viewer timezone" -msgstr "Aanpassen aan de tijdzone van wie deze gebeurtenis bekijkt" - -#: ../../Zotlabs/Module/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." - -#: ../../Zotlabs/Module/Events.php:465 -msgid "Edit Description" -msgstr "Omschrijving bewerken" - -#: ../../Zotlabs/Module/Events.php:467 -msgid "Edit Location" -msgstr "Locatie bewerken" - -#: ../../Zotlabs/Module/Events.php:470 ../../Zotlabs/Module/Events.php:472 -msgid "Share this event" -msgstr "Deel deze gebeurtenis" - -#: ../../Zotlabs/Module/Events.php:474 ../../include/conversation.php:1264 -msgid "Permission settings" -msgstr "Permissies" - -#: ../../Zotlabs/Module/Events.php:485 -msgid "Advanced Options" -msgstr "Geavanceerde opties" - -#: ../../Zotlabs/Module/Events.php:619 -msgid "Edit event" +#: ../../Zotlabs/Module/Cal.php:335 ../../Zotlabs/Module/Events.php:679 +msgid "Edit Event" msgstr "Gebeurtenis bewerken" -#: ../../Zotlabs/Module/Events.php:621 -msgid "Delete event" -msgstr "Gebeurtenis verwijderen" +#: ../../Zotlabs/Module/Cal.php:335 ../../Zotlabs/Module/Events.php:679 +msgid "Create Event" +msgstr "Gebeurtenis aanmaken" -#: ../../Zotlabs/Module/Events.php:655 -msgid "calendar" -msgstr "agenda" +#: ../../Zotlabs/Module/Cal.php:338 ../../Zotlabs/Module/Events.php:682 +msgid "Export" +msgstr "Exporteren" -#: ../../Zotlabs/Module/Events.php:681 -msgid "Month" -msgstr "Maand" +#: ../../Zotlabs/Module/Cal.php:341 ../../include/text.php:2294 +msgid "Import" +msgstr "Importeren" -#: ../../Zotlabs/Module/Events.php:682 -msgid "Week" -msgstr "Week" +#: ../../Zotlabs/Module/Cal.php:345 ../../Zotlabs/Module/Events.php:691 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:848 +msgid "Today" +msgstr "Vandaag" -#: ../../Zotlabs/Module/Events.php:683 -msgid "Day" -msgstr "Dag" +#: ../../Zotlabs/Module/Admin.php:94 +msgid "# Accounts" +msgstr "# accounts" -#: ../../Zotlabs/Module/Events.php:717 -msgid "Event removed" -msgstr "Gebeurtenis verwijderd" +#: ../../Zotlabs/Module/Admin.php:95 +msgid "# blocked accounts" +msgstr "# geblokkeerde accounts" -#: ../../Zotlabs/Module/Events.php:720 -msgid "Failed to remove event" -msgstr "Verwijderen gebeurtenis mislukt" +#: ../../Zotlabs/Module/Admin.php:96 +msgid "# expired accounts" +msgstr "# verlopen accounts" + +#: ../../Zotlabs/Module/Admin.php:97 +msgid "# expiring accounts" +msgstr "# accounts die nog moeten verlopen" + +#: ../../Zotlabs/Module/Admin.php:108 +msgid "# Channels" +msgstr "# Kanalen" + +#: ../../Zotlabs/Module/Admin.php:109 +msgid "# primary" +msgstr "# primair" + +#: ../../Zotlabs/Module/Admin.php:110 +msgid "# clones" +msgstr "# klonen" + +#: ../../Zotlabs/Module/Admin.php:116 +msgid "Message queues" +msgstr "Berichtenwachtrij" + +#: ../../Zotlabs/Module/Admin.php:133 +msgid "Your software should be updated" +msgstr "Jouw software moet worden bijgewerkt " + +#: ../../Zotlabs/Module/Admin.php:138 +msgid "Summary" +msgstr "Samenvatting" + +#: ../../Zotlabs/Module/Admin.php:141 +msgid "Registered accounts" +msgstr "Geregistreerde accounts" + +#: ../../Zotlabs/Module/Admin.php:142 +msgid "Pending registrations" +msgstr "Accounts die op goedkeuring wachten" + +#: ../../Zotlabs/Module/Admin.php:143 +msgid "Registered channels" +msgstr "Geregistreerde kanalen" + +#: ../../Zotlabs/Module/Admin.php:144 +msgid "Active plugins" +msgstr "Ingeschakelde plugins" + +#: ../../Zotlabs/Module/Admin.php:145 +msgid "Version" +msgstr "Versie" + +#: ../../Zotlabs/Module/Admin.php:146 +msgid "Repository version (master)" +msgstr "Versie repository (master)" + +#: ../../Zotlabs/Module/Admin.php:147 +msgid "Repository version (dev)" +msgstr "Versie repository (dev)" + +#: ../../Zotlabs/Module/Lockview.php:75 +msgid "Remote privacy information not available." +msgstr "Privacy-informatie op afstand niet beschikbaar." + +#: ../../Zotlabs/Module/Lockview.php:96 +msgid "Visible to:" +msgstr "Zichtbaar voor:" #: ../../Zotlabs/Module/Service_limits.php:23 msgid "No service class restrictions found." msgstr "Geen abonnementsbeperkingen gevonden." -#: ../../Zotlabs/Module/Thing.php:114 -msgid "Thing updated" -msgstr "Ding bijgewerkt" +#: ../../Zotlabs/Module/Webpages.php:52 +msgid "Import Webpage Elements" +msgstr "Webpagina-elementen importeren" -#: ../../Zotlabs/Module/Thing.php:166 -msgid "Object store: failed" -msgstr "Opslaan van ding mislukt" +#: ../../Zotlabs/Module/Webpages.php:53 +msgid "Import selected" +msgstr "Importbestand geselecteerd" -#: ../../Zotlabs/Module/Thing.php:170 -msgid "Thing added" -msgstr "Ding toegevoegd" +#: ../../Zotlabs/Module/Webpages.php:76 +msgid "Export Webpage Elements" +msgstr "Webpagina-elementen exporteren" -#: ../../Zotlabs/Module/Thing.php:196 -#, php-format -msgid "OBJ: %1$s %2$s %3$s" -msgstr "OBJ: %1$s %2$s %3$s" +#: ../../Zotlabs/Module/Webpages.php:77 +msgid "Export selected" +msgstr "Selectie exporteren" -#: ../../Zotlabs/Module/Thing.php:259 -msgid "Show Thing" -msgstr "Ding weergeven" +#: ../../Zotlabs/Module/Webpages.php:237 ../../Zotlabs/Lib/Apps.php:220 +#: ../../include/nav.php:109 ../../include/conversation.php:1727 +msgid "Webpages" +msgstr "Webpagina's" -#: ../../Zotlabs/Module/Thing.php:266 -msgid "item not found." -msgstr "Item niet gevonden" +#: ../../Zotlabs/Module/Webpages.php:248 ../../include/page_widgets.php:44 +msgid "Actions" +msgstr "Acties" -#: ../../Zotlabs/Module/Thing.php:299 -msgid "Edit Thing" -msgstr "Ding bewerken" +#: ../../Zotlabs/Module/Webpages.php:249 ../../include/page_widgets.php:45 +msgid "Page Link" +msgstr "Paginalink" -#: ../../Zotlabs/Module/Thing.php:301 ../../Zotlabs/Module/Thing.php:355 -msgid "Select a profile" -msgstr "Kies een profiel" +#: ../../Zotlabs/Module/Webpages.php:250 +msgid "Page Title" +msgstr "Paginatitel" -#: ../../Zotlabs/Module/Thing.php:305 ../../Zotlabs/Module/Thing.php:358 -msgid "Post an activity" -msgstr "Plaats een bericht" +#: ../../Zotlabs/Module/Webpages.php:280 +msgid "Invalid file type." +msgstr "Ongeldig bestandsformaat" -#: ../../Zotlabs/Module/Thing.php:305 ../../Zotlabs/Module/Thing.php:358 -msgid "Only sends to viewers of the applicable profile" -msgstr "Toont dit alleen aan diegene die het gekozen profiel mogen zien." +#: ../../Zotlabs/Module/Webpages.php:292 +msgid "Error opening zip file" +msgstr "Fout tijdens openen zipbestand" -#: ../../Zotlabs/Module/Thing.php:307 ../../Zotlabs/Module/Thing.php:360 -msgid "Name of thing e.g. something" -msgstr "Naam van ding" +#: ../../Zotlabs/Module/Webpages.php:303 +msgid "Invalid folder path." +msgstr "Ongeldige maplocatie" -#: ../../Zotlabs/Module/Thing.php:309 ../../Zotlabs/Module/Thing.php:361 -msgid "URL of thing (optional)" -msgstr "URL van ding (optioneel)" +#: ../../Zotlabs/Module/Webpages.php:330 +msgid "No webpage elements detected." +msgstr "Geen webpagina-elementen gedecteerd" -#: ../../Zotlabs/Module/Thing.php:311 ../../Zotlabs/Module/Thing.php:362 -msgid "URL for photo of thing (optional)" -msgstr "URL voor foto van ding (optioneel)" +#: ../../Zotlabs/Module/Webpages.php:405 +msgid "Import complete." +msgstr "Importeren voltooid." -#: ../../Zotlabs/Module/Thing.php:353 -msgid "Add Thing to your Profile" -msgstr "Ding aan je profiel toevoegen" +#: ../../Zotlabs/Module/Removeme.php:35 +msgid "" +"Channel removals are not allowed within 48 hours of changing the account " +"password." +msgstr "Het verwijderen van een kanaal is niet toegestaan binnen 48 uur nadat het wachtwoord van het account is veranderd." -#: ../../Zotlabs/Module/Item.php:180 -msgid "Unable to locate original post." -msgstr "Niet in staat om de originele locatie van het bericht te vinden. " +#: ../../Zotlabs/Module/Removeme.php:60 +msgid "Remove This Channel" +msgstr "Verwijder dit kanaal" -#: ../../Zotlabs/Module/Item.php:433 -msgid "Empty post discarded." -msgstr "Leeg bericht geannuleerd" +#: ../../Zotlabs/Module/Removeme.php:61 +msgid "This channel will be completely removed from the network. " +msgstr "Dit kanaal wordt volledig uit het $Projectname-netwerk verwijderd." -#: ../../Zotlabs/Module/Item.php:473 -msgid "Executable content type not permitted to this channel." -msgstr "Uitvoerbare bestanden zijn niet toegestaan op dit kanaal." +#: ../../Zotlabs/Module/Removeme.php:63 +msgid "Remove this channel and all its clones from the network" +msgstr "Dit kanaal en alle klonen hiervan uit het $Projectname-netwerk verwijderen" -#: ../../Zotlabs/Module/Item.php:851 -msgid "Duplicate post suppressed." -msgstr "Dubbel bericht tegengehouden." +#: ../../Zotlabs/Module/Removeme.php:63 +msgid "" +"By default only the instance of the channel located on this hub will be " +"removed from the network" +msgstr "Standaard wordt alleen het kanaal dat zich op deze hub bevindt uit het $Projectname-netwerk verwijderd" -#: ../../Zotlabs/Module/Item.php:986 -msgid "System error. Post not saved." -msgstr "Systeemfout. Bericht niet opgeslagen." - -#: ../../Zotlabs/Module/Item.php:1107 -msgid "Unable to obtain post information from database." -msgstr "Niet in staat om informatie over dit bericht uit de database te verkrijgen." - -#: ../../Zotlabs/Module/Item.php:1114 -#, php-format -msgid "You have reached your limit of %1$.0f top level posts." -msgstr "Je hebt jouw limiet van %1$.0f berichten bereikt." - -#: ../../Zotlabs/Module/Item.php:1121 -#, php-format -msgid "You have reached your limit of %1$.0f webpages." -msgstr "Je hebt jouw limiet van %1$.0f webpagina's bereikt." +#: ../../Zotlabs/Module/Removeme.php:64 +#: ../../Zotlabs/Module/Settings/Channel.php:549 +msgid "Remove Channel" +msgstr "Kanaal verwijderen" #: ../../Zotlabs/Module/Sharedwithme.php:98 msgid "Files: shared with me" @@ -5563,78 +5715,123 @@ msgstr "Verwijder dit bestand" msgid "Not found" msgstr "Niet gevonden" -#: ../../Zotlabs/Module/Wiki.php:97 ../../Zotlabs/Lib/Apps.php:219 -#: ../../include/features.php:99 ../../include/nav.php:111 -#: ../../include/conversation.php:1735 ../../include/conversation.php:1738 -msgid "Wiki" -msgstr "Wiki" - -#: ../../Zotlabs/Module/Wiki.php:98 -msgid "Sandbox" -msgstr "Zandbak" +#: ../../Zotlabs/Module/Wiki.php:55 +msgid "Invalid channel" +msgstr "Onbekend kanaal" #: ../../Zotlabs/Module/Wiki.php:100 -msgid "" -"\"# Wiki Sandbox\\n\\nContent you **edit** and **preview** here *will not be" -" saved*.\"" -msgstr "\"# Wiki Sandbox\\n\\nWat er hier onder **edit** en **preview** staat *wordt niet opgeslagen*.\"" +msgid "Error retrieving wiki" +msgstr "Fout tijdens ophalen wiki" -#: ../../Zotlabs/Module/Wiki.php:169 +#: ../../Zotlabs/Module/Wiki.php:107 +msgid "Error creating zip file export folder" +msgstr "Fout tijdens aanmaken exportmap zipbestand" + +#: ../../Zotlabs/Module/Wiki.php:125 +msgid "Error downloading wiki: " +msgstr "Fout tijdens downloaden wiki: " + +#: ../../Zotlabs/Module/Wiki.php:139 ../../include/nav.php:111 +#: ../../include/conversation.php:1737 +msgid "Wikis" +msgstr "Wiki's" + +#: ../../Zotlabs/Module/Wiki.php:145 +msgid "Download" +msgstr "Download" + +#: ../../Zotlabs/Module/Wiki.php:149 +msgid "Wiki name" +msgstr "Naam wiki" + +#: ../../Zotlabs/Module/Wiki.php:150 +msgid "Content type" +msgstr "Opmaaktype" + +#: ../../Zotlabs/Module/Wiki.php:159 +msgid "Create a status post for this wiki" +msgstr "Plaats een bericht over deze wiki" + +#: ../../Zotlabs/Module/Wiki.php:178 +msgid "Wiki not found" +msgstr "Wiki is niet gevonden" + +#: ../../Zotlabs/Module/Wiki.php:203 +msgid "Rename page" +msgstr "Pagina hernoemen" + +#: ../../Zotlabs/Module/Wiki.php:207 +msgid "Error retrieving page content" +msgstr "Fout tijdens ophalen inhoud pagina" + +#: ../../Zotlabs/Module/Wiki.php:236 msgid "Revision Comparison" msgstr "Revisies vergelijken" -#: ../../Zotlabs/Module/Wiki.php:170 +#: ../../Zotlabs/Module/Wiki.php:237 msgid "Revert" msgstr "Ongedaan maken" -#: ../../Zotlabs/Module/Wiki.php:201 -msgid "Enter the name of your new wiki:" -msgstr "Vul de naam in van jouw nieuwe wiki:" +#: ../../Zotlabs/Module/Wiki.php:246 +msgid "Source" +msgstr "Bron" -#: ../../Zotlabs/Module/Wiki.php:202 -msgid "Enter the name of the new page:" -msgstr "Vul de naam in van de nieuwe pagina:" +#: ../../Zotlabs/Module/Wiki.php:254 +msgid "New page name" +msgstr "Nieuwe paginanaam" -#: ../../Zotlabs/Module/Wiki.php:203 -msgid "Enter the new name:" -msgstr "Vul de nieuwe naam in:" - -#: ../../Zotlabs/Module/Wiki.php:209 ../../include/conversation.php:1153 +#: ../../Zotlabs/Module/Wiki.php:259 ../../include/conversation.php:1151 msgid "Embed image from photo albums" msgstr "Afbeelding uit een fotoalbum invoegen" -#: ../../Zotlabs/Module/Wiki.php:210 ../../include/conversation.php:1247 +#: ../../Zotlabs/Module/Wiki.php:260 ../../include/conversation.php:1245 msgid "Embed an image from your albums" msgstr "Afbeelding uit jouw albums invoegen" -#: ../../Zotlabs/Module/Wiki.php:212 ../../include/conversation.php:1249 -#: ../../include/conversation.php:1296 +#: ../../Zotlabs/Module/Wiki.php:262 ../../include/conversation.php:1247 +#: ../../include/conversation.php:1294 msgid "OK" msgstr "OK" -#: ../../Zotlabs/Module/Wiki.php:213 ../../include/conversation.php:1189 +#: ../../Zotlabs/Module/Wiki.php:263 ../../include/conversation.php:1187 msgid "Choose images to embed" msgstr "Kies afbeeldingen om in te voegen" -#: ../../Zotlabs/Module/Wiki.php:214 ../../include/conversation.php:1190 +#: ../../Zotlabs/Module/Wiki.php:264 ../../include/conversation.php:1188 msgid "Choose an album" msgstr "Kies een album" -#: ../../Zotlabs/Module/Wiki.php:215 ../../include/conversation.php:1191 -msgid "Choose a different album..." -msgstr "Kies een ander album..." +#: ../../Zotlabs/Module/Wiki.php:265 +msgid "Choose a different album" +msgstr "Kies een ander album" -#: ../../Zotlabs/Module/Wiki.php:216 ../../include/conversation.php:1192 +#: ../../Zotlabs/Module/Wiki.php:266 ../../include/conversation.php:1190 msgid "Error getting album list" -msgstr "Fout met ophalen albumlijst" +msgstr "Fout tijdens ophalen albumlijst" -#: ../../Zotlabs/Module/Wiki.php:217 ../../include/conversation.php:1193 +#: ../../Zotlabs/Module/Wiki.php:267 ../../include/conversation.php:1191 msgid "Error getting photo link" -msgstr "Fout met ophalen fotolink" +msgstr "Fout tijdens ophalen fotolink" -#: ../../Zotlabs/Module/Wiki.php:218 ../../include/conversation.php:1194 +#: ../../Zotlabs/Module/Wiki.php:268 ../../include/conversation.php:1192 msgid "Error getting album" -msgstr "Fout met ophalen album" +msgstr "Fout tijdens ophalen album" + +#: ../../Zotlabs/Module/Wiki.php:332 +msgid "Error creating wiki. Invalid name." +msgstr "Fout tijdens aanmaken wiki. Ongeldige naam." + +#: ../../Zotlabs/Module/Wiki.php:343 +msgid "Wiki created, but error creating Home page." +msgstr "Wiki aangemaakt, maar fout tijdens aanmaken homepagina." + +#: ../../Zotlabs/Module/Wiki.php:348 +msgid "Error creating wiki" +msgstr "Fout tijdens aanmaken wiki." + +#: ../../Zotlabs/Module/Wiki.php:394 +msgid "New page created" +msgstr "Nieuwe pagina aangemaakt" #: ../../Zotlabs/Module/Sources.php:37 msgid "Failed to create source. No channel selected." @@ -5734,16 +5931,11 @@ msgstr "Geen voorgestelde kanalen gevonden. Wanneer dit een nieuwe hub is, probe msgid "Ignore/Hide" msgstr "Negeren/Verbergen" -#: ../../Zotlabs/Module/Suggest.php:64 ../../Zotlabs/Module/Directory.php:392 -#: ../../include/contact_widgets.php:24 -msgid "Channel Suggestions" -msgstr "Voorgestelde kanalen" - -#: ../../Zotlabs/Module/Tagger.php:55 ../../include/bbcode.php:263 +#: ../../Zotlabs/Module/Tagger.php:55 ../../include/bbcode.php:274 msgid "post" msgstr "bericht" -#: ../../Zotlabs/Module/Tagger.php:57 ../../include/text.php:1999 +#: ../../Zotlabs/Module/Tagger.php:57 ../../include/text.php:1948 #: ../../include/conversation.php:150 msgid "comment" msgstr "reactie" @@ -5753,748 +5945,6 @@ msgstr "reactie" 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" -#: ../../Zotlabs/Module/Tagrm.php:48 ../../Zotlabs/Module/Tagrm.php:98 -msgid "Tag removed" -msgstr "Tag verwijderd" - -#: ../../Zotlabs/Module/Tagrm.php:123 -msgid "Remove Item Tag" -msgstr "Verwijder item-tag" - -#: ../../Zotlabs/Module/Tagrm.php:125 -msgid "Select a tag to remove: " -msgstr "Kies een tag om te verwijderen" - -#: ../../Zotlabs/Module/Follow.php:34 -msgid "Channel added." -msgstr "Kanaal toegevoegd." - -#: ../../Zotlabs/Module/Viewconnections.php:65 -msgid "No connections." -msgstr "Geen connecties." - -#: ../../Zotlabs/Module/Viewconnections.php:78 -#, php-format -msgid "Visit %s's profile [%s]" -msgstr "Bezoek het profiel van %s [%s]" - -#: ../../Zotlabs/Module/Viewconnections.php:107 -msgid "View Connections" -msgstr "Connecties weergeven" - -#: ../../Zotlabs/Module/Viewsrc.php:44 -msgid "Source of Item" -msgstr "Bron van item" - -#: ../../Zotlabs/Module/Chat.php:181 -msgid "Room not found" -msgstr "Chatkanaal niet gevonden" - -#: ../../Zotlabs/Module/Chat.php:197 -msgid "Leave Room" -msgstr "Chatkanaal verlaten" - -#: ../../Zotlabs/Module/Chat.php:198 -msgid "Delete Room" -msgstr "Chatkanaal verwijderen" - -#: ../../Zotlabs/Module/Chat.php:199 -msgid "I am away right now" -msgstr "Ik ben momenteel afwezig" - -#: ../../Zotlabs/Module/Chat.php:200 -msgid "I am online" -msgstr "Ik ben online" - -#: ../../Zotlabs/Module/Chat.php:202 -msgid "Bookmark this room" -msgstr "Chatkanaal aan bladwijzers toevoegen" - -#: ../../Zotlabs/Module/Chat.php:231 -msgid "New Chatroom" -msgstr "Nieuw chatkanaal" - -#: ../../Zotlabs/Module/Chat.php:232 -msgid "Chatroom name" -msgstr "Naam chatkanaal" - -#: ../../Zotlabs/Module/Chat.php:233 -msgid "Expiration of chats (minutes)" -msgstr "Aantal minuten voordat chatberichten worden verwijderd" - -#: ../../Zotlabs/Module/Chat.php:249 -#, php-format -msgid "%1$s's Chatrooms" -msgstr "Chatkanalen van %1$s" - -#: ../../Zotlabs/Module/Chat.php:254 -msgid "No chatrooms available" -msgstr "Geen chatkanalen beschikbaar" - -#: ../../Zotlabs/Module/Chat.php:258 -msgid "Expiration" -msgstr "Verloopt na" - -#: ../../Zotlabs/Module/Chat.php:259 -msgid "min" -msgstr "min" - -#: ../../Zotlabs/Module/Xchan.php:10 -msgid "Xchan Lookup" -msgstr "Xchan opzoeken" - -#: ../../Zotlabs/Module/Xchan.php:13 -msgid "Lookup xchan beginning with (or webbie): " -msgstr "Zoek een xchan (of webbie) die begint met:" - -#: ../../Zotlabs/Module/Directory.php:243 -#, php-format -msgid "%d rating" -msgid_plural "%d ratings" -msgstr[0] "%d beoordeling" -msgstr[1] "%d beoordelingen" - -#: ../../Zotlabs/Module/Directory.php:254 -msgid "Gender: " -msgstr "Geslacht:" - -#: ../../Zotlabs/Module/Directory.php:256 -msgid "Status: " -msgstr "Status: " - -#: ../../Zotlabs/Module/Directory.php:258 -msgid "Homepage: " -msgstr "Homepage: " - -#: ../../Zotlabs/Module/Directory.php:306 ../../include/channel.php:1207 -msgid "Age:" -msgstr "Leeftijd:" - -#: ../../Zotlabs/Module/Directory.php:311 ../../include/channel.php:1049 -#: ../../include/bb2diaspora.php:507 ../../include/event.php:52 -#: ../../include/event.php:84 -msgid "Location:" -msgstr "Plaats:" - -#: ../../Zotlabs/Module/Directory.php:317 -msgid "Description:" -msgstr "Omschrijving:" - -#: ../../Zotlabs/Module/Directory.php:322 ../../include/channel.php:1223 -msgid "Hometown:" -msgstr "Oorspronkelijk uit:" - -#: ../../Zotlabs/Module/Directory.php:324 ../../include/channel.php:1231 -msgid "About:" -msgstr "Over:" - -#: ../../Zotlabs/Module/Directory.php:326 -msgid "Public Forum:" -msgstr "Openbaar forum:" - -#: ../../Zotlabs/Module/Directory.php:329 -msgid "Keywords: " -msgstr "Trefwoorden: " - -#: ../../Zotlabs/Module/Directory.php:332 -msgid "Don't suggest" -msgstr "Niet voorstellen" - -#: ../../Zotlabs/Module/Directory.php:334 -msgid "Common connections:" -msgstr "Gemeenschappelijke connecties:" - -#: ../../Zotlabs/Module/Directory.php:383 -msgid "Global Directory" -msgstr "Volledige kanalengids" - -#: ../../Zotlabs/Module/Directory.php:383 -msgid "Local Directory" -msgstr "Lokale kanalengids" - -#: ../../Zotlabs/Module/Directory.php:389 -msgid "Finding:" -msgstr "Gezocht naar:" - -#: ../../Zotlabs/Module/Directory.php:394 -msgid "next page" -msgstr "volgende pagina" - -#: ../../Zotlabs/Module/Directory.php:394 -msgid "previous page" -msgstr "vorige pagina" - -#: ../../Zotlabs/Module/Directory.php:395 -msgid "Sort options" -msgstr "Sorteeropties" - -#: ../../Zotlabs/Module/Directory.php:396 -msgid "Alphabetic" -msgstr "Alfabetisch" - -#: ../../Zotlabs/Module/Directory.php:397 -msgid "Reverse Alphabetic" -msgstr "Omgekeerd alfabetisch" - -#: ../../Zotlabs/Module/Directory.php:398 -msgid "Newest to Oldest" -msgstr "Nieuw naar oud" - -#: ../../Zotlabs/Module/Directory.php:399 -msgid "Oldest to Newest" -msgstr "Oud naar nieuw" - -#: ../../Zotlabs/Module/Directory.php:416 -msgid "No entries (some entries may be hidden)." -msgstr "Niets gevonden (sommige kanalen kunnen verborgen zijn)." - -#: ../../Zotlabs/Module/Settings/Account.php:20 -msgid "Not valid email." -msgstr "Geen geldig e-mailadres." - -#: ../../Zotlabs/Module/Settings/Account.php:23 -msgid "Protected email address. Cannot change to that email." -msgstr "Beschermd e-mailadres. Kan dat e-mailadres niet gebruiken." - -#: ../../Zotlabs/Module/Settings/Account.php:32 -msgid "System failure storing new email. Please try again." -msgstr "Systeemfout opslaan van nieuwe e-mail. Probeer het nog een keer." - -#: ../../Zotlabs/Module/Settings/Account.php:40 -msgid "Technical skill level updated" -msgstr "Technisch niveau bijgewerkt" - -#: ../../Zotlabs/Module/Settings/Account.php:56 -msgid "Password verification failed." -msgstr "Wachtwoordverificatie mislukt" - -#: ../../Zotlabs/Module/Settings/Account.php:63 -msgid "Passwords do not match. Password unchanged." -msgstr "Wachtwoorden komen niet overeen. Wachtwoord onveranderd." - -#: ../../Zotlabs/Module/Settings/Account.php:67 -msgid "Empty passwords are not allowed. Password unchanged." -msgstr "Lege wachtwoorden zijn niet toegestaan. Wachtwoord onveranderd." - -#: ../../Zotlabs/Module/Settings/Account.php:81 -msgid "Password changed." -msgstr "Wachtwoord veranderd." - -#: ../../Zotlabs/Module/Settings/Account.php:83 -msgid "Password update failed. Please try again." -msgstr "Bijwerken wachtwoord mislukt. Probeer opnieuw." - -#: ../../Zotlabs/Module/Settings/Account.php:120 -msgid "Account Settings" -msgstr "Account-instellingen" - -#: ../../Zotlabs/Module/Settings/Account.php:121 -msgid "Current Password" -msgstr "Huidig wachtwoord" - -#: ../../Zotlabs/Module/Settings/Account.php:122 -msgid "Enter New Password" -msgstr "Nieuw wachtwoord invoeren" - -#: ../../Zotlabs/Module/Settings/Account.php:123 -msgid "Confirm New Password" -msgstr "Nieuw wachtwoord bevestigen" - -#: ../../Zotlabs/Module/Settings/Account.php:123 -msgid "Leave password fields blank unless changing" -msgstr "Laat de wachtwoordvelden leeg, behalve wanneer je deze wil veranderen" - -#: ../../Zotlabs/Module/Settings/Account.php:124 -msgid "Your technical skill level" -msgstr "Jouw technisch niveau" - -#: ../../Zotlabs/Module/Settings/Account.php:124 -msgid "Used to provide a member experience matched to your comfort level" -msgstr "Wordt gebruikt om je een gebruikerservaring te bieden die met jouw technisch niveau overeenkomt" - -#: ../../Zotlabs/Module/Settings/Account.php:127 -#: ../../Zotlabs/Module/Settings/Channel.php:459 -msgid "Email Address:" -msgstr "E-mailadres:" - -#: ../../Zotlabs/Module/Settings/Account.php:129 -msgid "Remove this account including all its channels" -msgstr "Dit account en al zijn kanalen verwijderen" - -#: ../../Zotlabs/Module/Settings/Channel.php:246 -msgid "Settings updated." -msgstr "Instellingen bijgewerkt." - -#: ../../Zotlabs/Module/Settings/Channel.php:307 -msgid "Nobody except yourself" -msgstr "Niemand, behalve jezelf" - -#: ../../Zotlabs/Module/Settings/Channel.php:308 -msgid "Only those you specifically allow" -msgstr "Alleen connecties met uitdrukkelijke toestemming" - -#: ../../Zotlabs/Module/Settings/Channel.php:309 -msgid "Approved connections" -msgstr "Geaccepteerde connecties" - -#: ../../Zotlabs/Module/Settings/Channel.php:310 -msgid "Any connections" -msgstr "Alle connecties" - -#: ../../Zotlabs/Module/Settings/Channel.php:311 -msgid "Anybody on this website" -msgstr "Iedereen op deze hub" - -#: ../../Zotlabs/Module/Settings/Channel.php:312 -msgid "Anybody in this network" -msgstr "Iedereen in dit netwerk" - -#: ../../Zotlabs/Module/Settings/Channel.php:313 -msgid "Anybody authenticated" -msgstr "Geauthenticeerd" - -#: ../../Zotlabs/Module/Settings/Channel.php:314 -msgid "Anybody on the internet" -msgstr "Iedereen op het internet" - -#: ../../Zotlabs/Module/Settings/Channel.php:390 -msgid "Publish your default profile in the network directory" -msgstr "Publiceer je standaardprofiel in de kanalengids" - -#: ../../Zotlabs/Module/Settings/Channel.php:395 -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" - -#: ../../Zotlabs/Module/Settings/Channel.php:404 -msgid "Your channel address is" -msgstr "Jouw kanaaladres is" - -#: ../../Zotlabs/Module/Settings/Channel.php:450 -msgid "Channel Settings" -msgstr "Kanaal-instellingen" - -#: ../../Zotlabs/Module/Settings/Channel.php:457 -msgid "Basic Settings" -msgstr "Basis-instellingen" - -#: ../../Zotlabs/Module/Settings/Channel.php:458 -#: ../../include/channel.php:1164 -msgid "Full Name:" -msgstr "Volledige naam:" - -#: ../../Zotlabs/Module/Settings/Channel.php:460 -msgid "Your Timezone:" -msgstr "Jouw tijdzone:" - -#: ../../Zotlabs/Module/Settings/Channel.php:461 -msgid "Default Post Location:" -msgstr "Standaardlocatie bericht:" - -#: ../../Zotlabs/Module/Settings/Channel.php:461 -msgid "Geographical location to display on your posts" -msgstr "Geografische locatie die bij het bericht moet worden vermeld" - -#: ../../Zotlabs/Module/Settings/Channel.php:462 -msgid "Use Browser Location:" -msgstr "Locatie van webbrowser gebruiken:" - -#: ../../Zotlabs/Module/Settings/Channel.php:464 -msgid "Adult Content" -msgstr "Inhoud voor volwassenen" - -#: ../../Zotlabs/Module/Settings/Channel.php:464 -msgid "" -"Channel removals are not allowed within 48 hours of changing the account " -"password." -msgstr "Het verwijderen van een kanaal is niet toegestaan binnen 48 uur nadat het wachtwoord van het account is veranderd." - -#: ../../Zotlabs/Module/Settings/Channel.php:466 -msgid "Security and Privacy Settings" -msgstr "Veiligheids- en privacy-instellingen" - -#: ../../Zotlabs/Module/Settings/Channel.php:469 -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." - -#: ../../Zotlabs/Module/Settings/Channel.php:471 -msgid "Hide my online presence" -msgstr "Verberg mijn aanwezigheid" - -#: ../../Zotlabs/Module/Settings/Channel.php:471 -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" - -#: ../../Zotlabs/Module/Settings/Channel.php:473 -msgid "Simple Privacy Settings:" -msgstr "Eenvoudige privacy-instellingen:" - -#: ../../Zotlabs/Module/Settings/Channel.php:474 -msgid "" -"Very Public - extremely permissive (should be used with caution)" -msgstr "Zeer openbaar (kanaal staat volledig open - moet met grote zorgvuldigheid gebruikt worden)" - -#: ../../Zotlabs/Module/Settings/Channel.php:475 -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." - -#: ../../Zotlabs/Module/Settings/Channel.php:476 -msgid "Private - default private, never open or public" -msgstr "Privé (standaard privé en nooit openbaar)" - -#: ../../Zotlabs/Module/Settings/Channel.php:477 -msgid "Blocked - default blocked to/from everybody" -msgstr "Geblokkeerd (standaard geblokkeerd naar/van iedereen)" - -#: ../../Zotlabs/Module/Settings/Channel.php:479 -msgid "Allow others to tag your posts" -msgstr "Anderen toestaan om je berichten te taggen" - -#: ../../Zotlabs/Module/Settings/Channel.php:479 -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" - -#: ../../Zotlabs/Module/Settings/Channel.php:481 -msgid "Channel Permission Limits" -msgstr "Geavanceerde permissies" - -#: ../../Zotlabs/Module/Settings/Channel.php:483 -msgid "Expire other channel content after this many days" -msgstr "Inhoud van andere kanalen na zoveel aantal dagen laten verlopen:" - -#: ../../Zotlabs/Module/Settings/Channel.php:483 -msgid "0 or blank to use the website limit." -msgstr "0 of leeg om het standaard aantal dagen van deze hub te gebruiken." - -#: ../../Zotlabs/Module/Settings/Channel.php:483 -#, php-format -msgid "" -"These content files may be imported or restored by visiting %2$s 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 %2$s te bezoeken. Voor het beste resultaat kan je de bestanden in chronologische volgorde importeren of herstellen." - -#: ../../Zotlabs/Module/Settings/Channel.php:483 -msgid "This website does not expire imported content." -msgstr "Deze hub laat de inhoud van andere kanalen niet verlopen." - -#: ../../Zotlabs/Module/Settings/Channel.php:483 -msgid "The website limit takes precedence if lower than your limit." -msgstr "Wanneer de standaard aantal dagen van deze hub lager ligt dan jouw aantal, dan heeft de limiet van deze hub voorrang." - -#: ../../Zotlabs/Module/Settings/Channel.php:484 -msgid "Maximum Friend Requests/Day:" -msgstr "Maximum aantal connectieverzoeken per dag:" - -#: ../../Zotlabs/Module/Settings/Channel.php:484 -msgid "May reduce spam activity" -msgstr "Kan eventuele spam verminderen" - -#: ../../Zotlabs/Module/Settings/Channel.php:485 -msgid "Default Access Control List (ACL)" -msgstr "Standaard permissies voor nieuwe berichten" - -#: ../../Zotlabs/Module/Settings/Channel.php:487 -msgid "Use my default audience setting for the type of object published" -msgstr "Gebruik mijn standaard privacy-instelling voor dit type publicatie" - -#: ../../Zotlabs/Module/Settings/Channel.php:494 -msgid "Channel permissions category:" -msgstr "Kanaaltype en -permissies:" - -#: ../../Zotlabs/Module/Settings/Channel.php:500 -msgid "Maximum private messages per day from unknown people:" -msgstr "Maximum aantal privé-berichten per dag van onbekende personen:" - -#: ../../Zotlabs/Module/Settings/Channel.php:500 -msgid "Useful to reduce spamming" -msgstr "Kan eventuele spam verminderen" - -#: ../../Zotlabs/Module/Settings/Channel.php:503 -msgid "Notification Settings" -msgstr "Notificatie-instellingen" - -#: ../../Zotlabs/Module/Settings/Channel.php:504 -msgid "By default post a status message when:" -msgstr "Plaats automatisch een bericht wanneer:" - -#: ../../Zotlabs/Module/Settings/Channel.php:505 -msgid "accepting a friend request" -msgstr "Een connectieverzoek wordt geaccepteerd" - -#: ../../Zotlabs/Module/Settings/Channel.php:506 -msgid "joining a forum/community" -msgstr "Je lid wordt van een forum/groep" - -#: ../../Zotlabs/Module/Settings/Channel.php:507 -msgid "making an interesting profile change" -msgstr "Er sprake is van een interessante profielwijziging" - -#: ../../Zotlabs/Module/Settings/Channel.php:508 -msgid "Send a notification email when:" -msgstr "Verzend een notificatie per e-mail wanneer:" - -#: ../../Zotlabs/Module/Settings/Channel.php:509 -msgid "You receive a connection request" -msgstr "Je een connectieverzoek ontvangt" - -#: ../../Zotlabs/Module/Settings/Channel.php:510 -msgid "Your connections are confirmed" -msgstr "Jouw connecties zijn bevestigd" - -#: ../../Zotlabs/Module/Settings/Channel.php:511 -msgid "Someone writes on your profile wall" -msgstr "Iemand iets op jouw kanaal heeft geschreven" - -#: ../../Zotlabs/Module/Settings/Channel.php:512 -msgid "Someone writes a followup comment" -msgstr "Iemand een reactie schrijft" - -#: ../../Zotlabs/Module/Settings/Channel.php:513 -msgid "You receive a private message" -msgstr "Je een privé-bericht ontvangt" - -#: ../../Zotlabs/Module/Settings/Channel.php:514 -msgid "You receive a friend suggestion" -msgstr "Je een kanaalvoorstel ontvangt" - -#: ../../Zotlabs/Module/Settings/Channel.php:515 -msgid "You are tagged in a post" -msgstr "Je expliciet in een bericht bent genoemd" - -#: ../../Zotlabs/Module/Settings/Channel.php:516 -msgid "You are poked/prodded/etc. in a post" -msgstr "Je bent in een bericht aangestoten/gepord/etc." - -#: ../../Zotlabs/Module/Settings/Channel.php:519 -msgid "Show visual notifications including:" -msgstr "Toon de volgende zichtbare notificaties:" - -#: ../../Zotlabs/Module/Settings/Channel.php:521 -msgid "Unseen grid activity" -msgstr "Niet bekeken grid-activiteit" - -#: ../../Zotlabs/Module/Settings/Channel.php:522 -msgid "Unseen channel activity" -msgstr "Niet bekeken kanaal-activiteit" - -#: ../../Zotlabs/Module/Settings/Channel.php:523 -msgid "Unseen private messages" -msgstr "Niet bekeken privéberichten" - -#: ../../Zotlabs/Module/Settings/Channel.php:523 -#: ../../Zotlabs/Module/Settings/Channel.php:528 -#: ../../Zotlabs/Module/Settings/Channel.php:529 -#: ../../Zotlabs/Module/Settings/Channel.php:530 -msgid "Recommended" -msgstr "Aanbevolen" - -#: ../../Zotlabs/Module/Settings/Channel.php:524 -msgid "Upcoming events" -msgstr "Aankomende gebeurtenissen" - -#: ../../Zotlabs/Module/Settings/Channel.php:525 -msgid "Events today" -msgstr "Gebeurtenissen van vandaag" - -#: ../../Zotlabs/Module/Settings/Channel.php:526 -msgid "Upcoming birthdays" -msgstr "Aankomende verjaardagen" - -#: ../../Zotlabs/Module/Settings/Channel.php:526 -msgid "Not available in all themes" -msgstr "Niet in alle thema's beschikbaar" - -#: ../../Zotlabs/Module/Settings/Channel.php:527 -msgid "System (personal) notifications" -msgstr "(Persoonlijke) systeemnotificaties" - -#: ../../Zotlabs/Module/Settings/Channel.php:528 -msgid "System info messages" -msgstr "Systeemmededelingen" - -#: ../../Zotlabs/Module/Settings/Channel.php:529 -msgid "System critical alerts" -msgstr "Kritische systeemwaarschuwingen" - -#: ../../Zotlabs/Module/Settings/Channel.php:530 -msgid "New connections" -msgstr "Nieuwe connecties" - -#: ../../Zotlabs/Module/Settings/Channel.php:531 -msgid "System Registrations" -msgstr "Nieuwe accountregistraties op deze hub" - -#: ../../Zotlabs/Module/Settings/Channel.php:532 -msgid "" -"Also show new wall posts, private messages and connections under Notices" -msgstr "Toon tevens nieuwe kanaalberichten, privéberichten en connecties onder Notificaties" - -#: ../../Zotlabs/Module/Settings/Channel.php:534 -msgid "Notify me of events this many days in advance" -msgstr "Herinner mij zoveel dagen van te voren aan gebeurtenissen" - -#: ../../Zotlabs/Module/Settings/Channel.php:534 -msgid "Must be greater than 0" -msgstr "Moet hoger dan 0 zijn" - -#: ../../Zotlabs/Module/Settings/Channel.php:536 -msgid "Advanced Account/Page Type Settings" -msgstr "Instellingen geavanceerd account/paginatype" - -#: ../../Zotlabs/Module/Settings/Channel.php:537 -msgid "Change the behaviour of this account for special situations" -msgstr "Verander het gedrag van dit account voor speciale situaties" - -#: ../../Zotlabs/Module/Settings/Channel.php:539 -msgid "Miscellaneous Settings" -msgstr "Diverse instellingen" - -#: ../../Zotlabs/Module/Settings/Channel.php:540 -msgid "Default photo upload folder" -msgstr "Standaard fotoalbum voor uploads" - -#: ../../Zotlabs/Module/Settings/Channel.php:540 -#: ../../Zotlabs/Module/Settings/Channel.php:541 -msgid "%Y - current year, %m - current month" -msgstr "%Y - dit jaar, %m - deze maand" - -#: ../../Zotlabs/Module/Settings/Channel.php:541 -msgid "Default file upload folder" -msgstr "Standaard bestandsmap voor uploads" - -#: ../../Zotlabs/Module/Settings/Channel.php:543 -msgid "Personal menu to display in your channel pages" -msgstr "Persoonlijk menu om op je kanaalpagina's weer te geven" - -#: ../../Zotlabs/Module/Settings/Channel.php:545 -msgid "Remove this channel." -msgstr "Verwijder dit kanaal." - -#: ../../Zotlabs/Module/Settings/Channel.php:546 -msgid "Firefox Share $Projectname provider" -msgstr "$Projectname-service voor Firefox Share" - -#: ../../Zotlabs/Module/Settings/Channel.php:547 -msgid "Start calendar week on monday" -msgstr "Begin in de agenda de week op maandag" - -#: ../../Zotlabs/Module/Settings/Display.php:135 -msgid "No special theme for mobile devices" -msgstr "Geen speciaal thema voor mobiele apparaten" - -#: ../../Zotlabs/Module/Settings/Display.php:138 -#, php-format -msgid "%s - (Experimental)" -msgstr "%s - (experimenteel)" - -#: ../../Zotlabs/Module/Settings/Display.php:189 -msgid "Display Settings" -msgstr "Weergave-instellingen" - -#: ../../Zotlabs/Module/Settings/Display.php:190 -msgid "Theme Settings" -msgstr "Thema-instellingen" - -#: ../../Zotlabs/Module/Settings/Display.php:191 -msgid "Custom Theme Settings" -msgstr "Handmatige thema-instellingen" - -#: ../../Zotlabs/Module/Settings/Display.php:192 -msgid "Content Settings" -msgstr "Inhoudsinstellingen" - -#: ../../Zotlabs/Module/Settings/Display.php:198 -msgid "Display Theme:" -msgstr "Gebruik thema:" - -#: ../../Zotlabs/Module/Settings/Display.php:199 -msgid "Select scheme" -msgstr "Kies schema van thema" - -#: ../../Zotlabs/Module/Settings/Display.php:201 -msgid "Mobile Theme:" -msgstr "Mobiel thema:" - -#: ../../Zotlabs/Module/Settings/Display.php:202 -msgid "Preload images before rendering the page" -msgstr "Afbeeldingen laden voordat de pagina wordt weergegeven" - -#: ../../Zotlabs/Module/Settings/Display.php:202 -msgid "" -"The subjective page load time will be longer but the page will be ready when" -" displayed" -msgstr "De laadtijd van een pagina lijkt langer, maar de pagina is wel meteen helemaal geladen wanneer deze wordt weergeven" - -#: ../../Zotlabs/Module/Settings/Display.php:203 -msgid "Enable user zoom on mobile devices" -msgstr "Inzoomen op smartphones en tablets toestaan" - -#: ../../Zotlabs/Module/Settings/Display.php:204 -msgid "Update browser every xx seconds" -msgstr "Ververs de webbrowser om de zoveel seconde" - -#: ../../Zotlabs/Module/Settings/Display.php:204 -msgid "Minimum of 10 seconds, no maximum" -msgstr "Minimaal 10 seconde, geen maximum" - -#: ../../Zotlabs/Module/Settings/Display.php:205 -msgid "Maximum number of conversations to load at any time:" -msgstr "Maximaal aantal conversaties die per keer geladen worden:" - -#: ../../Zotlabs/Module/Settings/Display.php:205 -msgid "Maximum of 100 items" -msgstr "Maximaal 100 conversaties" - -#: ../../Zotlabs/Module/Settings/Display.php:206 -msgid "Show emoticons (smilies) as images" -msgstr "Toon emoticons (smilies) als afbeeldingen" - -#: ../../Zotlabs/Module/Settings/Display.php:207 -msgid "Link post titles to source" -msgstr "Berichtkoppen naar originele locatie linken" - -#: ../../Zotlabs/Module/Settings/Display.php:208 -msgid "System Page Layout Editor - (advanced)" -msgstr "Lay-out bewerken van systeempagina's (geavanceerd)" - -#: ../../Zotlabs/Module/Settings/Display.php:211 -msgid "Use blog/list mode on channel page" -msgstr "Gebruik blog/lijst-modus op kanaalpagina" - -#: ../../Zotlabs/Module/Settings/Display.php:211 -#: ../../Zotlabs/Module/Settings/Display.php:212 -msgid "(comments displayed separately)" -msgstr "(reacties worden afzonderlijk weergeven)" - -#: ../../Zotlabs/Module/Settings/Display.php:212 -msgid "Use blog/list mode on grid page" -msgstr "Gebruik blog/lijst-modus op gridpagina" - -#: ../../Zotlabs/Module/Settings/Display.php:213 -msgid "Channel page max height of content (in pixels)" -msgstr "Maximale hoogte berichtinhoud op kanaalpagina (in pixels)" - -#: ../../Zotlabs/Module/Settings/Display.php:213 -#: ../../Zotlabs/Module/Settings/Display.php:214 -msgid "click to expand content exceeding this height" -msgstr "klik om inhoud uit te klappen die deze hoogte overschrijdt" - -#: ../../Zotlabs/Module/Settings/Display.php:214 -msgid "Grid page max height of content (in pixels)" -msgstr "Maximale hoogte berichtinhoud op gridpagina (in pixels)" - -#: ../../Zotlabs/Module/Settings/Featured.php:24 -msgid "No feature settings configured" -msgstr "Geen plugin-instellingen aanwezig" - -#: ../../Zotlabs/Module/Settings/Featured.php:31 -msgid "Feature/Addon Settings" -msgstr "Plugin-instellingen" - #: ../../Zotlabs/Module/Settings/Features.php:45 msgid "Additional Features" msgstr "Extra functies" @@ -6519,6 +5969,8 @@ msgstr "Naam van applicatie" #: ../../Zotlabs/Module/Settings/Oauth.php:90 #: ../../Zotlabs/Module/Settings/Oauth.php:116 +#: ../../extend/addon/addon/statusnet/statusnet.php:893 +#: ../../extend/addon/addon/twitter/twitter.php:775 msgid "Consumer Key" msgstr "Consumer key" @@ -6529,6 +5981,8 @@ msgstr "Automatische gegenereerd - verander wanneer gewenst. Maximale lengte is #: ../../Zotlabs/Module/Settings/Oauth.php:91 #: ../../Zotlabs/Module/Settings/Oauth.php:117 +#: ../../extend/addon/addon/statusnet/statusnet.php:892 +#: ../../extend/addon/addon/twitter/twitter.php:776 msgid "Consumer Secret" msgstr "Consumer secret" @@ -6611,6 +6065,921 @@ msgstr "Wachtwoord:" msgid "Expires (yyyy-mm-dd)" msgstr "Geldig t/m (yyyy-mm-dd)" +#: ../../Zotlabs/Module/Settings/Account.php:20 +msgid "Not valid email." +msgstr "Geen geldig e-mailadres." + +#: ../../Zotlabs/Module/Settings/Account.php:23 +msgid "Protected email address. Cannot change to that email." +msgstr "Beschermd e-mailadres. Kan dat e-mailadres niet gebruiken." + +#: ../../Zotlabs/Module/Settings/Account.php:32 +msgid "System failure storing new email. Please try again." +msgstr "Systeemfout opslaan van nieuwe e-mail. Probeer het nog een keer." + +#: ../../Zotlabs/Module/Settings/Account.php:40 +msgid "Technical skill level updated" +msgstr "Technisch niveau bijgewerkt" + +#: ../../Zotlabs/Module/Settings/Account.php:56 +msgid "Password verification failed." +msgstr "Wachtwoordverificatie mislukt" + +#: ../../Zotlabs/Module/Settings/Account.php:63 +msgid "Passwords do not match. Password unchanged." +msgstr "Wachtwoorden komen niet overeen. Wachtwoord onveranderd." + +#: ../../Zotlabs/Module/Settings/Account.php:67 +msgid "Empty passwords are not allowed. Password unchanged." +msgstr "Lege wachtwoorden zijn niet toegestaan. Wachtwoord onveranderd." + +#: ../../Zotlabs/Module/Settings/Account.php:81 +msgid "Password changed." +msgstr "Wachtwoord veranderd." + +#: ../../Zotlabs/Module/Settings/Account.php:83 +msgid "Password update failed. Please try again." +msgstr "Bijwerken wachtwoord mislukt. Probeer opnieuw." + +#: ../../Zotlabs/Module/Settings/Account.php:112 +msgid "Account Settings" +msgstr "Account-instellingen" + +#: ../../Zotlabs/Module/Settings/Account.php:113 +msgid "Current Password" +msgstr "Huidig wachtwoord" + +#: ../../Zotlabs/Module/Settings/Account.php:114 +msgid "Enter New Password" +msgstr "Nieuw wachtwoord invoeren" + +#: ../../Zotlabs/Module/Settings/Account.php:115 +msgid "Confirm New Password" +msgstr "Nieuw wachtwoord bevestigen" + +#: ../../Zotlabs/Module/Settings/Account.php:115 +msgid "Leave password fields blank unless changing" +msgstr "Laat de wachtwoordvelden leeg, behalve wanneer je deze wil veranderen" + +#: ../../Zotlabs/Module/Settings/Account.php:116 +msgid "Your technical skill level" +msgstr "Jouw technisch niveau" + +#: ../../Zotlabs/Module/Settings/Account.php:116 +msgid "Used to provide a member experience matched to your comfort level" +msgstr "Wordt gebruikt om je een gebruikerservaring te bieden die met jouw technisch niveau overeenkomt" + +#: ../../Zotlabs/Module/Settings/Account.php:119 +#: ../../Zotlabs/Module/Settings/Channel.php:462 +msgid "Email Address:" +msgstr "E-mailadres:" + +#: ../../Zotlabs/Module/Settings/Account.php:121 +msgid "Remove this account including all its channels" +msgstr "Dit account en al zijn kanalen verwijderen" + +#: ../../Zotlabs/Module/Settings/Channel.php:246 +#: ../../extend/addon/addon/logrot/logrot.php:54 +#: ../../extend/addon/addon/msgfooter/msgfooter.php:54 +#: ../../extend/addon/addon/openstreetmap/openstreetmap.php:184 +#: ../../extend/addon/addon/piwik/piwik.php:116 +#: ../../extend/addon/addon/twitter/twitter.php:766 +#: ../../extend/addon/addon/xmpp/xmpp.php:102 +#: ../../extend/addon/addon/rendezvous/rendezvous.php:82 +msgid "Settings updated." +msgstr "Instellingen bijgewerkt." + +#: ../../Zotlabs/Module/Settings/Channel.php:307 +msgid "Nobody except yourself" +msgstr "Niemand, behalve jezelf" + +#: ../../Zotlabs/Module/Settings/Channel.php:308 +msgid "Only those you specifically allow" +msgstr "Alleen connecties met uitdrukkelijke toestemming" + +#: ../../Zotlabs/Module/Settings/Channel.php:309 +msgid "Approved connections" +msgstr "Geaccepteerde connecties" + +#: ../../Zotlabs/Module/Settings/Channel.php:310 +msgid "Any connections" +msgstr "Alle connecties" + +#: ../../Zotlabs/Module/Settings/Channel.php:311 +msgid "Anybody on this website" +msgstr "Iedereen op deze hub" + +#: ../../Zotlabs/Module/Settings/Channel.php:312 +msgid "Anybody in this network" +msgstr "Iedereen in dit netwerk" + +#: ../../Zotlabs/Module/Settings/Channel.php:313 +msgid "Anybody authenticated" +msgstr "Geauthenticeerd" + +#: ../../Zotlabs/Module/Settings/Channel.php:314 +msgid "Anybody on the internet" +msgstr "Iedereen op het internet" + +#: ../../Zotlabs/Module/Settings/Channel.php:390 +msgid "Publish your default profile in the network directory" +msgstr "Publiceer je standaardprofiel in de kanalengids" + +#: ../../Zotlabs/Module/Settings/Channel.php:395 +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" + +#: ../../Zotlabs/Module/Settings/Channel.php:404 +msgid "Your channel address is" +msgstr "Jouw kanaaladres is" + +#: ../../Zotlabs/Module/Settings/Channel.php:407 +msgid "Your files/photos are accessible via WebDAV at" +msgstr "Jouw bestanden/foto's zijn beschikbaar via WebDAV op" + +#: ../../Zotlabs/Module/Settings/Channel.php:453 +msgid "Channel Settings" +msgstr "Kanaal-instellingen" + +#: ../../Zotlabs/Module/Settings/Channel.php:460 +msgid "Basic Settings" +msgstr "Basis-instellingen" + +#: ../../Zotlabs/Module/Settings/Channel.php:461 +#: ../../include/channel.php:1172 +msgid "Full Name:" +msgstr "Volledige naam:" + +#: ../../Zotlabs/Module/Settings/Channel.php:463 +msgid "Your Timezone:" +msgstr "Jouw tijdzone:" + +#: ../../Zotlabs/Module/Settings/Channel.php:464 +msgid "Default Post Location:" +msgstr "Standaardlocatie bericht:" + +#: ../../Zotlabs/Module/Settings/Channel.php:464 +msgid "Geographical location to display on your posts" +msgstr "Geografische locatie die bij het bericht moet worden vermeld" + +#: ../../Zotlabs/Module/Settings/Channel.php:465 +msgid "Use Browser Location:" +msgstr "Locatie van webbrowser gebruiken:" + +#: ../../Zotlabs/Module/Settings/Channel.php:467 +msgid "Adult Content" +msgstr "Inhoud voor volwassenen" + +#: ../../Zotlabs/Module/Settings/Channel.php:467 +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)" + +#: ../../Zotlabs/Module/Settings/Channel.php:469 +msgid "Security and Privacy Settings" +msgstr "Veiligheids- en privacy-instellingen" + +#: ../../Zotlabs/Module/Settings/Channel.php:472 +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." + +#: ../../Zotlabs/Module/Settings/Channel.php:474 +msgid "Hide my online presence" +msgstr "Verberg mijn aanwezigheid" + +#: ../../Zotlabs/Module/Settings/Channel.php:474 +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" + +#: ../../Zotlabs/Module/Settings/Channel.php:476 +msgid "Simple Privacy Settings:" +msgstr "Eenvoudige privacy-instellingen:" + +#: ../../Zotlabs/Module/Settings/Channel.php:477 +msgid "" +"Very Public - extremely permissive (should be used with caution)" +msgstr "Zeer openbaar (kanaal staat volledig open - moet met grote zorgvuldigheid gebruikt worden)" + +#: ../../Zotlabs/Module/Settings/Channel.php:478 +msgid "" +"Typical - default public, privacy when desired (similar to social " +"network permissions but with improved privacy)" +msgstr "Normaal (standaard openbaar, maar privacy wanneer noodzakelijk - vergelijkbaar met die van sociale netwerken, maar met verbeterde privacy)" + +#: ../../Zotlabs/Module/Settings/Channel.php:479 +msgid "Private - default private, never open or public" +msgstr "Privé (standaard privé en nooit openbaar)" + +#: ../../Zotlabs/Module/Settings/Channel.php:480 +msgid "Blocked - default blocked to/from everybody" +msgstr "Geblokkeerd (standaard geblokkeerd naar/van iedereen)" + +#: ../../Zotlabs/Module/Settings/Channel.php:482 +msgid "Allow others to tag your posts" +msgstr "Anderen toestaan om je berichten te taggen" + +#: ../../Zotlabs/Module/Settings/Channel.php:482 +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" + +#: ../../Zotlabs/Module/Settings/Channel.php:484 +msgid "Channel Permission Limits" +msgstr "Geavanceerde permissies" + +#: ../../Zotlabs/Module/Settings/Channel.php:486 +msgid "Expire other channel content after this many days" +msgstr "Inhoud van andere kanalen na zoveel aantal dagen laten verlopen:" + +#: ../../Zotlabs/Module/Settings/Channel.php:486 +msgid "0 or blank to use the website limit." +msgstr "0 of leeg om het standaard aantal dagen van deze hub te gebruiken." + +#: ../../Zotlabs/Module/Settings/Channel.php:486 +#, php-format +msgid "This website expires after %d days." +msgstr "Deze hub laat de inhoud van andere kanalen na %d dagen verlopen." + +#: ../../Zotlabs/Module/Settings/Channel.php:486 +msgid "This website does not expire imported content." +msgstr "Deze hub laat de inhoud van andere kanalen niet verlopen." + +#: ../../Zotlabs/Module/Settings/Channel.php:486 +msgid "The website limit takes precedence if lower than your limit." +msgstr "Wanneer de standaard aantal dagen van deze hub lager ligt dan jouw aantal, dan heeft de limiet van deze hub voorrang." + +#: ../../Zotlabs/Module/Settings/Channel.php:487 +msgid "Maximum Friend Requests/Day:" +msgstr "Maximum aantal connectieverzoeken per dag:" + +#: ../../Zotlabs/Module/Settings/Channel.php:487 +msgid "May reduce spam activity" +msgstr "Kan eventuele spam verminderen" + +#: ../../Zotlabs/Module/Settings/Channel.php:488 +msgid "Default Access Control List (ACL)" +msgstr "Standaard permissies voor nieuwe berichten" + +#: ../../Zotlabs/Module/Settings/Channel.php:490 +msgid "Use my default audience setting for the type of object published" +msgstr "Gebruik mijn standaard privacy-instelling voor dit type publicatie" + +#: ../../Zotlabs/Module/Settings/Channel.php:497 +msgid "Channel permissions category:" +msgstr "Kanaaltype en -permissies:" + +#: ../../Zotlabs/Module/Settings/Channel.php:503 +msgid "Maximum private messages per day from unknown people:" +msgstr "Maximum aantal privé-berichten per dag van onbekende personen:" + +#: ../../Zotlabs/Module/Settings/Channel.php:503 +msgid "Useful to reduce spamming" +msgstr "Kan eventuele spam verminderen" + +#: ../../Zotlabs/Module/Settings/Channel.php:506 +msgid "Notification Settings" +msgstr "Notificatie-instellingen" + +#: ../../Zotlabs/Module/Settings/Channel.php:507 +msgid "By default post a status message when:" +msgstr "Plaats automatisch een bericht wanneer:" + +#: ../../Zotlabs/Module/Settings/Channel.php:508 +msgid "accepting a friend request" +msgstr "Een connectieverzoek wordt geaccepteerd" + +#: ../../Zotlabs/Module/Settings/Channel.php:509 +msgid "joining a forum/community" +msgstr "Je lid wordt van een forum/groep" + +#: ../../Zotlabs/Module/Settings/Channel.php:510 +msgid "making an interesting profile change" +msgstr "Er sprake is van een interessante profielwijziging" + +#: ../../Zotlabs/Module/Settings/Channel.php:511 +msgid "Send a notification email when:" +msgstr "Verzend een notificatie per e-mail wanneer:" + +#: ../../Zotlabs/Module/Settings/Channel.php:512 +msgid "You receive a connection request" +msgstr "Je een connectieverzoek ontvangt" + +#: ../../Zotlabs/Module/Settings/Channel.php:513 +msgid "Your connections are confirmed" +msgstr "Jouw connecties zijn bevestigd" + +#: ../../Zotlabs/Module/Settings/Channel.php:514 +msgid "Someone writes on your profile wall" +msgstr "Iemand iets op jouw kanaal heeft geschreven" + +#: ../../Zotlabs/Module/Settings/Channel.php:515 +msgid "Someone writes a followup comment" +msgstr "Iemand een reactie schrijft" + +#: ../../Zotlabs/Module/Settings/Channel.php:516 +msgid "You receive a private message" +msgstr "Je een privé-bericht ontvangt" + +#: ../../Zotlabs/Module/Settings/Channel.php:517 +msgid "You receive a friend suggestion" +msgstr "Je een kanaalvoorstel ontvangt" + +#: ../../Zotlabs/Module/Settings/Channel.php:518 +msgid "You are tagged in a post" +msgstr "Je expliciet in een bericht bent genoemd" + +#: ../../Zotlabs/Module/Settings/Channel.php:519 +msgid "You are poked/prodded/etc. in a post" +msgstr "Je bent in een bericht aangestoten/gepord/etc." + +#: ../../Zotlabs/Module/Settings/Channel.php:521 +msgid "Someone likes your post/comment" +msgstr "Iemand jouw bericht/reactie leuk vindt" + +#: ../../Zotlabs/Module/Settings/Channel.php:524 +msgid "Show visual notifications including:" +msgstr "Toon de volgende zichtbare notificaties:" + +#: ../../Zotlabs/Module/Settings/Channel.php:526 +msgid "Unseen grid activity" +msgstr "Niet bekeken grid-activiteit" + +#: ../../Zotlabs/Module/Settings/Channel.php:527 +msgid "Unseen channel activity" +msgstr "Niet bekeken kanaal-activiteit" + +#: ../../Zotlabs/Module/Settings/Channel.php:528 +msgid "Unseen private messages" +msgstr "Niet bekeken privéberichten" + +#: ../../Zotlabs/Module/Settings/Channel.php:528 +#: ../../Zotlabs/Module/Settings/Channel.php:533 +#: ../../Zotlabs/Module/Settings/Channel.php:534 +#: ../../Zotlabs/Module/Settings/Channel.php:535 +#: ../../extend/addon/addon/jappixmini/jappixmini.php:343 +msgid "Recommended" +msgstr "Aanbevolen" + +#: ../../Zotlabs/Module/Settings/Channel.php:529 +msgid "Upcoming events" +msgstr "Aankomende gebeurtenissen" + +#: ../../Zotlabs/Module/Settings/Channel.php:530 +msgid "Events today" +msgstr "Gebeurtenissen van vandaag" + +#: ../../Zotlabs/Module/Settings/Channel.php:531 +msgid "Upcoming birthdays" +msgstr "Aankomende verjaardagen" + +#: ../../Zotlabs/Module/Settings/Channel.php:531 +msgid "Not available in all themes" +msgstr "Niet in alle thema's beschikbaar" + +#: ../../Zotlabs/Module/Settings/Channel.php:532 +msgid "System (personal) notifications" +msgstr "(Persoonlijke) systeemnotificaties" + +#: ../../Zotlabs/Module/Settings/Channel.php:533 +msgid "System info messages" +msgstr "Systeemmededelingen" + +#: ../../Zotlabs/Module/Settings/Channel.php:534 +msgid "System critical alerts" +msgstr "Kritische systeemwaarschuwingen" + +#: ../../Zotlabs/Module/Settings/Channel.php:535 +msgid "New connections" +msgstr "Nieuwe connecties" + +#: ../../Zotlabs/Module/Settings/Channel.php:536 +msgid "System Registrations" +msgstr "Nieuwe accountregistraties op deze hub" + +#: ../../Zotlabs/Module/Settings/Channel.php:537 +msgid "" +"Also show new wall posts, private messages and connections under Notices" +msgstr "Toon tevens nieuwe kanaalberichten, privéberichten en connecties onder Notificaties" + +#: ../../Zotlabs/Module/Settings/Channel.php:539 +msgid "Notify me of events this many days in advance" +msgstr "Herinner mij zoveel dagen van te voren aan gebeurtenissen" + +#: ../../Zotlabs/Module/Settings/Channel.php:539 +msgid "Must be greater than 0" +msgstr "Moet hoger dan 0 zijn" + +#: ../../Zotlabs/Module/Settings/Channel.php:541 +msgid "Advanced Account/Page Type Settings" +msgstr "Instellingen geavanceerd account/paginatype" + +#: ../../Zotlabs/Module/Settings/Channel.php:542 +msgid "Change the behaviour of this account for special situations" +msgstr "Verander het gedrag van dit account voor speciale situaties" + +#: ../../Zotlabs/Module/Settings/Channel.php:544 +msgid "Miscellaneous Settings" +msgstr "Diverse instellingen" + +#: ../../Zotlabs/Module/Settings/Channel.php:545 +msgid "Default photo upload folder" +msgstr "Standaard fotoalbum voor uploads" + +#: ../../Zotlabs/Module/Settings/Channel.php:545 +#: ../../Zotlabs/Module/Settings/Channel.php:546 +msgid "%Y - current year, %m - current month" +msgstr "%Y - dit jaar, %m - deze maand" + +#: ../../Zotlabs/Module/Settings/Channel.php:546 +msgid "Default file upload folder" +msgstr "Standaard bestandsmap voor uploads" + +#: ../../Zotlabs/Module/Settings/Channel.php:548 +msgid "Personal menu to display in your channel pages" +msgstr "Persoonlijk menu om op je kanaalpagina's weer te geven" + +#: ../../Zotlabs/Module/Settings/Channel.php:550 +msgid "Remove this channel." +msgstr "Verwijder dit kanaal." + +#: ../../Zotlabs/Module/Settings/Channel.php:551 +msgid "Firefox Share $Projectname provider" +msgstr "$Projectname-service voor Firefox Share" + +#: ../../Zotlabs/Module/Settings/Channel.php:552 +msgid "Start calendar week on monday" +msgstr "Begin in de agenda de week op maandag" + +#: ../../Zotlabs/Module/Settings/Display.php:137 +msgid "No special theme for mobile devices" +msgstr "Geen speciaal thema voor mobiele apparaten" + +#: ../../Zotlabs/Module/Settings/Display.php:140 +#, php-format +msgid "%s - (Experimental)" +msgstr "%s - (experimenteel)" + +#: ../../Zotlabs/Module/Settings/Display.php:191 +msgid "Display Settings" +msgstr "Weergave-instellingen" + +#: ../../Zotlabs/Module/Settings/Display.php:192 +msgid "Theme Settings" +msgstr "Thema-instellingen" + +#: ../../Zotlabs/Module/Settings/Display.php:193 +msgid "Custom Theme Settings" +msgstr "Handmatige thema-instellingen" + +#: ../../Zotlabs/Module/Settings/Display.php:194 +msgid "Content Settings" +msgstr "Inhoudsinstellingen" + +#: ../../Zotlabs/Module/Settings/Display.php:200 +msgid "Display Theme:" +msgstr "Gebruik thema:" + +#: ../../Zotlabs/Module/Settings/Display.php:201 +msgid "Select scheme" +msgstr "Kies schema van thema" + +#: ../../Zotlabs/Module/Settings/Display.php:203 +msgid "Mobile Theme:" +msgstr "Mobiel thema:" + +#: ../../Zotlabs/Module/Settings/Display.php:204 +msgid "Preload images before rendering the page" +msgstr "Afbeeldingen laden voordat de pagina wordt weergegeven" + +#: ../../Zotlabs/Module/Settings/Display.php:204 +msgid "" +"The subjective page load time will be longer but the page will be ready when" +" displayed" +msgstr "De laadtijd van een pagina lijkt langer, maar de pagina is wel meteen helemaal geladen wanneer deze wordt weergeven" + +#: ../../Zotlabs/Module/Settings/Display.php:205 +msgid "Enable user zoom on mobile devices" +msgstr "Inzoomen op smartphones en tablets toestaan" + +#: ../../Zotlabs/Module/Settings/Display.php:206 +msgid "Update browser every xx seconds" +msgstr "Ververs de webbrowser om de zoveel seconde" + +#: ../../Zotlabs/Module/Settings/Display.php:206 +msgid "Minimum of 10 seconds, no maximum" +msgstr "Minimaal 10 seconde, geen maximum" + +#: ../../Zotlabs/Module/Settings/Display.php:207 +msgid "Maximum number of conversations to load at any time:" +msgstr "Maximaal aantal conversaties die per keer geladen worden:" + +#: ../../Zotlabs/Module/Settings/Display.php:207 +msgid "Maximum of 100 items" +msgstr "Maximaal 100 conversaties" + +#: ../../Zotlabs/Module/Settings/Display.php:208 +msgid "Show emoticons (smilies) as images" +msgstr "Toon emoticons (smilies) als afbeeldingen" + +#: ../../Zotlabs/Module/Settings/Display.php:209 +msgid "Manual conversation updates" +msgstr "Handmatige conversatie-updates" + +#: ../../Zotlabs/Module/Settings/Display.php:209 +msgid "Default is automatic, which may increase screen jumping" +msgstr "Standaard is automatisch, maar soms kan het zorgen voor het verspringen van items" + +#: ../../Zotlabs/Module/Settings/Display.php:210 +msgid "Link post titles to source" +msgstr "Berichtkoppen naar originele locatie linken" + +#: ../../Zotlabs/Module/Settings/Display.php:211 +msgid "System Page Layout Editor - (advanced)" +msgstr "Lay-out bewerken van systeempagina's (geavanceerd)" + +#: ../../Zotlabs/Module/Settings/Display.php:214 +msgid "Use blog/list mode on channel page" +msgstr "Gebruik blog/lijst-modus op kanaalpagina" + +#: ../../Zotlabs/Module/Settings/Display.php:214 +#: ../../Zotlabs/Module/Settings/Display.php:215 +msgid "(comments displayed separately)" +msgstr "(reacties worden afzonderlijk weergeven)" + +#: ../../Zotlabs/Module/Settings/Display.php:215 +msgid "Use blog/list mode on grid page" +msgstr "Gebruik blog/lijst-modus op gridpagina" + +#: ../../Zotlabs/Module/Settings/Display.php:216 +msgid "Channel page max height of content (in pixels)" +msgstr "Maximale hoogte berichtinhoud op kanaalpagina (in pixels)" + +#: ../../Zotlabs/Module/Settings/Display.php:216 +#: ../../Zotlabs/Module/Settings/Display.php:217 +msgid "click to expand content exceeding this height" +msgstr "klik om inhoud uit te klappen die deze hoogte overschrijdt" + +#: ../../Zotlabs/Module/Settings/Display.php:217 +msgid "Grid page max height of content (in pixels)" +msgstr "Maximale hoogte berichtinhoud op gridpagina (in pixels)" + +#: ../../Zotlabs/Module/Settings/Featured.php:24 +msgid "No feature settings configured" +msgstr "Geen plugin-instellingen aanwezig" + +#: ../../Zotlabs/Module/Settings/Featured.php:31 +msgid "Feature/Addon Settings" +msgstr "Plugin-instellingen" + +#: ../../Zotlabs/Module/Tagrm.php:48 ../../Zotlabs/Module/Tagrm.php:98 +msgid "Tag removed" +msgstr "Tag verwijderd" + +#: ../../Zotlabs/Module/Tagrm.php:123 +msgid "Remove Item Tag" +msgstr "Verwijder item-tag" + +#: ../../Zotlabs/Module/Tagrm.php:125 +msgid "Select a tag to remove: " +msgstr "Kies een tag om te verwijderen" + +#: ../../Zotlabs/Module/Thing.php:114 +msgid "Thing updated" +msgstr "Ding bijgewerkt" + +#: ../../Zotlabs/Module/Thing.php:166 +msgid "Object store: failed" +msgstr "Opslaan van ding mislukt" + +#: ../../Zotlabs/Module/Thing.php:170 +msgid "Thing added" +msgstr "Ding toegevoegd" + +#: ../../Zotlabs/Module/Thing.php:196 +#, php-format +msgid "OBJ: %1$s %2$s %3$s" +msgstr "OBJ: %1$s %2$s %3$s" + +#: ../../Zotlabs/Module/Thing.php:259 +msgid "Show Thing" +msgstr "Ding weergeven" + +#: ../../Zotlabs/Module/Thing.php:266 +msgid "item not found." +msgstr "Item niet gevonden" + +#: ../../Zotlabs/Module/Thing.php:299 +msgid "Edit Thing" +msgstr "Ding bewerken" + +#: ../../Zotlabs/Module/Thing.php:301 ../../Zotlabs/Module/Thing.php:355 +msgid "Select a profile" +msgstr "Kies een profiel" + +#: ../../Zotlabs/Module/Thing.php:305 ../../Zotlabs/Module/Thing.php:358 +msgid "Post an activity" +msgstr "Plaats een bericht" + +#: ../../Zotlabs/Module/Thing.php:305 ../../Zotlabs/Module/Thing.php:358 +msgid "Only sends to viewers of the applicable profile" +msgstr "Toont dit alleen aan diegene die het gekozen profiel mogen zien." + +#: ../../Zotlabs/Module/Thing.php:307 ../../Zotlabs/Module/Thing.php:360 +msgid "Name of thing e.g. something" +msgstr "Naam van ding" + +#: ../../Zotlabs/Module/Thing.php:309 ../../Zotlabs/Module/Thing.php:361 +msgid "URL of thing (optional)" +msgstr "URL van ding (optioneel)" + +#: ../../Zotlabs/Module/Thing.php:311 ../../Zotlabs/Module/Thing.php:362 +msgid "URL for photo of thing (optional)" +msgstr "URL voor foto van ding (optioneel)" + +#: ../../Zotlabs/Module/Thing.php:353 +msgid "Add Thing to your Profile" +msgstr "Ding aan je profiel toevoegen" + +#: ../../Zotlabs/Module/Import.php:33 +#, php-format +msgid "Your service plan only allows %d channels." +msgstr "Jouw abonnement staat maar %d kanalen toe." + +#: ../../Zotlabs/Module/Import.php:157 ../../include/import.php:100 +msgid "Cloned channel not found. Import failed." +msgstr "Gekloond kanaal niet gevonden. Importeren mislukt." + +#: ../../Zotlabs/Module/Import.php:167 +msgid "No channel. Import failed." +msgstr "Geen kanaal. Importeren mislukt." + +#: ../../Zotlabs/Module/Import.php:503 +#: ../../include/Import/import_diaspora.php:142 +msgid "Import completed." +msgstr "Import voltooid." + +#: ../../Zotlabs/Module/Import.php:525 +msgid "You must be logged in to use this feature." +msgstr "Je moet ingelogd zijn om dit onderdeel te kunnen gebruiken." + +#: ../../Zotlabs/Module/Import.php:530 +msgid "Import Channel" +msgstr "Kanaal importeren" + +#: ../../Zotlabs/Module/Import.php:531 +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." + +#: ../../Zotlabs/Module/Import.php:533 +msgid "Or provide the old server/hub details" +msgstr "Of vul de gegevens van de oude hub in" + +#: ../../Zotlabs/Module/Import.php:534 +msgid "Your old identity address (xyz@example.com)" +msgstr "Jouw oude kanaaladres (xyz@example.com)" + +#: ../../Zotlabs/Module/Import.php:535 +msgid "Your old login email address" +msgstr "Het e-mailadres van je oude account" + +#: ../../Zotlabs/Module/Import.php:536 +msgid "Your old login password" +msgstr "Wachtwoord van jouw oude account" + +#: ../../Zotlabs/Module/Import.php:537 +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." + +#: ../../Zotlabs/Module/Import.php:538 +msgid "Make this hub my primary location" +msgstr "Stel deze hub als mijn primaire locatie in" + +#: ../../Zotlabs/Module/Import.php:539 +msgid "" +"Import existing posts if possible (experimental - limited by available " +"memory" +msgstr "Importeer bestaande berichten wanneer mogelijk (experimenteel - afhankelijk van beschikbaar servergeheugen)" + +#: ../../Zotlabs/Module/Import.php:540 +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." + +#: ../../Zotlabs/Module/Viewconnections.php:65 +msgid "No connections." +msgstr "Geen connecties." + +#: ../../Zotlabs/Module/Viewconnections.php:78 +#, php-format +msgid "Visit %s's profile [%s]" +msgstr "Bezoek het profiel van %s [%s]" + +#: ../../Zotlabs/Module/Viewconnections.php:107 +msgid "View Connections" +msgstr "Connecties weergeven" + +#: ../../Zotlabs/Module/Viewsrc.php:44 +msgid "Source of Item" +msgstr "Bron van item" + +#: ../../Zotlabs/Module/Chat.php:181 +msgid "Room not found" +msgstr "Chatkanaal niet gevonden" + +#: ../../Zotlabs/Module/Chat.php:197 +msgid "Leave Room" +msgstr "Chatkanaal verlaten" + +#: ../../Zotlabs/Module/Chat.php:198 +msgid "Delete Room" +msgstr "Chatkanaal verwijderen" + +#: ../../Zotlabs/Module/Chat.php:199 +msgid "I am away right now" +msgstr "Ik ben momenteel afwezig" + +#: ../../Zotlabs/Module/Chat.php:200 +msgid "I am online" +msgstr "Ik ben online" + +#: ../../Zotlabs/Module/Chat.php:202 +msgid "Bookmark this room" +msgstr "Chatkanaal aan bladwijzers toevoegen" + +#: ../../Zotlabs/Module/Chat.php:231 +msgid "New Chatroom" +msgstr "Nieuw chatkanaal" + +#: ../../Zotlabs/Module/Chat.php:232 +msgid "Chatroom name" +msgstr "Naam chatkanaal" + +#: ../../Zotlabs/Module/Chat.php:233 +msgid "Expiration of chats (minutes)" +msgstr "Aantal minuten voordat chatberichten worden verwijderd" + +#: ../../Zotlabs/Module/Chat.php:249 +#, php-format +msgid "%1$s's Chatrooms" +msgstr "Chatkanalen van %1$s" + +#: ../../Zotlabs/Module/Chat.php:254 +msgid "No chatrooms available" +msgstr "Geen chatkanalen beschikbaar" + +#: ../../Zotlabs/Module/Chat.php:258 +msgid "Expiration" +msgstr "Verloopt na" + +#: ../../Zotlabs/Module/Chat.php:259 +msgid "min" +msgstr "min" + +#: ../../Zotlabs/Module/Xchan.php:10 +msgid "Xchan Lookup" +msgstr "Xchan opzoeken" + +#: ../../Zotlabs/Module/Xchan.php:13 +msgid "Lookup xchan beginning with (or webbie): " +msgstr "Zoek een xchan (of webbie) die begint met:" + +#: ../../Zotlabs/Module/Events.php:25 +msgid "Calendar entries imported." +msgstr "Agenda-items geïmporteerd." + +#: ../../Zotlabs/Module/Events.php:27 +msgid "No calendar entries found." +msgstr "Geen agenda-items gevonden." + +#: ../../Zotlabs/Module/Events.php:106 +msgid "Event can not end before it has started." +msgstr "Gebeurtenis kan niet eindigen voordat het is begonnen" + +#: ../../Zotlabs/Module/Events.php:108 ../../Zotlabs/Module/Events.php:117 +#: ../../Zotlabs/Module/Events.php:139 +msgid "Unable to generate preview." +msgstr "Niet in staat om voorvertoning te genereren" + +#: ../../Zotlabs/Module/Events.php:115 +msgid "Event title and start time are required." +msgstr "Titel en begintijd van gebeurtenis zijn vereist." + +#: ../../Zotlabs/Module/Events.php:137 ../../Zotlabs/Module/Events.php:261 +msgid "Event not found." +msgstr "Gebeurtenis niet gevonden" + +#: ../../Zotlabs/Module/Events.php:453 +msgid "Edit event title" +msgstr "Titel bewerken" + +#: ../../Zotlabs/Module/Events.php:453 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:835 +msgid "Event title" +msgstr "Titel" + +#: ../../Zotlabs/Module/Events.php:455 +msgid "Categories (comma-separated list)" +msgstr "Categorieën (door komma's gescheiden lijst)" + +#: ../../Zotlabs/Module/Events.php:456 +msgid "Edit Category" +msgstr "Categorie" + +#: ../../Zotlabs/Module/Events.php:456 +msgid "Category" +msgstr "Categorie" + +#: ../../Zotlabs/Module/Events.php:459 +msgid "Edit start date and time" +msgstr "Begindatum en -tijd bewerken" + +#: ../../Zotlabs/Module/Events.php:459 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:836 +msgid "Start date and time" +msgstr "Begindatum en -tijd" + +#: ../../Zotlabs/Module/Events.php:460 ../../Zotlabs/Module/Events.php:463 +msgid "Finish date and time are not known or not relevant" +msgstr "Einddatum en -tijd zijn niet bekend of niet van toepassing" + +#: ../../Zotlabs/Module/Events.php:462 +msgid "Edit finish date and time" +msgstr "Einddatum en -tijd bewerken" + +#: ../../Zotlabs/Module/Events.php:462 +msgid "Finish date and time" +msgstr "Einddatum en -tijd" + +#: ../../Zotlabs/Module/Events.php:464 ../../Zotlabs/Module/Events.php:465 +msgid "Adjust for viewer timezone" +msgstr "Aanpassen aan de tijdzone van wie deze gebeurtenis bekijkt" + +#: ../../Zotlabs/Module/Events.php:464 +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." + +#: ../../Zotlabs/Module/Events.php:466 +msgid "Edit Description" +msgstr "Omschrijving bewerken" + +#: ../../Zotlabs/Module/Events.php:468 +msgid "Edit Location" +msgstr "Locatie bewerken" + +#: ../../Zotlabs/Module/Events.php:472 ../../include/conversation.php:1262 +msgid "Permission settings" +msgstr "Permissies" + +#: ../../Zotlabs/Module/Events.php:485 +msgid "Advanced Options" +msgstr "Geavanceerde opties" + +#: ../../Zotlabs/Module/Events.php:624 +msgid "Edit event" +msgstr "Gebeurtenis bewerken" + +#: ../../Zotlabs/Module/Events.php:626 +msgid "Delete event" +msgstr "Gebeurtenis verwijderen" + +#: ../../Zotlabs/Module/Events.php:660 +msgid "calendar" +msgstr "agenda" + +#: ../../Zotlabs/Module/Events.php:686 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:849 +msgid "Month" +msgstr "Maand" + +#: ../../Zotlabs/Module/Events.php:687 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:850 +msgid "Week" +msgstr "Week" + +#: ../../Zotlabs/Module/Events.php:688 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:851 +msgid "Day" +msgstr "Dag" + +#: ../../Zotlabs/Module/Events.php:722 +msgid "Event removed" +msgstr "Gebeurtenis verwijderd" + +#: ../../Zotlabs/Module/Events.php:725 +msgid "Failed to remove event" +msgstr "Verwijderen gebeurtenis mislukt" + #: ../../Zotlabs/Lib/Chatroom.php:27 msgid "Missing room name" msgstr "Naam chatkanaal ontbreekt" @@ -6631,216 +7000,74 @@ msgstr "Chatkanaal niet gevonden" msgid "Room is full" msgstr "Chatkanaal is vol" -#: ../../Zotlabs/Lib/Enotify.php:60 ../../include/network.php:1889 -msgid "$Projectname Notification" -msgstr "$Projectname-notificatie" +#: ../../Zotlabs/Lib/PermissionDescription.php:34 +#: ../../include/acl_selectors.php:128 +msgid "Visible to your default audience" +msgstr "Voor iedereen zichtbaar, mits niet anders ingesteld" -#: ../../Zotlabs/Lib/Enotify.php:61 ../../include/network.php:1890 -msgid "$projectname" -msgstr "$projectname" +#: ../../Zotlabs/Lib/PermissionDescription.php:107 +#: ../../include/acl_selectors.php:191 +msgid "Only me" +msgstr "Alleen ik" -#: ../../Zotlabs/Lib/Enotify.php:63 ../../include/network.php:1892 -msgid "Thank You," -msgstr "Bedankt," +#: ../../Zotlabs/Lib/PermissionDescription.php:108 +msgid "Public" +msgstr "Openbaar" -#: ../../Zotlabs/Lib/Enotify.php:65 ../../include/network.php:1894 +#: ../../Zotlabs/Lib/PermissionDescription.php:109 +msgid "Anybody in the $Projectname network" +msgstr "Iedereen in het $Projectname-netwerk" + +#: ../../Zotlabs/Lib/PermissionDescription.php:110 #, php-format -msgid "%s Administrator" -msgstr "Beheerder %s" +msgid "Any account on %s" +msgstr "Iedereen op %s" -#: ../../Zotlabs/Lib/Enotify.php:103 -#, php-format -msgid "%s " -msgstr "%s " +#: ../../Zotlabs/Lib/PermissionDescription.php:111 +msgid "Any of my connections" +msgstr "Al mijn geaccepteerde connecties" -#: ../../Zotlabs/Lib/Enotify.php:107 -#, php-format -msgid "[$Projectname:Notify] New mail received at %s" -msgstr "[$Projectname:Notificatie] Nieuw privébericht ontvangen op %s" +#: ../../Zotlabs/Lib/PermissionDescription.php:112 +msgid "Only connections I specifically allow" +msgstr "Alleen connecties die uitdrukkelijk door jou zijn toegestaan" -#: ../../Zotlabs/Lib/Enotify.php:109 -#, 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." +#: ../../Zotlabs/Lib/PermissionDescription.php:113 +msgid "Anybody authenticated (could include visitors from other networks)" +msgstr "Geauthenticeerde leden (kan bezoekers van andere netwerken bevatten)" -#: ../../Zotlabs/Lib/Enotify.php:110 -#, php-format -msgid "%1$s sent you %2$s." -msgstr "%1$s zond jou %2$s." +#: ../../Zotlabs/Lib/PermissionDescription.php:114 +msgid "Any connections including those who haven't yet been approved" +msgstr "Al mijn geaccepteerde en nog niet geaccepteerde connecties" -#: ../../Zotlabs/Lib/Enotify.php:110 -msgid "a private message" -msgstr "een privébericht" - -#: ../../Zotlabs/Lib/Enotify.php:111 -#, 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." - -#: ../../Zotlabs/Lib/Enotify.php:170 -#, 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]" - -#: ../../Zotlabs/Lib/Enotify.php:178 -#, 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]" - -#: ../../Zotlabs/Lib/Enotify.php:187 -#, 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]" - -#: ../../Zotlabs/Lib/Enotify.php:198 -#, php-format -msgid "[$Projectname:Notify] Comment to conversation #%1$d by %2$s" -msgstr "[$Projectname:Notificatie] Reactie op conversatie #%1$d door %2$s" - -#: ../../Zotlabs/Lib/Enotify.php:199 -#, 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." - -#: ../../Zotlabs/Lib/Enotify.php:202 ../../Zotlabs/Lib/Enotify.php:217 -#: ../../Zotlabs/Lib/Enotify.php:243 ../../Zotlabs/Lib/Enotify.php:261 -#: ../../Zotlabs/Lib/Enotify.php:275 -#, 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." - -#: ../../Zotlabs/Lib/Enotify.php:208 -#, php-format -msgid "[$Projectname:Notify] %s posted to your profile wall" -msgstr "[$Projectname:Notificatie] %s heeft een bericht op jouw kanaal geplaatst" - -#: ../../Zotlabs/Lib/Enotify.php:210 -#, 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" - -#: ../../Zotlabs/Lib/Enotify.php:212 -#, 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" - -#: ../../Zotlabs/Lib/Enotify.php:236 -#, php-format -msgid "[$Projectname:Notify] %s tagged you" -msgstr "[$Projectname:Notificatie] %s heeft jou genoemd" - -#: ../../Zotlabs/Lib/Enotify.php:237 -#, php-format -msgid "%1$s, %2$s tagged you at %3$s" -msgstr "%1$s, %2$s noemde jou op %3$s" - -#: ../../Zotlabs/Lib/Enotify.php:238 -#, php-format -msgid "%1$s, %2$s [zrl=%3$s]tagged you[/zrl]." -msgstr "%1$s, %2$s [zrl=%3$s]noemde jou[/zrl]." - -#: ../../Zotlabs/Lib/Enotify.php:250 -#, php-format -msgid "[$Projectname:Notify] %1$s poked you" -msgstr "[$Projectname:Notificatie] %1$s heeft jou aangestoten" - -#: ../../Zotlabs/Lib/Enotify.php:251 -#, php-format -msgid "%1$s, %2$s poked you at %3$s" -msgstr "%1$s, %2$s heeft je aangestoten op %3$s" - -#: ../../Zotlabs/Lib/Enotify.php:252 -#, 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]." - -#: ../../Zotlabs/Lib/Enotify.php:268 -#, php-format -msgid "[$Projectname:Notify] %s tagged your post" -msgstr "[$Projectname:Notificatie] %s heeft jouw bericht getagd" - -#: ../../Zotlabs/Lib/Enotify.php:269 -#, 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" - -#: ../../Zotlabs/Lib/Enotify.php:270 -#, 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" - -#: ../../Zotlabs/Lib/Enotify.php:282 -msgid "[$Projectname:Notify] Introduction received" -msgstr "[$Projectname:Notificatie] Connectieverzoek ontvangen" - -#: ../../Zotlabs/Lib/Enotify.php:283 -#, 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" - -#: ../../Zotlabs/Lib/Enotify.php:284 -#, php-format +#: ../../Zotlabs/Lib/PermissionDescription.php:150 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." +"This is your default setting for the audience of your normal stream, and " +"posts." +msgstr "Dit is de standaard privacy-instelling voor wie jouw berichten kan bekijken" -#: ../../Zotlabs/Lib/Enotify.php:288 ../../Zotlabs/Lib/Enotify.php:307 -#, php-format -msgid "You may visit their profile at %s" -msgstr "Je kan het profiel bekijken op %s" - -#: ../../Zotlabs/Lib/Enotify.php:290 -#, 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." - -#: ../../Zotlabs/Lib/Enotify.php:297 -msgid "[$Projectname:Notify] Friend suggestion received" -msgstr "[$Projectname:Notificatie] Kanaalvoorstel ontvangen" - -#: ../../Zotlabs/Lib/Enotify.php:298 -#, 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" - -#: ../../Zotlabs/Lib/Enotify.php:299 -#, php-format +#: ../../Zotlabs/Lib/PermissionDescription.php:151 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." +"This is your default setting for who can view your default channel profile" +msgstr "Dit is de standaard privacy-instelling voor wie jouw standaardprofiel kan bekijken" -#: ../../Zotlabs/Lib/Enotify.php:305 -msgid "Name:" -msgstr "Naam:" +#: ../../Zotlabs/Lib/PermissionDescription.php:152 +msgid "This is your default setting for who can view your connections" +msgstr "Dit is de standaard privacy-instelling voor wie een lijst met jouw connecties kan bekijken" -#: ../../Zotlabs/Lib/Enotify.php:306 -msgid "Photo:" -msgstr "Foto:" +#: ../../Zotlabs/Lib/PermissionDescription.php:153 +msgid "" +"This is your default setting for who can view your file storage and photos" +msgstr "Dit is de standaard privacy-instelling voor wie jouw bestanden en foto's kan bekijken" -#: ../../Zotlabs/Lib/Enotify.php:309 -#, php-format -msgid "Please visit %s to approve or reject the suggestion." -msgstr "Bezoek %s om het voorstel te accepteren of af te wijzen." +#: ../../Zotlabs/Lib/PermissionDescription.php:154 +msgid "This is your default setting for the audience of your webpages" +msgstr "Dit is de standaard privacy-instelling voor wie jouw webpagina's kan bekijken" -#: ../../Zotlabs/Lib/Enotify.php:527 -msgid "[$Projectname:Notify]" -msgstr "[$Projectname:Notificatie]" - -#: ../../Zotlabs/Lib/Enotify.php:687 -msgid "created a new post" -msgstr "maakte een nieuw bericht aan" - -#: ../../Zotlabs/Lib/Enotify.php:688 -#, php-format -msgid "commented on %s's post" -msgstr "gaf een reactie op een bericht van %s" - -#: ../../Zotlabs/Lib/ThreadItem.php:95 ../../include/conversation.php:667 +#: ../../Zotlabs/Lib/ThreadItem.php:95 ../../include/conversation.php:663 msgid "Private Message" msgstr "Niet voor iedereen zichtbaar" -#: ../../Zotlabs/Lib/ThreadItem.php:132 ../../include/conversation.php:659 +#: ../../Zotlabs/Lib/ThreadItem.php:132 ../../include/conversation.php:655 msgid "Select" msgstr "Kies" @@ -6888,11 +7115,11 @@ msgstr "Ster toevoegen of verwijderen" msgid "starred" msgstr "met ster" -#: ../../Zotlabs/Lib/ThreadItem.php:239 ../../include/conversation.php:674 +#: ../../Zotlabs/Lib/ThreadItem.php:239 ../../include/conversation.php:670 msgid "Message signature validated" msgstr "Berichtkenmerk gevalideerd" -#: ../../Zotlabs/Lib/ThreadItem.php:240 ../../include/conversation.php:675 +#: ../../Zotlabs/Lib/ThreadItem.php:240 ../../include/conversation.php:671 msgid "Message signature incorrect" msgstr "Berichtkenmerk onjuist" @@ -6948,323 +7175,4043 @@ msgstr "Kanaal-naar-kanaal" msgid "via Wall-To-Wall:" msgstr "via kanaal-naar-kanaal" -#: ../../Zotlabs/Lib/ThreadItem.php:348 ../../include/conversation.php:720 +#: ../../Zotlabs/Lib/ThreadItem.php:348 ../../include/conversation.php:716 #, php-format msgid "from %s" msgstr "van %s" -#: ../../Zotlabs/Lib/ThreadItem.php:351 ../../include/conversation.php:723 +#: ../../Zotlabs/Lib/ThreadItem.php:351 ../../include/conversation.php:719 #, php-format msgid "last edited: %s" msgstr "laatst bewerkt: %s" -#: ../../Zotlabs/Lib/ThreadItem.php:352 ../../include/conversation.php:724 +#: ../../Zotlabs/Lib/ThreadItem.php:352 ../../include/conversation.php:720 #, php-format msgid "Expires: %s" msgstr "Verloopt: %s" -#: ../../Zotlabs/Lib/ThreadItem.php:377 +#: ../../Zotlabs/Lib/ThreadItem.php:358 +msgid "Attend" +msgstr "Aanwezig" + +#: ../../Zotlabs/Lib/ThreadItem.php:359 +msgid "Attendance Options" +msgstr "Aanwezigheidsopties" + +#: ../../Zotlabs/Lib/ThreadItem.php:360 +msgid "Vote" +msgstr "Stem" + +#: ../../Zotlabs/Lib/ThreadItem.php:361 +msgid "Voting Options" +msgstr "Stemopties" + +#: ../../Zotlabs/Lib/ThreadItem.php:381 +#: ../../extend/addon/addon/bookmarker/bookmarker.php:38 msgid "Save Bookmarks" msgstr "Bladwijzers opslaan" -#: ../../Zotlabs/Lib/ThreadItem.php:378 +#: ../../Zotlabs/Lib/ThreadItem.php:382 msgid "Add to Calendar" msgstr "Aan agenda toevoegen" -#: ../../Zotlabs/Lib/ThreadItem.php:387 +#: ../../Zotlabs/Lib/ThreadItem.php:391 msgid "Mark all seen" msgstr "Markeer alles als bekeken" -#: ../../Zotlabs/Lib/ThreadItem.php:436 ../../include/js_strings.php:7 +#: ../../Zotlabs/Lib/ThreadItem.php:440 ../../include/js_strings.php:7 #, php-format msgid "%s show all" msgstr "%s alle" -#: ../../Zotlabs/Lib/ThreadItem.php:726 ../../include/conversation.php:1239 +#: ../../Zotlabs/Lib/ThreadItem.php:730 ../../include/conversation.php:1237 msgid "Bold" msgstr "Vet" -#: ../../Zotlabs/Lib/ThreadItem.php:727 ../../include/conversation.php:1240 +#: ../../Zotlabs/Lib/ThreadItem.php:731 ../../include/conversation.php:1238 msgid "Italic" msgstr "Cursief" -#: ../../Zotlabs/Lib/ThreadItem.php:728 ../../include/conversation.php:1241 +#: ../../Zotlabs/Lib/ThreadItem.php:732 ../../include/conversation.php:1239 msgid "Underline" msgstr "Onderstrepen" -#: ../../Zotlabs/Lib/ThreadItem.php:729 ../../include/conversation.php:1242 +#: ../../Zotlabs/Lib/ThreadItem.php:733 ../../include/conversation.php:1240 msgid "Quote" msgstr "Citeren" -#: ../../Zotlabs/Lib/ThreadItem.php:730 ../../include/conversation.php:1243 +#: ../../Zotlabs/Lib/ThreadItem.php:734 ../../include/conversation.php:1241 msgid "Code" msgstr "Broncode" -#: ../../Zotlabs/Lib/ThreadItem.php:731 +#: ../../Zotlabs/Lib/ThreadItem.php:735 msgid "Image" msgstr "Afbeelding" -#: ../../Zotlabs/Lib/ThreadItem.php:732 +#: ../../Zotlabs/Lib/ThreadItem.php:736 msgid "Insert Link" msgstr "Link invoegen" -#: ../../Zotlabs/Lib/ThreadItem.php:733 +#: ../../Zotlabs/Lib/ThreadItem.php:737 msgid "Video" msgstr "Video" -#: ../../Zotlabs/Lib/PermissionDescription.php:31 -#: ../../include/acl_selectors.php:124 -msgid "Visible to your default audience" -msgstr "Voor iedereen zichtbaar, mits niet anders ingesteld" - -#: ../../Zotlabs/Lib/PermissionDescription.php:106 -#: ../../include/acl_selectors.php:165 -msgid "Only me" -msgstr "Alleen ik" - -#: ../../Zotlabs/Lib/PermissionDescription.php:107 -msgid "Public" -msgstr "Openbaar" - -#: ../../Zotlabs/Lib/PermissionDescription.php:108 -msgid "Anybody in the $Projectname network" -msgstr "Iedereen in het $Projectname-netwerk" - -#: ../../Zotlabs/Lib/PermissionDescription.php:109 -#, php-format -msgid "Any account on %s" -msgstr "Iedereen op %s" - -#: ../../Zotlabs/Lib/PermissionDescription.php:110 -msgid "Any of my connections" -msgstr "Al mijn geaccepteerde connecties" - -#: ../../Zotlabs/Lib/PermissionDescription.php:111 -msgid "Only connections I specifically allow" -msgstr "Alleen connecties die uitdrukkelijk door jou zijn toegestaan" - -#: ../../Zotlabs/Lib/PermissionDescription.php:112 -msgid "Anybody authenticated (could include visitors from other networks)" -msgstr "Geauthenticeerde leden (kan bezoekers van andere netwerken bevatten)" - -#: ../../Zotlabs/Lib/PermissionDescription.php:113 -msgid "Any connections including those who haven't yet been approved" -msgstr "Al mijn geaccepteerde en nog niet geaccepteerde connecties" - -#: ../../Zotlabs/Lib/PermissionDescription.php:152 -msgid "" -"This is your default setting for the audience of your normal stream, and " -"posts." -msgstr "Dit is de standaard privacy-instelling voor wie jouw berichten kan bekijken" - -#: ../../Zotlabs/Lib/PermissionDescription.php:153 -msgid "" -"This is your default setting for who can view your default channel profile" -msgstr "Dit is de standaard privacy-instelling voor wie jouw standaardprofiel kan bekijken" - -#: ../../Zotlabs/Lib/PermissionDescription.php:154 -msgid "This is your default setting for who can view your connections" -msgstr "Dit is de standaard privacy-instelling voor wie een lijst met jouw connecties kan bekijken" - -#: ../../Zotlabs/Lib/PermissionDescription.php:155 -msgid "" -"This is your default setting for who can view your file storage and photos" -msgstr "Dit is de standaard privacy-instelling voor wie jouw bestanden en foto's kan bekijken" - -#: ../../Zotlabs/Lib/PermissionDescription.php:156 -msgid "This is your default setting for the audience of your webpages" -msgstr "Dit is de standaard privacy-instelling voor wie jouw webpagina's kan bekijken" - -#: ../../Zotlabs/Lib/Apps.php:205 +#: ../../Zotlabs/Lib/Apps.php:207 msgid "Site Admin" msgstr "Hubbeheerder" -#: ../../Zotlabs/Lib/Apps.php:206 -msgid "Bug Report" -msgstr "Bugrapport" +#: ../../Zotlabs/Lib/Apps.php:208 +#: ../../extend/addon/addon/buglink/buglink.php:16 +msgid "Report Bug" +msgstr "Bugrapport indienen" -#: ../../Zotlabs/Lib/Apps.php:207 +#: ../../Zotlabs/Lib/Apps.php:209 msgid "View Bookmarks" msgstr "Bladwijzers bekijken" -#: ../../Zotlabs/Lib/Apps.php:208 +#: ../../Zotlabs/Lib/Apps.php:210 msgid "My Chatrooms" msgstr "Mijn chatkanalen" -#: ../../Zotlabs/Lib/Apps.php:210 +#: ../../Zotlabs/Lib/Apps.php:212 msgid "Firefox Share" msgstr "Firefox Share" -#: ../../Zotlabs/Lib/Apps.php:211 +#: ../../Zotlabs/Lib/Apps.php:213 msgid "Remote Diagnostics" msgstr "Diagnose op afstand" -#: ../../Zotlabs/Lib/Apps.php:212 ../../include/features.php:319 +#: ../../Zotlabs/Lib/Apps.php:214 ../../include/features.php:319 msgid "Suggest Channels" msgstr "Kanalen voorstellen" -#: ../../Zotlabs/Lib/Apps.php:213 ../../include/nav.php:115 -#: ../../boot.php:1739 +#: ../../Zotlabs/Lib/Apps.php:215 ../../include/nav.php:115 +#: ../../boot.php:1720 msgid "Login" msgstr "Inloggen" -#: ../../Zotlabs/Lib/Apps.php:215 ../../include/nav.php:184 +#: ../../Zotlabs/Lib/Apps.php:217 ../../include/nav.php:182 msgid "Grid" msgstr "Grid" -#: ../../Zotlabs/Lib/Apps.php:220 ../../include/nav.php:187 +#: ../../Zotlabs/Lib/Apps.php:221 ../../include/features.php:99 +#: ../../include/conversation.php:1740 +msgid "Wiki" +msgstr "Wiki" + +#: ../../Zotlabs/Lib/Apps.php:222 ../../include/nav.php:185 msgid "Channel Home" msgstr "Jouw kanaal" -#: ../../Zotlabs/Lib/Apps.php:223 ../../include/nav.php:206 -#: ../../include/conversation.php:1689 ../../include/conversation.php:1692 +#: ../../Zotlabs/Lib/Apps.php:225 ../../include/nav.php:204 +#: ../../include/conversation.php:1691 ../../include/conversation.php:1694 msgid "Events" msgstr "Agenda" -#: ../../Zotlabs/Lib/Apps.php:224 ../../include/nav.php:172 +#: ../../Zotlabs/Lib/Apps.php:226 ../../include/nav.php:170 msgid "Directory" msgstr "Kanalengids" -#: ../../Zotlabs/Lib/Apps.php:226 ../../include/nav.php:198 +#: ../../Zotlabs/Lib/Apps.php:228 ../../include/nav.php:196 msgid "Mail" msgstr "Privéberichten" -#: ../../Zotlabs/Lib/Apps.php:229 ../../include/nav.php:99 +#: ../../Zotlabs/Lib/Apps.php:231 ../../include/nav.php:99 msgid "Chat" msgstr "Chatten" -#: ../../Zotlabs/Lib/Apps.php:231 +#: ../../Zotlabs/Lib/Apps.php:233 msgid "Probe" msgstr "Onderzoeken" -#: ../../Zotlabs/Lib/Apps.php:232 +#: ../../Zotlabs/Lib/Apps.php:234 msgid "Suggest" msgstr "Voorstellen" -#: ../../Zotlabs/Lib/Apps.php:233 +#: ../../Zotlabs/Lib/Apps.php:235 msgid "Random Channel" msgstr "Willekeurig kanaal" -#: ../../Zotlabs/Lib/Apps.php:234 +#: ../../Zotlabs/Lib/Apps.php:236 msgid "Invite" msgstr "Uitnodigen " -#: ../../Zotlabs/Lib/Apps.php:235 ../../include/widgets.php:1564 +#: ../../Zotlabs/Lib/Apps.php:237 ../../include/widgets.php:1565 msgid "Features" msgstr "Extra functies" -#: ../../Zotlabs/Lib/Apps.php:236 +#: ../../Zotlabs/Lib/Apps.php:238 +#: ../../extend/addon/addon/openid/MysqlProvider.php:69 msgid "Language" msgstr "Taal" -#: ../../Zotlabs/Lib/Apps.php:237 +#: ../../Zotlabs/Lib/Apps.php:239 msgid "Post" msgstr "Bericht" -#: ../../Zotlabs/Lib/Apps.php:238 +#: ../../Zotlabs/Lib/Apps.php:240 +#: ../../extend/addon/addon/openid/MysqlProvider.php:58 +#: ../../extend/addon/addon/openid/MysqlProvider.php:59 +#: ../../extend/addon/addon/openid/MysqlProvider.php:60 msgid "Profile Photo" msgstr "Profielfoto" -#: ../../Zotlabs/Lib/Apps.php:339 +#: ../../Zotlabs/Lib/Apps.php:344 msgid "Purchase" msgstr "Aanschaffen" -#: ../../include/Import/import_diaspora.php:16 -msgid "No username found in import file." -msgstr "Geen gebruikersnaam in het importbestand gevonden." +#: ../../Zotlabs/Lib/Apps.php:348 +msgid "Undelete" +msgstr "Verwijdering ongedaan maken" -#: ../../include/Import/import_diaspora.php:41 ../../include/import.php:51 -msgid "Unable to create a unique channel address. Import failed." -msgstr "Niet in staat om een uniek kanaaladres aan te maken. Importeren is mislukt." +#: ../../Zotlabs/Lib/Enotify.php:60 ../../include/network.php:1914 +msgid "$Projectname Notification" +msgstr "$Projectname-notificatie" -#: ../../include/dba/dba_driver.php:173 +#: ../../Zotlabs/Lib/Enotify.php:61 ../../extend/addon/addon/diaspora/p.php:46 +#: ../../extend/addon/addon/diaspora/util.php:218 +#: ../../extend/addon/addon/diaspora/util.php:231 +#: ../../include/network.php:1915 +msgid "$projectname" +msgstr "$projectname" + +#: ../../Zotlabs/Lib/Enotify.php:63 ../../include/network.php:1917 +msgid "Thank You," +msgstr "Bedankt," + +#: ../../Zotlabs/Lib/Enotify.php:65 ../../include/network.php:1919 +#, php-format +msgid "%s Administrator" +msgstr "Beheerder %s" + +#: ../../Zotlabs/Lib/Enotify.php:116 +#, php-format +msgid "%s " +msgstr "%s " + +#: ../../Zotlabs/Lib/Enotify.php:120 +#, php-format +msgid "[$Projectname:Notify] New mail received at %s" +msgstr "[$Projectname:Notificatie] Nieuw privébericht ontvangen op %s" + +#: ../../Zotlabs/Lib/Enotify.php:122 +#, 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." + +#: ../../Zotlabs/Lib/Enotify.php:123 +#, php-format +msgid "%1$s sent you %2$s." +msgstr "%1$s zond jou %2$s." + +#: ../../Zotlabs/Lib/Enotify.php:123 +msgid "a private message" +msgstr "een privébericht" + +#: ../../Zotlabs/Lib/Enotify.php:124 +#, 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." + +#: ../../Zotlabs/Lib/Enotify.php:183 +#, 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]" + +#: ../../Zotlabs/Lib/Enotify.php:191 +#, 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]" + +#: ../../Zotlabs/Lib/Enotify.php:200 +#, 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]" + +#: ../../Zotlabs/Lib/Enotify.php:211 +#, php-format +msgid "[$Projectname:Notify] Comment to conversation #%1$d by %2$s" +msgstr "[$Projectname:Notificatie] %2$s gaf een reactie in conversatie #%1$d" + +#: ../../Zotlabs/Lib/Enotify.php:212 +#, php-format +msgid "%1$s, %2$s commented on an item/conversation you have been following." +msgstr "%1$s, %2$s gaf een reactie in een conversatie die jij volgt." + +#: ../../Zotlabs/Lib/Enotify.php:215 ../../Zotlabs/Lib/Enotify.php:292 +#: ../../Zotlabs/Lib/Enotify.php:309 ../../Zotlabs/Lib/Enotify.php:335 +#: ../../Zotlabs/Lib/Enotify.php:353 ../../Zotlabs/Lib/Enotify.php:367 +#, 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." + +#: ../../Zotlabs/Lib/Enotify.php:273 +#, php-format +msgid "%1$s, %2$s liked [zrl=%3$s]your %4$s[/zrl]" +msgstr "%1$s, %2$s vindt [zrl=%3$s]jouw %4$s[/zrl] leuk" + +#: ../../Zotlabs/Lib/Enotify.php:288 +#, php-format +msgid "[$Projectname:Notify] Like received to conversation #%1$d by %2$s" +msgstr "[$Projectname:Notificatie] %2$s vindt iets leuk in conversatie #%1$d" + +#: ../../Zotlabs/Lib/Enotify.php:289 +#, php-format +msgid "%1$s, %2$s liked an item/conversation you created." +msgstr "%1$s, %2$s vindt iets leuk in een conversatie die jij bent gestart." + +#: ../../Zotlabs/Lib/Enotify.php:300 +#, php-format +msgid "[$Projectname:Notify] %s posted to your profile wall" +msgstr "[$Projectname:Notificatie] %s heeft een bericht op jouw kanaal geplaatst" + +#: ../../Zotlabs/Lib/Enotify.php:302 +#, 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" + +#: ../../Zotlabs/Lib/Enotify.php:304 +#, 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" + +#: ../../Zotlabs/Lib/Enotify.php:328 +#, php-format +msgid "[$Projectname:Notify] %s tagged you" +msgstr "[$Projectname:Notificatie] %s heeft jou genoemd" + +#: ../../Zotlabs/Lib/Enotify.php:329 +#, php-format +msgid "%1$s, %2$s tagged you at %3$s" +msgstr "%1$s, %2$s noemde jou op %3$s" + +#: ../../Zotlabs/Lib/Enotify.php:330 +#, php-format +msgid "%1$s, %2$s [zrl=%3$s]tagged you[/zrl]." +msgstr "%1$s, %2$s [zrl=%3$s]noemde jou[/zrl]." + +#: ../../Zotlabs/Lib/Enotify.php:342 +#, php-format +msgid "[$Projectname:Notify] %1$s poked you" +msgstr "[$Projectname:Notificatie] %1$s heeft jou aangestoten" + +#: ../../Zotlabs/Lib/Enotify.php:343 +#, php-format +msgid "%1$s, %2$s poked you at %3$s" +msgstr "%1$s, %2$s heeft je aangestoten op %3$s" + +#: ../../Zotlabs/Lib/Enotify.php:344 +#, 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]." + +#: ../../Zotlabs/Lib/Enotify.php:360 +#, php-format +msgid "[$Projectname:Notify] %s tagged your post" +msgstr "[$Projectname:Notificatie] %s heeft jouw bericht getagd" + +#: ../../Zotlabs/Lib/Enotify.php:361 +#, 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" + +#: ../../Zotlabs/Lib/Enotify.php:362 +#, 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" + +#: ../../Zotlabs/Lib/Enotify.php:374 +msgid "[$Projectname:Notify] Introduction received" +msgstr "[$Projectname:Notificatie] Connectieverzoek ontvangen" + +#: ../../Zotlabs/Lib/Enotify.php:375 +#, 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" + +#: ../../Zotlabs/Lib/Enotify.php:376 +#, 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." + +#: ../../Zotlabs/Lib/Enotify.php:380 ../../Zotlabs/Lib/Enotify.php:399 +#, php-format +msgid "You may visit their profile at %s" +msgstr "Je kan het profiel bekijken op %s" + +#: ../../Zotlabs/Lib/Enotify.php:382 +#, 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." + +#: ../../Zotlabs/Lib/Enotify.php:389 +msgid "[$Projectname:Notify] Friend suggestion received" +msgstr "[$Projectname:Notificatie] Kanaalvoorstel ontvangen" + +#: ../../Zotlabs/Lib/Enotify.php:390 +#, 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" + +#: ../../Zotlabs/Lib/Enotify.php:391 +#, 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." + +#: ../../Zotlabs/Lib/Enotify.php:397 +msgid "Name:" +msgstr "Naam:" + +#: ../../Zotlabs/Lib/Enotify.php:398 +msgid "Photo:" +msgstr "Foto:" + +#: ../../Zotlabs/Lib/Enotify.php:401 +#, php-format +msgid "Please visit %s to approve or reject the suggestion." +msgstr "Bezoek %s om het voorstel te accepteren of af te wijzen." + +#: ../../Zotlabs/Lib/Enotify.php:619 +msgid "[$Projectname:Notify]" +msgstr "[$Projectname:Notificatie]" + +#: ../../Zotlabs/Lib/Enotify.php:779 +msgid "created a new post" +msgstr "maakte een nieuw bericht aan" + +#: ../../Zotlabs/Lib/Enotify.php:780 +#, php-format +msgid "commented on %s's post" +msgstr "gaf een reactie op een bericht van %s" + +#: ../../extend/addon/addon/adultphotoflag/adultphotoflag.php:24 +msgid "Flag Adult Photos" +msgstr "Markeer foto's als voor volwassenen" + +#: ../../extend/addon/addon/adultphotoflag/adultphotoflag.php:25 +msgid "" +"Provide photo edit option to hide inappropriate photos from default album " +"view" +msgstr "Zorgt voor een optie om foto's met inhoud voor volwassenen in de standaard albumweergave te verbergen" + +#: ../../extend/addon/addon/chords/Mod_Chords.php:44 +msgid "" +"This is a fairly comprehensive and complete guitar chord dictionary which " +"will list most of the available ways to play a certain chord, starting from " +"the base of the fingerboard up to a few frets beyond the twelfth fret " +"(beyond which everything repeats). A couple of non-standard tunings are " +"provided for the benefit of slide players, etc." +msgstr "This is a fairly comprehensive and complete guitar chord dictionary which will list most of the available ways to play a certain chord, starting from the base of the fingerboard up to a few frets beyond the twelfth fret (beyond which everything repeats). A couple of non-standard tunings are provided for the benefit of slide players, etc." + +#: ../../extend/addon/addon/chords/Mod_Chords.php:46 +msgid "" +"Chord names start with a root note (A-G) and may include sharps (#) and " +"flats (b). This software will parse most of the standard naming conventions " +"such as maj, min, dim, sus(2 or 4), aug, with optional repeating elements." +msgstr "Chord names start with a root note (A-G) and may include sharps (#) and flats (b). This software will parse most of the standard naming conventions such as maj, min, dim, sus(2 or 4), aug, with optional repeating elements." + +#: ../../extend/addon/addon/chords/Mod_Chords.php:48 +msgid "" +"Valid examples include A, A7, Am7, Amaj7, Amaj9, Ammaj7, Aadd4, Asus2Add4, " +"E7b13b11 ..." +msgstr "Valid examples include A, A7, Am7, Amaj7, Amaj9, Ammaj7, Aadd4, Asus2Add4, E7b13b11 ..." + +#: ../../extend/addon/addon/chords/Mod_Chords.php:51 +msgid "Guitar Chords" +msgstr "Gitaarakkoorden" + +#: ../../extend/addon/addon/chords/Mod_Chords.php:52 +msgid "The complete online chord dictionary" +msgstr "Het complete online akkoordenboek" + +#: ../../extend/addon/addon/chords/Mod_Chords.php:57 +msgid "Tuning" +msgstr "Stemmen" + +#: ../../extend/addon/addon/chords/Mod_Chords.php:58 +msgid "Chord name: example: Em7" +msgstr "Akkoordnaam: bijvoorbeeld: Em7" + +#: ../../extend/addon/addon/chords/Mod_Chords.php:59 +msgid "Show for left handed stringing" +msgstr "Toon voor linkshandige gitaar" + +#: ../../extend/addon/addon/chords/chords.php:33 +msgid "Quick Reference" +msgstr "Beknopt overzicht" + +#: ../../extend/addon/addon/diaspora/diaspora.php:671 +msgid "Diaspora Protocol Settings updated." +msgstr "Diaspora-protocol-instellingen bijgewerkt." + +#: ../../extend/addon/addon/diaspora/diaspora.php:692 +msgid "Enable the Diaspora protocol for this channel" +msgstr "Het Diaspora-protocol voor dit kanaal inschakelen" + +#: ../../extend/addon/addon/diaspora/diaspora.php:696 +msgid "Allow any Diaspora member to comment on your public posts" +msgstr "Geef elk Diaspora-lid toestemming om op jouw openbare berichten te reageren" + +#: ../../extend/addon/addon/diaspora/diaspora.php:700 +msgid "Prevent your hashtags from being redirected to other sites" +msgstr "Voorkom dat jouw hashtags naar andere websites worden doorverwezen" + +#: ../../extend/addon/addon/diaspora/diaspora.php:705 +msgid "Followed hashtags (comma separated, do not include the #)" +msgstr "Gevolgde hashtags (door komma's gescheiden lijst, zonder de #)" + +#: ../../extend/addon/addon/diaspora/diaspora.php:710 +msgid "Diaspora Protocol Settings" +msgstr "Diaspora-protocol (incl. Friendica)" + +#: ../../extend/addon/addon/dirstats/dirstats.php:94 +msgid "Hubzilla Directory Stats" +msgstr "Kanalengidsstatistieken Hubzilla" + +#: ../../extend/addon/addon/dirstats/dirstats.php:95 +msgid "Total Hubs" +msgstr "Totaal aantal hubs" + +#: ../../extend/addon/addon/dirstats/dirstats.php:97 +msgid "Hubzilla Hubs" +msgstr "Hubzilla-hubs" + +#: ../../extend/addon/addon/dirstats/dirstats.php:99 +msgid "Friendica Hubs" +msgstr "Friendica-hubs" + +#: ../../extend/addon/addon/dirstats/dirstats.php:101 +msgid "Diaspora Pods" +msgstr "Diaspora-pods" + +#: ../../extend/addon/addon/dirstats/dirstats.php:103 +msgid "Hubzilla Channels" +msgstr "Hubzilla-kanalen" + +#: ../../extend/addon/addon/dirstats/dirstats.php:105 +msgid "Friendica Channels" +msgstr "Friendica-kanalen" + +#: ../../extend/addon/addon/dirstats/dirstats.php:107 +msgid "Diaspora Channels" +msgstr "Diaspora-kanalen" + +#: ../../extend/addon/addon/dirstats/dirstats.php:109 +msgid "Aged 35 and above" +msgstr "Leeftijd is ouder dan 35 jaar" + +#: ../../extend/addon/addon/dirstats/dirstats.php:111 +msgid "Aged 34 and under" +msgstr "Leeftijd is jonger dan 34" + +#: ../../extend/addon/addon/dirstats/dirstats.php:113 +msgid "Average Age" +msgstr "Gemiddelde leeftijd" + +#: ../../extend/addon/addon/dirstats/dirstats.php:115 +msgid "Known Chatrooms" +msgstr "Bekend aantal chatkanalen" + +#: ../../extend/addon/addon/dirstats/dirstats.php:117 +msgid "Known Tags" +msgstr "Bekend aantal tags" + +#: ../../extend/addon/addon/dirstats/dirstats.php:119 +msgid "" +"Please note Diaspora and Friendica statistics are merely those **this " +"directory** is aware of, and not all those known in the network. This also " +"applies to chatrooms," +msgstr "Please note Diaspora and Friendica statistics are merely those **this directory** is aware of, and not all those known in the network. This also applies to chatrooms," + +#: ../../extend/addon/addon/donate/donate.php:21 +msgid "Project Servers and Resources" +msgstr "Projectservers en -middelen" + +#: ../../extend/addon/addon/donate/donate.php:22 +msgid "Project Creator and Tech Lead" +msgstr "Projectgrondlegger en hoofdontwikkelaar" + +#: ../../extend/addon/addon/donate/donate.php:23 +msgid "Admin, developer, directorymin, support bloke" +msgstr "Beheerder, ontwikkelaar, kanalengidsbeheerder en supportgozer" + +#: ../../extend/addon/addon/donate/donate.php:50 +msgid "" +"And the hundreds of other people and organisations who helped make the " +"Hubzilla possible." +msgstr "En de honderden andere mensen en organisaties die Hubzilla mogelijk hebben gemaakt. " + +#: ../../extend/addon/addon/donate/donate.php:53 +msgid "" +"The Redmatrix/Hubzilla projects are provided primarily by volunteers giving " +"their time and expertise - and often paying out of pocket for services they " +"share with others." +msgstr "De Hubzillaprojecten worden hoofdzakelijk aangeboden door vrijwilligers die er hun tijd en expertise insteken - en meestal zelf de diensten betalen die ze met anderen delen." + +#: ../../extend/addon/addon/donate/donate.php:54 +msgid "" +"There is no corporate funding and no ads, and we do not collect and sell " +"your personal information. (We don't control your personal information - " +"you do.)" +msgstr "Wij worden niet gefinancierd door bedrijven en reclame, en wij verzamelen en verkopen niet jouw persoonlijke gegevens. We hebben geen controle over jouw persoonlijke gegevens - dat heb jezelf." + +#: ../../extend/addon/addon/donate/donate.php:55 +msgid "" +"Help support our ground-breaking work in decentralisation, web identity, and" +" privacy." +msgstr "Steun ons baanbrekende werk in decentralisatie, webidentiteit en privacy. " + +#: ../../extend/addon/addon/donate/donate.php:57 +msgid "" +"Your donations keep servers and services running and also helps us to " +"provide innovative new features and continued development." +msgstr "Jouw donaties laten onze servers en diensten draaien, en helpt ons om nieuwe innovatieve mogelijkheden te blijven ontwikkelen." + +#: ../../extend/addon/addon/donate/donate.php:60 +msgid "Donate" +msgstr "Doneer" + +#: ../../extend/addon/addon/donate/donate.php:62 +msgid "" +"Choose a project, developer, or public hub to support with a one-time " +"donation" +msgstr "Kies een project, ontwikkelaar of openbaar toegankelijke hub, die je met een eenmalige donatie wil steunen" + +#: ../../extend/addon/addon/donate/donate.php:63 +msgid "Donate Now" +msgstr "Doneer nu" + +#: ../../extend/addon/addon/donate/donate.php:64 +msgid "" +"Or become a project sponsor (Hubzilla Project " +"only)" +msgstr "Of wordt een projectsponsor (alleen het Hubzilla-project)" + +#: ../../extend/addon/addon/donate/donate.php:65 +msgid "" +"Please indicate if you would like your first name or full name (or nothing) " +"to appear in our sponsor listing" +msgstr "Geef aan of jouw voornaam of volledige naam (of niets) op onze sponsorlijst moet verschijnen" + +#: ../../extend/addon/addon/donate/donate.php:66 +msgid "Sponsor" +msgstr "Sponsor" + +#: ../../extend/addon/addon/donate/donate.php:69 +msgid "Special thanks to: " +msgstr "Speciale dank gaat naar: " + +#: ../../extend/addon/addon/dwpost/dwpost.php:42 +msgid "Post to Dreamwidth" +msgstr "Doorplaatsen naar Dreamwidth" + +#: ../../extend/addon/addon/dwpost/dwpost.php:73 +msgid "Enable Dreamwidth Post Plugin" +msgstr "Doorplaatsen naar Dreamwidth inschakelen" + +#: ../../extend/addon/addon/dwpost/dwpost.php:77 +msgid "Dreamwidth username" +msgstr "Gebruikersnaam Dreamwidth" + +#: ../../extend/addon/addon/dwpost/dwpost.php:81 +msgid "Dreamwidth password" +msgstr "Wachtwoord Dreamwidth" + +#: ../../extend/addon/addon/dwpost/dwpost.php:85 +msgid "Post to Dreamwidth by default" +msgstr "Standaard doorplaatsen naar Dreamwidth" + +#: ../../extend/addon/addon/dwpost/dwpost.php:89 +msgid "Dreamwidth Post Settings" +msgstr "Doorplaatsen naar Dreamwidth" + +#: ../../extend/addon/addon/flattrwidget/flattrwidget.php:45 +msgid "Flattr this!" +msgstr "Flattr this!" + +#: ../../extend/addon/addon/flattrwidget/flattrwidget.php:83 +msgid "Flattr widget settings updated." +msgstr "Instellingen Flattrwidget bijgewerkt." + +#: ../../extend/addon/addon/flattrwidget/flattrwidget.php:100 +msgid "Flattr user" +msgstr "Gebruikersnaam Flattr" + +#: ../../extend/addon/addon/flattrwidget/flattrwidget.php:104 +msgid "URL of the Thing to flattr" +msgstr "URL van het Flattr-item" + +#: ../../extend/addon/addon/flattrwidget/flattrwidget.php:104 +msgid "If empty channel URL is used" +msgstr "Wanneer een lege kanaal-URL wordt gebruikt" + +#: ../../extend/addon/addon/flattrwidget/flattrwidget.php:108 +msgid "Title of the Thing to flattr" +msgstr "Naam van het Flattr-item" + +#: ../../extend/addon/addon/flattrwidget/flattrwidget.php:108 +msgid "If empty \"channel name on The Hubzilla\" will be used" +msgstr "Wanneer een lege \"kanaalnaam op Hubzilla\" wordt gebruikt" + +#: ../../extend/addon/addon/flattrwidget/flattrwidget.php:112 +msgid "Static or dynamic flattr button" +msgstr "Statische of dynamische Flattr-knop" + +#: ../../extend/addon/addon/flattrwidget/flattrwidget.php:112 +msgid "static" +msgstr "statisch" + +#: ../../extend/addon/addon/flattrwidget/flattrwidget.php:112 +msgid "dynamic" +msgstr "dynamisch" + +#: ../../extend/addon/addon/flattrwidget/flattrwidget.php:116 +msgid "Alignment of the widget" +msgstr "Uitlijning van de widget" + +#: ../../extend/addon/addon/flattrwidget/flattrwidget.php:116 +msgid "left" +msgstr "links" + +#: ../../extend/addon/addon/flattrwidget/flattrwidget.php:116 +msgid "right" +msgstr "rechts" + +#: ../../extend/addon/addon/flattrwidget/flattrwidget.php:120 +msgid "Enable Flattr widget" +msgstr "Flattrwidget inschakelen" + +#: ../../extend/addon/addon/flattrwidget/flattrwidget.php:124 +msgid "Flattr Widget Settings" +msgstr "Flattrwidget" + +#: ../../extend/addon/addon/friendica/dfrn_confirm.php:118 +msgid "Contact not found." +msgstr "Contact niet gevonden" + +#: ../../extend/addon/addon/friendica/dfrn_confirm.php:119 +msgid "" +"This may occasionally happen if contact was requested by both persons and it" +" has already been approved." +msgstr "This may occasionally happen if contact was requested by both persons and it has already been approved." + +#: ../../extend/addon/addon/friendica/dfrn_confirm.php:238 +msgid "Response from remote site was not understood." +msgstr "Response from remote site was not understood." + +#: ../../extend/addon/addon/friendica/dfrn_confirm.php:247 +#: ../../extend/addon/addon/friendica/dfrn_confirm.php:252 +msgid "Unexpected response from remote site: " +msgstr "Unexpected response from remote site: " + +#: ../../extend/addon/addon/friendica/dfrn_confirm.php:261 +msgid "Confirmation completed successfully." +msgstr "Confirmation completed successfully." + +#: ../../extend/addon/addon/friendica/dfrn_confirm.php:263 +#: ../../extend/addon/addon/friendica/dfrn_confirm.php:277 +#: ../../extend/addon/addon/friendica/dfrn_confirm.php:284 +msgid "Remote site reported: " +msgstr "Remote site reported: " + +#: ../../extend/addon/addon/friendica/dfrn_confirm.php:275 +msgid "Temporary failure. Please wait and try again." +msgstr "Temporary failure. Please wait and try again." + +#: ../../extend/addon/addon/friendica/dfrn_confirm.php:282 +msgid "Introduction failed or was revoked." +msgstr "Introduction failed or was revoked." + +#: ../../extend/addon/addon/friendica/dfrn_confirm.php:428 +msgid "Unable to set contact photo." +msgstr "Unable to set contact photo." + +#: ../../extend/addon/addon/friendica/dfrn_confirm.php:485 +#, php-format +msgid "%1$s is now friends with %2$s" +msgstr "%1$s is now friends with %2$s" + +#: ../../extend/addon/addon/friendica/dfrn_confirm.php:570 +#, php-format +msgid "No user record found for '%s' " +msgstr "No user record found for '%s' " + +#: ../../extend/addon/addon/friendica/dfrn_confirm.php:580 +msgid "Our site encryption key is apparently messed up." +msgstr "Our site encryption key is apparently messed up." + +#: ../../extend/addon/addon/friendica/dfrn_confirm.php:591 +msgid "Empty site URL was provided or URL could not be decrypted by us." +msgstr "Empty site URL was provided or URL could not be decrypted by us." + +#: ../../extend/addon/addon/friendica/dfrn_confirm.php:612 +msgid "Contact record was not found for you on our site." +msgstr "Contact record was not found for you on our site." + +#: ../../extend/addon/addon/friendica/dfrn_confirm.php:626 +#, php-format +msgid "Site public key not available in contact record for URL %s." +msgstr "Site public key not available in contact record for URL %s." + +#: ../../extend/addon/addon/friendica/dfrn_confirm.php:646 +msgid "" +"The ID provided by your system is a duplicate on our system. It should work " +"if you try again." +msgstr "The ID provided by your system is a duplicate on our system. It should work if you try again." + +#: ../../extend/addon/addon/friendica/dfrn_confirm.php:657 +msgid "Unable to set your contact credentials on our system." +msgstr "Unable to set your contact credentials on our system." + +#: ../../extend/addon/addon/friendica/dfrn_confirm.php:724 +msgid "Unable to update your contact profile details on our system" +msgstr "Unable to update your contact profile details on our system" + +#: ../../extend/addon/addon/friendica/dfrn_confirm.php:751 +#: ../../extend/addon/addon/friendica/dfrn_request.php:749 +msgid "[Name Withheld]" +msgstr "[Name Withheld]" + +#: ../../extend/addon/addon/friendica/dfrn_confirm.php:796 +#, php-format +msgid "%1$s has joined %2$s" +msgstr "%1$s has joined %2$s" + +#: ../../extend/addon/addon/friendica/dfrn_poll.php:103 +#: ../../extend/addon/addon/friendica/dfrn_poll.php:536 +#, php-format +msgid "%1$s welcomes %2$s" +msgstr "%1$s welcomes %2$s" + +#: ../../extend/addon/addon/friendica/dfrn_request.php:102 +msgid "This introduction has already been accepted." +msgstr "This introduction has already been accepted." + +#: ../../extend/addon/addon/friendica/dfrn_request.php:123 +#: ../../extend/addon/addon/friendica/dfrn_request.php:528 +msgid "Profile location is not valid or does not contain profile information." +msgstr "Profile location is not valid or does not contain profile information." + +#: ../../extend/addon/addon/friendica/dfrn_request.php:128 +#: ../../extend/addon/addon/friendica/dfrn_request.php:533 +msgid "Warning: profile location has no identifiable owner name." +msgstr "Warning: profile location has no identifiable owner name." + +#: ../../extend/addon/addon/friendica/dfrn_request.php:130 +#: ../../extend/addon/addon/friendica/dfrn_request.php:535 +msgid "Warning: profile location has no profile photo." +msgstr "Warning: profile location has no profile photo." + +#: ../../extend/addon/addon/friendica/dfrn_request.php:133 +#: ../../extend/addon/addon/friendica/dfrn_request.php:538 +#, php-format +msgid "%d required parameter was not found at the given location" +msgid_plural "%d required parameters were not found at the given location" +msgstr[0] "%d required parameter was not found at the given location" +msgstr[1] "%d required parameters were not found at the given location" + +#: ../../extend/addon/addon/friendica/dfrn_request.php:180 +msgid "Introduction complete." +msgstr "Introduction complete." + +#: ../../extend/addon/addon/friendica/dfrn_request.php:224 +msgid "Unrecoverable protocol error." +msgstr "Unrecoverable protocol error." + +#: ../../extend/addon/addon/friendica/dfrn_request.php:252 +msgid "Profile unavailable." +msgstr "Profile unavailable." + +#: ../../extend/addon/addon/friendica/dfrn_request.php:277 +#, php-format +msgid "%s has received too many connection requests today." +msgstr "%s has received too many connection requests today." + +#: ../../extend/addon/addon/friendica/dfrn_request.php:278 +msgid "Spam protection measures have been invoked." +msgstr "Spam protection measures have been invoked." + +#: ../../extend/addon/addon/friendica/dfrn_request.php:279 +msgid "Friends are advised to please try again in 24 hours." +msgstr "Friends are advised to please try again in 24 hours." + +#: ../../extend/addon/addon/friendica/dfrn_request.php:341 +msgid "Invalid locator" +msgstr "Invalid locator" + +#: ../../extend/addon/addon/friendica/dfrn_request.php:350 +msgid "Invalid email address." +msgstr "Invalid email address." + +#: ../../extend/addon/addon/friendica/dfrn_request.php:377 +msgid "This account has not been configured for email. Request failed." +msgstr "This account has not been configured for email. Request failed." + +#: ../../extend/addon/addon/friendica/dfrn_request.php:473 +msgid "Unable to resolve your name at the provided location." +msgstr "Unable to resolve your name at the provided location." + +#: ../../extend/addon/addon/friendica/dfrn_request.php:486 +msgid "You have already introduced yourself here." +msgstr "You have already introduced yourself here." + +#: ../../extend/addon/addon/friendica/dfrn_request.php:490 +#, php-format +msgid "Apparently you are already friends with %s." +msgstr "Apparently you are already friends with %s." + +#: ../../extend/addon/addon/friendica/dfrn_request.php:511 +msgid "Invalid profile URL." +msgstr "Invalid profile URL." + +#: ../../extend/addon/addon/friendica/dfrn_request.php:517 +msgid "Disallowed profile URL." +msgstr "Disallowed profile URL." + +#: ../../extend/addon/addon/friendica/dfrn_request.php:587 +msgid "Failed to update contact record." +msgstr "Failed to update contact record." + +#: ../../extend/addon/addon/friendica/dfrn_request.php:608 +msgid "Your introduction has been sent." +msgstr "Your introduction has been sent." + +#: ../../extend/addon/addon/friendica/dfrn_request.php:662 +msgid "Please login to confirm introduction." +msgstr "Please login to confirm introduction." + +#: ../../extend/addon/addon/friendica/dfrn_request.php:676 +msgid "" +"Incorrect identity currently logged in. Please login to " +"this profile." +msgstr "Incorrect identity currently logged in. Please login to this profile." + +#: ../../extend/addon/addon/friendica/dfrn_request.php:690 +#: ../../extend/addon/addon/friendica/dfrn_request.php:707 +msgid "Confirm" +msgstr "Confirm" + +#: ../../extend/addon/addon/friendica/dfrn_request.php:702 +msgid "Hide this contact" +msgstr "Hide this contact" + +#: ../../extend/addon/addon/friendica/dfrn_request.php:705 +#, php-format +msgid "Welcome home %s." +msgstr "Welcome home %s." + +#: ../../extend/addon/addon/friendica/dfrn_request.php:706 +#, php-format +msgid "Please confirm your introduction/connection request to %s." +msgstr "Please confirm your introduction/connection request to %s." + +#: ../../extend/addon/addon/friendica/dfrn_request.php:836 +msgid "" +"Please enter your 'Identity Address' from one of the following supported " +"communications networks:" +msgstr "Please enter your 'Identity Address' from one of the following supported communications networks:" + +#: ../../extend/addon/addon/friendica/dfrn_request.php:857 +#, php-format +msgid "" +"If you are not yet a member of the free social web, follow this link to find a public Friendica site and " +"join us today." +msgstr "If you are not yet a member of the free social web, follow this link to find a public Friendica site and join us today." + +#: ../../extend/addon/addon/friendica/dfrn_request.php:862 +msgid "Friend/Connection Request" +msgstr "Friend/Connection Request" + +#: ../../extend/addon/addon/friendica/dfrn_request.php:863 +msgid "" +"Examples: jojo@demo.friendica.com, http://demo.friendica.com/profile/jojo, " +"testuser@identi.ca" +msgstr "Examples: jojo@demo.friendica.com, http://demo.friendica.com/profile/jojo, testuser@identi.ca" + +#: ../../extend/addon/addon/friendica/dfrn_request.php:864 +msgid "Please answer the following:" +msgstr "Please answer the following:" + +#: ../../extend/addon/addon/friendica/dfrn_request.php:865 +#, php-format +msgid "Does %s know you?" +msgstr "Does %s know you?" + +#: ../../extend/addon/addon/friendica/dfrn_request.php:869 +msgid "Add a personal note:" +msgstr "Add a personal note:" + +#: ../../extend/addon/addon/friendica/dfrn_request.php:871 +#: ../../include/network.php:2232 ../../include/network.php:2233 +msgid "Friendica" +msgstr "Friendica" + +#: ../../extend/addon/addon/friendica/dfrn_request.php:872 +msgid "StatusNet/Federated Social Web" +msgstr "StatusNet/Federated Social Web" + +#: ../../extend/addon/addon/friendica/dfrn_request.php:873 +#: ../../include/network.php:2238 +msgid "Diaspora" +msgstr "Diaspora" + +#: ../../extend/addon/addon/friendica/dfrn_request.php:874 +#, php-format +msgid "" +" - please do not use this form. Instead, enter %s into your Diaspora search" +" bar." +msgstr " - please do not use this form. Instead, enter %s into your Diaspora search bar." + +#: ../../extend/addon/addon/friendica/dfrn_request.php:875 +msgid "Your Identity Address:" +msgstr "Your Identity Address:" + +#: ../../extend/addon/addon/friendica/dfrn_request.php:878 +msgid "Submit Request" +msgstr "Submit Request" + +#: ../../extend/addon/addon/friendica/friendica.php:113 +#: ../../extend/addon/addon/gnusoc/gnusoc.php:114 +msgid "GNU-Social Protocol Settings updated." +msgstr "GNU social-protocol-instellingen bijgewerkt." + +#: ../../extend/addon/addon/friendica/friendica.php:124 +msgid "Enable the (experimental) GNU-Social protocol for this channel" +msgstr "GNU social-protocol voor dit kanaal inschakelen (experimenteel)" + +#: ../../extend/addon/addon/friendica/friendica.php:128 +#: ../../extend/addon/addon/gnusoc/gnusoc.php:129 +msgid "GNU-Social Protocol Settings" +msgstr "GNU social-protocol" + +#: ../../extend/addon/addon/friendica/friendica.php:185 +#: ../../extend/addon/addon/gnusoc/gnusoc.php:319 +msgid "Follow" +msgstr "Volgen" + +#: ../../extend/addon/addon/friendica/friendica.php:188 +#: ../../extend/addon/addon/gnusoc/gnusoc.php:322 +#, php-format +msgid "%1$s is now following %2$s" +msgstr "%1$s volgt nu %2$s" + +#: ../../extend/addon/addon/frphotos/frphotos.php:91 +msgid "Friendica Photo Album Import" +msgstr "Fotoalbums importeren vanuit Friendica" + +#: ../../extend/addon/addon/frphotos/frphotos.php:92 +msgid "This will import all your Friendica photo albums to this Red channel." +msgstr "Hiermee importeer je al jouw Friendica-fotoalbums in dit Hubzilla-kanaal." + +#: ../../extend/addon/addon/frphotos/frphotos.php:93 +msgid "Friendica Server base URL" +msgstr "Basis-URL van Friendica-server" + +#: ../../extend/addon/addon/frphotos/frphotos.php:94 +msgid "Friendica Login Username" +msgstr "Gebruikersnaam Friendica" + +#: ../../extend/addon/addon/frphotos/frphotos.php:95 +msgid "Friendica Login Password" +msgstr "Wachtwoord Friendica" + +#: ../../extend/addon/addon/gnusoc/gnusoc.php:125 +msgid "Enable the GNU-Social protocol for this channel" +msgstr "GNU social-protocol voor dit kanaal inschakelen" + +#: ../../extend/addon/addon/hubwall/hubwall.php:19 +msgid "Send email to all members" +msgstr "Naar alle leden e-mail versturen" + +#: ../../extend/addon/addon/hubwall/hubwall.php:33 +#, php-format +msgid "$1%s Administrator" +msgstr "Beheerder $1%s" + +#: ../../extend/addon/addon/hubwall/hubwall.php:50 +#: ../../extend/addon/addon/mailtest/mailtest.php:50 +msgid "No recipients found." +msgstr "Geen ontvangers gevonden" + +#: ../../extend/addon/addon/hubwall/hubwall.php:73 +#, php-format +msgid "%1$d of %2$d messages sent." +msgstr "%1$d van %2$d berichten verzonden." + +#: ../../extend/addon/addon/hubwall/hubwall.php:81 +msgid "Send email to all hub members." +msgstr "Naar alle leden van deze hub e-mail versturen." + +#: ../../extend/addon/addon/hubwall/hubwall.php:92 +#: ../../extend/addon/addon/mailtest/mailtest.php:96 +msgid "Message subject" +msgstr "Onderwerp e-mailbericht" + +#: ../../extend/addon/addon/hubwall/hubwall.php:93 +msgid "Sender Email address" +msgstr "E-mailadres afzender" + +#: ../../extend/addon/addon/hubwall/hubwall.php:94 +msgid "Test mode (only send to hub administrator)" +msgstr "Testmodus (alleen naar hubbeheerder sturen)" + +#: ../../extend/addon/addon/ijpost/ijpost.php:42 +msgid "Post to Insanejournal" +msgstr "Doorplaatsen naar InsaneJournal" + +#: ../../extend/addon/addon/ijpost/ijpost.php:73 +msgid "Enable InsaneJournal Post Plugin" +msgstr "Doorplaatsen naar InsaneJournal inschakelen" + +#: ../../extend/addon/addon/ijpost/ijpost.php:77 +msgid "InsaneJournal username" +msgstr "Gebruikersnaam InsaneJournal" + +#: ../../extend/addon/addon/ijpost/ijpost.php:81 +msgid "InsaneJournal password" +msgstr "Wachtwoord InsaneJournal" + +#: ../../extend/addon/addon/ijpost/ijpost.php:85 +msgid "Post to InsaneJournal by default" +msgstr "Standaard doorplaatsen naar InsaneJournal" + +#: ../../extend/addon/addon/ijpost/ijpost.php:89 +msgid "InsaneJournal Post Settings" +msgstr "Doorplaatsen naar InsaneJournal" + +#: ../../extend/addon/addon/ijpost/ijpost.php:104 +msgid "Insane Journal Settings saved." +msgstr "InsaneJournal-instellingen opgeslagen." + +#: ../../extend/addon/addon/irc/irc.php:45 +msgid "Channels to auto connect" +msgstr "Kanalen om automatisch mee te verbinden" + +#: ../../extend/addon/addon/irc/irc.php:45 +#: ../../extend/addon/addon/irc/irc.php:49 +msgid "Comma separated list" +msgstr "Door komma's gescheiden lijst" + +#: ../../extend/addon/addon/irc/irc.php:49 +#: ../../extend/addon/addon/irc/irc.php:96 +msgid "Popular Channels" +msgstr "Populaire chatkanalen" + +#: ../../extend/addon/addon/irc/irc.php:53 +msgid "IRC Settings" +msgstr "IRC" + +#: ../../extend/addon/addon/irc/irc.php:69 +msgid "IRC settings saved." +msgstr "IRC-instellingen opgeslagen." + +#: ../../extend/addon/addon/irc/irc.php:74 +msgid "IRC Chatroom" +msgstr "IRC-chatkanaal" + +#: ../../extend/addon/addon/jappixmini/jappixmini.php:305 +#: ../../include/channel.php:1056 ../../include/channel.php:1218 +msgid "Status:" +msgstr "Status:" + +#: ../../extend/addon/addon/jappixmini/jappixmini.php:309 +msgid "Activate addon" +msgstr "Plugin inschakelen" + +#: ../../extend/addon/addon/jappixmini/jappixmini.php:313 +msgid "Hide Jappixmini Chat-Widget from the webinterface" +msgstr "Hide Jappixmini Chat-Widget from the webinterface" + +#: ../../extend/addon/addon/jappixmini/jappixmini.php:318 +msgid "Jabber username" +msgstr "Gebruikersnaam Jabber" + +#: ../../extend/addon/addon/jappixmini/jappixmini.php:324 +msgid "Jabber server" +msgstr "Jabberserver" + +#: ../../extend/addon/addon/jappixmini/jappixmini.php:330 +msgid "Jabber BOSH host URL" +msgstr "Jabber BOSH host URL" + +#: ../../extend/addon/addon/jappixmini/jappixmini.php:337 +msgid "Jabber password" +msgstr "Wachtwoord Jabber" + +#: ../../extend/addon/addon/jappixmini/jappixmini.php:343 +msgid "Encrypt Jabber password with Hubzilla password" +msgstr "Versleutel Jabber-wachtwoord met Hubzilla-wachtwoord" + +#: ../../extend/addon/addon/jappixmini/jappixmini.php:347 +#: ../../extend/addon/addon/redred/redred.php:115 +msgid "Hubzilla password" +msgstr "Wachtwoord Hubzilla" + +#: ../../extend/addon/addon/jappixmini/jappixmini.php:351 +#: ../../extend/addon/addon/jappixmini/jappixmini.php:355 +msgid "Approve subscription requests from Hubzilla contacts automatically" +msgstr "Approve subscription requests from Hubzilla contacts automatically" + +#: ../../extend/addon/addon/jappixmini/jappixmini.php:359 +msgid "Purge internal list of jabber addresses of contacts" +msgstr "Purge internal list of jabber addresses of contacts" + +#: ../../extend/addon/addon/jappixmini/jappixmini.php:364 +msgid "Configuration Help" +msgstr "Configuratiehulp" + +#: ../../extend/addon/addon/jappixmini/jappixmini.php:368 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1149 +msgid "Add Contact" +msgstr "Contact toevoegen" + +#: ../../extend/addon/addon/jappixmini/jappixmini.php:371 +msgid "Jappix Mini Settings" +msgstr "Jappix Mini" + +#: ../../extend/addon/addon/js_upload/js_upload.php:44 +msgid "Upload a file" +msgstr "Bestand uploaden" + +#: ../../extend/addon/addon/js_upload/js_upload.php:45 +msgid "Drop files here to upload" +msgstr "Sleep bestanden hierheen om ze te uploaden" + +#: ../../extend/addon/addon/js_upload/js_upload.php:47 +msgid "Failed" +msgstr "Mislukt" + +#: ../../extend/addon/addon/js_upload/js_upload.php:315 +msgid "No files were uploaded." +msgstr "Er zijn geen bestanden geüpload." + +#: ../../extend/addon/addon/js_upload/js_upload.php:322 +msgid "Uploaded file is empty" +msgstr "Geüpload bestand is leeg" + +#: ../../extend/addon/addon/js_upload/js_upload.php:335 +msgid "Image exceeds size limit of " +msgstr "Afbeeldingsgrootte overschrijdt het limiet van " + +#: ../../extend/addon/addon/js_upload/js_upload.php:347 +msgid "File has an invalid extension, it should be one of " +msgstr "Bestand heeft een ongeldige extensie. Geldige extensies zijn " + +#: ../../extend/addon/addon/js_upload/js_upload.php:359 +msgid "Upload was cancelled, or server error encountered" +msgstr "Upload werd geannuleerd of er was een serverfout" + +#: ../../extend/addon/addon/ldapauth/ldapauth.php:61 +msgid "An account has been created for you." +msgstr "Er is voor jou een account aangemaakt." + +#: ../../extend/addon/addon/ldapauth/ldapauth.php:68 +msgid "Authentication successful but rejected: account creation is disabled." +msgstr "Authenticatie geslaagd, maar afgekeurd: aanmaken accounts uitgeschakeld." + +#: ../../extend/addon/addon/libertree/libertree.php:38 +msgid "Post to Libertree" +msgstr "Doorplaatsen naar Libertree" + +#: ../../extend/addon/addon/libertree/libertree.php:69 +msgid "Enable Libertree Post Plugin" +msgstr "Doorplaatsen naar Libertree inschakelen" + +#: ../../extend/addon/addon/libertree/libertree.php:73 +msgid "Libertree API token" +msgstr "API-token Libertree" + +#: ../../extend/addon/addon/libertree/libertree.php:77 +msgid "Libertree site URL" +msgstr "Website-URL Libertree" + +#: ../../extend/addon/addon/libertree/libertree.php:81 +msgid "Post to Libertree by default" +msgstr "Standaard doorplaatsen naar Libertree" + +#: ../../extend/addon/addon/libertree/libertree.php:85 +msgid "Libertree Post Settings" +msgstr "Doorplaatsen naar Libertree" + +#: ../../extend/addon/addon/libertree/libertree.php:99 +msgid "Libertree Settings saved." +msgstr "Libertree-instellingen opgeslagen." + +#: ../../extend/addon/addon/ljpost/ljpost.php:42 +msgid "Post to LiveJournal" +msgstr "Doorplaatsen naar LiveJournal" + +#: ../../extend/addon/addon/ljpost/ljpost.php:70 +msgid "Enable LiveJournal Post Plugin" +msgstr "Doorplaatsen naar LiveJournal inschakelen" + +#: ../../extend/addon/addon/ljpost/ljpost.php:74 +msgid "LiveJournal username" +msgstr "Gebruikersnaam LiveJournal" + +#: ../../extend/addon/addon/ljpost/ljpost.php:78 +msgid "LiveJournal password" +msgstr "Wachtwoord LiveJournal" + +#: ../../extend/addon/addon/ljpost/ljpost.php:82 +msgid "Post to LiveJournal by default" +msgstr "Standaard doorplaatsen naar " + +#: ../../extend/addon/addon/ljpost/ljpost.php:86 +msgid "LiveJournal Post Settings" +msgstr "Doorplaatsen naar LiveJournal" + +#: ../../extend/addon/addon/ljpost/ljpost.php:101 +msgid "LiveJournal Settings saved." +msgstr "LiveJournal-instellingen opgeslagen." + +#: ../../extend/addon/addon/logrot/logrot.php:36 +msgid "Logfile archive directory" +msgstr "Logbestand archiefmap" + +#: ../../extend/addon/addon/logrot/logrot.php:36 +msgid "Directory to store rotated logs" +msgstr "Map om geroteerde logbestanden in op te slaan" + +#: ../../extend/addon/addon/logrot/logrot.php:37 +msgid "Logfile size in bytes before rotating" +msgstr "Grootte van logbestand in bytes, voordat het wordt geroteerd" + +#: ../../extend/addon/addon/logrot/logrot.php:38 +msgid "Number of logfiles to retain" +msgstr "Aantal te behouden logbestanden" + +#: ../../extend/addon/addon/mailhost/mailhost.php:36 +msgid "Email notification hub" +msgstr "Hub voor e-mailnotificaties" + +#: ../../extend/addon/addon/mailhost/mailhost.php:36 +msgid "Hostname" +msgstr "Hostnaam" + +#: ../../extend/addon/addon/mailhost/mailhost.php:40 +msgid "Mailhost Settings" +msgstr "Mailhost" + +#: ../../extend/addon/addon/mailhost/mailhost.php:54 +msgid "MAILHOST Settings saved." +msgstr "Mailhost-instellingen opgeslagen." + +#: ../../extend/addon/addon/moremoods/moremoods.php:19 +msgid "lonely" +msgstr "Eenzaam" + +#: ../../extend/addon/addon/moremoods/moremoods.php:20 +msgid "drunk" +msgstr "dronken" + +#: ../../extend/addon/addon/moremoods/moremoods.php:21 +msgid "horny" +msgstr "geil" + +#: ../../extend/addon/addon/moremoods/moremoods.php:22 +msgid "stoned" +msgstr "stoned" + +#: ../../extend/addon/addon/moremoods/moremoods.php:23 +msgid "fucked up" +msgstr "opgefokt" + +#: ../../extend/addon/addon/moremoods/moremoods.php:24 +msgid "clusterfucked" +msgstr "clusterfucked" + +#: ../../extend/addon/addon/moremoods/moremoods.php:25 +msgid "crazy" +msgstr "gek" + +#: ../../extend/addon/addon/moremoods/moremoods.php:26 +msgid "hurt" +msgstr "gekwetst" + +#: ../../extend/addon/addon/moremoods/moremoods.php:27 +msgid "sleepy" +msgstr "slaperig" + +#: ../../extend/addon/addon/moremoods/moremoods.php:28 +msgid "grumpy" +msgstr "chagrijnig" + +#: ../../extend/addon/addon/moremoods/moremoods.php:29 +msgid "high" +msgstr "high" + +#: ../../extend/addon/addon/moremoods/moremoods.php:30 +msgid "semi-conscious" +msgstr "half bij kennis" + +#: ../../extend/addon/addon/moremoods/moremoods.php:31 +msgid "in love" +msgstr "verliefd" + +#: ../../extend/addon/addon/moremoods/moremoods.php:32 +msgid "in lust" +msgstr "wellustig" + +#: ../../extend/addon/addon/moremoods/moremoods.php:33 +msgid "naked" +msgstr "naakt" + +#: ../../extend/addon/addon/moremoods/moremoods.php:34 +msgid "stinky" +msgstr "stinkend" + +#: ../../extend/addon/addon/moremoods/moremoods.php:35 +msgid "sweaty" +msgstr "zweterig" + +#: ../../extend/addon/addon/moremoods/moremoods.php:36 +msgid "bleeding out" +msgstr "aan het doodbloeden" + +#: ../../extend/addon/addon/moremoods/moremoods.php:37 +msgid "victorious" +msgstr "zegevierend" + +#: ../../extend/addon/addon/moremoods/moremoods.php:38 +msgid "defeated" +msgstr "verslagen" + +#: ../../extend/addon/addon/moremoods/moremoods.php:39 +msgid "envious" +msgstr "jaloers" + +#: ../../extend/addon/addon/moremoods/moremoods.php:40 +msgid "jealous" +msgstr "jaloers" + +#: ../../extend/addon/addon/morepokes/morepokes.php:19 +msgid "bitchslap" +msgstr "bitchslappen" + +#: ../../extend/addon/addon/morepokes/morepokes.php:19 +msgid "bitchslapped" +msgstr "bitchslapped" + +#: ../../extend/addon/addon/morepokes/morepokes.php:20 +msgid "shag" +msgstr "wippen" + +#: ../../extend/addon/addon/morepokes/morepokes.php:20 +msgid "shagged" +msgstr "wipte met" + +#: ../../extend/addon/addon/morepokes/morepokes.php:21 +msgid "patent" +msgstr "patent" + +#: ../../extend/addon/addon/morepokes/morepokes.php:21 +msgid "patented" +msgstr "patented" + +#: ../../extend/addon/addon/morepokes/morepokes.php:22 +msgid "hug" +msgstr "knuffelen" + +#: ../../extend/addon/addon/morepokes/morepokes.php:22 +msgid "hugged" +msgstr "knuffelde" + +#: ../../extend/addon/addon/morepokes/morepokes.php:23 +msgid "murder" +msgstr "vermoorden" + +#: ../../extend/addon/addon/morepokes/morepokes.php:23 +msgid "murdered" +msgstr "vermoorde" + +#: ../../extend/addon/addon/morepokes/morepokes.php:24 +msgid "worship" +msgstr "aanbidden" + +#: ../../extend/addon/addon/morepokes/morepokes.php:24 +msgid "worshipped" +msgstr "aanbad" + +#: ../../extend/addon/addon/morepokes/morepokes.php:25 +msgid "kiss" +msgstr "kussen" + +#: ../../extend/addon/addon/morepokes/morepokes.php:25 +msgid "kissed" +msgstr "kuste" + +#: ../../extend/addon/addon/morepokes/morepokes.php:26 +msgid "tempt" +msgstr "verleiden" + +#: ../../extend/addon/addon/morepokes/morepokes.php:26 +msgid "tempted" +msgstr "verleidde" + +#: ../../extend/addon/addon/morepokes/morepokes.php:27 +msgid "raise eyebrows at" +msgstr "wenkbrauwen optrekken" + +#: ../../extend/addon/addon/morepokes/morepokes.php:27 +msgid "raised their eyebrows at" +msgstr "trok zijn/haar wenkbrauwen op naar" + +#: ../../extend/addon/addon/morepokes/morepokes.php:28 +msgid "insult" +msgstr "beledigen" + +#: ../../extend/addon/addon/morepokes/morepokes.php:28 +msgid "insulted" +msgstr "beledigde" + +#: ../../extend/addon/addon/morepokes/morepokes.php:29 +msgid "praise" +msgstr "prijzen" + +#: ../../extend/addon/addon/morepokes/morepokes.php:29 +msgid "praised" +msgstr "prees" + +#: ../../extend/addon/addon/morepokes/morepokes.php:30 +msgid "be dubious of" +msgstr "twijfels hebben" + +#: ../../extend/addon/addon/morepokes/morepokes.php:30 +msgid "was dubious of" +msgstr "had twijfels over" + +#: ../../extend/addon/addon/morepokes/morepokes.php:31 +msgid "eat" +msgstr "opeten" + +#: ../../extend/addon/addon/morepokes/morepokes.php:31 +msgid "ate" +msgstr "at" + +#: ../../extend/addon/addon/morepokes/morepokes.php:32 +msgid "giggle and fawn at" +msgstr "giechelen en vleien" + +#: ../../extend/addon/addon/morepokes/morepokes.php:32 +msgid "giggled and fawned at" +msgstr "giechelde naar en vleide met" + +#: ../../extend/addon/addon/morepokes/morepokes.php:33 +msgid "doubt" +msgstr "betwijfelen" + +#: ../../extend/addon/addon/morepokes/morepokes.php:33 +msgid "doubted" +msgstr "betwijfelde" + +#: ../../extend/addon/addon/morepokes/morepokes.php:34 +msgid "glare" +msgstr "boos kijken" + +#: ../../extend/addon/addon/morepokes/morepokes.php:34 +msgid "glared at" +msgstr "keek boos naar" + +#: ../../extend/addon/addon/morepokes/morepokes.php:35 +msgid "fuck" +msgstr "neuken" + +#: ../../extend/addon/addon/morepokes/morepokes.php:35 +msgid "fucked" +msgstr "neukte" + +#: ../../extend/addon/addon/morepokes/morepokes.php:36 +msgid "bonk" +msgstr "naaien" + +#: ../../extend/addon/addon/morepokes/morepokes.php:36 +msgid "bonked" +msgstr "naaide" + +#: ../../extend/addon/addon/morepokes/morepokes.php:37 +msgid "declare undying love for" +msgstr "eeuwige liefde verklaren" + +#: ../../extend/addon/addon/morepokes/morepokes.php:37 +msgid "declared undying love for" +msgstr "verklaarde de eeuwige liefde aan" + +#: ../../extend/addon/addon/msgfooter/msgfooter.php:46 +#: ../../extend/addon/addon/xmpp/xmpp.php:91 +msgid "Save Settings" +msgstr "Instellingen opslaan" + +#: ../../extend/addon/addon/msgfooter/msgfooter.php:47 +msgid "text to include in all outgoing posts from this site" +msgstr "tekst om onderaan elk uitgaand bericht van deze hub te plaatsen" + +#: ../../extend/addon/addon/nofed/nofed.php:42 +msgid "Federate" +msgstr "Federeren" + +#: ../../extend/addon/addon/nofed/nofed.php:56 +msgid "nofed Settings saved." +msgstr "Geen federatie-instellingen opgeslagen." + +#: ../../extend/addon/addon/nofed/nofed.php:72 +msgid "Allow Federation Toggle" +msgstr "Federatie toestaan?" + +#: ../../extend/addon/addon/nofed/nofed.php:76 +msgid "Federate posts by default" +msgstr "Standaard berichten federeren" + +#: ../../extend/addon/addon/nofed/nofed.php:80 +msgid "NoFed Settings" +msgstr "Geen federatie" + +#: ../../extend/addon/addon/nsabait/nsabait.php:125 +msgid "Nsabait Settings updated." +msgstr "NSAbait-instellingen bijgewerkt." + +#: ../../extend/addon/addon/nsabait/nsabait.php:157 +msgid "Enable NSAbait Plugin" +msgstr "NSAbait inschakelen" + +#: ../../extend/addon/addon/nsabait/nsabait.php:161 +msgid "NSAbait Settings" +msgstr "NSAbait" + +#: ../../extend/addon/addon/nsfw/nsfw.php:80 +msgid "" +"This plugin looks in posts for the words/text you specify below, and " +"collapses any content containing those keywords so it is not displayed at " +"inappropriate times, such as sexual innuendo that may be improper in a work " +"setting. It is polite and recommended to tag any content containing nudity " +"with #NSFW. This filter can also match any other word/text you specify, and" +" can thereby be used as a general purpose content filter." +msgstr "Deze plug-in controleert berichten op woorden die je hieronder kunt opgeven en klapt berichten in die deze woorden bevatten, zodat die berichten niet worden weergegeven op ongeschikte momenten. Denk hierbij aan berichten met erotische afbeeldingen, die waarschijnlijk niet geschikt zijn binnen (bijvoorbeeld) een werkomgeving. Het is beleefd en het wordt aangeraden om zulke berichten met #NSFW te taggen. Dit filter kan ook gebruikt worden met andere woorden en is dus voor alles inzetbaar." + +#: ../../extend/addon/addon/nsfw/nsfw.php:84 +msgid "Enable Content filter" +msgstr "Inhoudsfilter inschakelen" + +#: ../../extend/addon/addon/nsfw/nsfw.php:88 +msgid "Comma separated list of keywords to hide" +msgstr "Door komma's gescheiden lijst met woorden die gefilterd moeten worden." + +#: ../../extend/addon/addon/nsfw/nsfw.php:88 +msgid "Use /expression/ to provide regular expressions" +msgstr "Gebruik /expressie/ voor reguliere expressies" + +#: ../../extend/addon/addon/nsfw/nsfw.php:92 +msgid "Not Safe For Work Settings" +msgstr "Not Safe For Work (inhoudsfilter)" + +#: ../../extend/addon/addon/nsfw/nsfw.php:92 +msgid "General Purpose Content Filter" +msgstr "Voor alles te gebruiken inhoudsfilter" + +#: ../../extend/addon/addon/nsfw/nsfw.php:110 +msgid "NSFW Settings saved." +msgstr "NSFW-instellingen opgeslagen." + +#: ../../extend/addon/addon/nsfw/nsfw.php:207 +msgid "Possible adult content" +msgstr "Mogelijk inhoud voor volwassenen" + +#: ../../extend/addon/addon/nsfw/nsfw.php:211 +#, php-format +msgid "%s - click to open/close" +msgstr "%s - Klik om te openen of te sluiten" + +#: ../../extend/addon/addon/openclipatar/openclipatar.php:49 +#: ../../extend/addon/addon/openclipatar/openclipatar.php:127 +msgid "System defaults:" +msgstr "Systeemstandaarden:" + +#: ../../extend/addon/addon/openclipatar/openclipatar.php:53 +msgid "Preferred Clipart IDs" +msgstr "Voorkeursclipart" + +#: ../../extend/addon/addon/openclipatar/openclipatar.php:53 +msgid "List of preferred clipart ids. These will be shown first." +msgstr "Lijst met clipartnummers die als eerste moeten worden getoond." + +#: ../../extend/addon/addon/openclipatar/openclipatar.php:54 +msgid "Default Search Term" +msgstr "Standaard zoekterm" + +#: ../../extend/addon/addon/openclipatar/openclipatar.php:54 +msgid "The default search term. These will be shown second." +msgstr "Standaard zoekterm. Deze worden als tweede getoond." + +#: ../../extend/addon/addon/openclipatar/openclipatar.php:55 +msgid "Return After" +msgstr "Ga na afloop naar" + +#: ../../extend/addon/addon/openclipatar/openclipatar.php:55 +msgid "Page to load after image selection." +msgstr "Pagina die na het kiezen van een afbeelding moet laden." + +#: ../../extend/addon/addon/openclipatar/openclipatar.php:57 +#: ../../include/channel.php:965 ../../include/nav.php:93 +msgid "Edit Profile" +msgstr "Profiel bewerken" + +#: ../../extend/addon/addon/openclipatar/openclipatar.php:58 +msgid "Profile List" +msgstr "Profiellijst" + +#: ../../extend/addon/addon/openclipatar/openclipatar.php:60 +msgid "Order of Preferred" +msgstr "Voorkeursclipart sorteren op" + +#: ../../extend/addon/addon/openclipatar/openclipatar.php:60 +msgid "Sort order of preferred clipart ids." +msgstr "Als eerste getoonde clipart hierop sorteren." + +#: ../../extend/addon/addon/openclipatar/openclipatar.php:61 +#: ../../extend/addon/addon/openclipatar/openclipatar.php:67 +msgid "Newest first" +msgstr "Nieuwste eerst" + +#: ../../extend/addon/addon/openclipatar/openclipatar.php:64 +msgid "As entered" +msgstr "Zoals ingevoerd" + +#: ../../extend/addon/addon/openclipatar/openclipatar.php:66 +msgid "Order of other" +msgstr "Overige clipart sorteren op" + +#: ../../extend/addon/addon/openclipatar/openclipatar.php:66 +msgid "Sort order of other clipart ids." +msgstr "Overige clipart hierop sorteren." + +#: ../../extend/addon/addon/openclipatar/openclipatar.php:68 +msgid "Most downloaded first" +msgstr "Meest gedownload eerst" + +#: ../../extend/addon/addon/openclipatar/openclipatar.php:69 +msgid "Most liked first" +msgstr "Meest geliked eerst" + +#: ../../extend/addon/addon/openclipatar/openclipatar.php:71 +msgid "Preferred IDs Message" +msgstr "Tekst voorkeursclipart" + +#: ../../extend/addon/addon/openclipatar/openclipatar.php:71 +msgid "Message to display above preferred results." +msgstr "Tekst die bovenaan de resultaten met voorkeursclipart moet worden getoond." + +#: ../../extend/addon/addon/openclipatar/openclipatar.php:77 +msgid "Uploaded by: " +msgstr "Geüpload door: " + +#: ../../extend/addon/addon/openclipatar/openclipatar.php:77 +msgid "Drawn by: " +msgstr "Getekend door: " + +#: ../../extend/addon/addon/openclipatar/openclipatar.php:191 +msgid "Or select from a free OpenClipart.org image:" +msgstr "Of kies uit een vrije OpenClipart.org-afbeelding:" + +#: ../../extend/addon/addon/openclipatar/openclipatar.php:194 +msgid "Search Term" +msgstr "Zoekterm" + +#: ../../extend/addon/addon/openclipatar/openclipatar.php:216 +msgid "Unknown error. Please try again later." +msgstr "Onbekende fout. Probeer later nog eens." + +#: ../../extend/addon/addon/openclipatar/openclipatar.php:303 +msgid "Profile photo updated successfully." +msgstr "Bijwerken profielfoto geslaagd." + +#: ../../extend/addon/addon/openstreetmap/openstreetmap.php:146 +msgid "View Larger" +msgstr "Groter tonen" + +#: ../../extend/addon/addon/openstreetmap/openstreetmap.php:169 +msgid "Tile Server URL" +msgstr "URL tile-server" + +#: ../../extend/addon/addon/openstreetmap/openstreetmap.php:169 +msgid "" +"A list of public tile servers" +msgstr "Een lijst met openbare tile-servers" + +#: ../../extend/addon/addon/openstreetmap/openstreetmap.php:170 +msgid "Nominatim (reverse geocoding) Server URL" +msgstr "Server-URL Nominatim (reverse geocoding)" + +#: ../../extend/addon/addon/openstreetmap/openstreetmap.php:170 +msgid "" +"A list of Nominatim servers" +msgstr "Een lijst met Nominatim-servers" + +#: ../../extend/addon/addon/openstreetmap/openstreetmap.php:171 +msgid "Default zoom" +msgstr "Standaard zoomniveau" + +#: ../../extend/addon/addon/openstreetmap/openstreetmap.php:171 +msgid "" +"The default zoom level. (1:world, 18:highest, also depends on tile server)" +msgstr "Standaard zoomniveau. Van 1 (wereld) t/m 18 (maximaal). Is ook afhankelijk van tile-server." + +#: ../../extend/addon/addon/openstreetmap/openstreetmap.php:172 +msgid "Include marker on map" +msgstr "Markering op kaart plaatsen" + +#: ../../extend/addon/addon/openstreetmap/openstreetmap.php:172 +msgid "Include a marker on the map." +msgstr "Plaatst een markering op de kaart." + +#: ../../extend/addon/addon/pageheader/pageheader.php:43 +msgid "Message to display on every page on this server" +msgstr "Bericht om op elke pagina van deze hub weer te geven" + +#: ../../extend/addon/addon/pageheader/pageheader.php:48 +msgid "Pageheader Settings" +msgstr "Pageheader" + +#: ../../extend/addon/addon/pageheader/pageheader.php:64 +msgid "pageheader Settings saved." +msgstr "Pageheader-instellingen opgeslagen." + +#: ../../extend/addon/addon/piwik/piwik.php:85 +msgid "" +"This website is tracked using the Piwik " +"analytics tool." +msgstr "Het bezoek aan deze website wordt gemeten door Piwik." + +#: ../../extend/addon/addon/piwik/piwik.php:88 +#, php-format +msgid "" +"If you do not want that your visits are logged this way you can" +" set a cookie to prevent Piwik from tracking further visits of the site " +"(opt-out)." +msgstr "Wanneer je niet wil dat jouw bezoek aan deze website wordt bijgehouden, kan je een cookie achterlaten om te verhinderen dat Piwik jou op deze website blijft volgen (opt-out)." + +#: ../../extend/addon/addon/piwik/piwik.php:96 +msgid "Piwik Base URL" +msgstr "Basis-URL Piwik" + +#: ../../extend/addon/addon/piwik/piwik.php:96 +msgid "" +"Absolute path to your Piwik installation. (without protocol (http/s), with " +"trailing slash)" +msgstr "Absoluut pad naar jouw Piwik-installatie (zonder protocol (http/s), met een slash op het einde)" + +#: ../../extend/addon/addon/piwik/piwik.php:97 +msgid "Site ID" +msgstr "Site ID" + +#: ../../extend/addon/addon/piwik/piwik.php:98 +msgid "Show opt-out cookie link?" +msgstr "Toon opt-out cookie-link?" + +#: ../../extend/addon/addon/piwik/piwik.php:99 +msgid "Asynchronous tracking" +msgstr "Asynchroon volgen" + +#: ../../extend/addon/addon/piwik/piwik.php:100 +msgid "Enable frontend JavaScript error tracking" +msgstr "Volgen van front-end JavaScript-fouten inschakelen" + +#: ../../extend/addon/addon/piwik/piwik.php:100 +msgid "This feature requires Piwik >= 2.2.0" +msgstr "Deze functie vereist Piwik >= 2.2.0" + +#: ../../extend/addon/addon/planets/planets.php:121 +msgid "Planets Settings updated." +msgstr "Planets-instellingen opgeslagen." + +#: ../../extend/addon/addon/planets/planets.php:153 +msgid "Enable Planets Plugin" +msgstr "Planets inschakelen" + +#: ../../extend/addon/addon/planets/planets.php:157 +msgid "Planets Settings" +msgstr "Planets" + +#: ../../extend/addon/addon/pumpio/pumpio.php:148 +msgid "You are now authenticated to pumpio." +msgstr "De verbinding met pump.io is geverifieerd" + +#: ../../extend/addon/addon/pumpio/pumpio.php:149 +msgid "return to the featured settings page" +msgstr "Ga terug naar pagina met plugin-instellingen" + +#: ../../extend/addon/addon/pumpio/pumpio.php:163 +msgid "Post to Pump.io" +msgstr "Doorplaatsen naar Pump.io" + +#: ../../extend/addon/addon/pumpio/pumpio.php:198 +msgid "Pump.io servername" +msgstr "Pump.io-servernaam" + +#: ../../extend/addon/addon/pumpio/pumpio.php:198 +msgid "Without \"http://\" or \"https://\"" +msgstr "Zonder \"http://\" of \"https://\"" + +#: ../../extend/addon/addon/pumpio/pumpio.php:202 +msgid "Pump.io username" +msgstr "Gebruikersnaam Pump.io" + +#: ../../extend/addon/addon/pumpio/pumpio.php:202 +msgid "Without the servername" +msgstr "Zonder servernaam" + +#: ../../extend/addon/addon/pumpio/pumpio.php:213 +msgid "You are not authenticated to pumpio" +msgstr "De verbinding met pump.io is niet geverifieerd" + +#: ../../extend/addon/addon/pumpio/pumpio.php:215 +msgid "(Re-)Authenticate your pump.io connection" +msgstr "Verifieer (opnieuw) jouw pump.io-verbinding" + +#: ../../extend/addon/addon/pumpio/pumpio.php:219 +msgid "Enable pump.io Post Plugin" +msgstr "Doorplaatsen naar Pump.io inschakelen" + +#: ../../extend/addon/addon/pumpio/pumpio.php:223 +msgid "Post to pump.io by default" +msgstr "Standaard doorplaatsen naar Pump.io" + +#: ../../extend/addon/addon/pumpio/pumpio.php:227 +msgid "Should posts be public" +msgstr "Moeten berichten openbaar zijn" + +#: ../../extend/addon/addon/pumpio/pumpio.php:231 +msgid "Mirror all public posts" +msgstr "Alle openbare berichten doorplaatsen" + +#: ../../extend/addon/addon/pumpio/pumpio.php:237 +msgid "Pump.io Post Settings" +msgstr "Doorplaatsen naar Pump.io" + +#: ../../extend/addon/addon/pumpio/pumpio.php:266 +msgid "PumpIO Settings saved." +msgstr "Pump.io-instellingen opgeslagen." + +#: ../../extend/addon/addon/qrator/qrator.php:48 +msgid "QR code" +msgstr "QR-code" + +#: ../../extend/addon/addon/qrator/qrator.php:63 +msgid "QR Generator" +msgstr "QR-code-generator" + +#: ../../extend/addon/addon/qrator/qrator.php:64 +msgid "Enter some text" +msgstr "Vul wat tekst in" + +#: ../../extend/addon/addon/rainbowtag/rainbowtag.php:81 +msgid "Enable Rainbowtag" +msgstr "Rainbowtag inschakelen" + +#: ../../extend/addon/addon/rainbowtag/rainbowtag.php:85 +msgid "Rainbowtag Settings" +msgstr "Rainbowtag" + +#: ../../extend/addon/addon/rainbowtag/rainbowtag.php:101 +msgid "Rainbowtag Settings saved." +msgstr "Rainbowtag-instellingen opgeslagen." + +#: ../../extend/addon/addon/randpost/randpost.php:97 +msgid "You're welcome." +msgstr "Je bent van harte welkom." + +#: ../../extend/addon/addon/randpost/randpost.php:98 +msgid "Ah shucks..." +msgstr "Hé verdorie..." + +#: ../../extend/addon/addon/randpost/randpost.php:99 +msgid "Don't mention it." +msgstr "Graag gedaan." + +#: ../../extend/addon/addon/randpost/randpost.php:100 +msgid "<blush>" +msgstr "" + +#: ../../extend/addon/addon/redfiles/redfiles.php:119 +msgid "Redmatrix File Storage Import" +msgstr "Importeer bestanden vanuit Redmatrix" + +#: ../../extend/addon/addon/redfiles/redfiles.php:120 +msgid "This will import all your Redmatrix cloud files to this channel." +msgstr "Hiermee importeer je al jouw Redmatrix-bestanden in dit kanaal." + +#: ../../extend/addon/addon/redfiles/redfiles.php:121 +#: ../../extend/addon/addon/redphotos/redphotos.php:131 +msgid "Redmatrix Server base URL" +msgstr "Basis-URL van Redmatrix-hub" + +#: ../../extend/addon/addon/redfiles/redfiles.php:122 +#: ../../extend/addon/addon/redphotos/redphotos.php:132 +msgid "Redmatrix Login Username" +msgstr "Gebruikersnaam Redmatrix" + +#: ../../extend/addon/addon/redfiles/redfiles.php:123 +#: ../../extend/addon/addon/redphotos/redphotos.php:133 +msgid "Redmatrix Login Password" +msgstr "Wachtwoord Redmatrix" + +#: ../../extend/addon/addon/redfiles/redfilehelper.php:67 +msgid "file" +msgstr "bestand" + +#: ../../extend/addon/addon/redphotos/redphotos.php:106 +msgid "Photos imported" +msgstr "Foto's geïmporteerd" + +#: ../../extend/addon/addon/redphotos/redphotos.php:129 +msgid "Redmatrix Photo Album Import" +msgstr "Fotoalbums importeren vanuit Redmatrix" + +#: ../../extend/addon/addon/redphotos/redphotos.php:130 +msgid "This will import all your Redmatrix photo albums to this channel." +msgstr "Hiermee importeer je al jouw Redmatrix-fotoalbums in dit Hubzilla-kanaal." + +#: ../../extend/addon/addon/redphotos/redphotos.php:134 +msgid "Import just this album" +msgstr "Alleen dit album importeren" + +#: ../../extend/addon/addon/redphotos/redphotos.php:134 +msgid "Leave blank to import all albums" +msgstr "Laat leeg om alle albums te importeren" + +#: ../../extend/addon/addon/redphotos/redphotos.php:135 +msgid "Maximum count to import" +msgstr "Maximaal aantal om te importeren" + +#: ../../extend/addon/addon/redphotos/redphotos.php:135 +msgid "0 or blank to import all available" +msgstr "0 of leeg om alles te importeren" + +#: ../../extend/addon/addon/redred/redred.php:45 +msgid "Post to Red" +msgstr "Doorplaatsen naar Hubzilla" + +#: ../../extend/addon/addon/redred/redred.php:60 +msgid "Channel is required." +msgstr "Een kanaal is vereist." + +#: ../../extend/addon/addon/redred/redred.php:65 +msgid "Invalid channel." +msgstr "Onbekend kanaal." + +#: ../../extend/addon/addon/redred/redred.php:76 +msgid "redred Settings saved." +msgstr "RedRed-instellingen opgeslagen." + +#: ../../extend/addon/addon/redred/redred.php:95 +msgid "Allow posting to another Hubzilla Channel" +msgstr "Doorplaatsen naar een ander Hubzilla-kanaal toestaan" + +#: ../../extend/addon/addon/redred/redred.php:99 +msgid "Send public postings to Hubzilla channel by default" +msgstr "Standaard doorplaatsen naar een ander Hubzilla-kanaal toestaan" + +#: ../../extend/addon/addon/redred/redred.php:103 +msgid "Hubzilla API Path" +msgstr "API-pad Hubzilla" + +#: ../../extend/addon/addon/redred/redred.php:103 +#: ../../extend/addon/addon/rtof/rtof.php:89 +msgid "https://{sitename}/api" +msgstr "https://{hubnaam}/api" + +#: ../../extend/addon/addon/redred/redred.php:107 +msgid "Hubzilla login name" +msgstr "Gebruikersnaam Hubzilla" + +#: ../../extend/addon/addon/redred/redred.php:111 +msgid "Hubzilla channel name" +msgstr "Kanaalnaam Hubzilla" + +#: ../../extend/addon/addon/redred/redred.php:111 +#: ../../extend/addon/addon/openid/MysqlProvider.php:54 +msgid "Nickname" +msgstr "Bijnaam" + +#: ../../extend/addon/addon/redred/redred.php:119 +msgid "Hubzilla Crosspost Settings" +msgstr "Doorplaatsen naar Hubzilla" + +#: ../../extend/addon/addon/rtof/rtof.php:45 +msgid "Post to Friendica" +msgstr "Doorplaatsen naar Friendica" + +#: ../../extend/addon/addon/rtof/rtof.php:62 +msgid "rtof Settings saved." +msgstr "RTOF-instellingen opgeslagen." + +#: ../../extend/addon/addon/rtof/rtof.php:81 +msgid "Allow posting to Friendica" +msgstr "Doorplaatsen naar Friendica toestaan" + +#: ../../extend/addon/addon/rtof/rtof.php:85 +msgid "Send public postings to Friendica by default" +msgstr "Standaard doorplaatsen naar Friendica" + +#: ../../extend/addon/addon/rtof/rtof.php:89 +msgid "Friendica API Path" +msgstr "API-pad Friendica" + +#: ../../extend/addon/addon/rtof/rtof.php:93 +msgid "Friendica login name" +msgstr "Gebruikersnaam Friendica" + +#: ../../extend/addon/addon/rtof/rtof.php:97 +msgid "Friendica password" +msgstr "Wachtwoord Friendica" + +#: ../../extend/addon/addon/rtof/rtof.php:101 +msgid "Hubzilla to Friendica Post Settings" +msgstr "Doorplaatsen naar Friendica" + +#: ../../extend/addon/addon/sendzid/sendzid.php:25 +msgid "Extended Identity Sharing" +msgstr "Uitgebreid identiteit delen" + +#: ../../extend/addon/addon/sendzid/sendzid.php:26 +msgid "" +"Share your identity with all websites on the internet. When disabled, " +"identity is only shared with sites in the matrix." +msgstr "Deel jouw Hubzilla-identiteit met alle websites op het internet. Wanneer dit is uitgeschakeld wordt je identiteit alleen binnen het Hubzilla-netwerk gedeeld. Schakel dit alleen in als je weet wat je doet." + +#: ../../extend/addon/addon/skeleton/skeleton.php:59 +msgid "Some setting" +msgstr "Een of andere instelling" + +#: ../../extend/addon/addon/skeleton/skeleton.php:61 +msgid "A setting" +msgstr "Een instelling" + +#: ../../extend/addon/addon/skeleton/skeleton.php:64 +msgid "Skeleton Settings" +msgstr "Plugin-skeleton" + +#: ../../extend/addon/addon/smileybutton/smileybutton.php:273 +msgid "Deactivate the feature" +msgstr "Deze functie uitschakelen" + +#: ../../extend/addon/addon/smileybutton/smileybutton.php:277 +msgid "Hide the button and show the smilies directly." +msgstr "Verberg de knop en toon de smilies direct." + +#: ../../extend/addon/addon/smileybutton/smileybutton.php:281 +msgid "Smileybutton Settings" +msgstr "Smileyknop" + +#: ../../extend/addon/addon/startpage/startpage.php:109 +msgid "Page to load after login" +msgstr "Pagina die na het inloggen getoond moet worden" + +#: ../../extend/addon/addon/startpage/startpage.php:109 +msgid "" +"Examples: "apps", "network?f=&gid=37" (privacy " +"collection), "channel" or "notifications/system" (leave " +"blank for default network page (grid)." +msgstr "Voorbeelden: "apps", "network?f=&gid=37" (privacygroep), "channel" of "notifications/system" (laat leeg voor de standaard netwerkpagina (grid)." + +#: ../../extend/addon/addon/startpage/startpage.php:113 +msgid "Startpage Settings" +msgstr "Startpagina" + +#: ../../extend/addon/addon/statusnet/statusnet.php:143 +msgid "Post to GNU social" +msgstr "Doorplaatsen naar GNU social" + +#: ../../extend/addon/addon/statusnet/statusnet.php:195 +msgid "" +"Please contact your site administrator.
        The provided API URL is not " +"valid." +msgstr "De verstrekte API-URL is ongeldig.
        Neem contact op met jouw hubbeheerder." + +#: ../../extend/addon/addon/statusnet/statusnet.php:232 +msgid "We could not contact the GNU social API with the Path you entered." +msgstr "Wij konden de GNU social-API niet bereiken door middel van het ingevulde pad." + +#: ../../extend/addon/addon/statusnet/statusnet.php:266 +msgid "GNU social settings updated." +msgstr "GNU social-instellingen bijgewerkt." + +#: ../../extend/addon/addon/statusnet/statusnet.php:310 +msgid "Globally Available GNU social OAuthKeys" +msgstr "Op de gehele hub te gebruiken GNU social OAuthkeys." + +#: ../../extend/addon/addon/statusnet/statusnet.php:312 +msgid "" +"There are preconfigured OAuth key pairs for some GNU social servers " +"available. If you are using one of them, please use these credentials.
        If not feel free to connect to any other GNU social instance (see below)." +msgstr "Er zijn op deze hub enkele voorgeconfigureerde OAuthkey-paren voor GNU social servers beschikbaar. Wanneer je een van deze servers gebruikt, gebruik dan deze voorgeconfigureerde gegevens.
        Wanneer dit niet het geval is, maak dan gerust met een andere GNU social-server verbinding (zie hieronder)." + +#: ../../extend/addon/addon/statusnet/statusnet.php:327 +msgid "Provide your own OAuth Credentials" +msgstr "Verstrek jouw eigen OAuth-gegevens" + +#: ../../extend/addon/addon/statusnet/statusnet.php:329 +msgid "" +"No consumer key pair for GNU social found. Register your Hubzilla Account as" +" an desktop client on your GNU social account, copy the consumer key pair " +"here and enter the API base root.
        Before you register your own OAuth " +"key pair ask the administrator if there is already a key pair for this " +"Hubzilla installation at your favourite GNU social installation." +msgstr "Geen consumerkey voor GNU social gevonden. Registreer jouw Hubzilla-account als een desktopclient in jouw GNU-social-account, kopieer en plak hier de consumerkey en de consumersecret, en vul de API-base-root in.
        Voordat je jouw eigen OAuthkey-paar registreert, vraag dan eerst aan jouw hubbeheerder of er al een key-paar voor deze hub op jouw favoriete GNU social-server bestaat." + +#: ../../extend/addon/addon/statusnet/statusnet.php:333 +msgid "OAuth Consumer Key" +msgstr "OAuth-consumerkey" + +#: ../../extend/addon/addon/statusnet/statusnet.php:337 +msgid "OAuth Consumer Secret" +msgstr "Oauth-consumersecret" + +#: ../../extend/addon/addon/statusnet/statusnet.php:341 +msgid "Base API Path" +msgstr "Basispad API" + +#: ../../extend/addon/addon/statusnet/statusnet.php:341 +msgid "Remember the trailing /" +msgstr "Vergeet niet de afsluitende /" + +#: ../../extend/addon/addon/statusnet/statusnet.php:345 +msgid "GNU social application name" +msgstr "Naam GNU social-applicatie" + +#: ../../extend/addon/addon/statusnet/statusnet.php:368 +msgid "" +"To connect to your GNU social account click the button below to get a " +"security code from GNU social which you have to copy into the input box " +"below and submit the form. Only your public posts will be " +"posted to GNU social." +msgstr "Om jouw GNU social-account te koppelen klik je op de knop hieronder. Je krijgt dan een veiligheidscode van GNU social die je kan kopiëren en dan hieronder in het invulveld kan plakken. Vervolgens klik je op Opslaan. Alleen jouw openbare berichten kunnen worden doorgeplaatst naar GNU social." + +#: ../../extend/addon/addon/statusnet/statusnet.php:370 +msgid "Log in with GNU social" +msgstr "Inloggen op " + +#: ../../extend/addon/addon/statusnet/statusnet.php:373 +msgid "Copy the security code from GNU social here" +msgstr "Plak de veiligheidscode van GNU social hier" + +#: ../../extend/addon/addon/statusnet/statusnet.php:383 +msgid "Cancel Connection Process" +msgstr "Annuleer het verbindingsproces" + +#: ../../extend/addon/addon/statusnet/statusnet.php:385 +msgid "Current GNU social API is" +msgstr "Huidige GNU social-API is" + +#: ../../extend/addon/addon/statusnet/statusnet.php:389 +msgid "Cancel GNU social Connection" +msgstr "Annuleer de GNU social-verbinding" + +#: ../../extend/addon/addon/statusnet/statusnet.php:401 +#: ../../extend/addon/addon/twitter/twitter.php:232 +msgid "Currently connected to: " +msgstr "Momenteel gekoppeld aan: " + +#: ../../extend/addon/addon/statusnet/statusnet.php:406 +msgid "" +"Note: Due your privacy settings (Hide your profile " +"details from unknown viewers?) the link potentially included in public " +"postings relayed to GNU social will lead the visitor to a blank page " +"informing the visitor that the access to your profile has been restricted." +msgstr "Opmerking: In verband met jouw privacyinstellingen (wanneer jouw kanaalprofiel voor onbekenden is verborgen) leidt de profiellink die mogelijk in jouw naar GNU social doorgestuurde openbare berichten staat, naar een lege pagina met de melding dat toegang tot jouw kanaalprofiel is beperkt." + +#: ../../extend/addon/addon/statusnet/statusnet.php:411 +msgid "Allow posting to GNU social" +msgstr "Doorplaatsen naar GNU social toestaan" + +#: ../../extend/addon/addon/statusnet/statusnet.php:411 +msgid "" +"If enabled your public postings can be posted to the associated GNU-social " +"account" +msgstr "Wanneer dit is ingeschakeld kunnen jouw openbare berichten naar het gekoppelde Twitter-account worden doorgeplaatst" + +#: ../../extend/addon/addon/statusnet/statusnet.php:415 +msgid "Post to GNU social by default" +msgstr "Standaard doorplaatsen naar GNU social" + +#: ../../extend/addon/addon/statusnet/statusnet.php:415 +msgid "" +"If enabled your public postings will be posted to the associated GNU-social " +"account by default" +msgstr "Wanneer dit is ingeschakeld worden al jouw openbare berichten standaard naar het gekoppelde GNU social-account doorgeplaatst" + +#: ../../extend/addon/addon/statusnet/statusnet.php:424 +#: ../../extend/addon/addon/twitter/twitter.php:255 +msgid "Clear OAuth configuration" +msgstr "OAuth-configuratie wissen" + +#: ../../extend/addon/addon/statusnet/statusnet.php:432 +msgid "GNU social Post Settings" +msgstr "Doorplaatsen naar GNU social" + +#: ../../extend/addon/addon/statusnet/statusnet.php:891 +msgid "API URL" +msgstr "API-URL" + +#: ../../extend/addon/addon/statusnet/statusnet.php:894 +msgid "Application name" +msgstr "Naam applicatie" + +#: ../../extend/addon/addon/superblock/superblock.php:110 +msgid "Currently blocked" +msgstr "Momenteel geblokkeerd" + +#: ../../extend/addon/addon/superblock/superblock.php:112 +msgid "No channels currently blocked" +msgstr "Momenteel geen kanalen geblokkeerd" + +#: ../../extend/addon/addon/superblock/superblock.php:118 +msgid "\"Superblock\" Settings" +msgstr "Superblock" + +#: ../../extend/addon/addon/superblock/superblock.php:316 +msgid "Block Completely" +msgstr "Volledig blokkeren" + +#: ../../extend/addon/addon/superblock/superblock.php:361 +msgid "superblock settings updated" +msgstr "Superblock-instellingen bijgewerkt" + +#: ../../extend/addon/addon/testdrive/testdrive.php:104 +#, php-format +msgid "Your account on %s will expire in a few days." +msgstr "Jouw account op %s verloopt over een paar dagen. " + +#: ../../extend/addon/addon/testdrive/testdrive.php:105 +msgid "Your $Productname test account is about to expire." +msgstr "Jouw $Productname-testaccount staat op het punt om te verlopen." + +#: ../../extend/addon/addon/tictac/tictac.php:21 +msgid "Three Dimensional Tic-Tac-Toe" +msgstr "Driedimensionaal Boter-kaas-en-eieren" + +#: ../../extend/addon/addon/tictac/tictac.php:54 +msgid "3D Tic-Tac-Toe" +msgstr "Boter-kaas-en-eieren in 3D" + +#: ../../extend/addon/addon/tictac/tictac.php:59 +msgid "New game" +msgstr "Nieuw spel" + +#: ../../extend/addon/addon/tictac/tictac.php:60 +msgid "New game with handicap" +msgstr "Nieuw spel met handicap" + +#: ../../extend/addon/addon/tictac/tictac.php:61 +msgid "" +"Three dimensional tic-tac-toe is just like the traditional game except that " +"it is played on multiple levels simultaneously. " +msgstr "Driedimensionaal Boter-kaas-en-eieren is hetzelfde als het klassieke spel, behalve dat het gelijktijdig op meerdere hoogtes wordt gespeeld." + +#: ../../extend/addon/addon/tictac/tictac.php:62 +msgid "" +"In this case there are three levels. You win by getting three in a row on " +"any level, as well as up, down, and diagonally across the different levels." +msgstr "In dit geval zijn er drie hoogtes. Je wint wanneer je drie op een rij hebt op een van de drie hoogtes, van boven naar beneden of diagonaal." + +#: ../../extend/addon/addon/tictac/tictac.php:64 +msgid "" +"The handicap game disables the center position on the middle level because " +"the player claiming this square often has an unfair advantage." +msgstr "Het spel met een handicap schakelt de middelste positie op de middelste hoogte uit, omdat de speler die deze positie krijgt vaak een oneerlijk voordeel geniet." + +#: ../../extend/addon/addon/tictac/tictac.php:183 +msgid "You go first..." +msgstr "Jij bent eerst..." + +#: ../../extend/addon/addon/tictac/tictac.php:188 +msgid "I'm going first this time..." +msgstr "Ik ga deze keer eerst..." + +#: ../../extend/addon/addon/tictac/tictac.php:194 +msgid "You won!" +msgstr "Jij wint!" + +#: ../../extend/addon/addon/tictac/tictac.php:200 +#: ../../extend/addon/addon/tictac/tictac.php:225 +msgid "\"Cat\" game!" +msgstr "Gelijkspel!" + +#: ../../extend/addon/addon/tictac/tictac.php:223 +msgid "I won!" +msgstr "Ik win!" + +#: ../../extend/addon/addon/tour/tour.php:75 +msgid "Edit your profile and change settings." +msgstr "Jouw profiel bewerken en instellingen veranderen." + +#: ../../extend/addon/addon/tour/tour.php:76 +msgid "Click here to see activity from your connections." +msgstr "Klik hier voor een tijdlijn met berichten en overige activiteiten van jouw connecties." + +#: ../../extend/addon/addon/tour/tour.php:77 +msgid "Click here to see your channel home." +msgstr "Klik hier voor de tijdlijn van jouw eigen kanaal." + +#: ../../extend/addon/addon/tour/tour.php:78 +msgid "You can access your private messages from here." +msgstr "Hiermee krijg je toegang tot jouw privéberichten." + +#: ../../extend/addon/addon/tour/tour.php:79 +msgid "Create new events here." +msgstr "Nieuwe gebeurtenissen kan je hier aanmaken." + +#: ../../extend/addon/addon/tour/tour.php:80 +msgid "" +"You can accept new connections and change permissions for existing ones " +"here. You can also e.g. create groups of contacts." +msgstr "Hier kan je nieuwe connecties accepteren en instellingen van bestaande connecties wijzigen. Je kan hier bijv. ook privacygroepen aanmaken." + +#: ../../extend/addon/addon/tour/tour.php:81 +msgid "System notifications will arrive here" +msgstr "Systeemnotificaties komen hier tevoorschijn" + +#: ../../extend/addon/addon/tour/tour.php:82 +msgid "Search for content and users" +msgstr "Zoek hier naar tekst in berichten of naar andere kanalen." + +#: ../../extend/addon/addon/tour/tour.php:83 +msgid "Browse for new contacts" +msgstr "Blader hier in een gids met kanalen, die je toe kan voegen als connectie." + +#: ../../extend/addon/addon/tour/tour.php:84 +msgid "Launch installed apps" +msgstr "Open (op deze hub) geïnstalleerde apps." + +#: ../../extend/addon/addon/tour/tour.php:85 +msgid "Looking for help? Click here." +msgstr "Zoek je hulp? Klik dan hier." + +#: ../../extend/addon/addon/tour/tour.php:86 +msgid "" +"New events have occurred in your network. Click here to see what has " +"happened!" +msgstr "Er is iets nieuws gebeurd in jouw netwerk. Klik hier om te zien wat precies." + +#: ../../extend/addon/addon/tour/tour.php:87 +msgid "You have received a new private message. Click here to see from who!" +msgstr "Je hebt een nieuw privébericht ontvangen. Klik hier om te zien van wie." + +#: ../../extend/addon/addon/tour/tour.php:88 +msgid "There are events this week. Click here too see which!" +msgstr "Er vinden deze week gebeurtenissen plaats. Klik hier om te zien welke dit zijn." + +#: ../../extend/addon/addon/tour/tour.php:89 +msgid "You have received a new introduction. Click here to see who!" +msgstr "Je hebt een nieuw connectieverzoek ontvangen. Klik hier om te kijken van wie." + +#: ../../extend/addon/addon/tour/tour.php:90 +msgid "" +"There is a new system notification. Click here to see what has happened!" +msgstr "Er is een nieuwe systeemnotificatie. Klik hier om te zien wat er aan de hand is." + +#: ../../extend/addon/addon/tour/tour.php:93 +msgid "Click here to share text, images, videos and sound." +msgstr "Klik hier om tekst, afbeeldingen, video en audio te delen." + +#: ../../extend/addon/addon/tour/tour.php:94 +msgid "You can write an optional title for your update (good for long posts)." +msgstr "Je kan optioneel een titel voor je nieuwe bericht verzinnen. Vooral goed voor langere berichten." + +#: ../../extend/addon/addon/tour/tour.php:95 +msgid "Entering some categories here makes it easier to find your post later." +msgstr "Het invullen van enkele categorieën, maakt het later terugvinden van je berichten gemakkelijker. Dit is niet verplicht." + +#: ../../extend/addon/addon/tour/tour.php:96 +msgid "Share photos, links, location, etc." +msgstr "Deel foto's, links, locaties, enz." + +#: ../../extend/addon/addon/tour/tour.php:97 +msgid "" +"Only want to share content for a while? Make it expire at a certain date." +msgstr "Wil je alleen iets tot een bepaald moment delen? Dan kan je het hiermee op een bepaalde datum en tijd laten verlopen." + +#: ../../extend/addon/addon/tour/tour.php:98 +msgid "You can password protect content." +msgstr "Je kan met een wachtwoord gegevens beveiligen." + +#: ../../extend/addon/addon/tour/tour.php:99 +msgid "Choose who you share with." +msgstr "Kies met wie je dit wil delen. " + +#: ../../extend/addon/addon/tour/tour.php:101 +msgid "Click here when you are done." +msgstr "Klik hier wanneer je klaar bent." + +#: ../../extend/addon/addon/tour/tour.php:104 +msgid "Adjust from which channels posts should be displayed." +msgstr "Aanpassen van welke kanalen berichten moeten worden getoond. " + +#: ../../extend/addon/addon/tour/tour.php:105 +msgid "Only show posts from channels in the specified privacy group." +msgstr "Toon alleen berichten van kanalen in de hier gekozen privacygroep." + +#: ../../extend/addon/addon/tour/tour.php:109 +msgid "Easily find posts containing tags (keywords preceded by the \"#\" symbol)." +msgstr "Vind gemakkelijk berichten met tags (trefwoorden die beginnen met een \"#\")." + +#: ../../extend/addon/addon/tour/tour.php:110 +msgid "Easily find posts in given category." +msgstr "Vind gemakkelijk berichten in een bepaalde categorie." + +#: ../../extend/addon/addon/tour/tour.php:111 +msgid "Easily find posts by date." +msgstr "Vind gemakkelijk berichten op datum." + +#: ../../extend/addon/addon/tour/tour.php:112 +msgid "" +"Suggested users who have volounteered to be shown as suggestions, and who we" +" think you might find interesting." +msgstr "Voorstellen voor kanalen die wellicht interessant voor jou zijn en hier ook vrijwillig voor hebben gekozen." + +#: ../../extend/addon/addon/tour/tour.php:113 +msgid "Here you see channels you have connected to." +msgstr "Hier kan je zien met welke kanalen je bent verbonden (connecties)." + +#: ../../extend/addon/addon/tour/tour.php:114 +msgid "Save your search so you can repeat it at a later date." +msgstr "Sla jouw zoekopdracht op, zodat je het later opnieuw kan gebruiken." + +#: ../../extend/addon/addon/tour/tour.php:117 +msgid "" +"If you see this icon you can be sure that the sender is who it say it is. It" +" is normal that it is not always possible to verify the sender, so the icon " +"will be missing sometimes. There is usually no need to worry about that." +msgstr "Wanneer je dit pictogram ziet, kan je er van uitgaan dat de afzender is wie hij/zij beweert te zijn. Het is niet altijd mogelijk om de afzender te verifiëren, waardoor het pictogram soms ontbreekt. Dit is meestal geen reden voor ongerustheid." + +#: ../../extend/addon/addon/tour/tour.php:118 +msgid "" +"Danger! It seems someone tried to forge a message! This message is not " +"necessarily from who it says it is from!" +msgstr "Gevaar! Het lijkt er op dat iemand een bericht heeft proberen te vervalsen! Dit bericht is mogelijk niet afkomstig van de vermelde afzender!" + +#: ../../extend/addon/addon/tour/tour.php:125 +msgid "" +"Welcome to Hubzilla! Would you like to see a tour of the UI?

        You can " +"pause it at any time and continue where you left off by reloading the page, " +"or navigting to another page.

        You can also advance by pressing the " +"return key" +msgstr "Welkom op Hubzilla! Wil jij een rondleiding hebben langs de gebruikersinterface?

        Je kan dit op elk moment pauzeren en weer hervatten door de pagina te herladen of naar een andere pagina te gaan.

        Je kan ook vooruitgaan met behulp van de entertoets." + +#: ../../extend/addon/addon/twitter/twitter.php:99 +msgid "Post to Twitter" +msgstr "Doorplaatsen naar Twitter" + +#: ../../extend/addon/addon/twitter/twitter.php:154 +msgid "Twitter settings updated." +msgstr "Twitter-instellingen bijgewerkt." + +#: ../../extend/addon/addon/twitter/twitter.php:183 +msgid "" +"No consumer key pair for Twitter found. Please contact your site " +"administrator." +msgstr "Geen consumerkeys voor Twitter gevonden. Neem contact op met jouw hubbeheerder." + +#: ../../extend/addon/addon/twitter/twitter.php:205 +msgid "" +"At this Hubzilla instance the Twitter plugin was enabled but you have not " +"yet connected your account to your Twitter account. To do so click the " +"button below to get a PIN from Twitter which you have to copy into the input" +" box below and submit the form. Only your public posts will" +" be posted to Twitter." +msgstr "De Twitter-plugin is op deze Hubzilla-hub ingeschakeld, maar je hebt nog niet jouw Hubzilla-kanaal met jouw Twitter-account gekoppeld. Om dit te doen klik je op de knop hieronder om een PIN-code van Twitter te krijgen. Deze dien je te kopiëren en in het invoegveld beneden te plakken. Vervolgens klik je op Opslaan. Alleen jouw openbare berichten kunnen op Twitter worden geplaatst." + +#: ../../extend/addon/addon/twitter/twitter.php:207 +msgid "Log in with Twitter" +msgstr "Op Twitter inloggen" + +#: ../../extend/addon/addon/twitter/twitter.php:210 +msgid "Copy the PIN from Twitter here" +msgstr "Plak of type de PIN-code hier" + +#: ../../extend/addon/addon/twitter/twitter.php:237 +msgid "" +"Note: Due your privacy settings (Hide your profile " +"details from unknown viewers?) the link potentially included in public " +"postings relayed to Twitter will lead the visitor to a blank page informing " +"the visitor that the access to your profile has been restricted." +msgstr "Opmerking: In verband met jouw privacyinstellingen (wanneer jouw kanaalprofiel voor onbekenden is verborgen) leidt de profiellink die mogelijk in jouw naar Twitter doorgestuurde openbare berichten staat, naar een lege pagina met de melding dat toegang tot jouw kanaalprofiel is beperkt." + +#: ../../extend/addon/addon/twitter/twitter.php:242 +msgid "Allow posting to Twitter" +msgstr "Doorplaatsen naar Twitter toestaan" + +#: ../../extend/addon/addon/twitter/twitter.php:242 +msgid "" +"If enabled your public postings can be posted to the associated Twitter " +"account" +msgstr "Wanneer dit is ingeschakeld kunnen jouw openbare berichten naar het gekoppelde Twitter-account worden doorgeplaatst" + +#: ../../extend/addon/addon/twitter/twitter.php:246 +msgid "Send public postings to Twitter by default" +msgstr "Standaard doorplaatsen naar Twitter" + +#: ../../extend/addon/addon/twitter/twitter.php:246 +msgid "" +"If enabled your public postings will be posted to the associated Twitter " +"account by default" +msgstr "Wanneer dit is ingeschakeld worden al jouw openbare berichten standaard naar het gekoppelde Twitter-account doorgeplaatst" + +#: ../../extend/addon/addon/twitter/twitter.php:264 +msgid "Twitter Post Settings" +msgstr "Doorplaatsen naar Twitter" + +#: ../../extend/addon/addon/twitter/twitter.php:773 +#: ../../extend/addon/addon/rendezvous/rendezvous.php:95 +msgid "Submit Settings" +msgstr "Instellingen toepassen" + +#: ../../extend/addon/addon/upload_limits/upload_limits.php:25 +msgid "Show Upload Limits" +msgstr "Uploadlimieten tonen" + +#: ../../extend/addon/addon/upload_limits/upload_limits.php:27 +msgid "Hubzilla configured maximum size: " +msgstr "Op Hubzilla configureerde maximale grootte: " + +#: ../../extend/addon/addon/upload_limits/upload_limits.php:28 +msgid "PHP upload_max_filesize: " +msgstr "PHP upload_max_filesize: " + +#: ../../extend/addon/addon/upload_limits/upload_limits.php:29 +msgid "PHP post_max_size (must be larger than upload_max_filesize): " +msgstr "PHP post_max_size (moet hoger zijn dan upload_max_filesize): " + +#: ../../extend/addon/addon/visage/visage.php:93 +msgid "Recent Channel/Profile Viewers" +msgstr "Recente bezoekers van jouw kanaal/profiel" + +#: ../../extend/addon/addon/visage/visage.php:98 +msgid "This plugin/addon has not been configured." +msgstr "Deze plugin is niet geconfigureerd. " + +#: ../../extend/addon/addon/visage/visage.php:99 +#, php-format +msgid "Please visit the Visage settings on %s" +msgstr "Bezoek de Visage-instellingen op %s" + +#: ../../extend/addon/addon/visage/visage.php:99 +msgid "your feature settings page" +msgstr "Jouw plugin-instellingen" + +#: ../../extend/addon/addon/visage/visage.php:112 +msgid "No entries." +msgstr "Niets aanwezig." + +#: ../../extend/addon/addon/visage/visage.php:166 +msgid "Enable Visage Visitor Logging" +msgstr "Visage inschakelen " + +#: ../../extend/addon/addon/visage/visage.php:170 +msgid "Visage Settings" +msgstr "Visage" + +#: ../../extend/addon/addon/wholikesme/wholikesme.php:29 +msgid "Who likes me?" +msgstr "Wie vindt mij leuk?" + +#: ../../extend/addon/addon/wppost/wppost.php:45 +msgid "Post to WordPress" +msgstr "Doorplaatsen naar WordPress" + +#: ../../extend/addon/addon/wppost/wppost.php:82 +msgid "Enable WordPress Post Plugin" +msgstr "Doorplaatsen naar WordPress inschakelen" + +#: ../../extend/addon/addon/wppost/wppost.php:86 +msgid "WordPress username" +msgstr "Gebruikersnaam WordPress" + +#: ../../extend/addon/addon/wppost/wppost.php:90 +msgid "WordPress password" +msgstr "Wachtwoord WordPress" + +#: ../../extend/addon/addon/wppost/wppost.php:94 +msgid "WordPress API URL" +msgstr "API-URL WordPress" + +#: ../../extend/addon/addon/wppost/wppost.php:95 +msgid "Typically https://your-blog.tld/xmlrpc.php" +msgstr "Meestal https://jouw-blog.tld/xmlrpc.php" + +#: ../../extend/addon/addon/wppost/wppost.php:98 +msgid "WordPress blogid" +msgstr "Blog ID WordPress" + +#: ../../extend/addon/addon/wppost/wppost.php:99 +msgid "For multi-user sites such as wordpress.com, otherwise leave blank" +msgstr "Voor websites met meerdere gebruikers, zoals wordpress.com. Anders leeg laten." + +#: ../../extend/addon/addon/wppost/wppost.php:105 +msgid "Post to WordPress by default" +msgstr "Standaard naar WordPress doorplaatsen" + +#: ../../extend/addon/addon/wppost/wppost.php:109 +msgid "Forward comments (requires hubzilla_wp plugin)" +msgstr "Reacties doorplaatsen (Hubzilla_WP-plugin vereist)" + +#: ../../extend/addon/addon/wppost/wppost.php:113 +msgid "WordPress Post Settings" +msgstr "Doorplaatsen naar WordPress" + +#: ../../extend/addon/addon/wppost/wppost.php:129 +msgid "Wordpress Settings saved." +msgstr "WordPress-instellingen opgeslagen." + +#: ../../extend/addon/addon/xmpp/xmpp.php:31 +msgid "XMPP settings updated." +msgstr "XMPP-instellingen bijgewerkt." + +#: ../../extend/addon/addon/xmpp/xmpp.php:53 +msgid "Enable Chat" +msgstr "Chatten inschakelen" + +#: ../../extend/addon/addon/xmpp/xmpp.php:58 +msgid "Individual credentials" +msgstr "Individuele credentials" + +#: ../../extend/addon/addon/xmpp/xmpp.php:64 +msgid "Jabber BOSH server" +msgstr "BOSH-server van Jabber" + +#: ../../extend/addon/addon/xmpp/xmpp.php:69 +msgid "XMPP Settings" +msgstr "XMPP" + +#: ../../extend/addon/addon/xmpp/xmpp.php:92 +msgid "Jabber BOSH host" +msgstr "BOSH-host van Jabber" + +#: ../../extend/addon/addon/xmpp/xmpp.php:93 +msgid "Use central userbase" +msgstr "Gebruik een centrale gebruikersgroep" + +#: ../../extend/addon/addon/xmpp/xmpp.php:93 +msgid "" +"If enabled, members will automatically login to an ejabberd server that has " +"to be installed on this machine with synchronized credentials via the " +"\"auth_ejabberd.php\" script." +msgstr "Wanneer ingeschakeld worden leden automatisch op een Ejabberd-server ingelogd. Deze dient wel op deze machine te zijn geïnstalleerd met zgn. 'synchronized credentials' via het 'auth_ejabberd.php'-script." + +#: ../../extend/addon/addon/cdav/include/widgets.php:37 +msgid "Select Channel" +msgstr "Kies een kanaal" + +#: ../../extend/addon/addon/cdav/include/widgets.php:42 +msgid "Read-write" +msgstr "Lees- en schrijfrechten" + +#: ../../extend/addon/addon/cdav/include/widgets.php:43 +msgid "Read-only" +msgstr "Alleen leesrechten" + +#: ../../extend/addon/addon/cdav/include/widgets.php:116 +msgid "My Calendars" +msgstr "Mijn agenda's" + +#: ../../extend/addon/addon/cdav/include/widgets.php:118 +msgid "Shared Calendars" +msgstr "Gedeelde agenda's" + +#: ../../extend/addon/addon/cdav/include/widgets.php:122 +msgid "Share this calendar" +msgstr "Agenda delen" + +#: ../../extend/addon/addon/cdav/include/widgets.php:124 +msgid "Calendar name and color" +msgstr "Naam en kleur agenda" + +#: ../../extend/addon/addon/cdav/include/widgets.php:126 +msgid "Create new calendar" +msgstr "Nieuwe agenda aanmaken" + +#: ../../extend/addon/addon/cdav/include/widgets.php:128 +msgid "Calendar Name" +msgstr "Naam agenda" + +#: ../../extend/addon/addon/cdav/include/widgets.php:129 +msgid "Calendar Tools" +msgstr "Agenda-hulpmiddelen" + +#: ../../extend/addon/addon/cdav/include/widgets.php:130 +msgid "Import calendar" +msgstr "Importeren" + +#: ../../extend/addon/addon/cdav/include/widgets.php:131 +msgid "Select a calendar to import to" +msgstr "Kies een agenda om te importeren" + +#: ../../extend/addon/addon/cdav/include/widgets.php:158 +msgid "Addressbooks" +msgstr "Adresboeken" + +#: ../../extend/addon/addon/cdav/include/widgets.php:160 +msgid "Addressbook name" +msgstr "Naam adresboek" + +#: ../../extend/addon/addon/cdav/include/widgets.php:162 +msgid "Create new addressbook" +msgstr "Nieuw adresboek aanmaken" + +#: ../../extend/addon/addon/cdav/include/widgets.php:163 +msgid "Addressbook Name" +msgstr "Naam adresboek" + +#: ../../extend/addon/addon/cdav/include/widgets.php:165 +msgid "Addressbook Tools" +msgstr "Adresboek-hulpmiddelen" + +#: ../../extend/addon/addon/cdav/include/widgets.php:166 +msgid "Import addressbook" +msgstr "Importeren" + +#: ../../extend/addon/addon/cdav/include/widgets.php:167 +msgid "Select an addressbook to import to" +msgstr "Kies een adresboek om te importeren" + +#: ../../extend/addon/addon/cdav/cdav.php:36 +msgid "Errors encountered creating database table: " +msgstr "Fouten opgetreden tijdens aanmaken databasetabel: " + +#: ../../extend/addon/addon/cdav/cdav.php:197 +msgid "Default Calendar" +msgstr "Standaard agenda" + +#: ../../extend/addon/addon/cdav/cdav.php:206 +msgid "Default Addressbook" +msgstr "Standaard adresboek" + +#: ../../extend/addon/addon/cdav/cdav.php:215 +msgid "CalDAV/CardDAV Settings saved." +msgstr "CalDAV/CardDAV-instellingen opgeslagen." + +#: ../../extend/addon/addon/cdav/cdav.php:234 +msgid "Enable CalDAV/CardDAV Server for this channel" +msgstr "CalDAV/CardDAV-server voor dit kanaal inschakelen" + +#: ../../extend/addon/addon/cdav/cdav.php:237 +#, php-format +msgid "Your CalDAV resources are located at %s " +msgstr "Jouw CalDAV-URL is %s " + +#: ../../extend/addon/addon/cdav/cdav.php:240 +#, php-format +msgid "Your CardDAV resources are located at %s " +msgstr "Jouw CardDAV-URL is %s " + +#: ../../extend/addon/addon/cdav/cdav.php:246 +msgid "CalDAV/CardDAV Settings" +msgstr "CalDAV/CardDAV" + +#: ../../extend/addon/addon/cdav/cdav.php:270 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1145 +msgid "Mobile" +msgstr "Mobiel" + +#: ../../extend/addon/addon/cdav/cdav.php:271 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1146 ../../include/nav.php:88 +msgid "Home" +msgstr "Thuis" + +#: ../../extend/addon/addon/cdav/cdav.php:272 +msgid "Home, Voice" +msgstr "Thuis, spraak" + +#: ../../extend/addon/addon/cdav/cdav.php:273 +msgid "Home, Fax" +msgstr "Thuis, fax" + +#: ../../extend/addon/addon/cdav/cdav.php:274 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1147 +msgid "Work" +msgstr "Werk" + +#: ../../extend/addon/addon/cdav/cdav.php:275 +msgid "Work, Voice" +msgstr "Werk, spraak" + +#: ../../extend/addon/addon/cdav/cdav.php:276 +msgid "Work, Fax" +msgstr "Werk, fax" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:744 +msgid "INVALID EVENT DISMISSED!" +msgstr "ONGELDIGE GEBEURTENIS VERWIJDERD!" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:745 +msgid "Summary: " +msgstr "Samenvatting: " + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:746 +msgid "Date: " +msgstr "Datum: " + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:747 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:754 +msgid "Reason: " +msgstr "Reden: " + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:752 +msgid "INVALID CARD DISMISSED!" +msgstr "ONGELDIGE CONTACTKAART VERWIJDERD!" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:753 +msgid "Name: " +msgstr "Naam: " + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:770 +msgid "" +"You have to enable this plugin in Feature/Addon Settings > CalDAV/CardDAV " +"Settings before you can use it." +msgstr "Voordat je dit kunt gebruiken dien je eerst deze plugin onder 'Plugin-instellingen > CalDAV/CardDAV' in te schakelen." + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:836 +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:837 +msgid "Example: YYYY-MM-DD HH:mm" +msgstr "Bijvoorbeeld: JJJJ-MM-DD UU:mm" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:837 +msgid "End date and time" +msgstr "Einddatum en -tijd" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:852 +msgid "List month" +msgstr "Maand tonen" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:853 +msgid "List week" +msgstr "Week tonen" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:854 +msgid "List day" +msgstr "Dag tonen" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:861 +msgid "More" +msgstr "Meer" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:862 +msgid "Less" +msgstr "Minder" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:863 +msgid "Select calendar" +msgstr "Kies agenda" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:865 +msgid "Delete all" +msgstr "Alles verwijderen" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:867 +msgid "Sorry! Editing of recurrent events is not yet implemented." +msgstr "Excuses! Bewerken van herhalende gebeurtenissen is nog niet geïmplementeerd." + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1137 +msgid "Organisation" +msgstr "Organisatie" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1138 +#: ../../include/page_widgets.php:46 +msgid "Title" +msgstr "Titel" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1139 +msgid "Phone" +msgstr "Telefoon" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1141 +msgid "Instant messenger" +msgstr "Instant messenger" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1142 +msgid "Website" +msgstr "Website" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1144 +msgid "Note" +msgstr "Opmerking" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1150 +msgid "Add Field" +msgstr "Veld toevoegen" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1155 +msgid "P.O. Box" +msgstr "Postbus" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1156 +msgid "Additional" +msgstr "Extra" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1157 +msgid "Street" +msgstr "Straat en huisnummer" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1158 +msgid "Locality" +msgstr "Plaats" + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1159 +msgid "Region" +msgstr "Provincie/staat/regio/enz." + +#: ../../extend/addon/addon/cdav/Mod_Cdav.php:1160 +msgid "ZIP Code" +msgstr "Postcode" + +#: ../../extend/addon/addon/chess/chess.php:276 +#: ../../extend/addon/addon/chess/chess.php:430 +msgid "Invalid game." +msgstr "Ongeldig spel." + +#: ../../extend/addon/addon/chess/chess.php:282 +#: ../../extend/addon/addon/chess/chess.php:436 +msgid "You are not a player in this game." +msgstr "Jij doet niet aan dit speel mee." + +#: ../../extend/addon/addon/chess/chess.php:315 +msgid "You must be a local channel to create a game." +msgstr "Je moet een lokaal kanaal zijn om een spel aan te maken." + +#: ../../extend/addon/addon/chess/chess.php:333 +msgid "You must select one opponent that is not yourself." +msgstr "Je moet één tegenstander uitkiezen, maar niet jezelf." + +#: ../../extend/addon/addon/chess/chess.php:336 +msgid "Creating new game..." +msgstr "Nieuw spel wordt aangemaakt..." + +#: ../../extend/addon/addon/chess/chess.php:342 +msgid "You must select white or black." +msgstr "Je moet wit of zwart kiezen." + +#: ../../extend/addon/addon/chess/chess.php:349 +msgid "Error creating new game." +msgstr "Fout tijdens aanmaken nieuw spel." + +#: ../../extend/addon/addon/chess/chess.php:379 ../../include/channel.php:816 +msgid "Requested channel is not available." +msgstr "Opgevraagd kanaal is niet beschikbaar." + +#: ../../extend/addon/addon/chess/chess.php:392 +msgid "You must select a local channel /chess/channelname" +msgstr "Je moet een lokaal kanaal kiezen: .../chess/kanaalnaam" + +#: ../../extend/addon/addon/chess/chess.php:920 +msgid "Enable notifications" +msgstr "Notificaties inschakelen" + +#: ../../extend/addon/addon/likebanner/likebanner.php:51 +msgid "Your Webbie:" +msgstr "Jouw kanaaladres:" + +#: ../../extend/addon/addon/likebanner/likebanner.php:54 +msgid "Fontsize (px):" +msgstr "Tekengrootte (px):" + +#: ../../extend/addon/addon/likebanner/likebanner.php:68 +msgid "Link:" +msgstr "Link:" + +#: ../../extend/addon/addon/likebanner/likebanner.php:70 +msgid "Like us on Hubzilla" +msgstr "Like ons op Hubzilla" + +#: ../../extend/addon/addon/likebanner/likebanner.php:72 +msgid "Embed:" +msgstr "Insluiten (embed):" + +#: ../../extend/addon/addon/openid/Mod_Id.php:85 +#: ../../include/selectors.php:49 ../../include/selectors.php:66 +msgid "Male" +msgstr "Man" + +#: ../../extend/addon/addon/openid/Mod_Id.php:87 +#: ../../include/selectors.php:49 ../../include/selectors.php:66 +msgid "Female" +msgstr "Vrouw" + +#: ../../extend/addon/addon/openid/Mod_Openid.php:30 +msgid "OpenID protocol error. No ID returned." +msgstr "OpenID-protocolfout. Geen ID terugontvangen." + +#: ../../extend/addon/addon/openid/Mod_Openid.php:193 +#: ../../include/auth.php:286 +msgid "Login failed." +msgstr "Inloggen mislukt." + +#: ../../extend/addon/addon/openid/MysqlProvider.php:52 +msgid "First Name" +msgstr "Voornaam" + +#: ../../extend/addon/addon/openid/MysqlProvider.php:53 +msgid "Last Name" +msgstr "Achternaam" + +#: ../../extend/addon/addon/openid/MysqlProvider.php:55 +msgid "Full Name" +msgstr "Volledige naam" + +#: ../../extend/addon/addon/openid/MysqlProvider.php:61 +msgid "Profile Photo 16px" +msgstr "Profielfoto 16px" + +#: ../../extend/addon/addon/openid/MysqlProvider.php:62 +msgid "Profile Photo 32px" +msgstr "Profielfoto 32px" + +#: ../../extend/addon/addon/openid/MysqlProvider.php:63 +msgid "Profile Photo 48px" +msgstr "Profielfoto 48px" + +#: ../../extend/addon/addon/openid/MysqlProvider.php:64 +msgid "Profile Photo 64px" +msgstr "Profielfoto 64px" + +#: ../../extend/addon/addon/openid/MysqlProvider.php:65 +msgid "Profile Photo 80px" +msgstr "Profielfoto 80px" + +#: ../../extend/addon/addon/openid/MysqlProvider.php:66 +msgid "Profile Photo 128px" +msgstr "Profielfoto 128px" + +#: ../../extend/addon/addon/openid/MysqlProvider.php:67 +msgid "Timezone" +msgstr "Tijdzone" + +#: ../../extend/addon/addon/openid/MysqlProvider.php:70 +msgid "Birth Year" +msgstr "Geboortejaar" + +#: ../../extend/addon/addon/openid/MysqlProvider.php:71 +msgid "Birth Month" +msgstr "Geboortemaand" + +#: ../../extend/addon/addon/openid/MysqlProvider.php:72 +msgid "Birth Day" +msgstr "Geboortedag" + +#: ../../extend/addon/addon/openid/MysqlProvider.php:73 +msgid "Birthdate" +msgstr "Geboortedatum" + +#: ../../extend/addon/addon/openid/openid.php:49 +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." + +#: ../../extend/addon/addon/openid/openid.php:49 +msgid "The error message was:" +msgstr "Foutmelding was:" + +#: ../../extend/addon/addon/diaspora_reconnect/diaspora_reconnect.php:44 +#, php-format +msgid "Reconnecting %d connections" +msgstr "%d connecties opnieuw aan het verbinden" + +#: ../../extend/addon/addon/diaspora_reconnect/diaspora_reconnect.php:63 +msgid "Diaspora Reconnect" +msgstr "Diaspora opnieuw verbinden" + +#: ../../extend/addon/addon/diaspora_reconnect/diaspora_reconnect.php:65 +msgid "" +"Use this form to re-establish Diaspora connections which were initially made" +" from a different hub." +msgstr "Gebruik dit formulier om opnieuw met Diaspora-connecties te verbinden, die oorspronkelijk op een andere hub waren verbonden." + +#: ../../extend/addon/addon/diaspora_reconnect/diaspora_reconnect.php:70 +msgid "Reconnect" +msgstr "Opnieuw verbinden" + +#: ../../extend/addon/addon/mailtest/mailtest.php:19 +msgid "Send test email" +msgstr "Test-e-mail versturen" + +#: ../../extend/addon/addon/mailtest/mailtest.php:66 +msgid "Mail sent." +msgstr "E-mail verzonden." + +#: ../../extend/addon/addon/mailtest/mailtest.php:68 +msgid "Sending of mail failed." +msgstr "Verzenden van e-mail mislukt." + +#: ../../extend/addon/addon/mailtest/mailtest.php:77 +msgid "Mail Test" +msgstr "E-mailtest" + +#: ../../extend/addon/addon/rendezvous/rendezvous.php:57 +msgid "Errors encountered deleting database table " +msgstr "Fouten opgetreden tijdens verwijderen databasetabel " + +#: ../../extend/addon/addon/rendezvous/rendezvous.php:96 +msgid "Drop tables when uninstalling?" +msgstr "Verwijder tabellen tijdens uitschakelen plugin?" + +#: ../../extend/addon/addon/rendezvous/rendezvous.php:96 +msgid "" +"If checked, the Rendezvous database tables will be deleted when the plugin " +"is uninstalled." +msgstr "Wanneer dit is aangevinkt worden de tabellen in de Rendezvous-database verwijderd wanneer de plugin wordt uitgeschakeld." + +#: ../../extend/addon/addon/rendezvous/rendezvous.php:97 +msgid "Mapbox Access Token" +msgstr "Toegangstoken " + +#: ../../extend/addon/addon/rendezvous/rendezvous.php:97 +msgid "" +"If you enter a Mapbox access token, it will be used to retrieve map tiles " +"from Mapbox instead of the default OpenStreetMap tile server." +msgstr "De Mapbox-toegangstoken wordt gebruikt om kaarttegels (tiles) van Mapbox op te halen in plaats van de standaard tile-server van OpenStreetMap." + +#: ../../extend/addon/addon/rendezvous/rendezvous.php:154 +msgid "Rendezvous" +msgstr "Rendezvous" + +#: ../../extend/addon/addon/rendezvous/rendezvous.php:159 +msgid "" +"This identity has been deleted by another member due to inactivity. Please " +"press the \"New identity\" button or refresh the page to register a new " +"identity. You may use the same name." +msgstr "Deze identiteit is door een ander lid verwijderd als gevolg van inactiviteit. Klik op de knop \"Nieuwe identiteit\" of herlaad de pagina om een nieuwe identiteit aan te maken. Je kan eventueel dezelfde naam gebruiken." + +#: ../../extend/addon/addon/rendezvous/rendezvous.php:160 +msgid "Welcome to Rendezvous!" +msgstr "Welkom bij Rendezvous!" + +#: ../../extend/addon/addon/rendezvous/rendezvous.php:161 +msgid "" +"Enter your name to join this rendezvous. To begin sharing your location with" +" the other members, tap the GPS control. When your location is discovered, a" +" red dot will appear and others will be able to see you on the map." +msgstr "Vul je naam in om deel te nemen aan deze rendezvous. Om met het delen van je locatie met de andere leden te beginnen, klik je op de locatieknop van je webbrowser. Nadat jouw locatie is gevonden verschijnt er een rode stip en kunnen andere leden jou zien op de kaart." + +#: ../../extend/addon/addon/rendezvous/rendezvous.php:163 +msgid "Let's meet here" +msgstr "Laten we elkaar hier ontmoeten" + +#: ../../extend/addon/addon/rendezvous/rendezvous.php:166 +msgid "New marker" +msgstr "Nieuwe markering" + +#: ../../extend/addon/addon/rendezvous/rendezvous.php:167 +msgid "Edit marker" +msgstr "Markering bewerken" + +#: ../../extend/addon/addon/rendezvous/rendezvous.php:168 +msgid "New identity" +msgstr "Nieuwe identiteit" + +#: ../../extend/addon/addon/rendezvous/rendezvous.php:169 +msgid "Delete marker" +msgstr "Markering verwijderen" + +#: ../../extend/addon/addon/rendezvous/rendezvous.php:170 +msgid "Delete member" +msgstr "Lid verwijderen" + +#: ../../extend/addon/addon/rendezvous/rendezvous.php:171 +msgid "Edit proximity alert" +msgstr "Nabijheidswaarschuwing bewerken" + +#: ../../extend/addon/addon/rendezvous/rendezvous.php:172 +msgid "" +"A proximity alert will be issued when this member is within a certain radius" +" of you.

        Enter a radius in meters (0 to disable):" +msgstr "Een nabijheidswaarschuwing wordt actief wanneer dit lid zich binnen een bepaalde straal bevindt.

        Voer het aantal meters van de straal in (0 om uit te schakelen):" + +#: ../../extend/addon/addon/rendezvous/rendezvous.php:172 +msgid "distance" +msgstr "afstand" + +#: ../../extend/addon/addon/rendezvous/rendezvous.php:183 +msgid "Add new rendezvous" +msgstr "Nieuwe rendezvous toevoegen" + +#: ../../extend/addon/addon/rendezvous/rendezvous.php:184 +msgid "" +"Create a new rendezvous and share the access link with those you wish to " +"invite to the group. Those who open the link become members of the " +"rendezvous. They can view other member locations, add markers to the map, or" +" share their own locations with the group." +msgstr "Maak een nieuwe rendezvous aan en deel de toegangslink met wie je wil uitnodigen voor de groep. Wie op de link klikt wordt lid van rendezvous. Zij kunnen dan de locaties zien van andere leden, markeringen aan de kaart toevoegen of hun eigen locaties met de groep delen." + +#: ../../include/features.php:222 +msgid "Disable Comments" +msgstr "Reacties uitschakelen" + +#: ../../include/features.php:223 +msgid "Provide the option to disable comments for a post" +msgstr "Maak het mogelijk dat reacties op een bericht kunnen worden uitgeschakeld" + +#: ../../include/dba/dba_driver.php:187 #, php-format msgid "Cannot locate DNS info for database server '%s'" msgstr "Kan DNS-informatie voor databaseserver '%s' niet vinden" -#: ../../include/permissions.php:35 -msgid "Can view my normal stream and posts" -msgstr "Kan mijn normale kanaalstream en berichten bekijken" +#: ../../include/datetime.php:147 +msgid "Birthday" +msgstr "Verjaardag of geboortedatum" -#: ../../include/permissions.php:39 -msgid "Can view my webpages" -msgstr "Kan mijn pagina's bekijken" +#: ../../include/datetime.php:149 +msgid "Age: " +msgstr "Leeftijd:" -#: ../../include/permissions.php:43 -msgid "Can post on my channel page (\"wall\")" -msgstr "Kan een bericht in mijn kanaal plaatsen" +#: ../../include/datetime.php:151 +msgid "YYYY-MM-DD or MM-DD" +msgstr "JJJJ-MM-DD of MM-DD" -#: ../../include/permissions.php:46 -msgid "Can like/dislike stuff" -msgstr "Kan dingen leuk of niet leuk vinden" +#: ../../include/datetime.php:286 ../../boot.php:2564 +msgid "never" +msgstr "nooit" -#: ../../include/permissions.php:46 -msgid "Profiles and things other than posts/comments" -msgstr "Profielen en dingen, buiten berichten en reacties" +#: ../../include/datetime.php:292 +msgid "less than a second ago" +msgstr "minder dan een seconde geleden" -#: ../../include/permissions.php:48 -msgid "Can forward to all my channel contacts via post @mentions" -msgstr "Kan naar al mijn kanaalconnecties berichten doorsturen met behulp van @vermeldingen+" +#: ../../include/datetime.php:310 +#, php-format +msgctxt "e.g. 22 hours ago, 1 minute ago" +msgid "%1$d %2$s ago" +msgstr "%1$d %2$s geleden" -#: ../../include/permissions.php:48 -msgid "Advanced - useful for creating group forum channels" -msgstr "Geavanceerd - nuttig voor groepforums" +#: ../../include/datetime.php:321 +msgctxt "relative_date" +msgid "year" +msgid_plural "years" +msgstr[0] "jaar" +msgstr[1] "jaren" -#: ../../include/permissions.php:49 -msgid "Can chat with me (when available)" -msgstr "Kan met mij chatten (wanneer beschikbaar)" +#: ../../include/datetime.php:324 +msgctxt "relative_date" +msgid "month" +msgid_plural "months" +msgstr[0] "maand" +msgstr[1] "maanden" -#: ../../include/permissions.php:50 -msgid "Can write to my file storage and photos" -msgstr "Kan foto's en andere bestanden aan mijn bestandsopslag toevoegen" +#: ../../include/datetime.php:327 +msgctxt "relative_date" +msgid "week" +msgid_plural "weeks" +msgstr[0] "week" +msgstr[1] "weken" -#: ../../include/permissions.php:51 -msgid "Can edit my webpages" -msgstr "Kan mijn pagina's bewerken" +#: ../../include/datetime.php:330 +msgctxt "relative_date" +msgid "day" +msgid_plural "days" +msgstr[0] "dag" +msgstr[1] "dagen" -#: ../../include/permissions.php:53 -msgid "Somewhat advanced - very useful in open communities" -msgstr "Enigszins geavanceerd (erg nuttig voor kanalen van forums/groepen)" +#: ../../include/datetime.php:333 +msgctxt "relative_date" +msgid "hour" +msgid_plural "hours" +msgstr[0] "uur" +msgstr[1] "uren" -#: ../../include/permissions.php:55 -msgid "Can administer my channel resources" -msgstr "Kan mijn kanaal beheren" +#: ../../include/datetime.php:336 +msgctxt "relative_date" +msgid "minute" +msgid_plural "minutes" +msgstr[0] "minuut" +msgstr[1] "minuten" -#: ../../include/permissions.php:55 +#: ../../include/datetime.php:339 +msgctxt "relative_date" +msgid "second" +msgid_plural "seconds" +msgstr[0] "seconde" +msgstr[1] "seconden" + +#: ../../include/datetime.php:576 +#, php-format +msgid "%1$s's birthday" +msgstr "Verjaardag van %1$s" + +#: ../../include/datetime.php:577 +#, php-format +msgid "Happy Birthday %1$s" +msgstr "Gefeliciteerd met je verjaardag %1$s" + +#: ../../include/account.php:35 +msgid "Not a valid email address" +msgstr "Geen geldig e-mailadres" + +#: ../../include/account.php:37 +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:43 +msgid "Your email address is already registered at this site." +msgstr "Jouw e-mailadres is al op deze hub geregistreerd." + +#: ../../include/account.php:75 +msgid "An invitation is required." +msgstr "Een uitnodiging is vereist" + +#: ../../include/account.php:79 +msgid "Invitation could not be verified." +msgstr "Uitnodiging kon niet geverifieerd worden" + +#: ../../include/account.php:130 +msgid "Please enter the required information." +msgstr "Vul de vereiste informatie in." + +#: ../../include/account.php:198 +msgid "Failed to store account information." +msgstr "Account-informatie kon niet opgeslagen worden." + +#: ../../include/account.php:263 +#, php-format +msgid "Registration confirmation for %s" +msgstr "Registratiebevestiging voor %s" + +#: ../../include/account.php:330 +#, php-format +msgid "Registration request at %s" +msgstr "Registratiebevestiging voor %s" + +#: ../../include/account.php:352 +msgid "your registration password" +msgstr "jouw registratiewachtwoord" + +#: ../../include/account.php:358 ../../include/account.php:420 +#, php-format +msgid "Registration details for %s" +msgstr "Registratiegegevens voor %s" + +#: ../../include/account.php:431 +msgid "Account approved." +msgstr "Account goedgekeurd" + +#: ../../include/account.php:471 +#, php-format +msgid "Registration revoked for %s" +msgstr "Registratie ingetrokken voor %s" + +#: ../../include/account.php:756 ../../include/account.php:758 +msgid "Click here to upgrade." +msgstr "Klik hier om te upgraden." + +#: ../../include/account.php:764 +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:769 +msgid "This action is not available under your subscription plan." +msgstr "Deze handeling is niet mogelijk met jouw abonnement." + +#: ../../include/selectors.php:30 +msgid "Frequently" +msgstr "Regelmatig" + +#: ../../include/selectors.php:31 +msgid "Hourly" +msgstr "Elk uur" + +#: ../../include/selectors.php:32 +msgid "Twice daily" +msgstr "Twee keer per dag" + +#: ../../include/selectors.php:33 +msgid "Daily" +msgstr "Dagelijks" + +#: ../../include/selectors.php:34 +msgid "Weekly" +msgstr "Wekelijks" + +#: ../../include/selectors.php:35 +msgid "Monthly" +msgstr "Maandelijks" + +#: ../../include/selectors.php:49 +msgid "Currently Male" +msgstr "Momenteel man" + +#: ../../include/selectors.php:49 +msgid "Currently Female" +msgstr "Momenteel vrouw" + +#: ../../include/selectors.php:49 +msgid "Mostly Male" +msgstr "Voornamelijk man" + +#: ../../include/selectors.php:49 +msgid "Mostly Female" +msgstr "Voornamelijk vrouw" + +#: ../../include/selectors.php:49 +msgid "Transgender" +msgstr "Transgender" + +#: ../../include/selectors.php:49 +msgid "Intersex" +msgstr "Interseksueel" + +#: ../../include/selectors.php:49 +msgid "Transsexual" +msgstr "Transseksueel" + +#: ../../include/selectors.php:49 +msgid "Hermaphrodite" +msgstr "Hermafrodiet" + +#: ../../include/selectors.php:49 +msgid "Neuter" +msgstr "Genderneutraal" + +#: ../../include/selectors.php:49 +msgid "Non-specific" +msgstr "Niet gespecificeerd" + +#: ../../include/selectors.php:49 +msgid "Undecided" +msgstr "Nog niet beslist" + +#: ../../include/selectors.php:85 ../../include/selectors.php:104 +msgid "Males" +msgstr "Mannen" + +#: ../../include/selectors.php:85 ../../include/selectors.php:104 +msgid "Females" +msgstr "Vrouwen" + +#: ../../include/selectors.php:85 +msgid "Gay" +msgstr "Homoseksueel" + +#: ../../include/selectors.php:85 +msgid "Lesbian" +msgstr "Lesbisch" + +#: ../../include/selectors.php:85 +msgid "No Preference" +msgstr "Geen voorkeur" + +#: ../../include/selectors.php:85 +msgid "Bisexual" +msgstr "Biseksueel" + +#: ../../include/selectors.php:85 +msgid "Autosexual" +msgstr "Autoseksueel" + +#: ../../include/selectors.php:85 +msgid "Abstinent" +msgstr "Seksuele onthouding" + +#: ../../include/selectors.php:85 +msgid "Virgin" +msgstr "Maagd" + +#: ../../include/selectors.php:85 +msgid "Deviant" +msgstr "Afwijkend" + +#: ../../include/selectors.php:85 +msgid "Fetish" +msgstr "Fetisj" + +#: ../../include/selectors.php:85 +msgid "Oodles" +msgstr "Veel" + +#: ../../include/selectors.php:85 +msgid "Nonsexual" +msgstr "Aseksueel" + +#: ../../include/selectors.php:123 ../../include/selectors.php:140 +msgid "Single" +msgstr "Alleen" + +#: ../../include/selectors.php:123 +msgid "Lonely" +msgstr "Eenzaam" + +#: ../../include/selectors.php:123 +msgid "Available" +msgstr "Beschikbaar" + +#: ../../include/selectors.php:123 +msgid "Unavailable" +msgstr "Niet beschikbaar" + +#: ../../include/selectors.php:123 +msgid "Has crush" +msgstr "Heeft een oogje op iemand" + +#: ../../include/selectors.php:123 +msgid "Infatuated" +msgstr "Smoorverliefd" + +#: ../../include/selectors.php:123 ../../include/selectors.php:140 +msgid "Dating" +msgstr "Aan het daten" + +#: ../../include/selectors.php:123 +msgid "Unfaithful" +msgstr "Ontrouw" + +#: ../../include/selectors.php:123 +msgid "Sex Addict" +msgstr "Seksverslaafd" + +#: ../../include/selectors.php:123 +msgid "Friends/Benefits" +msgstr "Vriendschap plus" + +#: ../../include/selectors.php:123 +msgid "Casual" +msgstr "Ongebonden/vluchtig" + +#: ../../include/selectors.php:123 +msgid "Engaged" +msgstr "Verloofd" + +#: ../../include/selectors.php:123 ../../include/selectors.php:140 +msgid "Married" +msgstr "Getrouwd" + +#: ../../include/selectors.php:123 +msgid "Imaginarily married" +msgstr "Denkbeeldig getrouwd" + +#: ../../include/selectors.php:123 +msgid "Partners" +msgstr "Partners" + +#: ../../include/selectors.php:123 ../../include/selectors.php:140 +msgid "Cohabiting" +msgstr "Samenwonend" + +#: ../../include/selectors.php:123 +msgid "Common law" +msgstr "Common-law-huwelijk" + +#: ../../include/selectors.php:123 +msgid "Happy" +msgstr "Gelukkig" + +#: ../../include/selectors.php:123 +msgid "Not looking" +msgstr "Niet op zoek" + +#: ../../include/selectors.php:123 +msgid "Swinger" +msgstr "Swinger" + +#: ../../include/selectors.php:123 +msgid "Betrayed" +msgstr "Verraden" + +#: ../../include/selectors.php:123 ../../include/selectors.php:140 +msgid "Separated" +msgstr "Uit elkaar" + +#: ../../include/selectors.php:123 +msgid "Unstable" +msgstr "Onstabiel" + +#: ../../include/selectors.php:123 ../../include/selectors.php:140 +msgid "Divorced" +msgstr "Gescheiden" + +#: ../../include/selectors.php:123 +msgid "Imaginarily divorced" +msgstr "Denkbeeldig gescheiden" + +#: ../../include/selectors.php:123 ../../include/selectors.php:140 +msgid "Widowed" +msgstr "Weduwnaar/weduwe" + +#: ../../include/selectors.php:123 +msgid "Uncertain" +msgstr "Onzeker" + +#: ../../include/selectors.php:123 ../../include/selectors.php:140 +msgid "It's complicated" +msgstr "Het is ingewikkeld" + +#: ../../include/selectors.php:123 +msgid "Don't care" +msgstr "Maakt mij niks uit" + +#: ../../include/selectors.php:123 +msgid "Ask me" +msgstr "Vraag het me" + +#: ../../include/channel.php:33 +msgid "Unable to obtain identity information from database" +msgstr "Niet in staat om identiteitsinformatie uit de database te verkrijgen" + +#: ../../include/channel.php:67 +msgid "Empty name" +msgstr "Ontbrekende naam" + +#: ../../include/channel.php:70 +msgid "Name too long" +msgstr "Naam te lang" + +#: ../../include/channel.php:181 +msgid "No account identifier" +msgstr "Geen account-identificator" + +#: ../../include/channel.php:193 +msgid "Nickname is required." +msgstr "Bijnaam is verplicht" + +#: ../../include/channel.php:207 +msgid "Reserved nickname. Please choose another." +msgstr "Deze naam is gereserveerd. Kies een andere." + +#: ../../include/channel.php:212 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." +"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/photos.php:114 +#: ../../include/channel.php:272 +msgid "Unable to retrieve created identity" +msgstr "Niet in staat om aangemaakte identiteit te vinden" + +#: ../../include/channel.php:341 +msgid "Default Profile" +msgstr "Standaardprofiel" + +#: ../../include/channel.php:962 +msgid "Create New Profile" +msgstr "Nieuw profiel aanmaken" + +#: ../../include/channel.php:982 +msgid "Visible to everybody" +msgstr "Voor iedereen zichtbaar" + +#: ../../include/channel.php:1055 ../../include/channel.php:1174 +msgid "Gender:" +msgstr "Geslacht:" + +#: ../../include/channel.php:1057 ../../include/channel.php:1229 +msgid "Homepage:" +msgstr "Homepagina:" + +#: ../../include/channel.php:1058 +msgid "Online Now" +msgstr "Nu online" + +#: ../../include/channel.php:1179 +msgid "Like this channel" +msgstr "Vind dit kanaal leuk" + +#: ../../include/channel.php:1203 +msgid "j F, Y" +msgstr "F j Y" + +#: ../../include/channel.php:1204 +msgid "j F" +msgstr "F j" + +#: ../../include/channel.php:1211 +msgid "Birthday:" +msgstr "Geboortedatum:" + +#: ../../include/channel.php:1224 #, 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 "for %1$d %2$s" +msgstr "voor %1$d %2$s" -#: ../../include/photos.php:121 -msgid "Image file is empty." -msgstr "Afbeeldingsbestand is leeg" +#: ../../include/channel.php:1227 +msgid "Sexual Preference:" +msgstr "Seksuele voorkeur:" -#: ../../include/photos.php:259 -msgid "Photo storage failed." -msgstr "Foto kan niet worden opgeslagen" +#: ../../include/channel.php:1233 +msgid "Tags:" +msgstr "Tags:" -#: ../../include/photos.php:299 -msgid "a new photo" -msgstr "een nieuwe foto" +#: ../../include/channel.php:1235 +msgid "Political Views:" +msgstr "Politieke overtuigingen:" -#: ../../include/photos.php:303 +#: ../../include/channel.php:1237 +msgid "Religion:" +msgstr "Religie:" + +#: ../../include/channel.php:1241 +msgid "Hobbies/Interests:" +msgstr "Hobby's/interesses:" + +#: ../../include/channel.php:1243 +msgid "Likes:" +msgstr "Houdt van:" + +#: ../../include/channel.php:1245 +msgid "Dislikes:" +msgstr "Houdt niet van:" + +#: ../../include/channel.php:1247 +msgid "Contact information and Social Networks:" +msgstr "Contactinformatie en sociale netwerken:" + +#: ../../include/channel.php:1249 +msgid "My other channels:" +msgstr "Mijn andere kanalen" + +#: ../../include/channel.php:1251 +msgid "Musical interests:" +msgstr "Muzikale interesses:" + +#: ../../include/channel.php:1253 +msgid "Books, literature:" +msgstr "Boeken, literatuur:" + +#: ../../include/channel.php:1255 +msgid "Television:" +msgstr "Televisie:" + +#: ../../include/channel.php:1257 +msgid "Film/dance/culture/entertainment:" +msgstr "Films/dansen/cultuur/vermaak:" + +#: ../../include/channel.php:1259 +msgid "Love/Romance:" +msgstr "Liefde/romantiek:" + +#: ../../include/channel.php:1261 +msgid "Work/employment:" +msgstr "Werk/beroep:" + +#: ../../include/channel.php:1263 +msgid "School/education:" +msgstr "School/opleiding:" + +#: ../../include/channel.php:1284 +msgid "Like this thing" +msgstr "Vind dit ding leuk" + +#: ../../include/connections.php:95 +msgid "New window" +msgstr "Nieuw venster" + +#: ../../include/connections.php:96 +msgid "Open the selected location in a different window or browser tab" +msgstr "Open de geselecteerde locatie in een ander venster of tab" + +#: ../../include/connections.php:214 #, php-format -msgctxt "photo_upload" -msgid "%1$s posted %2$s to %3$s" -msgstr "%1$s plaatste %2$s op %3$s" +msgid "User '%s' deleted" +msgstr "Account '%s' verwijderd" -#: ../../include/photos.php:506 ../../include/conversation.php:1675 -msgid "Photo Albums" -msgstr "Fotoalbums" +#: ../../include/dir_fns.php:141 +msgid "Directory Options" +msgstr "Opties kanalengids" -#: ../../include/photos.php:510 -msgid "Upload New Photos" -msgstr "Nieuwe foto's uploaden" +#: ../../include/dir_fns.php:143 +msgid "Safe Mode" +msgstr "Veilig zoeken" + +#: ../../include/dir_fns.php:144 +msgid "Public Forums Only" +msgstr "Alleen openbare forums" + +#: ../../include/dir_fns.php:145 +msgid "This Website Only" +msgstr "Alleen deze hub" + +#: ../../include/nav.php:85 ../../include/nav.php:118 ../../boot.php:1719 +msgid "Logout" +msgstr "Uitloggen" + +#: ../../include/nav.php:85 ../../include/nav.php:118 +msgid "End this session" +msgstr "Beëindig deze sessie" + +#: ../../include/nav.php:88 +msgid "Your posts and conversations" +msgstr "Jouw kanaal" + +#: ../../include/nav.php:89 +msgid "Your profile page" +msgstr "Jouw profielpagina" + +#: ../../include/nav.php:91 +msgid "Manage/Edit profiles" +msgstr "Beheer/wijzig profielen" + +#: ../../include/nav.php:93 +msgid "Edit your profile" +msgstr "Jouw profiel bewerken" + +#: ../../include/nav.php:95 +msgid "Your photos" +msgstr "Jouw foto's" + +#: ../../include/nav.php:96 +msgid "Your files" +msgstr "Jouw bestanden" + +#: ../../include/nav.php:99 +msgid "Your chatrooms" +msgstr "Jouw chatkanalen" + +#: ../../include/nav.php:105 ../../include/conversation.php:1717 +msgid "Bookmarks" +msgstr "Bladwijzers" + +#: ../../include/nav.php:105 +msgid "Your bookmarks" +msgstr "Jouw bladwijzers" + +#: ../../include/nav.php:109 +msgid "Your webpages" +msgstr "Jouw webpagina's" + +#: ../../include/nav.php:111 +msgid "Your wikis" +msgstr "Jouw wiki's" + +#: ../../include/nav.php:115 +msgid "Sign in" +msgstr "Inloggen" + +#: ../../include/nav.php:131 +msgid "Remote authentication" +msgstr "Authenticatie op afstand" + +#: ../../include/nav.php:131 +msgid "Click to authenticate to your home hub" +msgstr "Authenticeer jezelf via (bijvoorbeeld) jouw hub" + +#: ../../include/nav.php:143 +msgid "Get me home" +msgstr "Terug naar mijn hub" + +#: ../../include/nav.php:145 +msgid "Log me out of this site" +msgstr "Uitloggen op deze hub" + +#: ../../include/nav.php:150 +msgid "Create an account" +msgstr "Maak een account aan" + +#: ../../include/nav.php:162 +msgid "Help and documentation" +msgstr "Hulp en documentatie" + +#: ../../include/nav.php:166 +msgid "Applications, utilities, links, games" +msgstr "Apps" + +#: ../../include/nav.php:168 +msgid "Search site @name, #tag, ?docs, content" +msgstr "Zoek een @kanaal, doorzoek inhoud hub met tekst en #tags, of doorzoek ?documentatie " + +#: ../../include/nav.php:170 +msgid "Channel Directory" +msgstr "Kanalengids" + +#: ../../include/nav.php:182 +msgid "Your grid" +msgstr "Jouw grid" + +#: ../../include/nav.php:183 +msgid "Mark all grid notifications seen" +msgstr "Markeer alle gridnotificaties als bekeken" + +#: ../../include/nav.php:185 +msgid "Channel home" +msgstr "Jouw kanaal" + +#: ../../include/nav.php:186 +msgid "Mark all channel notifications seen" +msgstr "Alle kanaalnotificaties als gelezen markeren" + +#: ../../include/nav.php:192 +msgid "Notices" +msgstr "Notificaties" + +#: ../../include/nav.php:192 +msgid "Notifications" +msgstr "Notificaties" + +#: ../../include/nav.php:193 +msgid "See all notifications" +msgstr "Alle notificaties weergeven" + +#: ../../include/nav.php:196 +msgid "Private mail" +msgstr "Privéberichten" + +#: ../../include/nav.php:197 +msgid "See all private messages" +msgstr "Alle privéberichten weergeven" + +#: ../../include/nav.php:198 +msgid "Mark all private messages seen" +msgstr "Markeer alle privéberichten als bekeken" + +#: ../../include/nav.php:199 ../../include/widgets.php:700 +msgid "Inbox" +msgstr "Postvak IN" + +#: ../../include/nav.php:200 ../../include/widgets.php:705 +msgid "Outbox" +msgstr "Postvak UIT" + +#: ../../include/nav.php:201 ../../include/widgets.php:710 +msgid "New Message" +msgstr "Nieuw bericht" + +#: ../../include/nav.php:204 +msgid "Event Calendar" +msgstr "Agenda" + +#: ../../include/nav.php:205 +msgid "See all events" +msgstr "Alle gebeurtenissen weergeven" + +#: ../../include/nav.php:206 +msgid "Mark all events seen" +msgstr "Markeer alle gebeurtenissen als bekeken" + +#: ../../include/nav.php:209 +msgid "Manage Your Channels" +msgstr "Beheer je kanalen" + +#: ../../include/nav.php:211 +msgid "Account/Channel Settings" +msgstr "Account-/kanaal-instellingen" + +#: ../../include/nav.php:219 ../../include/widgets.php:1595 +msgid "Admin" +msgstr "Beheer" + +#: ../../include/nav.php:219 +msgid "Site Setup and Configuration" +msgstr "Hub instellen en beheren" + +#: ../../include/nav.php:250 ../../include/conversation.php:835 +msgid "Loading..." +msgstr "Aan het laden..." + +#: ../../include/nav.php:255 +msgid "@name, #tag, ?doc, content" +msgstr "@kanaal, #tag, inhoud, ?hulp" + +#: ../../include/nav.php:256 +msgid "Please wait..." +msgstr "Wachten aub..." #: ../../include/features.php:58 msgid "General Features" @@ -7568,1183 +11515,140 @@ msgid "" "channel" msgstr "Stelt je in staat om beperkingen en voorwaarden in te stellen voor jouw kanaal" -#: ../../include/help.php:25 -msgid "Help:" -msgstr "Hulp:" - -#: ../../include/security.php:109 -msgid "guest:" -msgstr "gast:" - -#: ../../include/security.php:527 -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:450 -msgid "prev" -msgstr "vorige" - -#: ../../include/text.php:452 -msgid "first" -msgstr "eerste" - -#: ../../include/text.php:481 -msgid "last" -msgstr "laatste" - -#: ../../include/text.php:484 -msgid "next" -msgstr "volgende" - -#: ../../include/text.php:494 -msgid "older" -msgstr "ouder" - -#: ../../include/text.php:496 -msgid "newer" -msgstr "nieuwer" - -#: ../../include/text.php:889 -msgid "No connections" -msgstr "Geen connecties" - -#: ../../include/text.php:914 -#, php-format -msgid "%1$s is now connected with %2$s" -msgstr "%1$s is nu met %2$s verbonden" - -#: ../../include/text.php:1059 ../../include/text.php:1064 -msgid "poke" -msgstr "aanstoten" - -#: ../../include/text.php:1059 ../../include/text.php:1064 -#: ../../include/conversation.php:243 -msgid "poked" -msgstr "aangestoten" - -#: ../../include/text.php:1065 -msgid "ping" -msgstr "ping" - -#: ../../include/text.php:1065 -msgid "pinged" -msgstr "gepingd" - -#: ../../include/text.php:1066 -msgid "prod" -msgstr "por" - -#: ../../include/text.php:1066 -msgid "prodded" -msgstr "gepord" - -#: ../../include/text.php:1067 -msgid "slap" -msgstr "slaan" - -#: ../../include/text.php:1067 -msgid "slapped" -msgstr "sloeg" - -#: ../../include/text.php:1068 -msgid "finger" -msgstr "finger" - -#: ../../include/text.php:1068 -msgid "fingered" -msgstr "gefingerd" - -#: ../../include/text.php:1069 -msgid "rebuff" -msgstr "afpoeieren" - -#: ../../include/text.php:1069 -msgid "rebuffed" -msgstr "afgepoeierd" - -#: ../../include/text.php:1081 -msgid "happy" -msgstr "gelukkig" - -#: ../../include/text.php:1082 -msgid "sad" -msgstr "bedroefd" - -#: ../../include/text.php:1083 -msgid "mellow" -msgstr "mellow" - -#: ../../include/text.php:1084 -msgid "tired" -msgstr "moe" - -#: ../../include/text.php:1085 -msgid "perky" -msgstr "parmantig" - -#: ../../include/text.php:1086 -msgid "angry" -msgstr "boos" - -#: ../../include/text.php:1087 -msgid "stupefied" -msgstr "verbijsterd" - -#: ../../include/text.php:1088 -msgid "puzzled" -msgstr "verward" - -#: ../../include/text.php:1089 -msgid "interested" -msgstr "geïnteresseerd" - -#: ../../include/text.php:1090 -msgid "bitter" -msgstr "verbitterd" - -#: ../../include/text.php:1091 -msgid "cheerful" -msgstr "vrolijk" - -#: ../../include/text.php:1092 -msgid "alive" -msgstr "levendig" - -#: ../../include/text.php:1093 -msgid "annoyed" -msgstr "geërgerd" - -#: ../../include/text.php:1094 -msgid "anxious" -msgstr "bezorgd" - -#: ../../include/text.php:1095 -msgid "cranky" -msgstr "humeurig" - -#: ../../include/text.php:1096 -msgid "disturbed" -msgstr "verontrust" - -#: ../../include/text.php:1097 -msgid "frustrated" -msgstr "gefrustreerd " - -#: ../../include/text.php:1098 -msgid "depressed" -msgstr "gedeprimeerd" - -#: ../../include/text.php:1099 -msgid "motivated" -msgstr "gemotiveerd" - -#: ../../include/text.php:1100 -msgid "relaxed" -msgstr "ontspannen" - -#: ../../include/text.php:1101 -msgid "surprised" -msgstr "verrast" - -#: ../../include/text.php:1285 ../../include/js_strings.php:70 -msgid "Monday" -msgstr "maandag" - -#: ../../include/text.php:1285 ../../include/js_strings.php:71 -msgid "Tuesday" -msgstr "dinsdag" - -#: ../../include/text.php:1285 ../../include/js_strings.php:72 -msgid "Wednesday" -msgstr "woensdag" - -#: ../../include/text.php:1285 ../../include/js_strings.php:73 -msgid "Thursday" -msgstr "donderdag" - -#: ../../include/text.php:1285 ../../include/js_strings.php:74 -msgid "Friday" -msgstr "vrijdag" - -#: ../../include/text.php:1285 ../../include/js_strings.php:75 -msgid "Saturday" -msgstr "zaterdag" - -#: ../../include/text.php:1285 ../../include/js_strings.php:69 -msgid "Sunday" -msgstr "zondag" - -#: ../../include/text.php:1289 ../../include/js_strings.php:45 -msgid "January" -msgstr "januari" - -#: ../../include/text.php:1289 ../../include/js_strings.php:46 -msgid "February" -msgstr "februari" - -#: ../../include/text.php:1289 ../../include/js_strings.php:47 -msgid "March" -msgstr "maart" - -#: ../../include/text.php:1289 ../../include/js_strings.php:48 -msgid "April" -msgstr "april" - -#: ../../include/text.php:1289 -msgid "May" -msgstr "mei" - -#: ../../include/text.php:1289 ../../include/js_strings.php:50 -msgid "June" -msgstr "juni" - -#: ../../include/text.php:1289 ../../include/js_strings.php:51 -msgid "July" -msgstr "juli" - -#: ../../include/text.php:1289 ../../include/js_strings.php:52 -msgid "August" -msgstr "augustus" - -#: ../../include/text.php:1289 ../../include/js_strings.php:53 -msgid "September" -msgstr "september" - -#: ../../include/text.php:1289 ../../include/js_strings.php:54 -msgid "October" -msgstr "oktober" - -#: ../../include/text.php:1289 ../../include/js_strings.php:55 -msgid "November" -msgstr "november" - -#: ../../include/text.php:1289 ../../include/js_strings.php:56 -msgid "December" -msgstr "december" - -#: ../../include/text.php:1366 ../../include/text.php:1370 -msgid "Unknown Attachment" -msgstr "Onbekende bijlage" - -#: ../../include/text.php:1372 -msgid "unknown" -msgstr "onbekend" - -#: ../../include/text.php:1408 -msgid "remove category" -msgstr "categorie verwijderen" - -#: ../../include/text.php:1485 -msgid "remove from file" -msgstr "uit map verwijderen" - -#: ../../include/text.php:1784 ../../include/text.php:1855 -msgid "default" -msgstr "standaard" - -#: ../../include/text.php:1792 -msgid "Page layout" -msgstr "Pagina-lay-out" - -#: ../../include/text.php:1792 -msgid "You can create your own with the layouts tool" -msgstr "Je kan jouw eigen lay-out ontwerpen onder lay-outs" - -#: ../../include/text.php:1834 -msgid "Page content type" -msgstr "Opmaaktype pagina" - -#: ../../include/text.php:1867 -msgid "Select an alternate language" -msgstr "Kies een andere taal" - -#: ../../include/text.php:2004 -msgid "activity" -msgstr "activiteit" - -#: ../../include/text.php:2305 -msgid "Design Tools" -msgstr "Ontwerp-hulpmiddelen" - -#: ../../include/text.php:2311 -msgid "Pages" -msgstr "Pagina's" - -#: ../../include/text.php:2333 -msgid "Import website..." -msgstr "Website importeren..." - -#: ../../include/text.php:2334 -msgid "Select folder to import" -msgstr "Kies een map om te importeren" - -#: ../../include/text.php:2335 -msgid "Import from a zipped folder:" -msgstr "Vanuit een zipbestand importeren:" - -#: ../../include/text.php:2336 -msgid "Import from cloud files:" -msgstr "Vanuit de cloud importeren:" - -#: ../../include/text.php:2337 -msgid "/cloud/channel/path/to/folder" -msgstr "/cloud/channel/maplocatie" - -#: ../../include/text.php:2338 -msgid "Enter path to website files" -msgstr "Voer de locatie in van de websitebestanden" - -#: ../../include/text.php:2339 -msgid "Select folder" -msgstr "Kies een map" - -#: ../../include/text.php:2340 -msgid "Export website..." -msgstr "Website exporteren..." - -#: ../../include/text.php:2341 -msgid "Export to a zip file" -msgstr "Naar een zipbestand exporteren" - -#: ../../include/text.php:2342 -msgid "website.zip" -msgstr "website.zip" - -#: ../../include/text.php:2343 -msgid "Enter a name for the zip file." -msgstr "Vul een naam in voor het zipbestand." - -#: ../../include/text.php:2344 -msgid "Export to cloud files" -msgstr "Naar de cloud exporteren" - -#: ../../include/text.php:2345 -msgid "/path/to/export/folder" -msgstr "/locatie/van/export/map" - -#: ../../include/text.php:2346 -msgid "Enter a path to a cloud files destination." -msgstr "Voer de locatie in van de cloudbestemming" - -#: ../../include/text.php:2347 -msgid "Specify folder" -msgstr "Selecteer een map" - -#: ../../include/zot.php:700 -msgid "Invalid data packet" -msgstr "Datapakket ongeldig" - -#: ../../include/zot.php:716 -msgid "Unable to verify channel signature" -msgstr "Kanaalkenmerk kon niet worden geverifieerd. " - -#: ../../include/zot.php:2329 -#, php-format -msgid "Unable to verify site signature for %s" -msgstr "Hubkenmerk voor %s kon niet worden geverifieerd" - -#: ../../include/zot.php:3713 -msgid "invalid target signature" -msgstr "ongeldig doelkenmerk" - -#: ../../include/account.php:35 -msgid "Not a valid email address" -msgstr "Geen geldig e-mailadres" - -#: ../../include/account.php:37 -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:43 -msgid "Your email address is already registered at this site." -msgstr "Jouw e-mailadres is al op deze hub geregistreerd." - -#: ../../include/account.php:75 -msgid "An invitation is required." -msgstr "Een uitnodiging is vereist" - -#: ../../include/account.php:79 -msgid "Invitation could not be verified." -msgstr "Uitnodiging kon niet geverifieerd worden" - -#: ../../include/account.php:130 -msgid "Please enter the required information." -msgstr "Vul de vereiste informatie in." - -#: ../../include/account.php:198 -msgid "Failed to store account information." -msgstr "Account-informatie kon niet opgeslagen worden." - -#: ../../include/account.php:258 -#, php-format -msgid "Registration confirmation for %s" -msgstr "Registratiebevestiging voor %s" - -#: ../../include/account.php:324 -#, php-format -msgid "Registration request at %s" -msgstr "Registratiebevestiging voor %s" - -#: ../../include/account.php:326 ../../include/account.php:353 -#: ../../include/account.php:413 ../../include/network.php:1937 -msgid "Administrator" -msgstr "Beheerder" - -#: ../../include/account.php:348 -msgid "your registration password" -msgstr "jouw registratiewachtwoord" - -#: ../../include/account.php:351 ../../include/account.php:411 -#, php-format -msgid "Registration details for %s" -msgstr "Registratiegegevens voor %s" - -#: ../../include/account.php:423 -msgid "Account approved." -msgstr "Account goedgekeurd" - -#: ../../include/account.php:463 -#, php-format -msgid "Registration revoked for %s" -msgstr "Registratie ingetrokken voor %s" - -#: ../../include/account.php:748 ../../include/account.php:750 -msgid "Click here to upgrade." -msgstr "Klik hier om te upgraden." - -#: ../../include/account.php:756 -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:761 -msgid "This action is not available under your subscription plan." -msgstr "Deze handeling is niet mogelijk met jouw abonnement." - -#: ../../include/message.php:20 -msgid "No recipient provided." -msgstr "Geen ontvanger opgegeven." - -#: ../../include/message.php:25 -msgid "[no subject]" -msgstr "[geen onderwerp]" - -#: ../../include/message.php:45 -msgid "Unable to determine sender." -msgstr "Afzender kan niet bepaald worden." - -#: ../../include/message.php:222 -msgid "Stored post could not be verified." -msgstr "Opgeslagen bericht kon niet worden geverifieerd." - -#: ../../include/selectors.php:30 -msgid "Frequently" -msgstr "Regelmatig" - -#: ../../include/selectors.php:31 -msgid "Hourly" -msgstr "Elk uur" - -#: ../../include/selectors.php:32 -msgid "Twice daily" -msgstr "Twee keer per dag" - -#: ../../include/selectors.php:33 -msgid "Daily" -msgstr "Dagelijks" - -#: ../../include/selectors.php:34 -msgid "Weekly" -msgstr "Wekelijks" - -#: ../../include/selectors.php:35 -msgid "Monthly" -msgstr "Maandelijks" - -#: ../../include/selectors.php:49 ../../include/selectors.php:66 -msgid "Male" -msgstr "Man" - -#: ../../include/selectors.php:49 ../../include/selectors.php:66 -msgid "Female" -msgstr "Vrouw" - -#: ../../include/selectors.php:49 -msgid "Currently Male" -msgstr "Momenteel man" - -#: ../../include/selectors.php:49 -msgid "Currently Female" -msgstr "Momenteel vrouw" - -#: ../../include/selectors.php:49 -msgid "Mostly Male" -msgstr "Voornamelijk man" - -#: ../../include/selectors.php:49 -msgid "Mostly Female" -msgstr "Voornamelijk vrouw" - -#: ../../include/selectors.php:49 -msgid "Transgender" -msgstr "Transgender" - -#: ../../include/selectors.php:49 -msgid "Intersex" -msgstr "Interseksueel" - -#: ../../include/selectors.php:49 -msgid "Transsexual" -msgstr "Transseksueel" - -#: ../../include/selectors.php:49 -msgid "Hermaphrodite" -msgstr "Hermafrodiet" - -#: ../../include/selectors.php:49 -msgid "Neuter" -msgstr "Genderneutraal" - -#: ../../include/selectors.php:49 -msgid "Non-specific" -msgstr "Niet gespecificeerd" - -#: ../../include/selectors.php:49 -msgid "Undecided" -msgstr "Nog niet beslist" - -#: ../../include/selectors.php:85 ../../include/selectors.php:104 -msgid "Males" -msgstr "Mannen" - -#: ../../include/selectors.php:85 ../../include/selectors.php:104 -msgid "Females" -msgstr "Vrouwen" - -#: ../../include/selectors.php:85 -msgid "Gay" -msgstr "Homoseksueel" - -#: ../../include/selectors.php:85 -msgid "Lesbian" -msgstr "Lesbisch" - -#: ../../include/selectors.php:85 -msgid "No Preference" -msgstr "Geen voorkeur" - -#: ../../include/selectors.php:85 -msgid "Bisexual" -msgstr "Biseksueel" - -#: ../../include/selectors.php:85 -msgid "Autosexual" -msgstr "Autoseksueel" - -#: ../../include/selectors.php:85 -msgid "Abstinent" -msgstr "Seksuele onthouding" - -#: ../../include/selectors.php:85 -msgid "Virgin" -msgstr "Maagd" - -#: ../../include/selectors.php:85 -msgid "Deviant" -msgstr "Afwijkend" - -#: ../../include/selectors.php:85 -msgid "Fetish" -msgstr "Fetisj" - -#: ../../include/selectors.php:85 -msgid "Oodles" -msgstr "Veel" - -#: ../../include/selectors.php:85 -msgid "Nonsexual" -msgstr "Aseksueel" - -#: ../../include/selectors.php:123 ../../include/selectors.php:140 -msgid "Single" -msgstr "Alleen" - -#: ../../include/selectors.php:123 -msgid "Lonely" -msgstr "Eenzaam" - -#: ../../include/selectors.php:123 -msgid "Available" -msgstr "Beschikbaar" - -#: ../../include/selectors.php:123 -msgid "Unavailable" -msgstr "Niet beschikbaar" - -#: ../../include/selectors.php:123 -msgid "Has crush" -msgstr "Heeft een oogje op iemand" - -#: ../../include/selectors.php:123 -msgid "Infatuated" -msgstr "Smoorverliefd" - -#: ../../include/selectors.php:123 ../../include/selectors.php:140 -msgid "Dating" -msgstr "Aan het daten" - -#: ../../include/selectors.php:123 -msgid "Unfaithful" -msgstr "Ontrouw" - -#: ../../include/selectors.php:123 -msgid "Sex Addict" -msgstr "Seksverslaafd" - -#: ../../include/selectors.php:123 -msgid "Friends/Benefits" -msgstr "Vriendschap plus" - -#: ../../include/selectors.php:123 -msgid "Casual" -msgstr "Ongebonden/vluchtig" - -#: ../../include/selectors.php:123 -msgid "Engaged" -msgstr "Verloofd" - -#: ../../include/selectors.php:123 ../../include/selectors.php:140 -msgid "Married" -msgstr "Getrouwd" - -#: ../../include/selectors.php:123 -msgid "Imaginarily married" -msgstr "Denkbeeldig getrouwd" - -#: ../../include/selectors.php:123 -msgid "Partners" -msgstr "Partners" - -#: ../../include/selectors.php:123 ../../include/selectors.php:140 -msgid "Cohabiting" -msgstr "Samenwonend" - -#: ../../include/selectors.php:123 -msgid "Common law" -msgstr "Common-law-huwelijk" - -#: ../../include/selectors.php:123 -msgid "Happy" -msgstr "Gelukkig" - -#: ../../include/selectors.php:123 -msgid "Not looking" -msgstr "Niet op zoek" - -#: ../../include/selectors.php:123 -msgid "Swinger" -msgstr "Swinger" - -#: ../../include/selectors.php:123 -msgid "Betrayed" -msgstr "Verraden" - -#: ../../include/selectors.php:123 ../../include/selectors.php:140 -msgid "Separated" -msgstr "Uit elkaar" - -#: ../../include/selectors.php:123 -msgid "Unstable" -msgstr "Onstabiel" - -#: ../../include/selectors.php:123 ../../include/selectors.php:140 -msgid "Divorced" -msgstr "Gescheiden" - -#: ../../include/selectors.php:123 -msgid "Imaginarily divorced" -msgstr "Denkbeeldig gescheiden" - -#: ../../include/selectors.php:123 ../../include/selectors.php:140 -msgid "Widowed" -msgstr "Weduwnaar/weduwe" - -#: ../../include/selectors.php:123 -msgid "Uncertain" -msgstr "Onzeker" - -#: ../../include/selectors.php:123 ../../include/selectors.php:140 -msgid "It's complicated" -msgstr "Het is ingewikkeld" - -#: ../../include/selectors.php:123 -msgid "Don't care" -msgstr "Maakt mij niks uit" - -#: ../../include/selectors.php:123 -msgid "Ask me" -msgstr "Vraag het me" - -#: ../../include/channel.php:33 -msgid "Unable to obtain identity information from database" -msgstr "Niet in staat om identiteitsinformatie uit de database te verkrijgen" - -#: ../../include/channel.php:67 -msgid "Empty name" -msgstr "Ontbrekende naam" - -#: ../../include/channel.php:70 -msgid "Name too long" -msgstr "Naam te lang" - -#: ../../include/channel.php:181 -msgid "No account identifier" -msgstr "Geen account-identificator" - -#: ../../include/channel.php:193 -msgid "Nickname is required." -msgstr "Bijnaam is verplicht" - -#: ../../include/channel.php:207 -msgid "Reserved nickname. Please choose another." -msgstr "Deze naam is gereserveerd. Kies een andere." - -#: ../../include/channel.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/channel.php:272 -msgid "Unable to retrieve created identity" -msgstr "Niet in staat om aangemaakte identiteit te vinden" - -#: ../../include/channel.php:341 -msgid "Default Profile" -msgstr "Standaardprofiel" - -#: ../../include/channel.php:813 -msgid "Requested channel is not available." -msgstr "Opgevraagd kanaal is niet beschikbaar." - -#: ../../include/channel.php:960 -msgid "Create New Profile" -msgstr "Nieuw profiel aanmaken" - -#: ../../include/channel.php:963 ../../include/nav.php:93 -msgid "Edit Profile" -msgstr "Profiel bewerken" - -#: ../../include/channel.php:980 -msgid "Visible to everybody" -msgstr "Voor iedereen zichtbaar" - -#: ../../include/channel.php:1053 ../../include/channel.php:1166 -msgid "Gender:" -msgstr "Geslacht:" - -#: ../../include/channel.php:1054 ../../include/channel.php:1210 -msgid "Status:" -msgstr "Status:" - -#: ../../include/channel.php:1055 ../../include/channel.php:1221 -msgid "Homepage:" -msgstr "Homepagina:" - -#: ../../include/channel.php:1056 -msgid "Online Now" -msgstr "Nu online" - -#: ../../include/channel.php:1171 -msgid "Like this channel" -msgstr "Vind dit kanaal leuk" - -#: ../../include/channel.php:1195 -msgid "j F, Y" -msgstr "F j Y" - -#: ../../include/channel.php:1196 -msgid "j F" -msgstr "F j" - -#: ../../include/channel.php:1203 -msgid "Birthday:" -msgstr "Geboortedatum:" - -#: ../../include/channel.php:1216 -#, php-format -msgid "for %1$d %2$s" -msgstr "voor %1$d %2$s" - -#: ../../include/channel.php:1219 -msgid "Sexual Preference:" -msgstr "Seksuele voorkeur:" - -#: ../../include/channel.php:1225 -msgid "Tags:" -msgstr "Tags:" - -#: ../../include/channel.php:1227 -msgid "Political Views:" -msgstr "Politieke overtuigingen:" - -#: ../../include/channel.php:1229 -msgid "Religion:" -msgstr "Religie:" - -#: ../../include/channel.php:1233 -msgid "Hobbies/Interests:" -msgstr "Hobby's/interesses:" - -#: ../../include/channel.php:1235 -msgid "Likes:" -msgstr "Houdt van:" - -#: ../../include/channel.php:1237 -msgid "Dislikes:" -msgstr "Houdt niet van:" - -#: ../../include/channel.php:1239 -msgid "Contact information and Social Networks:" -msgstr "Contactinformatie en sociale netwerken:" - -#: ../../include/channel.php:1241 -msgid "My other channels:" -msgstr "Mijn andere kanalen" - -#: ../../include/channel.php:1243 -msgid "Musical interests:" -msgstr "Muzikale interesses:" - -#: ../../include/channel.php:1245 -msgid "Books, literature:" -msgstr "Boeken, literatuur:" - -#: ../../include/channel.php:1247 -msgid "Television:" -msgstr "Televisie:" - -#: ../../include/channel.php:1249 -msgid "Film/dance/culture/entertainment:" -msgstr "Films/dansen/cultuur/vermaak:" - -#: ../../include/channel.php:1251 -msgid "Love/Romance:" -msgstr "Liefde/romantiek:" - -#: ../../include/channel.php:1253 -msgid "Work/employment:" -msgstr "Werk/beroep:" - -#: ../../include/channel.php:1255 -msgid "School/education:" -msgstr "School/opleiding:" - -#: ../../include/channel.php:1276 -msgid "Like this thing" -msgstr "Vind dit ding leuk" - -#: ../../include/acl_selectors.php:169 -msgid "Who can see this?" -msgstr "Wie kan dit zien?" - -#: ../../include/acl_selectors.php:170 -msgid "Custom selection" -msgstr "Handmatige selectie" - -#: ../../include/acl_selectors.php:171 -msgid "" -"Select \"Show\" to allow viewing. \"Don't show\" lets you override and limit" -" the scope of \"Show\"." -msgstr "Kies \"Tonen\" om weergave toe te staan. Met \"Niet tonen\" kan je uitzonderingen maken op \"Tonen\"." - -#: ../../include/acl_selectors.php:172 -msgid "Show" -msgstr "Tonen" - -#: ../../include/acl_selectors.php:173 -msgid "Don't show" -msgstr "Niet tonen" - -#: ../../include/acl_selectors.php:207 -#, php-format -msgid "" -"Post permissions %s cannot be changed %s after a post is shared.
        These" -" permissions set who is allowed to view the post." -msgstr "Permissies van berichten %s zijn niet meer te veranderen %s nadat een bericht is gedeeld.
        Met deze permissies bepaal je wie het bericht kan zien." +#: ../../include/bb2diaspora.php:404 +msgid "Attachments:" +msgstr "Bijlagen:" + +#: ../../include/bb2diaspora.php:499 ../../include/event.php:22 +#: ../../include/event.php:69 +msgid "l F d, Y \\@ g:i A" +msgstr "l d F Y \\@ G:i" + +#: ../../include/bb2diaspora.php:501 +msgid "$Projectname event notification:" +msgstr "Notificatie $Projectname-gebeurtenis:" + +#: ../../include/bb2diaspora.php:505 ../../include/event.php:30 +#: ../../include/event.php:73 +msgid "Starts:" +msgstr "Start:" + +#: ../../include/bb2diaspora.php:513 ../../include/event.php:40 +#: ../../include/event.php:77 +msgid "Finishes:" +msgstr "Einde:" #: ../../include/bookmarks.php:35 #, php-format msgid "%1$s's bookmarks" msgstr "Bladwijzers van %1$s" -#: ../../include/group.php:26 -msgid "" -"A deleted group with this name was revived. Existing item permissions " -"may 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 kunnen 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/help.php:31 +msgid "Help:" +msgstr "Hulp:" -#: ../../include/group.php:248 -msgid "Add new connections to this privacy group" -msgstr "Voeg nieuwe connecties aan deze privacygroep toe" +#: ../../include/help.php:63 +msgid "Not Found" +msgstr "Niet gevonden" -#: ../../include/group.php:289 -msgid "edit" -msgstr "bewerken" +#: ../../include/wiki.php:546 ../../include/bbcode.php:552 +#: ../../include/bbcode.php:683 +msgid "Different viewers will see this text differently" +msgstr "Deze tekst wordt per persoon anders weergeven." -#: ../../include/group.php:312 -msgid "Edit group" -msgstr "Privacygroep bewerken" +#: ../../include/zot.php:667 +msgid "Invalid data packet" +msgstr "Datapakket ongeldig" -#: ../../include/group.php:313 -msgid "Add privacy group" -msgstr "Privacygroep toevoegen" +#: ../../include/zot.php:683 +msgid "Unable to verify channel signature" +msgstr "Kanaalkenmerk kon niet worden geverifieerd. " -#: ../../include/group.php:314 -msgid "Channels not in any privacy group" -msgstr "Kanalen die zich in geen enkele privacygroep bevinden" - -#: ../../include/group.php:316 ../../include/widgets.php:284 -msgid "add" -msgstr "toevoegen" - -#: ../../include/connections.php:95 -msgid "New window" -msgstr "Nieuw venster" - -#: ../../include/connections.php:96 -msgid "Open the selected location in a different window or browser tab" -msgstr "Open de geselecteerde locatie in een ander venster of tab" - -#: ../../include/connections.php:214 +#: ../../include/zot.php:2325 #, php-format -msgid "User '%s' deleted" -msgstr "Account '%s' verwijderd" +msgid "Unable to verify site signature for %s" +msgstr "Hubkenmerk voor %s kon niet worden geverifieerd" + +#: ../../include/zot.php:3723 +msgid "invalid target signature" +msgstr "ongeldig doelkenmerk" #: ../../include/page_widgets.php:7 msgid "New Page" msgstr "Nieuwe pagina" -#: ../../include/page_widgets.php:46 -msgid "Title" -msgstr "Titel" +#: ../../include/message.php:32 +msgid "Unable to determine sender." +msgstr "Afzender kan niet bepaald worden." -#: ../../include/wiki.php:525 ../../include/bbcode.php:619 -msgid "Different viewers will see this text differently" -msgstr "Deze tekst wordt per persoon anders weergeven." +#: ../../include/message.php:69 +msgid "No recipient provided." +msgstr "Geen ontvanger opgegeven." -#: ../../include/nav.php:85 ../../include/nav.php:118 ../../boot.php:1738 -msgid "Logout" -msgstr "Uitloggen" +#: ../../include/message.php:74 +msgid "[no subject]" +msgstr "[geen onderwerp]" -#: ../../include/nav.php:85 ../../include/nav.php:118 -msgid "End this session" -msgstr "Beëindig deze sessie" +#: ../../include/message.php:225 +msgid "Stored post could not be verified." +msgstr "Opgeslagen bericht kon niet worden geverifieerd." -#: ../../include/nav.php:88 ../../include/nav.php:149 -msgid "Home" -msgstr "Home" - -#: ../../include/nav.php:88 -msgid "Your posts and conversations" -msgstr "Jouw kanaal" - -#: ../../include/nav.php:89 -msgid "Your profile page" -msgstr "Jouw profielpagina" - -#: ../../include/nav.php:91 -msgid "Manage/Edit profiles" -msgstr "Beheer/wijzig profielen" - -#: ../../include/nav.php:93 -msgid "Edit your profile" -msgstr "Jouw profiel bewerken" - -#: ../../include/nav.php:95 -msgid "Your photos" -msgstr "Jouw foto's" - -#: ../../include/nav.php:96 -msgid "Your files" -msgstr "Jouw bestanden" - -#: ../../include/nav.php:99 -msgid "Your chatrooms" -msgstr "Jouw chatkanalen" - -#: ../../include/nav.php:105 ../../include/conversation.php:1715 -msgid "Bookmarks" -msgstr "Bladwijzers" - -#: ../../include/nav.php:105 -msgid "Your bookmarks" -msgstr "Jouw bladwijzers" - -#: ../../include/nav.php:109 -msgid "Your webpages" -msgstr "Jouw webpagina's" - -#: ../../include/nav.php:111 -msgid "Your wiki" -msgstr "Jouw wiki" - -#: ../../include/nav.php:115 -msgid "Sign in" -msgstr "Inloggen" - -#: ../../include/nav.php:132 +#: ../../include/contact_widgets.php:11 #, php-format -msgid "%s - click to logout" -msgstr "%s - klik om uit te loggen" +msgid "%d invitation available" +msgid_plural "%d invitations available" +msgstr[0] "%d uitnodiging beschikbaar" +msgstr[1] "%d uitnodigingen beschikbaar" -#: ../../include/nav.php:135 -msgid "Remote authentication" -msgstr "Authenticatie op afstand" +#: ../../include/contact_widgets.php:19 +msgid "Find Channels" +msgstr "Kanalen vinden" -#: ../../include/nav.php:135 -msgid "Click to authenticate to your home hub" -msgstr "Authenticeer jezelf via (bijvoorbeeld) jouw hub" +#: ../../include/contact_widgets.php:20 +msgid "Enter name or interest" +msgstr "Vul naam of interesse in" -#: ../../include/nav.php:149 -msgid "Home Page" -msgstr "Homepage" +#: ../../include/contact_widgets.php:21 +msgid "Connect/Follow" +msgstr "Verbinden/volgen" -#: ../../include/nav.php:152 -msgid "Create an account" -msgstr "Maak een account aan" +#: ../../include/contact_widgets.php:22 +msgid "Examples: Robert Morgenstein, Fishing" +msgstr "Voorbeeld: Robert Morgenstein, vissen" -#: ../../include/nav.php:164 -msgid "Help and documentation" -msgstr "Hulp en documentatie" +#: ../../include/contact_widgets.php:26 +msgid "Random Profile" +msgstr "Willekeurig profiel" -#: ../../include/nav.php:168 -msgid "Applications, utilities, links, games" -msgstr "Apps" +#: ../../include/contact_widgets.php:27 +msgid "Invite Friends" +msgstr "Vrienden uitnodigen" -#: ../../include/nav.php:170 -msgid "Search site @name, #tag, ?docs, content" -msgstr "Zoek een @kanaal, doorzoek inhoud hub met tekst en #tags, of doorzoek ?documentatie " +#: ../../include/contact_widgets.php:29 +msgid "Advanced example: name=fred and country=iceland" +msgstr "Geavanceerd voorbeeld (Engels): name=jan en country=nederland" -#: ../../include/nav.php:172 -msgid "Channel Directory" -msgstr "Kanalengids" +#: ../../include/contact_widgets.php:56 ../../include/contact_widgets.php:94 +#: ../../include/widgets.php:349 ../../include/widgets.php:468 +msgid "Everything" +msgstr "Alles" -#: ../../include/nav.php:184 -msgid "Your grid" -msgstr "Jouw grid" +#: ../../include/contact_widgets.php:91 ../../include/taxonomy.php:188 +#: ../../include/taxonomy.php:270 ../../include/widgets.php:46 +#: ../../include/widgets.php:465 +msgid "Categories" +msgstr "Categorieën" -#: ../../include/nav.php:185 -msgid "Mark all grid notifications seen" -msgstr "Markeer alle gridnotificaties als bekeken" +#: ../../include/contact_widgets.php:122 +#, php-format +msgid "%d connection in common" +msgid_plural "%d connections in common" +msgstr[0] "%d gemeenschappelijke connectie" +msgstr[1] "%d gemeenschappelijke connecties" -#: ../../include/nav.php:187 -msgid "Channel home" -msgstr "Jouw kanaal" - -#: ../../include/nav.php:188 -msgid "Mark all channel notifications seen" -msgstr "Alle kanaalnotificaties als gelezen markeren" - -#: ../../include/nav.php:194 -msgid "Notices" -msgstr "Notificaties" - -#: ../../include/nav.php:194 -msgid "Notifications" -msgstr "Notificaties" - -#: ../../include/nav.php:195 -msgid "See all notifications" -msgstr "Alle notificaties weergeven" - -#: ../../include/nav.php:198 -msgid "Private mail" -msgstr "Privéberichten" - -#: ../../include/nav.php:199 -msgid "See all private messages" -msgstr "Alle privéberichten weergeven" - -#: ../../include/nav.php:200 -msgid "Mark all private messages seen" -msgstr "Markeer alle privéberichten als bekeken" - -#: ../../include/nav.php:201 ../../include/widgets.php:700 -msgid "Inbox" -msgstr "Postvak IN" - -#: ../../include/nav.php:202 ../../include/widgets.php:705 -msgid "Outbox" -msgstr "Postvak UIT" - -#: ../../include/nav.php:203 ../../include/widgets.php:710 -msgid "New Message" -msgstr "Nieuw bericht" - -#: ../../include/nav.php:206 -msgid "Event Calendar" -msgstr "Agenda" - -#: ../../include/nav.php:207 -msgid "See all events" -msgstr "Alle gebeurtenissen weergeven" - -#: ../../include/nav.php:208 -msgid "Mark all events seen" -msgstr "Markeer alle gebeurtenissen als bekeken" - -#: ../../include/nav.php:211 -msgid "Manage Your Channels" -msgstr "Beheer je kanalen" - -#: ../../include/nav.php:213 -msgid "Account/Channel Settings" -msgstr "Account-/kanaal-instellingen" - -#: ../../include/nav.php:221 ../../include/widgets.php:1594 -msgid "Admin" -msgstr "Beheer" - -#: ../../include/nav.php:221 -msgid "Site Setup and Configuration" -msgstr "Hub instellen en beheren" - -#: ../../include/nav.php:252 ../../include/conversation.php:853 -msgid "Loading..." -msgstr "Aan het laden..." - -#: ../../include/nav.php:257 -msgid "@name, #tag, ?doc, content" -msgstr "@kanaal, #tag, inhoud, ?hulp" - -#: ../../include/nav.php:258 -msgid "Please wait..." -msgstr "Wachten aub..." - -#: ../../include/bb2diaspora.php:398 -msgid "Attachments:" -msgstr "Bijlagen:" - -#: ../../include/bb2diaspora.php:485 ../../include/event.php:22 -#: ../../include/event.php:69 -msgid "l F d, Y \\@ g:i A" -msgstr "l d F Y \\@ G:i" - -#: ../../include/bb2diaspora.php:487 -msgid "$Projectname event notification:" -msgstr "Notificatie $Projectname-gebeurtenis:" - -#: ../../include/bb2diaspora.php:491 ../../include/event.php:30 -#: ../../include/event.php:73 -msgid "Starts:" -msgstr "Start:" - -#: ../../include/bb2diaspora.php:499 ../../include/event.php:40 -#: ../../include/event.php:77 -msgid "Finishes:" -msgstr "Einde:" +#: ../../include/contact_widgets.php:127 +msgid "show more" +msgstr "meer connecties weergeven" #: ../../include/js_strings.php:5 msgid "Delete this item?" @@ -8886,11 +11790,55 @@ msgstr " " msgid "timeago.numbers" msgstr "timeago.numbers" +#: ../../include/js_strings.php:45 ../../include/text.php:1307 +msgid "January" +msgstr "januari" + +#: ../../include/js_strings.php:46 ../../include/text.php:1307 +msgid "February" +msgstr "februari" + +#: ../../include/js_strings.php:47 ../../include/text.php:1307 +msgid "March" +msgstr "maart" + +#: ../../include/js_strings.php:48 ../../include/text.php:1307 +msgid "April" +msgstr "april" + #: ../../include/js_strings.php:49 msgctxt "long" msgid "May" msgstr "mei" +#: ../../include/js_strings.php:50 ../../include/text.php:1307 +msgid "June" +msgstr "juni" + +#: ../../include/js_strings.php:51 ../../include/text.php:1307 +msgid "July" +msgstr "juli" + +#: ../../include/js_strings.php:52 ../../include/text.php:1307 +msgid "August" +msgstr "augustus" + +#: ../../include/js_strings.php:53 ../../include/text.php:1307 +msgid "September" +msgstr "september" + +#: ../../include/js_strings.php:54 ../../include/text.php:1307 +msgid "October" +msgstr "oktober" + +#: ../../include/js_strings.php:55 ../../include/text.php:1307 +msgid "November" +msgstr "november" + +#: ../../include/js_strings.php:56 ../../include/text.php:1307 +msgid "December" +msgstr "december" + #: ../../include/js_strings.php:57 msgid "Jan" msgstr "jan" @@ -8940,6 +11888,34 @@ msgstr "nov" msgid "Dec" msgstr "dec" +#: ../../include/js_strings.php:69 ../../include/text.php:1303 +msgid "Sunday" +msgstr "zondag" + +#: ../../include/js_strings.php:70 ../../include/text.php:1303 +msgid "Monday" +msgstr "maandag" + +#: ../../include/js_strings.php:71 ../../include/text.php:1303 +msgid "Tuesday" +msgstr "dinsdag" + +#: ../../include/js_strings.php:72 ../../include/text.php:1303 +msgid "Wednesday" +msgstr "woensdag" + +#: ../../include/js_strings.php:73 ../../include/text.php:1303 +msgid "Thursday" +msgstr "donderdag" + +#: ../../include/js_strings.php:74 ../../include/text.php:1303 +msgid "Friday" +msgstr "vrijdag" + +#: ../../include/js_strings.php:75 ../../include/text.php:1303 +msgid "Saturday" +msgstr "zaterdag" + #: ../../include/js_strings.php:76 msgid "Sun" msgstr "zo" @@ -8993,583 +11969,6 @@ msgctxt "calendar" msgid "All day" msgstr "hele dag" -#: ../../include/follow.php:27 -msgid "Channel is blocked on this site." -msgstr "Kanaal is op deze hub geblokkeerd." - -#: ../../include/follow.php:32 -msgid "Channel location missing." -msgstr "Ontbrekende kanaallocatie." - -#: ../../include/follow.php:80 -msgid "Response from remote channel was incomplete." -msgstr "Antwoord van het kanaal op afstand was niet volledig." - -#: ../../include/follow.php:97 -msgid "Channel was deleted and no longer exists." -msgstr "Kanaal is verwijderd en bestaat niet meer." - -#: ../../include/follow.php:147 ../../include/follow.php:183 -msgid "Protocol disabled." -msgstr "Protocol uitgeschakeld." - -#: ../../include/follow.php:171 -msgid "Channel discovery failed." -msgstr "Kanaal ontdekken mislukt." - -#: ../../include/follow.php:210 -msgid "Cannot connect to yourself." -msgstr "Kan niet met jezelf verbinden" - -#: ../../include/bbcode.php:123 ../../include/bbcode.php:881 -#: ../../include/bbcode.php:884 ../../include/bbcode.php:889 -#: ../../include/bbcode.php:892 ../../include/bbcode.php:895 -#: ../../include/bbcode.php:898 ../../include/bbcode.php:903 -#: ../../include/bbcode.php:906 ../../include/bbcode.php:911 -#: ../../include/bbcode.php:914 ../../include/bbcode.php:917 -#: ../../include/bbcode.php:920 -msgid "Image/photo" -msgstr "Afbeelding/foto" - -#: ../../include/bbcode.php:162 ../../include/bbcode.php:931 -msgid "Encrypted content" -msgstr "Versleutelde inhoud" - -#: ../../include/bbcode.php:178 -#, php-format -msgid "Install %s element: " -msgstr "Installeer %s-element: " - -#: ../../include/bbcode.php:182 -#, php-format -msgid "" -"This post contains an installable %s element, however you lack permissions " -"to install it on this site." -msgstr "Dit bericht heeft een te installeren %s-element, maar je hebt geen permissies om het op deze hub te installeren." - -#: ../../include/bbcode.php:261 -#, php-format -msgid "%1$s wrote the following %2$s %3$s" -msgstr "%1$s schreef het volgende %2$s %3$s" - -#: ../../include/bbcode.php:338 ../../include/bbcode.php:346 -msgid "Click to open/close" -msgstr "Klik om te openen of te sluiten" - -#: ../../include/bbcode.php:346 -msgid "spoiler" -msgstr "spoiler" - -#: ../../include/bbcode.php:869 -msgid "$1 wrote:" -msgstr "$1 schreef:" - -#: ../../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:694 -#, php-format -msgid "View %s's profile @ %s" -msgstr "Bekijk het profiel van %s @ %s" - -#: ../../include/conversation.php:713 -msgid "Categories:" -msgstr "Categorieën:" - -#: ../../include/conversation.php:714 -msgid "Filed under:" -msgstr "Bewaard onder:" - -#: ../../include/conversation.php:739 -msgid "View in context" -msgstr "In context bekijken" - -#: ../../include/conversation.php:849 -msgid "remove" -msgstr "verwijderen" - -#: ../../include/conversation.php:854 -msgid "Delete Selected Items" -msgstr "Verwijder de geselecteerde items" - -#: ../../include/conversation.php:947 -msgid "View Source" -msgstr "Bron weergeven" - -#: ../../include/conversation.php:948 -msgid "Follow Thread" -msgstr "Conversatie volgen" - -#: ../../include/conversation.php:949 -msgid "Unfollow Thread" -msgstr "Conversatie niet meer volgen" - -#: ../../include/conversation.php:954 -msgid "Activity/Posts" -msgstr "Activiteit/berichten connectie" - -#: ../../include/conversation.php:956 -msgid "Edit Connection" -msgstr "Connectie bewerken" - -#: ../../include/conversation.php:957 -msgid "Message" -msgstr "Bericht" - -#: ../../include/conversation.php:1077 -#, php-format -msgid "%s likes this." -msgstr "%s vindt dit leuk." - -#: ../../include/conversation.php:1077 -#, php-format -msgid "%s doesn't like this." -msgstr "%s vindt dit niet leuk." - -#: ../../include/conversation.php:1081 -#, php-format -msgid "%2$d people like this." -msgid_plural "%2$d people like this." -msgstr[0] "%2$d persoon vindt dit leuk." -msgstr[1] "%2$d personen vinden dit leuk." - -#: ../../include/conversation.php:1083 -#, php-format -msgid "%2$d people don't like this." -msgid_plural "%2$d people don't like this." -msgstr[0] "%2$d persoon vindt dit niet leuk." -msgstr[1] "%2$d personen vinden dit niet leuk." - -#: ../../include/conversation.php:1089 -msgid "and" -msgstr "en" - -#: ../../include/conversation.php:1092 -#, 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/conversation.php:1093 -#, php-format -msgid "%s like this." -msgstr "%s vinden dit leuk." - -#: ../../include/conversation.php:1093 -#, php-format -msgid "%s don't like this." -msgstr "%s vinden dit niet leuk." - -#: ../../include/conversation.php:1136 -msgid "Set your location" -msgstr "Locatie instellen" - -#: ../../include/conversation.php:1137 -msgid "Clear browser location" -msgstr "Locatie van webbrowser wissen" - -#: ../../include/conversation.php:1185 -msgid "Tag term:" -msgstr "Tag:" - -#: ../../include/conversation.php:1186 -msgid "Where are you right now?" -msgstr "Waar bevind je je op dit moment?" - -#: ../../include/conversation.php:1195 -msgid "Comments enabled" -msgstr "Reacties ingeschakeld" - -#: ../../include/conversation.php:1196 -msgid "Comments disabled" -msgstr "Reacties uitgeschakeld" - -#: ../../include/conversation.php:1234 -msgid "Page link name" -msgstr "Linknaam pagina" - -#: ../../include/conversation.php:1237 -msgid "Post as" -msgstr "Bericht plaatsen als" - -#: ../../include/conversation.php:1251 -msgid "Toggle voting" -msgstr "Peiling in- of uitschakelen" - -#: ../../include/conversation.php:1254 -msgid "Disable comments" -msgstr "Reacties uitschakelen" - -#: ../../include/conversation.php:1255 -msgid "Toggle comments" -msgstr "Reacties in- of uitschakelen" - -#: ../../include/conversation.php:1263 -msgid "Categories (optional, comma-separated list)" -msgstr "Categorieën (optioneel, door komma's gescheiden lijst)" - -#: ../../include/conversation.php:1286 -msgid "Other networks and post services" -msgstr "Andere netwerken en diensten" - -#: ../../include/conversation.php:1292 -msgid "Set publish date" -msgstr "Publicatiedatum instellen" - -#: ../../include/conversation.php:1541 -msgid "Discover" -msgstr "Ontdekken" - -#: ../../include/conversation.php:1544 -msgid "Imported public streams" -msgstr "Openbare streams importeren" - -#: ../../include/conversation.php:1549 -msgid "Commented Order" -msgstr "Nieuwe reacties bovenaan" - -#: ../../include/conversation.php:1552 -msgid "Sort by Comment Date" -msgstr "Berichten met nieuwe reacties bovenaan" - -#: ../../include/conversation.php:1556 -msgid "Posted Order" -msgstr "Nieuwe berichten bovenaan" - -#: ../../include/conversation.php:1559 -msgid "Sort by Post Date" -msgstr "Nieuwe berichten bovenaan" - -#: ../../include/conversation.php:1567 -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:1576 -msgid "Activity Stream - by date" -msgstr "Activiteitenstroom - volgens datum" - -#: ../../include/conversation.php:1582 -msgid "Starred" -msgstr "Met ster" - -#: ../../include/conversation.php:1585 -msgid "Favourite Posts" -msgstr "Favoriete berichten" - -#: ../../include/conversation.php:1592 -msgid "Spam" -msgstr "Spam" - -#: ../../include/conversation.php:1595 -msgid "Posts flagged as SPAM" -msgstr "Berichten gemarkeerd als SPAM" - -#: ../../include/conversation.php:1654 -msgid "Status Messages and Posts" -msgstr "Berichten in dit kanaal" - -#: ../../include/conversation.php:1663 -msgid "About" -msgstr "Over" - -#: ../../include/conversation.php:1666 -msgid "Profile Details" -msgstr "Profiel" - -#: ../../include/conversation.php:1682 -msgid "Files and Storage" -msgstr "Bestanden en opslagruimte" - -#: ../../include/conversation.php:1702 ../../include/conversation.php:1705 -#: ../../include/widgets.php:883 -msgid "Chatrooms" -msgstr "Chatkanalen" - -#: ../../include/conversation.php:1718 -msgid "Saved Bookmarks" -msgstr "Opgeslagen bladwijzers" - -#: ../../include/conversation.php:1728 -msgid "Manage Webpages" -msgstr "Webpagina's beheren" - -#: ../../include/conversation.php:1793 -msgctxt "noun" -msgid "Attending" -msgid_plural "Attending" -msgstr[0] "aanwezig" -msgstr[1] "aanwezig" - -#: ../../include/conversation.php:1796 -msgctxt "noun" -msgid "Not Attending" -msgid_plural "Not Attending" -msgstr[0] "niet aanwezig" -msgstr[1] "niet aanwezig" - -#: ../../include/conversation.php:1799 -msgctxt "noun" -msgid "Undecided" -msgid_plural "Undecided" -msgstr[0] "nog niet beslist" -msgstr[1] "nog niet beslist" - -#: ../../include/conversation.php:1802 -msgctxt "noun" -msgid "Agree" -msgid_plural "Agrees" -msgstr[0] "eens" -msgstr[1] "eens" - -#: ../../include/conversation.php:1805 -msgctxt "noun" -msgid "Disagree" -msgid_plural "Disagrees" -msgstr[0] "oneens" -msgstr[1] "oneens" - -#: ../../include/conversation.php:1808 -msgctxt "noun" -msgid "Abstain" -msgid_plural "Abstains" -msgstr[0] "onthouding" -msgstr[1] "onthoudingen" - -#: ../../include/datetime.php:147 -msgid "Birthday" -msgstr "Verjaardag of geboortedatum" - -#: ../../include/datetime.php:149 -msgid "Age: " -msgstr "Leeftijd:" - -#: ../../include/datetime.php:151 -msgid "YYYY-MM-DD or MM-DD" -msgstr "JJJJ-MM-DD of MM-DD" - -#: ../../include/datetime.php:284 ../../boot.php:2578 -msgid "never" -msgstr "nooit" - -#: ../../include/datetime.php:290 -msgid "less than a second ago" -msgstr "minder dan een seconde geleden" - -#: ../../include/datetime.php:308 -#, 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:319 -msgctxt "relative_date" -msgid "year" -msgid_plural "years" -msgstr[0] "jaar" -msgstr[1] "jaren" - -#: ../../include/datetime.php:322 -msgctxt "relative_date" -msgid "month" -msgid_plural "months" -msgstr[0] "maand" -msgstr[1] "maanden" - -#: ../../include/datetime.php:325 -msgctxt "relative_date" -msgid "week" -msgid_plural "weeks" -msgstr[0] "week" -msgstr[1] "weken" - -#: ../../include/datetime.php:328 -msgctxt "relative_date" -msgid "day" -msgid_plural "days" -msgstr[0] "dag" -msgstr[1] "dagen" - -#: ../../include/datetime.php:331 -msgctxt "relative_date" -msgid "hour" -msgid_plural "hours" -msgstr[0] "uur" -msgstr[1] "uren" - -#: ../../include/datetime.php:334 -msgctxt "relative_date" -msgid "minute" -msgid_plural "minutes" -msgstr[0] "minuut" -msgstr[1] "minuten" - -#: ../../include/datetime.php:337 -msgctxt "relative_date" -msgid "second" -msgid_plural "seconds" -msgstr[0] "seconde" -msgstr[1] "seconden" - -#: ../../include/datetime.php:574 -#, php-format -msgid "%1$s's birthday" -msgstr "Verjaardag van %1$s" - -#: ../../include/datetime.php:575 -#, php-format -msgid "Happy Birthday %1$s" -msgstr "Gefeliciteerd met je verjaardag %1$s" - -#: ../../include/dir_fns.php:141 -msgid "Directory Options" -msgstr "Opties kanalengids" - -#: ../../include/dir_fns.php:143 -msgid "Safe Mode" -msgstr "Veilig zoeken" - -#: ../../include/dir_fns.php:144 -msgid "Public Forums Only" -msgstr "Alleen openbare forums" - -#: ../../include/dir_fns.php:145 -msgid "This Website Only" -msgstr "Alleen deze hub" - -#: ../../include/event.php:824 -msgid "This event has been added to your calendar." -msgstr "Dit evenement is aan jouw agenda toegevoegd." - -#: ../../include/event.php:1024 -msgid "Not specified" -msgstr "Niet aangegeven" - -#: ../../include/event.php:1025 -msgid "Needs Action" -msgstr "Actie vereist" - -#: ../../include/event.php:1026 -msgid "Completed" -msgstr "Voltooid" - -#: ../../include/event.php:1027 -msgid "In Process" -msgstr "In behandeling" - -#: ../../include/event.php:1028 -msgid "Cancelled" -msgstr "Geannuleerd" - -#: ../../include/import.php:30 -msgid "" -"Cannot create a duplicate channel identifier on this system. Import failed." -msgstr "Kan geen dubbele kanaal-identificator op deze hub aanmaken. Importeren mislukt." - -#: ../../include/import.php:97 -msgid "Channel clone failed. Import failed." -msgstr "Het klonen van het kanaal is mislukt. Importeren mislukt." - -#: ../../include/import.php:1447 -msgid "Unable to import element \"" -msgstr "Niet in staat om dit element te importeren: \"" - -#: ../../include/auth.php:148 -msgid "Logged out." -msgstr "Uitgelogd." - -#: ../../include/auth.php:275 -msgid "Failed authentication" -msgstr "Mislukte authenticatie" - -#: ../../include/auth.php:286 -msgid "Login failed." -msgstr "Inloggen mislukt." - -#: ../../include/activities.php:41 -msgid " and " -msgstr " en " - -#: ../../include/activities.php:49 -msgid "public profile" -msgstr "openbaar profiel" - -#: ../../include/activities.php:58 -#, php-format -msgid "%1$s changed %2$s to “%3$s”" -msgstr "%1$s veranderde %2$s naar “%3$s”" - -#: ../../include/activities.php:59 -#, php-format -msgid "Visit %1$s's %2$s" -msgstr "Bezoek het %2$s van %1$s" - -#: ../../include/activities.php:62 -#, 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/network.php:704 -msgid "view full size" -msgstr "volledige grootte tonen" - -#: ../../include/network.php:1953 -msgid "No Subject" -msgstr "Geen onderwerp" - -#: ../../include/network.php:2207 ../../include/network.php:2208 -msgid "Friendica" -msgstr "Friendica" - -#: ../../include/network.php:2209 -msgid "OStatus" -msgstr "OStatus" - -#: ../../include/network.php:2210 -msgid "GNU-Social" -msgstr "GNU social" - -#: ../../include/network.php:2211 -msgid "RSS/Atom" -msgstr "RSS/Atom" - -#: ../../include/network.php:2213 -msgid "Diaspora" -msgstr "Diaspora" - -#: ../../include/network.php:2214 -msgid "Facebook" -msgstr "Facebook" - -#: ../../include/network.php:2215 -msgid "Zot" -msgstr "Zot" - -#: ../../include/network.php:2216 -msgid "LinkedIn" -msgstr "LinkedIn" - -#: ../../include/network.php:2217 -msgid "XMPP/IM" -msgstr "XMPP/IM" - -#: ../../include/network.php:2218 -msgid "MySpace" -msgstr "MySpace" - -#: ../../include/taxonomy.php:188 ../../include/taxonomy.php:270 -#: ../../include/contact_widgets.php:91 ../../include/widgets.php:46 -#: ../../include/widgets.php:465 -msgid "Categories" -msgstr "Categorieën" - #: ../../include/taxonomy.php:228 ../../include/taxonomy.php:249 msgid "Tags" msgstr "Tags" @@ -9602,56 +12001,627 @@ msgstr "vindt dit leuk" msgid "dislikes" msgstr "vindt dit niet leuk" -#: ../../include/contact_widgets.php:11 +#: ../../include/text.php:460 +msgid "prev" +msgstr "vorige" + +#: ../../include/text.php:462 +msgid "first" +msgstr "eerste" + +#: ../../include/text.php:491 +msgid "last" +msgstr "laatste" + +#: ../../include/text.php:494 +msgid "next" +msgstr "volgende" + +#: ../../include/text.php:505 +msgid "older" +msgstr "ouder" + +#: ../../include/text.php:507 +msgid "newer" +msgstr "nieuwer" + +#: ../../include/text.php:904 +msgid "No connections" +msgstr "Geen connecties" + +#: ../../include/text.php:929 #, php-format -msgid "%d invitation available" -msgid_plural "%d invitations available" -msgstr[0] "%d uitnodiging beschikbaar" -msgstr[1] "%d uitnodigingen beschikbaar" +msgid "View all %s connections" +msgstr "Toon alle %s connecties" -#: ../../include/contact_widgets.php:19 -msgid "Find Channels" -msgstr "Kanalen vinden" +#: ../../include/text.php:1074 ../../include/text.php:1079 +msgid "poke" +msgstr "aanstoten" -#: ../../include/contact_widgets.php:20 -msgid "Enter name or interest" -msgstr "Vul naam of interesse in" +#: ../../include/text.php:1074 ../../include/text.php:1079 +#: ../../include/conversation.php:243 +msgid "poked" +msgstr "aangestoten" -#: ../../include/contact_widgets.php:21 -msgid "Connect/Follow" -msgstr "Verbinden/volgen" +#: ../../include/text.php:1080 +msgid "ping" +msgstr "ping" -#: ../../include/contact_widgets.php:22 -msgid "Examples: Robert Morgenstein, Fishing" -msgstr "Voorbeeld: Robert Morgenstein, vissen" +#: ../../include/text.php:1080 +msgid "pinged" +msgstr "gepingd" -#: ../../include/contact_widgets.php:26 -msgid "Random Profile" -msgstr "Willekeurig profiel" +#: ../../include/text.php:1081 +msgid "prod" +msgstr "por" -#: ../../include/contact_widgets.php:27 -msgid "Invite Friends" -msgstr "Vrienden uitnodigen" +#: ../../include/text.php:1081 +msgid "prodded" +msgstr "gepord" -#: ../../include/contact_widgets.php:29 -msgid "Advanced example: name=fred and country=iceland" -msgstr "Geavanceerd voorbeeld (Engels): name=jan en country=nederland" +#: ../../include/text.php:1082 +msgid "slap" +msgstr "slaan" -#: ../../include/contact_widgets.php:56 ../../include/contact_widgets.php:94 -#: ../../include/widgets.php:349 ../../include/widgets.php:468 -msgid "Everything" -msgstr "Alles" +#: ../../include/text.php:1082 +msgid "slapped" +msgstr "sloeg" -#: ../../include/contact_widgets.php:122 +#: ../../include/text.php:1083 +msgid "finger" +msgstr "finger" + +#: ../../include/text.php:1083 +msgid "fingered" +msgstr "gefingerd" + +#: ../../include/text.php:1084 +msgid "rebuff" +msgstr "afpoeieren" + +#: ../../include/text.php:1084 +msgid "rebuffed" +msgstr "afgepoeierd" + +#: ../../include/text.php:1096 +msgid "happy" +msgstr "gelukkig" + +#: ../../include/text.php:1097 +msgid "sad" +msgstr "bedroefd" + +#: ../../include/text.php:1098 +msgid "mellow" +msgstr "mellow" + +#: ../../include/text.php:1099 +msgid "tired" +msgstr "moe" + +#: ../../include/text.php:1100 +msgid "perky" +msgstr "parmantig" + +#: ../../include/text.php:1101 +msgid "angry" +msgstr "boos" + +#: ../../include/text.php:1102 +msgid "stupefied" +msgstr "verbijsterd" + +#: ../../include/text.php:1103 +msgid "puzzled" +msgstr "verward" + +#: ../../include/text.php:1104 +msgid "interested" +msgstr "geïnteresseerd" + +#: ../../include/text.php:1105 +msgid "bitter" +msgstr "verbitterd" + +#: ../../include/text.php:1106 +msgid "cheerful" +msgstr "vrolijk" + +#: ../../include/text.php:1107 +msgid "alive" +msgstr "levendig" + +#: ../../include/text.php:1108 +msgid "annoyed" +msgstr "geërgerd" + +#: ../../include/text.php:1109 +msgid "anxious" +msgstr "bezorgd" + +#: ../../include/text.php:1110 +msgid "cranky" +msgstr "humeurig" + +#: ../../include/text.php:1111 +msgid "disturbed" +msgstr "verontrust" + +#: ../../include/text.php:1112 +msgid "frustrated" +msgstr "gefrustreerd " + +#: ../../include/text.php:1113 +msgid "depressed" +msgstr "gedeprimeerd" + +#: ../../include/text.php:1114 +msgid "motivated" +msgstr "gemotiveerd" + +#: ../../include/text.php:1115 +msgid "relaxed" +msgstr "ontspannen" + +#: ../../include/text.php:1116 +msgid "surprised" +msgstr "verrast" + +#: ../../include/text.php:1307 +msgid "May" +msgstr "mei" + +#: ../../include/text.php:1384 ../../include/text.php:1388 +msgid "Unknown Attachment" +msgstr "Onbekende bijlage" + +#: ../../include/text.php:1390 +msgid "unknown" +msgstr "onbekend" + +#: ../../include/text.php:1426 +msgid "remove category" +msgstr "categorie verwijderen" + +#: ../../include/text.php:1503 +msgid "remove from file" +msgstr "uit map verwijderen" + +#: ../../include/text.php:1770 ../../include/language.php:367 +msgid "default" +msgstr "standaard" + +#: ../../include/text.php:1778 +msgid "Page layout" +msgstr "Pagina-lay-out" + +#: ../../include/text.php:1778 +msgid "You can create your own with the layouts tool" +msgstr "Je kan jouw eigen lay-out ontwerpen onder lay-outs" + +#: ../../include/text.php:1820 +msgid "Page content type" +msgstr "Opmaaktype" + +#: ../../include/text.php:1953 +msgid "activity" +msgstr "activiteit" + +#: ../../include/text.php:2267 +msgid "Design Tools" +msgstr "Ontwerp-hulpmiddelen" + +#: ../../include/text.php:2273 +msgid "Pages" +msgstr "Pagina's" + +#: ../../include/text.php:2295 +msgid "Import website..." +msgstr "Website importeren..." + +#: ../../include/text.php:2296 +msgid "Select folder to import" +msgstr "Kies een map om te importeren" + +#: ../../include/text.php:2297 +msgid "Import from a zipped folder:" +msgstr "Vanuit een zipbestand importeren:" + +#: ../../include/text.php:2298 +msgid "Import from cloud files:" +msgstr "Vanuit de cloud importeren:" + +#: ../../include/text.php:2299 +msgid "/cloud/channel/path/to/folder" +msgstr "/cloud/channel/maplocatie" + +#: ../../include/text.php:2300 +msgid "Enter path to website files" +msgstr "Voer de locatie in van de websitebestanden" + +#: ../../include/text.php:2301 +msgid "Select folder" +msgstr "Kies een map" + +#: ../../include/text.php:2302 +msgid "Export website..." +msgstr "Website exporteren..." + +#: ../../include/text.php:2303 +msgid "Export to a zip file" +msgstr "Naar een zipbestand exporteren" + +#: ../../include/text.php:2304 +msgid "website.zip" +msgstr "website.zip" + +#: ../../include/text.php:2305 +msgid "Enter a name for the zip file." +msgstr "Vul een naam in voor het zipbestand." + +#: ../../include/text.php:2306 +msgid "Export to cloud files" +msgstr "Naar de cloud exporteren" + +#: ../../include/text.php:2307 +msgid "/path/to/export/folder" +msgstr "/locatie/van/export/map" + +#: ../../include/text.php:2308 +msgid "Enter a path to a cloud files destination." +msgstr "Voer de locatie in van de cloudbestemming" + +#: ../../include/text.php:2309 +msgid "Specify folder" +msgstr "Selecteer een map" + +#: ../../include/import.php:30 +msgid "" +"Cannot create a duplicate channel identifier on this system. Import failed." +msgstr "Kan geen dubbele kanaal-identificator op deze hub aanmaken. Importeren mislukt." + +#: ../../include/import.php:90 +msgid "Channel clone failed. Import failed." +msgstr "Het klonen van het kanaal is mislukt. Importeren mislukt." + +#: ../../include/import.php:1354 +msgid "Unable to import element \"" +msgstr "Niet in staat om dit element te importeren: \"" + +#: ../../include/security.php:117 +msgid "guest:" +msgstr "gast:" + +#: ../../include/security.php:535 +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/items.php:837 ../../include/items.php:882 +msgid "(Unknown)" +msgstr "(Onbekend)" + +#: ../../include/items.php:1080 +msgid "Visible to anybody on the internet." +msgstr "Voor iedereen op het internet zichtbaar." + +#: ../../include/items.php:1082 +msgid "Visible to you only." +msgstr "Alleen voor jou zichtbaar." + +#: ../../include/items.php:1084 +msgid "Visible to anybody in this network." +msgstr "Voor iedereen in dit netwerk zichtbaar." + +#: ../../include/items.php:1086 +msgid "Visible to anybody authenticated." +msgstr "Voor iedereen die geauthenticeerd is zichtbaar." + +#: ../../include/items.php:1088 #, php-format -msgid "%d connection in common" -msgid_plural "%d connections in common" -msgstr[0] "%d gemeenschappelijke connectie" -msgstr[1] "%d gemeenschappelijke connecties" +msgid "Visible to anybody on %s." +msgstr "Voor iedereen op %s zichtbaar." -#: ../../include/contact_widgets.php:127 -msgid "show more" -msgstr "meer connecties weergeven" +#: ../../include/items.php:1090 +msgid "Visible to all connections." +msgstr "Voor alle connecties zichtbaar." + +#: ../../include/items.php:1092 +msgid "Visible to approved connections." +msgstr "Voor alle geaccepteerde connecties zichtbaar." + +#: ../../include/items.php:1094 +msgid "Visible to specific connections." +msgstr "Voor specifieke connecties zichtbaar." + +#: ../../include/items.php:3892 +msgid "Privacy group is empty." +msgstr "Privacygroep is leeg" + +#: ../../include/items.php:3899 +#, php-format +msgid "Privacy group: %s" +msgstr "Privacygroep: %s" + +#: ../../include/items.php:3911 +msgid "Connection not found." +msgstr "Connectie niet gevonden." + +#: ../../include/items.php:4260 +msgid "profile photo" +msgstr "profielfoto" + +#: ../../include/items.php:4456 +#, php-format +msgid "[Edited %s]" +msgstr "[%s bewerkt]" + +#: ../../include/items.php:4456 +msgctxt "edit_activity" +msgid "Post" +msgstr "Bericht" + +#: ../../include/items.php:4456 +msgctxt "edit_activity" +msgid "Comment" +msgstr "Reactie" + +#: ../../include/auth.php:148 +msgid "Logged out." +msgstr "Uitgelogd." + +#: ../../include/auth.php:275 +msgid "Failed authentication" +msgstr "Mislukte authenticatie" + +#: ../../include/activities.php:41 +msgid " and " +msgstr " en " + +#: ../../include/activities.php:49 +msgid "public profile" +msgstr "openbaar profiel" + +#: ../../include/activities.php:58 +#, php-format +msgid "%1$s changed %2$s to “%3$s”" +msgstr "%1$s veranderde %2$s naar “%3$s”" + +#: ../../include/activities.php:59 +#, php-format +msgid "Visit %1$s's %2$s" +msgstr "Bezoek het %2$s van %1$s" + +#: ../../include/activities.php:62 +#, 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/attach.php:248 ../../include/attach.php:336 +msgid "Item was not found." +msgstr "Item niet gevonden" + +#: ../../include/attach.php:497 +msgid "No source file." +msgstr "Geen bronbestand." + +#: ../../include/attach.php:519 +msgid "Cannot locate file to replace" +msgstr "Kan het te vervangen bestand niet vinden" + +#: ../../include/attach.php:537 +msgid "Cannot locate file to revise/update" +msgstr "Kan het bestand wat aangepast moet worden niet vinden" + +#: ../../include/attach.php:668 +#, php-format +msgid "File exceeds size limit of %d" +msgstr "Bestand is groter dan de toegelaten %d" + +#: ../../include/attach.php:682 +#, 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:852 +msgid "File upload failed. Possible system limit or action terminated." +msgstr "Uploaden van bestand mislukt. Mogelijk systeemlimiet bereikt of actie afgebroken." + +#: ../../include/attach.php:865 +msgid "Stored file could not be verified. Upload failed." +msgstr "Opgeslagen bestand kon niet worden geverifieerd. Uploaden mislukt." + +#: ../../include/attach.php:920 ../../include/attach.php:936 +msgid "Path not available." +msgstr "Locatie niet beschikbaar." + +#: ../../include/attach.php:982 ../../include/attach.php:1140 +msgid "Empty pathname" +msgstr "Ontbrekende locatienaam" + +#: ../../include/attach.php:1008 +msgid "duplicate filename or path" +msgstr "dubbele bestandsnaam of locatie" + +#: ../../include/attach.php:1030 +msgid "Path not found." +msgstr "Locatie niet gevonden" + +#: ../../include/attach.php:1094 +msgid "mkdir failed." +msgstr "directory aanmaken (mkdir) mislukt." + +#: ../../include/attach.php:1098 +msgid "database storage failed." +msgstr "opslag in database mislukt." + +#: ../../include/attach.php:1146 +msgid "Empty path" +msgstr "Ontbrekende locatie" + +#: ../../include/event.php:824 +msgid "This event has been added to your calendar." +msgstr "Dit evenement is aan jouw agenda toegevoegd." + +#: ../../include/event.php:1024 +msgid "Not specified" +msgstr "Niet aangegeven" + +#: ../../include/event.php:1025 +msgid "Needs Action" +msgstr "Actie vereist" + +#: ../../include/event.php:1026 +msgid "Completed" +msgstr "Voltooid" + +#: ../../include/event.php:1027 +msgid "In Process" +msgstr "In behandeling" + +#: ../../include/event.php:1028 +msgid "Cancelled" +msgstr "Geannuleerd" + +#: ../../include/follow.php:27 +msgid "Channel is blocked on this site." +msgstr "Kanaal is op deze hub geblokkeerd." + +#: ../../include/follow.php:32 +msgid "Channel location missing." +msgstr "Ontbrekende kanaallocatie." + +#: ../../include/follow.php:80 +msgid "Response from remote channel was incomplete." +msgstr "Antwoord van het kanaal op afstand was niet volledig." + +#: ../../include/follow.php:97 +msgid "Channel was deleted and no longer exists." +msgstr "Kanaal is verwijderd en bestaat niet meer." + +#: ../../include/follow.php:147 ../../include/follow.php:183 +msgid "Protocol disabled." +msgstr "Protocol uitgeschakeld." + +#: ../../include/follow.php:171 +msgid "Channel discovery failed." +msgstr "Kanaal ontdekken mislukt." + +#: ../../include/follow.php:210 +msgid "Cannot connect to yourself." +msgstr "Kan niet met jezelf verbinden" + +#: ../../include/group.php:26 +msgid "" +"A deleted group with this name was revived. Existing item permissions " +"may 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 kunnen 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:248 +msgid "Add new connections to this privacy group" +msgstr "Voeg nieuwe connecties aan deze privacygroep toe" + +#: ../../include/group.php:289 +msgid "edit" +msgstr "bewerken" + +#: ../../include/group.php:312 +msgid "Edit group" +msgstr "Privacygroep bewerken" + +#: ../../include/group.php:313 +msgid "Add privacy group" +msgstr "Privacygroep toevoegen" + +#: ../../include/group.php:314 +msgid "Channels not in any privacy group" +msgstr "Kanalen die zich in geen enkele privacygroep bevinden" + +#: ../../include/group.php:316 ../../include/widgets.php:284 +msgid "add" +msgstr "toevoegen" + +#: ../../include/language.php:380 +msgid "Select an alternate language" +msgstr "Kies een andere taal" + +#: ../../include/photos.php:115 +#, 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/photos.php:122 +msgid "Image file is empty." +msgstr "Afbeeldingsbestand is leeg" + +#: ../../include/photos.php:260 +msgid "Photo storage failed." +msgstr "Foto kan niet worden opgeslagen" + +#: ../../include/photos.php:300 +msgid "a new photo" +msgstr "een nieuwe foto" + +#: ../../include/photos.php:304 +#, php-format +msgctxt "photo_upload" +msgid "%1$s posted %2$s to %3$s" +msgstr "%1$s plaatste %2$s op %3$s" + +#: ../../include/photos.php:507 ../../include/conversation.php:1677 +msgid "Photo Albums" +msgstr "Fotoalbums" + +#: ../../include/photos.php:511 +msgid "Upload New Photos" +msgstr "Nieuwe foto's uploaden" + +#: ../../include/acl_selectors.php:198 +msgid "Who can see this?" +msgstr "Wie kan dit zien?" + +#: ../../include/acl_selectors.php:199 +msgid "Custom selection" +msgstr "Handmatige selectie" + +#: ../../include/acl_selectors.php:200 +msgid "" +"Select \"Show\" to allow viewing. \"Don't show\" lets you override and limit" +" the scope of \"Show\"." +msgstr "Kies \"Tonen\" om weergave toe te staan. Met \"Niet tonen\" kan je uitzonderingen maken op \"Tonen\"." + +#: ../../include/acl_selectors.php:201 +msgid "Show" +msgstr "Tonen" + +#: ../../include/acl_selectors.php:202 +msgid "Don't show" +msgstr "Niet tonen" + +#: ../../include/acl_selectors.php:235 +#, php-format +msgid "" +"Post permissions %s cannot be changed %s after a post is shared.
        These" +" permissions set who is allowed to view the post." +msgstr "Permissies van berichten %s zijn niet meer te veranderen %s nadat een bericht is gedeeld.
        Met deze permissies bepaal je wie het bericht kan zien." + +#: ../../include/oembed.php:312 +msgid " by " +msgstr " door " + +#: ../../include/oembed.php:313 +msgid " on " +msgstr " op " + +#: ../../include/oembed.php:342 +msgid "Embedded content" +msgstr "Ingesloten (embedded) inhoud" + +#: ../../include/oembed.php:351 +msgid "Embedding disabled" +msgstr "Insluiten (embedding) uitgeschakeld" #: ../../include/widgets.php:103 msgid "System" @@ -9778,6 +12748,11 @@ msgstr "Exporteren" msgid "Import Calendar" msgstr "Importeren" +#: ../../include/widgets.php:883 ../../include/conversation.php:1704 +#: ../../include/conversation.php:1707 +msgid "Chatrooms" +msgstr "Chatkanalen" + #: ../../include/widgets.php:887 msgid "Overview" msgstr "Overzicht" @@ -9786,205 +12761,487 @@ msgstr "Overzicht" msgid "Chat Members" msgstr "Chatleden" -#: ../../include/widgets.php:916 +#: ../../include/widgets.php:906 msgid "Wiki List" msgstr "Wiki's" -#: ../../include/widgets.php:954 +#: ../../include/widgets.php:944 msgid "Wiki Pages" msgstr "Wikipagina's" -#: ../../include/widgets.php:989 +#: ../../include/widgets.php:949 +msgid "Add new page" +msgstr "Nieuwe pagina toevoegen" + +#: ../../include/widgets.php:950 +msgid "Page name" +msgstr "Paginanaam" + +#: ../../include/widgets.php:983 msgid "Bookmarked Chatrooms" msgstr "Bladwijzers van chatkanalen" -#: ../../include/widgets.php:1020 +#: ../../include/widgets.php:1014 msgid "Suggested Chatrooms" msgstr "Voorgestelde chatkanalen" -#: ../../include/widgets.php:1166 ../../include/widgets.php:1278 +#: ../../include/widgets.php:1159 ../../include/widgets.php:1271 msgid "photo/image" msgstr "foto/afbeelding" -#: ../../include/widgets.php:1221 +#: ../../include/widgets.php:1214 msgid "Click to show more" msgstr "Klik voor meer" -#: ../../include/widgets.php:1372 +#: ../../include/widgets.php:1365 msgid "Rating Tools" msgstr "Beoordelingen" -#: ../../include/widgets.php:1376 ../../include/widgets.php:1378 +#: ../../include/widgets.php:1369 ../../include/widgets.php:1371 msgid "Rate Me" msgstr "Beoordeel mij" -#: ../../include/widgets.php:1381 +#: ../../include/widgets.php:1374 msgid "View Ratings" msgstr "Bekijk beoordelingen" -#: ../../include/widgets.php:1465 +#: ../../include/widgets.php:1467 msgid "Forums" msgstr "Forums" -#: ../../include/widgets.php:1494 +#: ../../include/widgets.php:1496 msgid "Tasks" msgstr "Taken" -#: ../../include/widgets.php:1505 -msgid "Documentation" -msgstr "Documentatie" - -#: ../../include/widgets.php:1561 ../../include/widgets.php:1599 +#: ../../include/widgets.php:1562 ../../include/widgets.php:1600 msgid "Member registrations waiting for confirmation" msgstr "Accounts die op goedkeuring wachten" -#: ../../include/widgets.php:1567 +#: ../../include/widgets.php:1568 msgid "Inspect queue" msgstr "Inspecteer berichtenwachtrij" -#: ../../include/widgets.php:1569 +#: ../../include/widgets.php:1570 msgid "DB updates" msgstr "Database-updates" -#: ../../include/widgets.php:1595 +#: ../../include/widgets.php:1596 msgid "Plugin Features" msgstr "Plugin-opties" -#: ../../include/api.php:1330 -msgid "Public Timeline" -msgstr "Openbare tijdlijn" +#: ../../include/network.php:729 +msgid "view full size" +msgstr "volledige grootte tonen" -#: ../../include/oembed.php:322 -msgid " by " -msgstr " door " +#: ../../include/network.php:1978 +msgid "No Subject" +msgstr "Geen onderwerp" -#: ../../include/oembed.php:323 -msgid " on " -msgstr " op " +#: ../../include/network.php:2234 +msgid "OStatus" +msgstr "OStatus" -#: ../../include/oembed.php:352 -msgid "Embedded content" -msgstr "Ingesloten (embedded) inhoud" +#: ../../include/network.php:2235 +msgid "GNU-Social" +msgstr "GNU social" -#: ../../include/oembed.php:361 -msgid "Embedding disabled" -msgstr "Insluiten (embedding) uitgeschakeld" +#: ../../include/network.php:2236 +msgid "RSS/Atom" +msgstr "RSS/Atom" -#: ../../include/items.php:918 ../../include/items.php:963 -msgid "(Unknown)" -msgstr "(Onbekend)" +#: ../../include/network.php:2239 +msgid "Facebook" +msgstr "Facebook" -#: ../../include/items.php:1162 -msgid "Visible to anybody on the internet." -msgstr "Voor iedereen op het internet zichtbaar." +#: ../../include/network.php:2240 +msgid "Zot" +msgstr "Zot" -#: ../../include/items.php:1164 -msgid "Visible to you only." -msgstr "Alleen voor jou zichtbaar." +#: ../../include/network.php:2241 +msgid "LinkedIn" +msgstr "LinkedIn" -#: ../../include/items.php:1166 -msgid "Visible to anybody in this network." -msgstr "Voor iedereen in dit netwerk zichtbaar." +#: ../../include/network.php:2242 +msgid "XMPP/IM" +msgstr "XMPP/IM" -#: ../../include/items.php:1168 -msgid "Visible to anybody authenticated." -msgstr "Voor iedereen die geauthenticeerd is zichtbaar." +#: ../../include/network.php:2243 +msgid "MySpace" +msgstr "MySpace" -#: ../../include/items.php:1170 +#: ../../include/permissions.php:35 +msgid "Can view my normal stream and posts" +msgstr "Kan mijn normale kanaalstream en berichten bekijken" + +#: ../../include/permissions.php:39 +msgid "Can view my webpages" +msgstr "Kan mijn pagina's bekijken" + +#: ../../include/permissions.php:43 +msgid "Can post on my channel page (\"wall\")" +msgstr "Kan een bericht in mijn kanaal plaatsen" + +#: ../../include/permissions.php:46 +msgid "Can like/dislike stuff" +msgstr "Kan dingen leuk of niet leuk vinden" + +#: ../../include/permissions.php:46 +msgid "Profiles and things other than posts/comments" +msgstr "Profielen en dingen, buiten berichten en reacties" + +#: ../../include/permissions.php:48 +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:48 +msgid "Advanced - useful for creating group forum channels" +msgstr "Geavanceerd - nuttig voor groepforums" + +#: ../../include/permissions.php:49 +msgid "Can chat with me (when available)" +msgstr "Kan met mij chatten (wanneer beschikbaar)" + +#: ../../include/permissions.php:50 +msgid "Can write to my file storage and photos" +msgstr "Kan foto's en andere bestanden aan mijn bestandsopslag toevoegen" + +#: ../../include/permissions.php:51 +msgid "Can edit my webpages" +msgstr "Kan mijn pagina's bewerken" + +#: ../../include/permissions.php:53 +msgid "Somewhat advanced - very useful in open communities" +msgstr "Enigszins geavanceerd (erg nuttig voor kanalen van forums/groepen)" + +#: ../../include/permissions.php:55 +msgid "Can administer my channel resources" +msgstr "Kan mijn kanaal beheren" + +#: ../../include/permissions.php:55 +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/conversation.php:204 #, php-format -msgid "Visible to anybody on %s." -msgstr "Voor iedereen op %s zichtbaar." +msgid "%1$s is now connected with %2$s" +msgstr "%1$s is nu met %2$s verbonden" -#: ../../include/items.php:1172 -msgid "Visible to all connections." -msgstr "Voor alle connecties zichtbaar." - -#: ../../include/items.php:1174 -msgid "Visible to approved connections." -msgstr "Voor alle geaccepteerde connecties zichtbaar." - -#: ../../include/items.php:1176 -msgid "Visible to specific connections." -msgstr "Voor specifieke connecties zichtbaar." - -#: ../../include/items.php:3976 -msgid "Privacy group is empty." -msgstr "Privacygroep is leeg" - -#: ../../include/items.php:3983 +#: ../../include/conversation.php:239 #, php-format -msgid "Privacy group: %s" -msgstr "Privacygroep: %s" +msgid "%1$s poked %2$s" +msgstr "%1$s heeft %2$s aangestoten" -#: ../../include/items.php:3995 -msgid "Connection not found." -msgstr "Connectie niet gevonden." - -#: ../../include/items.php:4348 -msgid "profile photo" -msgstr "profielfoto" - -#: ../../include/attach.php:248 ../../include/attach.php:334 -msgid "Item was not found." -msgstr "Item niet gevonden" - -#: ../../include/attach.php:500 -msgid "No source file." -msgstr "Geen bronbestand." - -#: ../../include/attach.php:522 -msgid "Cannot locate file to replace" -msgstr "Kan het te vervangen bestand niet vinden" - -#: ../../include/attach.php:540 -msgid "Cannot locate file to revise/update" -msgstr "Kan het bestand wat aangepast moet worden niet vinden" - -#: ../../include/attach.php:675 +#: ../../include/conversation.php:690 #, php-format -msgid "File exceeds size limit of %d" -msgstr "Bestand is groter dan de toegelaten %d" +msgid "View %s's profile @ %s" +msgstr "Bekijk het profiel van %s @ %s" -#: ../../include/attach.php:689 +#: ../../include/conversation.php:709 +msgid "Categories:" +msgstr "Categorieën:" + +#: ../../include/conversation.php:710 +msgid "Filed under:" +msgstr "Bewaard onder:" + +#: ../../include/conversation.php:735 +msgid "View in context" +msgstr "In context bekijken" + +#: ../../include/conversation.php:831 +msgid "remove" +msgstr "verwijderen" + +#: ../../include/conversation.php:836 +msgid "Delete Selected Items" +msgstr "Verwijder de geselecteerde items" + +#: ../../include/conversation.php:929 +msgid "View Source" +msgstr "Bron weergeven" + +#: ../../include/conversation.php:930 +msgid "Follow Thread" +msgstr "Conversatie volgen" + +#: ../../include/conversation.php:931 +msgid "Unfollow Thread" +msgstr "Conversatie niet meer volgen" + +#: ../../include/conversation.php:936 +msgid "Activity/Posts" +msgstr "Activiteit/berichten connectie" + +#: ../../include/conversation.php:938 +msgid "Edit Connection" +msgstr "Connectie bewerken" + +#: ../../include/conversation.php:939 +msgid "Message" +msgstr "Bericht" + +#: ../../include/conversation.php:1075 #, 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." +msgid "%s likes this." +msgstr "%s vindt dit leuk." -#: ../../include/attach.php:854 -msgid "File upload failed. Possible system limit or action terminated." -msgstr "Uploaden van bestand mislukt. Mogelijk systeemlimiet bereikt of actie afgebroken." +#: ../../include/conversation.php:1075 +#, php-format +msgid "%s doesn't like this." +msgstr "%s vindt dit niet leuk." -#: ../../include/attach.php:867 -msgid "Stored file could not be verified. Upload failed." -msgstr "Opgeslagen bestand kon niet worden geverifieerd. Uploaden mislukt." +#: ../../include/conversation.php:1079 +#, php-format +msgid "%2$d people like this." +msgid_plural "%2$d people like this." +msgstr[0] "%2$d persoon vindt dit leuk." +msgstr[1] "%2$d personen vinden dit leuk." -#: ../../include/attach.php:923 ../../include/attach.php:939 -msgid "Path not available." -msgstr "Locatie niet beschikbaar." +#: ../../include/conversation.php:1081 +#, php-format +msgid "%2$d people don't like this." +msgid_plural "%2$d people don't like this." +msgstr[0] "%2$d persoon vindt dit niet leuk." +msgstr[1] "%2$d personen vinden dit niet leuk." -#: ../../include/attach.php:985 ../../include/attach.php:1137 -msgid "Empty pathname" -msgstr "Ontbrekende locatienaam" +#: ../../include/conversation.php:1087 +msgid "and" +msgstr "en" -#: ../../include/attach.php:1011 -msgid "duplicate filename or path" -msgstr "dubbele bestandsnaam of locatie" +#: ../../include/conversation.php:1090 +#, 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/attach.php:1033 -msgid "Path not found." -msgstr "Locatie niet gevonden" +#: ../../include/conversation.php:1091 +#, php-format +msgid "%s like this." +msgstr "%s vinden dit leuk." -#: ../../include/attach.php:1091 -msgid "mkdir failed." -msgstr "directory aanmaken (mkdir) mislukt." +#: ../../include/conversation.php:1091 +#, php-format +msgid "%s don't like this." +msgstr "%s vinden dit niet leuk." -#: ../../include/attach.php:1095 -msgid "database storage failed." -msgstr "opslag in database mislukt." +#: ../../include/conversation.php:1134 +msgid "Set your location" +msgstr "Locatie instellen" -#: ../../include/attach.php:1143 -msgid "Empty path" -msgstr "Ontbrekende locatie" +#: ../../include/conversation.php:1135 +msgid "Clear browser location" +msgstr "Locatie van webbrowser wissen" + +#: ../../include/conversation.php:1183 +msgid "Tag term:" +msgstr "Tag:" + +#: ../../include/conversation.php:1184 +msgid "Where are you right now?" +msgstr "Waar bevind je je op dit moment?" + +#: ../../include/conversation.php:1189 +msgid "Choose a different album..." +msgstr "Kies een ander album..." + +#: ../../include/conversation.php:1193 +msgid "Comments enabled" +msgstr "Reacties ingeschakeld" + +#: ../../include/conversation.php:1194 +msgid "Comments disabled" +msgstr "Reacties uitgeschakeld" + +#: ../../include/conversation.php:1232 +msgid "Page link name" +msgstr "Linknaam pagina" + +#: ../../include/conversation.php:1235 +msgid "Post as" +msgstr "Bericht plaatsen als" + +#: ../../include/conversation.php:1249 +msgid "Toggle voting" +msgstr "Peiling in- of uitschakelen" + +#: ../../include/conversation.php:1252 +msgid "Disable comments" +msgstr "Reacties uitschakelen" + +#: ../../include/conversation.php:1253 +msgid "Toggle comments" +msgstr "Reacties in- of uitschakelen" + +#: ../../include/conversation.php:1261 +msgid "Categories (optional, comma-separated list)" +msgstr "Categorieën (optioneel, door komma's gescheiden lijst)" + +#: ../../include/conversation.php:1284 +msgid "Other networks and post services" +msgstr "Andere netwerken en diensten" + +#: ../../include/conversation.php:1290 +msgid "Set publish date" +msgstr "Publicatiedatum instellen" + +#: ../../include/conversation.php:1544 +msgid "Discover" +msgstr "Ontdekken" + +#: ../../include/conversation.php:1547 +msgid "Imported public streams" +msgstr "Openbare streams importeren" + +#: ../../include/conversation.php:1552 +msgid "Commented Order" +msgstr "Nieuwe reacties bovenaan" + +#: ../../include/conversation.php:1555 +msgid "Sort by Comment Date" +msgstr "Berichten met nieuwe reacties bovenaan" + +#: ../../include/conversation.php:1559 +msgid "Posted Order" +msgstr "Nieuwe berichten bovenaan" + +#: ../../include/conversation.php:1562 +msgid "Sort by Post Date" +msgstr "Nieuwe berichten bovenaan" + +#: ../../include/conversation.php:1570 +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:1579 +msgid "Activity Stream - by date" +msgstr "Activiteitenstroom - volgens datum" + +#: ../../include/conversation.php:1585 +msgid "Starred" +msgstr "Met ster" + +#: ../../include/conversation.php:1588 +msgid "Favourite Posts" +msgstr "Favoriete berichten" + +#: ../../include/conversation.php:1595 +msgid "Spam" +msgstr "Spam" + +#: ../../include/conversation.php:1598 +msgid "Posts flagged as SPAM" +msgstr "Berichten gemarkeerd als SPAM" + +#: ../../include/conversation.php:1656 +msgid "Status Messages and Posts" +msgstr "Berichten in dit kanaal" + +#: ../../include/conversation.php:1668 +msgid "Profile Details" +msgstr "Profiel" + +#: ../../include/conversation.php:1684 +msgid "Files and Storage" +msgstr "Bestanden en opslagruimte" + +#: ../../include/conversation.php:1720 +msgid "Saved Bookmarks" +msgstr "Opgeslagen bladwijzers" + +#: ../../include/conversation.php:1730 +msgid "Manage Webpages" +msgstr "Webpagina's beheren" + +#: ../../include/conversation.php:1795 +msgctxt "noun" +msgid "Attending" +msgid_plural "Attending" +msgstr[0] "aanwezig" +msgstr[1] "aanwezig" + +#: ../../include/conversation.php:1798 +msgctxt "noun" +msgid "Not Attending" +msgid_plural "Not Attending" +msgstr[0] "niet aanwezig" +msgstr[1] "niet aanwezig" + +#: ../../include/conversation.php:1801 +msgctxt "noun" +msgid "Undecided" +msgid_plural "Undecided" +msgstr[0] "nog niet beslist" +msgstr[1] "nog niet beslist" + +#: ../../include/conversation.php:1804 +msgctxt "noun" +msgid "Agree" +msgid_plural "Agrees" +msgstr[0] "eens" +msgstr[1] "eens" + +#: ../../include/conversation.php:1807 +msgctxt "noun" +msgid "Disagree" +msgid_plural "Disagrees" +msgstr[0] "oneens" +msgstr[1] "oneens" + +#: ../../include/conversation.php:1810 +msgctxt "noun" +msgid "Abstain" +msgid_plural "Abstains" +msgstr[0] "onthouding" +msgstr[1] "onthoudingen" + +#: ../../include/bbcode.php:134 ../../include/bbcode.php:962 +#: ../../include/bbcode.php:965 ../../include/bbcode.php:970 +#: ../../include/bbcode.php:973 ../../include/bbcode.php:976 +#: ../../include/bbcode.php:979 ../../include/bbcode.php:984 +#: ../../include/bbcode.php:987 ../../include/bbcode.php:992 +#: ../../include/bbcode.php:995 ../../include/bbcode.php:998 +#: ../../include/bbcode.php:1001 +msgid "Image/photo" +msgstr "Afbeelding/foto" + +#: ../../include/bbcode.php:173 ../../include/bbcode.php:1012 +msgid "Encrypted content" +msgstr "Versleutelde inhoud" + +#: ../../include/bbcode.php:189 +#, php-format +msgid "Install %s element: " +msgstr "Installeer %s-element: " + +#: ../../include/bbcode.php:193 +#, php-format +msgid "" +"This post contains an installable %s element, however you lack permissions " +"to install it on this site." +msgstr "Dit bericht heeft een te installeren %s-element, maar je hebt geen permissies om het op deze hub te installeren." + +#: ../../include/bbcode.php:272 +#, php-format +msgid "%1$s wrote the following %2$s %3$s" +msgstr "%1$s schreef het volgende %2$s %3$s" + +#: ../../include/bbcode.php:349 ../../include/bbcode.php:357 +msgid "Click to open/close" +msgstr "Klik om te openen of te sluiten" + +#: ../../include/bbcode.php:357 +msgid "spoiler" +msgstr "spoiler" + +#: ../../include/bbcode.php:950 +msgid "$1 wrote:" +msgstr "$1 schreef:" + +#: ../../util/nconfig.php:34 +msgid "Source channel not found." +msgstr "Bron van kanaal niet gevonden" #: ../../view/theme/redbasic/php/config.php:9 msgid "Focus (Hubzilla default)" @@ -10118,66 +13375,66 @@ msgstr "Grootte profielfoto's van berichten instellen" msgid "Set size of followup author photos" msgstr "Grootte profielfoto's van reacties instellen" -#: ../../boot.php:1195 +#: ../../boot.php:1176 #, php-format msgctxt "opensearch" msgid "Search %1$s (%2$s)" msgstr "Zoek %1$s (%2$s)" -#: ../../boot.php:1195 +#: ../../boot.php:1176 msgctxt "opensearch" msgid "$Projectname" msgstr "$Projectname" -#: ../../boot.php:1513 +#: ../../boot.php:1494 #, php-format msgid "Update %s failed. See error logs." msgstr "Update %s mislukt. Zie foutenlogboek." -#: ../../boot.php:1516 +#: ../../boot.php:1497 #, php-format msgid "Update Error at %s" msgstr "Update-fout op %s" -#: ../../boot.php:1720 +#: ../../boot.php:1701 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:1741 +#: ../../boot.php:1722 msgid "Login/Email" msgstr "E-mailadres of inlognaam" -#: ../../boot.php:1742 +#: ../../boot.php:1723 msgid "Password" msgstr "Wachtwoord" -#: ../../boot.php:1743 +#: ../../boot.php:1724 msgid "Remember me" msgstr "Aangemeld blijven" -#: ../../boot.php:1746 +#: ../../boot.php:1727 msgid "Forgot your password?" msgstr "Wachtwoord vergeten?" -#: ../../boot.php:2315 +#: ../../boot.php:2288 msgid "toggle mobile" msgstr "mobiele weergave omschakelen" -#: ../../boot.php:2470 +#: ../../boot.php:2443 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:2473 +#: ../../boot.php:2446 #, php-format msgid "[hubzilla] Website SSL error for %s" msgstr "[hubzilla] Probleem met SSL-certificaat voor %s" -#: ../../boot.php:2577 +#: ../../boot.php:2563 msgid "Cron/Scheduled tasks not running." msgstr "Cron is niet actief" -#: ../../boot.php:2581 +#: ../../boot.php:2567 #, 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 7d3ced9ff..c29146662 100644 --- a/view/nl/hstrings.php +++ b/view/nl/hstrings.php @@ -61,9 +61,8 @@ App::$strings["You are using %1\$s of %2\$s available file storage. (%3\$s%) App::$strings["WARNING:"] = "WAARSCHUWING:"; App::$strings["Create new folder"] = "Nieuwe map aanmaken"; App::$strings["Upload file"] = "Bestand uploaden"; -App::$strings["Drop files here to immediately upload"] = "Sleep bestanden hierheen om ze onmiddelijk te uploaden"; +App::$strings["Drop files here to immediately upload"] = "Sleep bestanden hierheen om ze onmiddellijk te uploaden"; App::$strings["Permission denied."] = "Toegang geweigerd."; -App::$strings["Not Found"] = "Niet gevonden"; App::$strings["Page not found."] = "Pagina niet gevonden."; App::$strings["Permission denied"] = "Toegang geweigerd"; App::$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."; @@ -72,117 +71,233 @@ App::$strings["Requested profile is not available."] = "Opgevraagd profiel is ni App::$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 kanalengids, om kanalen te vinden. Rechtsboven vind je ook apps, waar je vrijwel alle functies van \$Projectname kunt vinden. Voor hulp met \$Projectname klik je op het vraagteken."; App::$strings["Away"] = "Afwezig"; App::$strings["Online"] = "Online"; -App::$strings["No such group"] = "Collectie niet gevonden"; -App::$strings["No such channel"] = "Niet zo'n kanaal"; -App::$strings["forum"] = "forum"; -App::$strings["Search Results For:"] = "Zoekresultaten voor:"; -App::$strings["Privacy group is empty"] = "Privacygroep is leeg"; -App::$strings["Privacy group: "] = "Privacygroep: "; -App::$strings["Invalid connection."] = "Ongeldige connectie."; +App::$strings["Maximum daily site registrations exceeded. Please try again tomorrow."] = "Maximum toegestane dagelijkse registraties op deze \$Projectname-hub bereikt. Probeer het morgen (UTC) nogmaals."; +App::$strings["Please indicate acceptance of the Terms of Service. Registration failed."] = "Registratie mislukt. De gebruiksvoorwaarden dienen wel geaccepteerd te worden."; +App::$strings["Passwords do not match."] = "Wachtwoorden komen niet met elkaar overeen."; +App::$strings["Registration successful. Please check your email for validation instructions."] = "Registratie geslaagd. Controleer je e-mail voor instructies."; +App::$strings["Your registration is pending approval by the site owner."] = "Jouw accountregistratie wacht op goedkeuring van de beheerder van deze \$Projectname-hub."; +App::$strings["Your registration can not be processed."] = "Jouw registratie kan niet verwerkt worden."; +App::$strings["Registration on this hub is disabled."] = "Registreren van nieuwe accounts is op deze hub uitgeschakeld."; +App::$strings["Registration on this hub is by approval only."] = "Registraties op deze hub moeten eerst worden goedgekeurd."; +App::$strings["Register at another affiliated hub."] = "Registreer op een andere hub."; +App::$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."; +App::$strings["Terms of Service"] = "Gebruiksvoorwaarden"; +App::$strings["I accept the %s for this website"] = "Ik accepteer de %s van deze \$Projectname-hub"; +App::$strings["I am over 13 years of age and accept the %s for this website"] = "Ik ben 13 jaar of ouder en accepteer de %s van deze \$Projectname-hub"; +App::$strings["Your email address"] = "Jouw e-mailadres"; +App::$strings["Choose a password"] = "Geef een wachtwoord op"; +App::$strings["Please re-enter your password"] = "Geef het wachtwoord opnieuw op"; +App::$strings["Please enter your invitation code"] = "Vul jouw uitnodigingscode in"; +App::$strings["Name or caption"] = "Naam"; +App::$strings["Examples: \"Bob Jameson\", \"Lisa and her Horses\", \"Soccer\", \"Aviation Group\""] = "Voorbeelden: \"Jan Pietersen\", \"Willems weblog\", \"Computerforum\""; +App::$strings["Choose a short nickname"] = "Korte bijnaam"; +App::$strings["Your nickname will be used to create an easy to remember channel address e.g. nickname%s"] = "Deze bijnaam wordt gebruikt om een makkelijk te onthouden kanaaladres van jouw kanaal aan te maken, die je dan met anderen kunt delen. Bijvoorbeeld: bijnaam%s"; +App::$strings["Channel role and privacy"] = "Kanaaltype en privacy"; +App::$strings["Select a channel role with your privacy requirements."] = "Kies een kanaaltype met het door jou gewenste privacyniveau."; +App::$strings["Read more about roles"] = "Lees meer over kanaaltypes"; +App::$strings["no"] = "Nee"; +App::$strings["yes"] = "Ja"; +App::$strings["Registration"] = "Registratie"; +App::$strings["Membership on this site is by invitation only."] = "Registreren op deze \$Projectname-hub kan alleen op uitnodiging."; +App::$strings["Register"] = "Registreren"; +App::$strings["This site may require email verification after submitting this form. If you are returned to a login page, please check your email for instructions."] = "Mogelijk moet op deze hub eerst jouw e-mail geverifieerd worden. Wanneer je na het indienen van dit formulier op de inlogpagina terecht komt, dan dien je jouw e-mail te controleren voor instructies. Controleer eventueel ook jouw spamfolder."; App::$strings["Fetching URL returns error: %1\$s"] = "Ophalen URL gaf een foutmelding terug: %1\$s"; -App::$strings["network"] = "netwerk"; -App::$strings["RSS"] = "RSS"; -App::$strings["You must be logged in to see this page."] = "Je moet zijn ingelogd om deze pagina te kunnen bekijken."; -App::$strings["Posts and comments"] = "Berichten en reacties"; -App::$strings["Only posts"] = "Alleen berichten"; -App::$strings["Insufficient permissions. Request redirected to profile page."] = "Onvoldoende permissies. Doorgestuurd naar profielpagina."; -App::$strings["Your service plan only allows %d channels."] = "Jouw abonnement staat maar %d kanalen toe."; -App::$strings["Nothing to import."] = "Niets gevonden om te importeren"; -App::$strings["Unable to download data from old server"] = "Niet in staat om gegevens van de oude hub te downloaden"; -App::$strings["Imported file is empty."] = "Geïmporteerde bestand is leeg"; -App::$strings["Warning: Database versions differ by %1\$d updates."] = "Waarschuwing: database-versies lopen %1\$d updates achter."; -App::$strings["Cloned channel not found. Import failed."] = "Gekloond kanaal niet gevonden. Importeren mislukt."; -App::$strings["No channel. Import failed."] = "Geen kanaal. Importeren mislukt."; -App::$strings["Import completed."] = "Import voltooid."; -App::$strings["You must be logged in to use this feature."] = "Je moet ingelogd zijn om dit onderdeel te kunnen gebruiken."; -App::$strings["Import Channel"] = "Kanaal importeren"; -App::$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."; -App::$strings["File to Upload"] = "Bestand om te uploaden"; -App::$strings["Or provide the old server/hub details"] = "Of vul de gegevens van de oude hub in"; -App::$strings["Your old identity address (xyz@example.com)"] = "Jouw oude kanaaladres (xyz@example.com)"; -App::$strings["Your old login email address"] = "Het e-mailadres van je oude account"; -App::$strings["Your old login password"] = "Wachtwoord van jouw oude account"; -App::$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."; -App::$strings["Make this hub my primary location"] = "Stel deze hub als mijn primaire locatie in"; -App::$strings["Import existing posts if possible (experimental - limited by available memory"] = "Importeer bestaande berichten wanneer mogelijk (experimenteel - afhankelijk van beschikbaar servergeheugen)"; -App::$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."; +App::$strings["Profile Match"] = "Profielovereenkomst"; +App::$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."; +App::$strings["is interested in:"] = "is geïnteresseerd in:"; +App::$strings["Connect"] = "Verbinden"; +App::$strings["No matches"] = "Geen overeenkomsten"; +App::$strings["Could not access contact record."] = "Kon geen toegang krijgen tot de connectie-gegevens."; +App::$strings["Could not locate selected profile."] = "Kon het gekozen profiel niet vinden."; +App::$strings["Connection updated."] = "Connectie bijgewerkt."; +App::$strings["Failed to update connection record."] = "Bijwerken van connectie-gegevens mislukt."; +App::$strings["is now connected to"] = "is nu verbonden met"; +App::$strings["No"] = "Nee"; +App::$strings["Yes"] = "Ja"; +App::$strings["Could not access address book record."] = "Kon geen toegang krijgen tot de record van de connectie."; +App::$strings["Refresh failed - channel is currently unavailable."] = "Vernieuwen mislukt - kanaal is momenteel niet beschikbaar"; +App::$strings["Unable to set address book parameters."] = "Niet in staat om de parameters van connecties in te stellen."; +App::$strings["Connection has been removed."] = "Connectie is verwijderd"; +App::$strings["View Profile"] = "Profiel weergeven"; +App::$strings["View %s's profile"] = "Profiel van %s weergeven"; +App::$strings["Refresh Permissions"] = "Permissies vernieuwen"; +App::$strings["Fetch updated permissions"] = "Aangepaste permissies ophalen"; +App::$strings["Recent Activity"] = "Recente activiteit/berichten"; +App::$strings["View recent posts and comments"] = "Recente berichten en reacties weergeven"; +App::$strings["Unblock"] = "Deblokkeren"; +App::$strings["Block"] = "Blokkeren"; +App::$strings["Block (or Unblock) all communications with this connection"] = "Blokkeer (of deblokkeer) alle communicatie met deze connectie"; +App::$strings["This connection is blocked!"] = "Deze connectie is geblokkeerd!"; +App::$strings["Unignore"] = "Niet meer negeren"; +App::$strings["Ignore"] = "Negeren"; +App::$strings["Ignore (or Unignore) all inbound communications from this connection"] = "Negeer (of negeer niet meer) alle inkomende communicatie van deze connectie"; +App::$strings["This connection is ignored!"] = "Deze connectie wordt genegeerd!"; +App::$strings["Unarchive"] = "Niet meer archiveren"; +App::$strings["Archive"] = "Archiveren"; +App::$strings["Archive (or Unarchive) this connection - mark channel dead but keep content"] = "Archiveer (of dearchiveer) deze connectie - markeer het kanaal als dood, maar bewaar de inhoud"; +App::$strings["This connection is archived!"] = "Deze connectie is gearchiveerd!"; +App::$strings["Unhide"] = "Niet meer verbergen"; +App::$strings["Hide"] = "Verbergen"; +App::$strings["Hide or Unhide this connection from your other connections"] = "Deze connectie verbergen (of niet meer verbergen) voor jouw andere connecties"; +App::$strings["This connection is hidden!"] = "Deze connectie is verborgen!"; +App::$strings["Delete this connection"] = "Deze connectie verwijderen"; +App::$strings["Me"] = "Ik"; +App::$strings["Family"] = "Familie"; +App::$strings["Friends"] = "Vrienden"; +App::$strings["Acquaintances"] = "Kennissen"; +App::$strings["All"] = "Alles"; +App::$strings["Approve this connection"] = "Deze connectie accepteren"; +App::$strings["Accept connection to allow communication"] = "Keur deze connectie goed om communicatie toe te staan"; +App::$strings["Set Affinity"] = "Verwantschapsfilter instellen"; +App::$strings["Set Profile"] = "Profiel instellen"; +App::$strings["Set Affinity & Profile"] = "Verwantschapsfilter en profiel instellen"; +App::$strings["none"] = "geen"; +App::$strings["Connection Default Permissions"] = "Standaard permissies voor connecties"; +App::$strings["Connection: %s"] = "Connectie: %s"; +App::$strings["Apply these permissions automatically"] = "Deze permissies automatisch toepassen"; +App::$strings["Connection requests will be approved without your interaction"] = "Connectieverzoeken zullen automatisch worden geaccepteerd"; +App::$strings["This connection's primary address is"] = "Het primaire kanaaladres van deze connectie is"; +App::$strings["Available locations:"] = "Beschikbare locaties:"; +App::$strings["The permissions indicated on this page will be applied to all new connections."] = "Permissies die op deze pagina staan vermeld worden op alle nieuwe connecties toegepast."; +App::$strings["Connection Tools"] = "Hulpmiddelen"; +App::$strings["Slide to adjust your degree of friendship"] = "Schuif om te bepalen hoe goed je iemand kent en/of mag"; +App::$strings["Rating"] = "Beoordeling"; +App::$strings["Slide to adjust your rating"] = "Gebruik de schuif om je beoordeling te geven"; +App::$strings["Optionally explain your rating"] = "Verklaar jouw beoordeling (niet verplicht)"; +App::$strings["Custom Filter"] = "Berichtenfilter"; +App::$strings["Only import posts with this text"] = "Importeer alleen berichten met deze tekst"; +App::$strings["words one per line or #tags or /patterns/ or lang=xx, leave blank to import all posts"] = "woorden (één per regel), #tags, /regex/ of talen (lang=iso639-1) - laat leeg om alle berichten te importeren"; +App::$strings["Do not import posts with this text"] = "Importeer geen berichten met deze tekst"; +App::$strings["This information is public!"] = "Deze informatie is openbaar!"; +App::$strings["Connection Pending Approval"] = "Connectie moet nog geaccepteerd worden"; +App::$strings["inherited"] = "geërfd"; App::$strings["Submit"] = "Opslaan"; +App::$strings["Please choose the profile you would like to display to %s when viewing your profile securely."] = "Kies het profiel dat je aan %s wil tonen wanneer hij/zij ingelogd jouw profiel wil bekijken."; +App::$strings["Their Settings"] = "Hun instellingen"; +App::$strings["My Settings"] = "Mijn instellingen"; +App::$strings["Individual Permissions"] = "Individuele permissies"; +App::$strings["Some permissions may be inherited from your channel's privacy settings, which have higher priority than individual settings. You can not change those settings here."] = "Sommige permissies worden mogelijk overgeërfd van de privacy-instellingen van jouw kanaal, die een hogere prioriteit hebben dan deze individuele instellingen. Je kan je deze overgeërfde permissies hier niet veranderen."; +App::$strings["Some permissions may be inherited from your channel's privacy settings, 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 privacy-instellingen 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. "; +App::$strings["Last update:"] = "Laatste wijziging:"; +App::$strings["Invalid message"] = "Ongeldig bericht"; +App::$strings["no results"] = "geen resultaten"; +App::$strings["channel sync processed"] = "kanaalsync verwerkt"; +App::$strings["queued"] = "in wachtrij"; +App::$strings["posted"] = "verstuurd"; +App::$strings["accepted for delivery"] = "geaccepteerd om afgeleverd te worden"; +App::$strings["updated"] = "geüpdatet"; +App::$strings["update ignored"] = "update genegeerd"; +App::$strings["permission denied"] = "toegang geweigerd"; +App::$strings["recipient not found"] = "ontvanger niet gevonden"; +App::$strings["mail recalled"] = "Privébericht ingetrokken"; +App::$strings["duplicate mail received"] = "dubbel privébericht ontvangen"; +App::$strings["mail delivered"] = "privébericht afgeleverd"; +App::$strings["Delivery report for %1\$s"] = "Afleveringsrapport voor %1\$s"; +App::$strings["Options"] = "Opties"; +App::$strings["Redeliver"] = "Opnieuw afleveren"; App::$strings["Bookmark added"] = "Bladwijzer toegevoegd"; App::$strings["My Bookmarks"] = "Mijn bladwijzers"; App::$strings["My Connections Bookmarks"] = "Bladwijzers van mijn connecties"; -App::$strings["%s account blocked/unblocked"] = array( - 0 => "%s account geblokkeerd/gedeblokkeerd", - 1 => "%s accounts geblokkeerd/gedeblokkeerd", -); -App::$strings["%s account deleted"] = array( - 0 => "%s account verwijderd", - 1 => "%s accounts verwijderd", -); -App::$strings["Account not found"] = "Account niet gevonden"; -App::$strings["Account '%s' deleted"] = "Account '%s' verwijderd"; -App::$strings["Account '%s' blocked"] = "Account '%s' geblokkeerd"; -App::$strings["Account '%s' unblocked"] = "Account '%s' gedeblokkeerd"; -App::$strings["Administration"] = "Beheer"; -App::$strings["Accounts"] = "Accounts"; -App::$strings["select all"] = "alles selecteren"; -App::$strings["Registrations waiting for confirm"] = "Accounts die op goedkeuring wachten"; -App::$strings["Request date"] = "Tijd/datum verzoek"; -App::$strings["Email"] = "E-mail"; -App::$strings["No registrations."] = "Geen verzoeken."; +App::$strings["network"] = "netwerk"; +App::$strings["RSS"] = "RSS"; +App::$strings["Location not found."] = "Locatie niet gevonden."; +App::$strings["Location lookup failed."] = "Opzoeken locatie mislukt"; +App::$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."; +App::$strings["Syncing locations"] = "Locaties synchronizeren"; +App::$strings["No locations found."] = "Geen locaties gevonden."; +App::$strings["Manage Channel Locations"] = "Kanaallocaties beheren"; +App::$strings["Location"] = "Locatie"; +App::$strings["Address"] = "Adres"; +App::$strings["Primary"] = "Primair"; +App::$strings["Drop"] = "Verwijderen"; +App::$strings["Sync Now"] = "Nu synchroniseren"; +App::$strings["Please wait several minutes between consecutive operations."] = "Wacht enkele minuten tussen opeenvolgende handelingen."; +App::$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."; +App::$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."; +App::$strings["Continue"] = "Ga verder"; +App::$strings["Premium Channel Setup"] = "Instellen premiumkanaal "; +App::$strings["Enable premium channel connection restrictions"] = "Restricties voor connecties van premiumkanaal toestaan"; +App::$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."; +App::$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:"; +App::$strings["Potential connections will then see the following text before proceeding:"] = "Mogelijke connecties zullen dan de volgende tekst zien voordat ze verder kunnen:"; +App::$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."; +App::$strings["(No specific instructions have been provided by the channel owner.)"] = "(Er zijn geen speciale voorwaarden en aanwijzingen door de kanaal-eigenaar verstrekt) "; +App::$strings["Restricted or Premium Channel"] = "Beperkt of premiumkanaal"; +App::$strings["Invalid item."] = "Ongeldig item."; +App::$strings["Channel not found."] = "Kanaal niet gevonden."; +App::$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."; +App::$strings["Save to Folder:"] = "Bewaar in map: "; +App::$strings["- select -"] = "- kies map -"; +App::$strings["Save"] = "Opslaan"; +App::$strings["You have created %1$.0f of %2$.0f allowed channels."] = "Je hebt %1$.0f van totaal %2$.0f toegestane kanalen aangemaakt."; +App::$strings["Create a new channel"] = "Nieuw kanaal aanmaken"; +App::$strings["Create New"] = "Nieuwe aanmaken"; +App::$strings["Channel Manager"] = "Kanaalbeheer"; +App::$strings["Current Channel"] = "Huidig kanaal"; +App::$strings["Switch to one of your channels by selecting it."] = "Activeer een van jouw andere kanalen door er op te klikken."; +App::$strings["Default Channel"] = "Standaardkanaal"; +App::$strings["Make Default"] = "Als standaard instellen"; +App::$strings["%d new messages"] = "%d nieuwe berichten"; +App::$strings["%d new introductions"] = "%d nieuwe connectieverzoeken"; +App::$strings["Delegated Channel"] = "Uitbesteed kanaal"; +App::$strings["Blocked"] = "Geblokkeerd"; +App::$strings["Ignored"] = "Genegeerd"; +App::$strings["Hidden"] = "Verborgen"; +App::$strings["Archived"] = "Gearchiveerd"; +App::$strings["New"] = "Nieuw"; +App::$strings["New Connections"] = "Nieuwe connecties"; +App::$strings["Show pending (new) connections"] = "Nog te accepteren (nieuwe) connecties weergeven"; +App::$strings["All Connections"] = "Alle connecties"; +App::$strings["Show all connections"] = "Toon alle connecties"; +App::$strings["Only show blocked connections"] = "Toon alleen geblokkeerde connecties"; +App::$strings["Only show ignored connections"] = "Toon alleen genegeerde connecties"; +App::$strings["Only show archived connections"] = "Toon alleen gearchiveerde connecties"; +App::$strings["Only show hidden connections"] = "Toon alleen verborgen connecties"; +App::$strings["Pending approval"] = "Moet nog geaccepteerd worden"; +App::$strings["%1\$s [%2\$s]"] = "%1\$s [%2\$s]"; +App::$strings["Edit connection"] = "Connectie bewerken"; +App::$strings["Delete connection"] = "Connectie verwijderen"; +App::$strings["Channel address"] = "Kanaaladres"; +App::$strings["Network"] = "Netwerk"; +App::$strings["Status"] = "Status"; +App::$strings["Connected"] = "Verbonden"; +App::$strings["Approve connection"] = "Connectie accepteren"; App::$strings["Approve"] = "Goedkeuren"; -App::$strings["Deny"] = "Afkeuren"; -App::$strings["Block"] = "Blokkeren"; -App::$strings["Unblock"] = "Deblokkeren"; -App::$strings["ID"] = "ID"; -App::$strings["All Channels"] = "Alle kanalen"; -App::$strings["Register date"] = "Geregistreerd"; -App::$strings["Last login"] = "Laatste keer ingelogd"; -App::$strings["Expires"] = "Verloopt"; -App::$strings["Service Class"] = "Abonnementen"; -App::$strings["Selected accounts will be deleted!\\n\\nEverything these accounts had posted on this site will be permanently deleted!\\n\\nAre you sure?"] = "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?"; -App::$strings["The account {0} will be deleted!\\n\\nEverything this account has posted on this site will be permanently deleted!\\n\\nAre you sure?"] = "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?"; -App::$strings["%s channel censored/uncensored"] = array( - 0 => "%s kanaal gecensureerd/ongecensureerd", - 1 => "%s kanalen gecensureerd/ongecensureerd", -); -App::$strings["%s channel code allowed/disallowed"] = array( - 0 => "Scripts toegestaan/niet toegestaan voor %s kanaal", - 1 => "Scripts toegestaan/niet toegestaan voor %s kanalen", -); -App::$strings["%s channel deleted"] = array( - 0 => "%s kanaal verwijderd", - 1 => "%s kanalen verwijderd", -); -App::$strings["Channel not found"] = "Kanaal niet gevonden"; -App::$strings["Channel '%s' deleted"] = "Kanaal '%s' verwijderd"; -App::$strings["Channel '%s' censored"] = "Kanaal '%s' gecensureerd"; -App::$strings["Channel '%s' uncensored"] = "Kanaal '%s' ongecensureerd"; -App::$strings["Channel '%s' code allowed"] = "Scripts toegestaan voor kanaal '%s'"; -App::$strings["Channel '%s' code disallowed"] = "Scripts niet toegestaan voor kanaal '%s'"; -App::$strings["Channels"] = "Kanalen"; -App::$strings["Censor"] = "Censureren"; -App::$strings["Uncensor"] = "Niet censureren"; -App::$strings["Allow Code"] = "Scripts toestaan"; -App::$strings["Disallow Code"] = "Scripts niet toestaan"; -App::$strings["Channel"] = "Kanaal"; -App::$strings["UID"] = "UID"; -App::$strings["Address"] = "Kanaaladres"; -App::$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?"; -App::$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?"; -App::$strings["Update has been marked successful"] = "Update is als succesvol gemarkeerd"; -App::$strings["Executing %s failed. Check system logs."] = "Uitvoeren van %s is mislukt. Controleer systeemlogboek."; -App::$strings["Update %s was successfully applied."] = "Update %s was geslaagd."; -App::$strings["Update %s did not return a status. Unknown if it succeeded."] = "Update %s gaf geen melding. Het is daarom niet bekend of deze geslaagd is."; -App::$strings["Update function %s could not be found."] = "Update-functie %s kon niet gevonden worden."; -App::$strings["No failed updates."] = "Geen mislukte updates."; -App::$strings["Failed Updates"] = "Mislukte updates"; -App::$strings["Mark success (if update was manually applied)"] = "Markeer als geslaagd (wanneer de update handmatig was uitgevoerd)"; -App::$strings["Attempt to execute this update step automatically"] = "Poging om deze stap van de update automatisch uit te voeren."; +App::$strings["Ignore connection"] = "Connectie negeren"; +App::$strings["Recent activity"] = "Recente activiteit"; +App::$strings["Connections"] = "Connecties"; +App::$strings["Search"] = "Zoeken"; +App::$strings["Search your connections"] = "Doorzoek jouw connecties"; +App::$strings["Connections search"] = "Connecties zoeken"; +App::$strings["Find"] = "Vinden"; +App::$strings["Image uploaded but image cropping failed."] = "Afbeelding geüpload, maar afbeelding kon niet worden bijgesneden. "; +App::$strings["Cover Photos"] = "Omslagfoto's"; +App::$strings["Image resize failed."] = "Afbeelding kon niet van grootte veranderd worden."; +App::$strings["Unable to process image"] = "Afbeelding kan niet verwerkt worden"; +App::$strings["Image upload failed."] = "Uploaden afbeelding mislukt"; +App::$strings["Unable to process image."] = "Niet in staat om afbeelding te verwerken."; +App::$strings["female"] = "vrouw"; +App::$strings["%1\$s updated her %2\$s"] = "%1\$s heeft haar %2\$s bijgewerkt"; +App::$strings["male"] = "man"; +App::$strings["%1\$s updated his %2\$s"] = "%1\$s heeft zijn %2\$s bijgewerkt"; +App::$strings["%1\$s updated their %2\$s"] = "De %2\$s van %1\$s is bijgewerkt"; +App::$strings["cover photo"] = "omslagfoto"; +App::$strings["Photo not available."] = "Foto niet beschikbaar."; +App::$strings["Upload File:"] = "Bestand uploaden:"; +App::$strings["Select a profile:"] = "Kies een profiel:"; +App::$strings["Upload Cover Photo"] = "Omslagfoto uploaden"; +App::$strings["or"] = "of"; +App::$strings["skip this step"] = "sla deze stap over"; +App::$strings["select a photo from your photo albums"] = "Kies een foto uit jouw fotoalbums"; +App::$strings["Crop Image"] = "Afbeelding bijsnijden"; +App::$strings["Please adjust the image cropping for optimum viewing."] = "Snij de afbeelding zo uit dat deze optimaal wordt weergegeven."; +App::$strings["Done Editing"] = "Klaar met bewerken"; App::$strings["Off"] = "Uit"; App::$strings["On"] = "Aan"; App::$strings["Lock feature %s"] = " Vergrendel de functie '%s'"; App::$strings["Manage Additional Features"] = "Beheer - Extra functies"; App::$strings["Log settings updated."] = "Logboek-instellingen bijgewerkt."; +App::$strings["Administration"] = "Beheer"; App::$strings["Logs"] = "Logboeken"; App::$strings["Clear"] = "Leegmaken"; App::$strings["Debugging"] = "Debuggen"; @@ -227,7 +342,6 @@ App::$strings["Field Name"] = "Veldnaam"; App::$strings["Label on profile pages"] = "Tekstlabel voor op profielpagina's"; App::$strings["Help text"] = "Helptekst"; App::$strings["Additional info (optional)"] = "Extra informatie (optioneel)"; -App::$strings["Save"] = "Opslaan"; App::$strings["Field definition not found"] = "Velddefinitie niet gevonden"; App::$strings["Edit Profile Field"] = "Profielveld bewerken"; App::$strings["Profile Fields"] = "Profielvelden"; @@ -267,6 +381,84 @@ App::$strings["Only allow embeds from secure (SSL) websites and links."] = "Alle App::$strings["Allow unfiltered embedded HTML content only from these domains"] = "Alleen ongefilterde ingesloten (embedded) HTML van deze websites toestaan"; App::$strings["One site per line. By default embedded content is filtered."] = "Eén website per regel. Standaard wordt ingesloten (embedded) inhoud gefilterd."; App::$strings["Block embedded HTML from these domains"] = "Ingesloten (embedded) HTML vanaf deze domeinen blokkeren"; +App::$strings["Theme settings updated."] = "Thema-instellingen bijgewerkt."; +App::$strings["No themes found."] = "Geen thema's gevonden"; +App::$strings["Screenshot"] = "Schermafdruk"; +App::$strings["Themes"] = "Thema's"; +App::$strings["[Experimental]"] = "[Experimenteel]"; +App::$strings["[Unsupported]"] = "[Niet ondersteund]"; +App::$strings["Password changed for account %d."] = "Wachtwoord veranderd voor account %d."; +App::$strings["Account settings updated."] = "Account-instellingen bijgewerkt."; +App::$strings["Account not found."] = "Account niet gevonden."; +App::$strings["Account Edit"] = "Account bewerken"; +App::$strings["New Password"] = "Nieuw wachtwoord"; +App::$strings["New Password again"] = "Nieuw wachtwoord bevestigen"; +App::$strings["Technical skill level"] = "Technisch niveau"; +App::$strings["Account language (for emails)"] = "Taal van account (voor e-mails)"; +App::$strings["Service class"] = "Abonnement"; +App::$strings["%s account blocked/unblocked"] = array( + 0 => "%s account geblokkeerd/gedeblokkeerd", + 1 => "%s accounts geblokkeerd/gedeblokkeerd", +); +App::$strings["%s account deleted"] = array( + 0 => "%s account verwijderd", + 1 => "%s accounts verwijderd", +); +App::$strings["Account not found"] = "Account niet gevonden"; +App::$strings["Account '%s' deleted"] = "Account '%s' verwijderd"; +App::$strings["Account '%s' blocked"] = "Account '%s' geblokkeerd"; +App::$strings["Account '%s' unblocked"] = "Account '%s' gedeblokkeerd"; +App::$strings["Accounts"] = "Accounts"; +App::$strings["select all"] = "alles selecteren"; +App::$strings["Registrations waiting for confirm"] = "Accounts die op goedkeuring wachten"; +App::$strings["Request date"] = "Tijd/datum verzoek"; +App::$strings["Email"] = "E-mail"; +App::$strings["No registrations."] = "Geen verzoeken."; +App::$strings["Deny"] = "Afkeuren"; +App::$strings["ID"] = "ID"; +App::$strings["All Channels"] = "Alle kanalen"; +App::$strings["Register date"] = "Geregistreerd"; +App::$strings["Last login"] = "Laatste keer ingelogd"; +App::$strings["Expires"] = "Verloopt"; +App::$strings["Service Class"] = "Abonnement"; +App::$strings["Selected accounts will be deleted!\\n\\nEverything these accounts had posted on this site will be permanently deleted!\\n\\nAre you sure?"] = "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?"; +App::$strings["The account {0} will be deleted!\\n\\nEverything this account has posted on this site will be permanently deleted!\\n\\nAre you sure?"] = "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?"; +App::$strings["%s channel censored/uncensored"] = array( + 0 => "%s kanaal gecensureerd/ongecensureerd", + 1 => "%s kanalen gecensureerd/ongecensureerd", +); +App::$strings["%s channel code allowed/disallowed"] = array( + 0 => "Scripts toegestaan/niet toegestaan voor %s kanaal", + 1 => "Scripts toegestaan/niet toegestaan voor %s kanalen", +); +App::$strings["%s channel deleted"] = array( + 0 => "%s kanaal verwijderd", + 1 => "%s kanalen verwijderd", +); +App::$strings["Channel not found"] = "Kanaal niet gevonden"; +App::$strings["Channel '%s' deleted"] = "Kanaal '%s' verwijderd"; +App::$strings["Channel '%s' censored"] = "Kanaal '%s' gecensureerd"; +App::$strings["Channel '%s' uncensored"] = "Kanaal '%s' ongecensureerd"; +App::$strings["Channel '%s' code allowed"] = "Scripts toegestaan voor kanaal '%s'"; +App::$strings["Channel '%s' code disallowed"] = "Scripts niet toegestaan voor kanaal '%s'"; +App::$strings["Channels"] = "Kanalen"; +App::$strings["Censor"] = "Censureren"; +App::$strings["Uncensor"] = "Niet censureren"; +App::$strings["Allow Code"] = "Scripts toestaan"; +App::$strings["Disallow Code"] = "Scripts niet toestaan"; +App::$strings["Channel"] = "Kanaal"; +App::$strings["UID"] = "UID"; +App::$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?"; +App::$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?"; +App::$strings["Update has been marked successful"] = "Update is als succesvol gemarkeerd"; +App::$strings["Executing %s failed. Check system logs."] = "Uitvoeren van %s is mislukt. Controleer systeemlogboek."; +App::$strings["Update %s was successfully applied."] = "Update %s was geslaagd."; +App::$strings["Update %s did not return a status. Unknown if it succeeded."] = "Update %s gaf geen melding. Het is daarom niet bekend of deze geslaagd is."; +App::$strings["Update function %s could not be found."] = "Update-functie %s kon niet gevonden worden."; +App::$strings["No failed updates."] = "Geen mislukte updates."; +App::$strings["Failed Updates"] = "Mislukte updates"; +App::$strings["Mark success (if update was manually applied)"] = "Markeer als geslaagd (wanneer de update handmatig was uitgevoerd)"; +App::$strings["Attempt to execute this update step automatically"] = "Poging om deze stap van de update automatisch uit te voeren."; App::$strings["Site settings updated."] = "Hub-instellingen bijgewerkt."; App::$strings["Default"] = "Standaard"; App::$strings["mobile"] = "mobiel"; @@ -293,7 +485,7 @@ App::$strings["Registration"] = "Registratie"; App::$strings["File upload"] = "Bestand uploaden"; App::$strings["Policies"] = "Beleid"; App::$strings["Advanced"] = "Geavanceerd"; -App::$strings["Site name"] = "Naam van deze \$Projectname-hub"; +App::$strings["Site name"] = "Hubnaam"; App::$strings["Server Configuration/Role"] = "Configuratietype hub"; App::$strings["Site default technical skill level"] = "Standaard technisch niveau voor deze hub"; App::$strings["Used to provide a member experience matched to technical comfort level"] = "Wordt gebruikt om leden een gebruikerservaring te bieden die met hun technisch niveau overeenkomt"; @@ -302,6 +494,8 @@ App::$strings["Members can set their own technical comfort level by default"] = App::$strings["Banner/Logo"] = "Banner/logo"; App::$strings["Administrator Information"] = "Informatie over de beheerder"; App::$strings["Contact information for site administrators. Displayed on siteinfo page. BBCode can be used here"] = "Contactinformatie voor hub-beheerders. Getoond op pagina met hub-informatie. Er kan hier bbcode gebruikt worden."; +App::$strings["Site Information"] = "Hub-informatie"; +App::$strings["Publicly visible description of this site. Displayed on siteinfo page. BBCode can be used here"] = "Openbaar zichtbare beschrijving van deze hub. Getoond op pagina met hub-informatie. Er kan hier bbcode gebruikt worden."; App::$strings["System language"] = "Standaardtaal"; App::$strings["System theme"] = "Standaardthema"; App::$strings["Default system theme - may be over-ridden by user profiles - change theme settings"] = "Standaardthema voor \$Projectname-hub (kan door lid veranderd worden) - verander thema-instellingen"; @@ -351,173 +545,35 @@ App::$strings["Maximum Load Average"] = "Maximaal gemiddelde systeembelasting"; App::$strings["Maximum system load before delivery and poll processes are deferred - default 50."] = "Maximale systeembelasting voordat de afleverings- en polllingsprocessen worden uitgesteld. Standaard is 50."; App::$strings["Expiration period in days for imported (grid/network) content"] = "Aantal dagen waarna geïmporteerde inhoud uit iemands grid/netwerk-pagina wordt verwijderd."; App::$strings["0 for no expiration of imported content"] = "Dit geldt alleen voor inhoud van andere kanalen, dus niet voor iemands eigen kanaal. 0 voor het niet verwijderen van geïmporteerde inhoud."; -App::$strings["Theme settings updated."] = "Thema-instellingen bijgewerkt."; -App::$strings["No themes found."] = "Geen thema's gevonden"; -App::$strings["Screenshot"] = "Schermafdruk"; -App::$strings["Themes"] = "Thema's"; -App::$strings["[Experimental]"] = "[Experimenteel]"; -App::$strings["[Unsupported]"] = "[Niet ondersteund]"; -App::$strings["Photos"] = "Foto's"; -App::$strings["Invalid item."] = "Ongeldig item."; -App::$strings["Channel not found."] = "Kanaal niet gevonden."; -App::$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."; -App::$strings["Save to Folder:"] = "Bewaar in map: "; -App::$strings["- select -"] = "- kies map -"; -App::$strings["Unable to lookup recipient."] = "Niet in staat om ontvanger op te zoeken."; -App::$strings["Unable to communicate with requested channel."] = "Niet in staat om met het aangevraagde kanaal te communiceren."; -App::$strings["Cannot verify requested channel."] = "Kan opgevraagd kanaal niet verifieren"; -App::$strings["Selected channel has private message restrictions. Send failed."] = "Gekozen kanaal heeft restricties voor privéberichten. Verzenden mislukt."; -App::$strings["Messages"] = "Berichten"; -App::$strings["Message recalled."] = "Bericht ingetrokken."; -App::$strings["Conversation removed."] = "Conversatie verwijderd"; -App::$strings["Please enter a link URL:"] = "Vul een URL in:"; -App::$strings["Expires YYYY-MM-DD HH:MM"] = "Verloopt op DD-MM-YYYY om HH:MM"; -App::$strings["Requested channel is not in this network"] = "Opgevraagd kanaal is niet in dit netwerk beschikbaar"; -App::$strings["Send Private Message"] = "Privébericht versturen"; -App::$strings["To:"] = "Aan:"; -App::$strings["Subject:"] = "Onderwerp:"; -App::$strings["Your message:"] = "Jouw bericht:"; -App::$strings["Attach file"] = "Bestand toevoegen"; -App::$strings["Insert web link"] = "Weblink invoegen"; -App::$strings["Send"] = "Verzenden"; -App::$strings["Set expiration date"] = "Verloopdatum instellen"; -App::$strings["Encrypt text"] = "Tekst versleutelen"; -App::$strings["Delete message"] = "Bericht verwijderen"; -App::$strings["Delivery report"] = "Afleveringsrapport"; -App::$strings["Recall message"] = "Bericht intrekken"; -App::$strings["Message has been recalled."] = "Bericht is ingetrokken."; -App::$strings["Delete Conversation"] = "Verwijder conversatie"; -App::$strings["No secure communications available. You may be able to respond from the sender's profile page."] = "Geen veilige communicatie beschikbaar. Mogelijk kan je reageren op de kanaalpagina van de afzender."; -App::$strings["Send Reply"] = "Antwoord versturen"; -App::$strings["Your message for %s (%s):"] = "Jouw privébericht aan %s (%s):"; -App::$strings["Blocked"] = "Geblokkeerd"; -App::$strings["Ignored"] = "Genegeerd"; -App::$strings["Hidden"] = "Verborgen"; -App::$strings["Archived"] = "Gearchiveerd"; -App::$strings["New"] = "Nieuw"; -App::$strings["All"] = "Alles"; -App::$strings["New Connections"] = "Nieuwe connecties"; -App::$strings["Show pending (new) connections"] = "Nog te accepteren (nieuwe) connecties weergeven"; -App::$strings["All Connections"] = "Alle connecties"; -App::$strings["Show all connections"] = "Toon alle connecties"; -App::$strings["Only show blocked connections"] = "Toon alleen geblokkeerde connecties"; -App::$strings["Only show ignored connections"] = "Toon alleen genegeerde connecties"; -App::$strings["Only show archived connections"] = "Toon alleen gearchiveerde connecties"; -App::$strings["Only show hidden connections"] = "Toon alleen verborgen connecties"; -App::$strings["Pending approval"] = "Moet nog geaccepteerd worden"; -App::$strings["%1\$s [%2\$s]"] = "%1\$s [%2\$s]"; -App::$strings["Edit connection"] = "Connectie bewerken"; -App::$strings["Delete connection"] = "Connectie verwijderen"; -App::$strings["Channel address"] = "Kanaaladres"; -App::$strings["Network"] = "Netwerk"; -App::$strings["Status"] = "Status"; -App::$strings["Connected"] = "Verbonden"; -App::$strings["Approve connection"] = "Connectie accepteren"; -App::$strings["Ignore connection"] = "Connectie negeren"; -App::$strings["Ignore"] = "Negeren"; -App::$strings["Recent activity"] = "Recente activiteit"; -App::$strings["Connections"] = "Connecties"; -App::$strings["Search"] = "Zoeken"; -App::$strings["Search your connections"] = "Doorzoek jouw connecties"; -App::$strings["Connections search"] = "Connecties zoeken"; -App::$strings["Find"] = "Vinden"; -App::$strings["Image uploaded but image cropping failed."] = "Afbeelding geüpload, maar afbeelding kon niet worden bijgesneden. "; -App::$strings["Cover Photos"] = "Omslagfoto's"; -App::$strings["Image resize failed."] = "Afbeelding kon niet van grootte veranderd worden."; -App::$strings["Unable to process image"] = "Afbeelding kan niet verwerkt worden"; -App::$strings["Image upload failed."] = "Uploaden afbeelding mislukt"; -App::$strings["Unable to process image."] = "Niet in staat om afbeelding te verwerken."; -App::$strings["female"] = "vrouw"; -App::$strings["%1\$s updated her %2\$s"] = "%1\$s heeft haar %2\$s bijgewerkt"; -App::$strings["male"] = "man"; -App::$strings["%1\$s updated his %2\$s"] = "%1\$s heeft zijn %2\$s bijgewerkt"; -App::$strings["%1\$s updated their %2\$s"] = "De %2\$s van %1\$s is bijgewerkt"; -App::$strings["cover photo"] = "omslagfoto"; -App::$strings["Photo not available."] = "Foto niet beschikbaar."; -App::$strings["Upload File:"] = "Bestand uploaden:"; -App::$strings["Select a profile:"] = "Kies een profiel:"; -App::$strings["Upload Cover Photo"] = "Omslagfoto uploaden"; -App::$strings["or"] = "of"; -App::$strings["skip this step"] = "sla deze stap over"; -App::$strings["select a photo from your photo albums"] = "Kies een foto uit jouw fotoalbums"; -App::$strings["Crop Image"] = "Afbeelding bijsnijden"; -App::$strings["Please adjust the image cropping for optimum viewing."] = "Snij de afbeelding zo uit dat deze optimaal wordt weergegeven."; -App::$strings["Done Editing"] = "Klaar met bewerken"; -App::$strings["Edit post"] = "Bericht bewerken"; -App::$strings["Could not access contact record."] = "Kon geen toegang krijgen tot de connectie-gegevens."; -App::$strings["Could not locate selected profile."] = "Kon het gekozen profiel niet vinden."; -App::$strings["Connection updated."] = "Connectie bijgewerkt."; -App::$strings["Failed to update connection record."] = "Bijwerken van connectie-gegevens mislukt."; -App::$strings["is now connected to"] = "is nu verbonden met"; -App::$strings["Could not access address book record."] = "Kon geen toegang krijgen tot de record van de connectie."; -App::$strings["Refresh failed - channel is currently unavailable."] = "Vernieuwen mislukt - kanaal is momenteel niet beschikbaar"; -App::$strings["Unable to set address book parameters."] = "Niet in staat om de parameters van connecties in te stellen."; -App::$strings["Connection has been removed."] = "Connectie is verwijderd"; -App::$strings["View Profile"] = "Profiel weergeven"; -App::$strings["View %s's profile"] = "Profiel van %s weergeven"; -App::$strings["Refresh Permissions"] = "Permissies vernieuwen"; -App::$strings["Fetch updated permissions"] = "Aangepaste permissies ophalen"; -App::$strings["Recent Activity"] = "Recente activiteit/berichten"; -App::$strings["View recent posts and comments"] = "Recente berichten en reacties weergeven"; -App::$strings["Block (or Unblock) all communications with this connection"] = "Blokkeer (of deblokkeer) alle communicatie met deze connectie"; -App::$strings["This connection is blocked!"] = "Deze connectie is geblokkeerd!"; -App::$strings["Unignore"] = "Niet meer negeren"; -App::$strings["Ignore (or Unignore) all inbound communications from this connection"] = "Negeer (of negeer niet meer) alle inkomende communicatie van deze connectie"; -App::$strings["This connection is ignored!"] = "Deze connectie wordt genegeerd!"; -App::$strings["Unarchive"] = "Niet meer archiveren"; -App::$strings["Archive"] = "Archiveren"; -App::$strings["Archive (or Unarchive) this connection - mark channel dead but keep content"] = "Archiveer (of dearchiveer) deze connectie - markeer het kanaal als dood, maar bewaar de inhoud"; -App::$strings["This connection is archived!"] = "Deze connectie is gearchiveerd!"; -App::$strings["Unhide"] = "Niet meer verbergen"; -App::$strings["Hide"] = "Verbergen"; -App::$strings["Hide or Unhide this connection from your other connections"] = "Deze connectie verbergen (of niet meer verbergen) voor jouw andere connecties"; -App::$strings["This connection is hidden!"] = "Deze connectie is verborgen!"; -App::$strings["Delete this connection"] = "Deze connectie verwijderen"; -App::$strings["Me"] = "Ik"; -App::$strings["Family"] = "Familie"; -App::$strings["Friends"] = "Vrienden"; -App::$strings["Acquaintances"] = "Kennissen"; -App::$strings["Approve this connection"] = "Deze connectie accepteren"; -App::$strings["Accept connection to allow communication"] = "Keur deze connectie goed om communicatie toe te staan"; -App::$strings["Set Affinity"] = "Verwantschapsfilter instellen"; -App::$strings["Set Profile"] = "Profiel instellen"; -App::$strings["Set Affinity & Profile"] = "Verwantschapsfilter en profiel instellen"; -App::$strings["none"] = "geen"; -App::$strings["Connection Default Permissions"] = "Standaard permissies voor connecties"; -App::$strings["Connection: %s"] = "Connectie: %s"; -App::$strings["Apply these permissions automatically"] = "Deze permissies automatisch toepassen"; -App::$strings["Connection requests will be approved without your interaction"] = "Connectieverzoeken zullen automatisch worden geaccepteerd"; -App::$strings["This connection's primary address is"] = "Het primaire kanaaladres van deze connectie is"; -App::$strings["Available locations:"] = "Beschikbare locaties:"; -App::$strings["The permissions indicated on this page will be applied to all new connections."] = "Permissies die op deze pagina staan vermeld worden op alle nieuwe connecties toegepast."; -App::$strings["Connection Tools"] = "Hulpmiddelen"; -App::$strings["Slide to adjust your degree of friendship"] = "Schuif om te bepalen hoe goed je iemand kent en/of mag"; -App::$strings["Rating"] = "Beoordeling"; -App::$strings["Slide to adjust your rating"] = "Gebruik de schuif om je beoordeling te geven"; -App::$strings["Optionally explain your rating"] = "Verklaar jouw beoordeling (niet verplicht)"; -App::$strings["Custom Filter"] = "Berichtenfilter"; -App::$strings["Only import posts with this text"] = "Importeer alleen berichten met deze tekst"; -App::$strings["words one per line or #tags or /patterns/ or lang=xx, leave blank to import all posts"] = "woorden (één per regel), #tags, /regex/ of talen (lang=iso639-1) - laat leeg om alle berichten te importeren"; -App::$strings["Do not import posts with this text"] = "Importeer geen berichten met deze tekst"; -App::$strings["This information is public!"] = "Deze informatie is openbaar!"; -App::$strings["Connection Pending Approval"] = "Connectie moet nog geaccepteerd worden"; -App::$strings["inherited"] = "geërfd"; -App::$strings["Please choose the profile you would like to display to %s when viewing your profile securely."] = "Kies het profiel dat je aan %s wil tonen wanneer hij/zij ingelogd jouw profiel wil bekijken."; -App::$strings["Their Settings"] = "Hun instellingen"; -App::$strings["My Settings"] = "Mijn instellingen"; -App::$strings["Individual Permissions"] = "Individuele permissies"; -App::$strings["Some permissions may be inherited from your channel's privacy settings, which have higher priority than individual settings. You can not change those settings here."] = "Sommige permissies worden mogelijk overgeërfd van de privacy-instellingen van jouw kanaal, die een hogere prioriteit hebben dan deze individuele instellingen. Je kan je deze overgeërfde permissies hier niet veranderen."; -App::$strings["Some permissions may be inherited from your channel's privacy settings, 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 privacy-instellingen 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. "; -App::$strings["Last update:"] = "Laatste wijziging:"; +App::$strings["Public Hubs"] = "Openbare hubs"; +App::$strings["The listed hubs allow public registration for the \$Projectname network. All hubs in the network are interlinked so membership on any of them conveys membership in the network as a whole. Some hubs may require subscription or provide tiered service plans. The hub itself may provide additional details."] = "Op de hier weergegeven hubs kan iedereen zich voor het \$Projectname-netwerk aanmelden. Alle hubs in het 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 een financiële tegemoetkoming voor bepaalde uitbreidingen. Mogelijk wordt hierover op de hub zelf meer informatie gegeven."; +App::$strings["Hub URL"] = "Hub-URL"; +App::$strings["Access Type"] = "Toegangs-
         type"; +App::$strings["Registration Policy"] = "Registratie-
         beleid"; +App::$strings["Stats"] = "Stats"; +App::$strings["Software"] = "Software"; +App::$strings["Ratings"] = "Beoordelingen"; +App::$strings["Rate"] = "Beoordeel"; +App::$strings["View"] = "Weergeven"; App::$strings["Item not found"] = "Item niet gevonden"; -App::$strings["Block Name"] = "Bloknaam"; -App::$strings["Title (optional)"] = "Titel (optioneel)"; -App::$strings["Edit Block"] = "Blok bewerken"; App::$strings["Layout Name"] = "Naam lay-out"; App::$strings["Layout Description (Optional)"] = "Lay-out-omschrijving (optioneel)"; App::$strings["Edit Layout"] = "Lay-out bewerken"; App::$strings["Page link"] = "Paginalink"; +App::$strings["Insert web link"] = "Weblink invoegen"; App::$strings["Edit Webpage"] = "Webpagina bewerken"; +App::$strings["Photos"] = "Foto's"; +App::$strings["You must be logged in to see this page."] = "Je moet zijn ingelogd om deze pagina te kunnen bekijken."; +App::$strings["Posts and comments"] = "Berichten en reacties"; +App::$strings["Only posts"] = "Alleen berichten"; +App::$strings["Insufficient permissions. Request redirected to profile page."] = "Onvoldoende permissies. Doorgestuurd naar profielpagina."; +App::$strings["No such group"] = "Collectie niet gevonden"; +App::$strings["No such channel"] = "Niet zo'n kanaal"; +App::$strings["forum"] = "forum"; +App::$strings["Search Results For:"] = "Zoekresultaten voor:"; +App::$strings["Privacy group is empty"] = "Privacygroep is leeg"; +App::$strings["Privacy group: "] = "Privacygroep: "; +App::$strings["Invalid connection."] = "Ongeldige connectie."; App::$strings["Unable to update menu."] = "Niet in staat om menu aan te passen"; App::$strings["Unable to create menu."] = "Niet in staat om menu aan te maken."; App::$strings["Menu Name"] = "Menunaam"; @@ -528,7 +584,6 @@ App::$strings["Allow Bookmarks"] = "Bladwijzers toestaan"; App::$strings["Menu may be used to store saved bookmarks"] = "Menu kan gebruikt worden om bladwijzers in op te slaan"; App::$strings["Submit and proceed"] = "Opslaan en doorgaan"; App::$strings["Menus"] = "Menu's"; -App::$strings["Drop"] = "Verwijderen"; App::$strings["Created"] = "Aangemaakt"; App::$strings["Edited"] = "Bewerkt"; App::$strings["Bookmarks allowed"] = "Bladwijzers toegestaan"; @@ -560,34 +615,20 @@ App::$strings["Categories (optional, comma separated list)"] = "Categorieën (op App::$strings["Version ID"] = "Versie-ID"; App::$strings["Price of app"] = "Prijs van de app"; App::$strings["Location (URL) to purchase app"] = "Locatie (URL) om de app aan te schaffen"; -App::$strings["Public Hubs"] = "Openbare hubs"; -App::$strings["The listed hubs allow public registration for the \$Projectname network. All hubs in the network are interlinked so membership on any of them conveys membership in the network as a whole. Some hubs may require subscription or provide tiered service plans. The hub itself may provide additional details."] = "Op de hier weergegeven hubs kan iedereen zich voor het \$Projectname-netwerk aanmelden. Alle hubs in het 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 een financiële tegemoetkoming voor bepaalde uitbreidingen. Mogelijk wordt hierover op de hub zelf meer informatie gegeven."; -App::$strings["Hub URL"] = "Hub-URL"; -App::$strings["Access Type"] = "Toegangs-
         type"; -App::$strings["Registration Policy"] = "Registratie-
         beleid"; -App::$strings["Stats"] = "Stats"; -App::$strings["Software"] = "Software"; -App::$strings["Ratings"] = "Beoordelingen"; -App::$strings["Rate"] = "Beoordeel"; -App::$strings["Location"] = "Locatie"; -App::$strings["View"] = "Weergeven"; -App::$strings["Item not available."] = "Item is niet aanwezig."; -App::$strings["Authorize application connection"] = "Geef toestemming voor applicatiekoppeling"; -App::$strings["Return to your app and insert this Security Code:"] = "Ga terug naar je app en voeg deze beveiligingscode in:"; -App::$strings["Please login to continue."] = "Inloggen om verder te kunnen gaan."; -App::$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?"; +App::$strings["Edit post"] = "Bericht bewerken"; +App::$strings["Documentation Search"] = "Zoek documentatie"; +App::$strings["About"] = "Over"; +App::$strings["Members"] = "Kanalen"; +App::$strings["Administrators"] = "Beheerders"; +App::$strings["Developers"] = "Ontwikkelaars"; +App::$strings["Tutorials"] = "Zelfstudie"; +App::$strings["\$Projectname Documentation"] = "\$Projectname-documentatie"; +App::$strings["Contents"] = "Inhoud"; App::$strings["Share content from Firefox to \$Projectname"] = "Deel webpagina's vanuit Firefox met "; App::$strings["Activate the Firefox \$Projectname provider"] = "Activeer de \$Projectname-service in Firefox"; -App::$strings["Layout updated."] = "Lay-out bijgewerkt."; -App::$strings["Feature disabled."] = "Functie uitgeschakeld."; -App::$strings["Edit System Page Description"] = "Systeempagina's bewerken"; -App::$strings["Layout not found."] = "Lay-out niet gevonden."; -App::$strings["Module Name:"] = "Modulenaam:"; -App::$strings["Layout Help"] = "Lay-out-hulp"; +App::$strings["Apps"] = "Apps"; App::$strings["\$Projectname"] = "\$Projectname"; App::$strings["Welcome to %s"] = "Welkom op %s"; -App::$strings["Remote privacy information not available."] = "Privacy-informatie op afstand niet beschikbaar."; -App::$strings["Visible to:"] = "Zichtbaar voor:"; App::$strings["Permission Denied."] = "Toegang geweigerd"; App::$strings["File not found."] = "Bestand niet gevonden."; App::$strings["Edit file permissions"] = "Bestandsrechten bewerken"; @@ -600,64 +641,85 @@ App::$strings["Copy/paste this URL to link file from a web page"] = "Kopieer/pla App::$strings["Share this file"] = "Dit bestand delen"; App::$strings["Show URL to this file"] = "Toon URL van dit bestand"; App::$strings["Notify your contacts about this file"] = "Jouw connecties over dit bestand berichten"; -App::$strings["Continue"] = "Ga verder"; -App::$strings["Premium Channel Setup"] = "Instellen premiumkanaal "; -App::$strings["Enable premium channel connection restrictions"] = "Restricties voor connecties van premiumkanaal toestaan"; -App::$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."; -App::$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:"; -App::$strings["Potential connections will then see the following text before proceeding:"] = "Mogelijke connecties zullen dan de volgende tekst zien voordat ze verder kunnen:"; -App::$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."; -App::$strings["(No specific instructions have been provided by the channel owner.)"] = "(Er zijn geen speciale voorwaarden en aanwijzingen door de kanaal-eigenaar verstrekt) "; -App::$strings["Restricted or Premium Channel"] = "Beperkt of premiumkanaal"; -App::$strings["You have created %1$.0f of %2$.0f allowed channels."] = "Je hebt %1$.0f van totaal %2$.0f toegestane kanalen aangemaakt."; -App::$strings["Create a new channel"] = "Nieuw kanaal aanmaken"; -App::$strings["Create New"] = "Nieuwe aanmaken"; -App::$strings["Channel Manager"] = "Kanaalbeheer"; -App::$strings["Current Channel"] = "Huidig kanaal"; -App::$strings["Switch to one of your channels by selecting it."] = "Activeer een van jouw andere kanalen door er op te klikken."; -App::$strings["Default Channel"] = "Standaardkanaal"; -App::$strings["Make Default"] = "Als standaard instellen"; -App::$strings["%d new messages"] = "%d nieuwe berichten"; -App::$strings["%d new introductions"] = "%d nieuwe connectieverzoeken"; -App::$strings["Delegated Channel"] = "Uitbesteed kanaal"; -App::$strings["Privacy group created."] = "Privacygroep aangemaakt"; -App::$strings["Could not create privacy group."] = "Kon privacygroep niet aanmaken"; -App::$strings["Privacy group not found."] = "Privacygroep niet gevonden"; -App::$strings["Privacy group updated."] = "Privacygroep bijgewerkt"; -App::$strings["Create a group of channels."] = "Privacygroep met kanalen aanmaken"; -App::$strings["Privacy group name: "] = "Naam privacygroep: "; -App::$strings["Members are visible to other channels"] = "Kanalen in deze privacygroep zijn zichtbaar voor andere kanalen"; -App::$strings["Privacy group removed."] = "Privacygroep verwijderd."; -App::$strings["Unable to remove privacy group."] = "Verwijderen privacygroep mislukt"; -App::$strings["Privacy group editor"] = "Privacygroep bewerken"; -App::$strings["Members"] = "Kanalen"; -App::$strings["All Connected Channels"] = "Alle kanaalconnecties"; -App::$strings["Click on a channel to add or remove."] = "Klik op een kanaal om deze toe te voegen of te verwijderen."; -App::$strings["Invalid message"] = "Ongeldig bericht"; -App::$strings["no results"] = "geen resultaten"; -App::$strings["channel sync processed"] = "kanaalsync verwerkt"; -App::$strings["queued"] = "in wachtrij"; -App::$strings["posted"] = "verstuurd"; -App::$strings["accepted for delivery"] = "geaccepteerd om afgeleverd te worden"; -App::$strings["updated"] = "geüpdatet"; -App::$strings["update ignored"] = "update genegeerd"; -App::$strings["permission denied"] = "toegang geweigerd"; -App::$strings["recipient not found"] = "ontvanger niet gevonden"; -App::$strings["mail recalled"] = "Privébericht ingetrokken"; -App::$strings["duplicate mail received"] = "dubbel privébericht ontvangen"; -App::$strings["mail delivered"] = "privébericht afgeleverd"; -App::$strings["Delivery report for %1\$s"] = "Afleveringsrapport voor %1\$s"; -App::$strings["Options"] = "Opties"; -App::$strings["Redeliver"] = "Opnieuw afleveren"; +App::$strings["Public access denied."] = "Openbare toegang geweigerd."; +App::$strings["%d rating"] = array( + 0 => "%d beoordeling", + 1 => "%d beoordelingen", +); +App::$strings["Gender: "] = "Geslacht:"; +App::$strings["Status: "] = "Status: "; +App::$strings["Homepage: "] = "Homepage: "; +App::$strings["Age:"] = "Leeftijd:"; +App::$strings["Location:"] = "Plaats:"; +App::$strings["Description:"] = "Omschrijving:"; +App::$strings["Hometown:"] = "Oorspronkelijk uit:"; +App::$strings["About:"] = "Over:"; +App::$strings["Public Forum:"] = "Openbaar forum:"; +App::$strings["Keywords: "] = "Trefwoorden: "; +App::$strings["Don't suggest"] = "Niet voorstellen"; +App::$strings["Common connections:"] = "Gemeenschappelijke connecties:"; +App::$strings["Global Directory"] = "Volledige kanalengids"; +App::$strings["Local Directory"] = "Lokale kanalengids"; +App::$strings["Finding:"] = "Gezocht naar:"; +App::$strings["Channel Suggestions"] = "Voorgestelde kanalen"; +App::$strings["next page"] = "volgende pagina"; +App::$strings["previous page"] = "vorige pagina"; +App::$strings["Sort options"] = "Sorteeropties"; +App::$strings["Alphabetic"] = "Alfabetisch"; +App::$strings["Reverse Alphabetic"] = "Omgekeerd alfabetisch"; +App::$strings["Newest to Oldest"] = "Nieuw naar oud"; +App::$strings["Oldest to Newest"] = "Oud naar nieuw"; +App::$strings["No entries (some entries may be hidden)."] = "Niets gevonden (sommige kanalen kunnen verborgen zijn)."; +App::$strings["Unable to locate original post."] = "Niet in staat om de originele locatie van het bericht te vinden. "; +App::$strings["Empty post discarded."] = "Leeg bericht geannuleerd"; +App::$strings["Executable content type not permitted to this channel."] = "Uitvoerbare bestanden zijn niet toegestaan op dit kanaal."; +App::$strings["Duplicate post suppressed."] = "Dubbel bericht tegengehouden."; +App::$strings["System error. Post not saved."] = "Systeemfout. Bericht niet opgeslagen."; +App::$strings["Unable to obtain post information from database."] = "Niet in staat om informatie over dit bericht uit de database te verkrijgen."; +App::$strings["You have reached your limit of %1$.0f top level posts."] = "Je hebt jouw limiet van %1$.0f berichten bereikt."; +App::$strings["You have reached your limit of %1$.0f webpages."] = "Je hebt jouw limiet van %1$.0f webpagina's bereikt."; +App::$strings["toggle full screen mode"] = "Volledig scherm"; +App::$strings["Channel added."] = "Kanaal toegevoegd."; +App::$strings["Unable to lookup recipient."] = "Niet in staat om ontvanger op te zoeken."; +App::$strings["Unable to communicate with requested channel."] = "Niet in staat om met het aangevraagde kanaal te communiceren."; +App::$strings["Cannot verify requested channel."] = "Kan opgevraagd kanaal niet verifieren"; +App::$strings["Selected channel has private message restrictions. Send failed."] = "Gekozen kanaal heeft restricties voor privéberichten. Verzenden mislukt."; +App::$strings["Messages"] = "Berichten"; +App::$strings["Message recalled."] = "Bericht ingetrokken."; +App::$strings["Conversation removed."] = "Conversatie verwijderd"; +App::$strings["Please enter a link URL:"] = "Vul een URL in:"; +App::$strings["Expires YYYY-MM-DD HH:MM"] = "Verloopt op DD-MM-YYYY om HH:MM"; +App::$strings["Requested channel is not in this network"] = "Opgevraagd kanaal is niet in dit netwerk beschikbaar"; +App::$strings["Send Private Message"] = "Privébericht versturen"; +App::$strings["To:"] = "Aan:"; +App::$strings["Subject:"] = "Onderwerp:"; +App::$strings["Your message:"] = "Jouw bericht:"; +App::$strings["Attach file"] = "Bestand toevoegen"; +App::$strings["Send"] = "Verzenden"; +App::$strings["Set expiration date"] = "Verloopdatum instellen"; +App::$strings["Encrypt text"] = "Tekst versleutelen"; +App::$strings["Delete message"] = "Bericht verwijderen"; +App::$strings["Delivery report"] = "Afleveringsrapport"; +App::$strings["Recall message"] = "Bericht intrekken"; +App::$strings["Message has been recalled."] = "Bericht is ingetrokken."; +App::$strings["Delete Conversation"] = "Verwijder conversatie"; +App::$strings["No secure communications available. You may be able to respond from the sender's profile page."] = "Geen veilige communicatie beschikbaar. Mogelijk kan je reageren op de kanaalpagina van de afzender."; +App::$strings["Send Reply"] = "Antwoord versturen"; +App::$strings["Your message for %s (%s):"] = "Jouw privébericht aan %s (%s):"; App::$strings["webpage"] = "Webpagina"; App::$strings["block"] = "blok"; App::$strings["layout"] = "lay-out"; App::$strings["menu"] = "menu"; App::$strings["%s element installed"] = "%s onderdeel geïnstalleerd"; App::$strings["%s element installation failed"] = "Installatie %s-element mislukt"; +App::$strings["Nothing to import."] = "Niets gevonden om te importeren"; +App::$strings["Unable to download data from old server"] = "Niet in staat om gegevens van de oude hub te downloaden"; +App::$strings["Imported file is empty."] = "Geïmporteerde bestand is leeg"; +App::$strings["Warning: Database versions differ by %1\$d updates."] = "Waarschuwing: database-versies lopen %1\$d updates achter."; App::$strings["Import completed"] = "Importeren voltooid"; App::$strings["Import Items"] = "Importeer items"; App::$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."; +App::$strings["File to Upload"] = "Bestand om te uploaden"; App::$strings["Total invitation limit exceeded."] = "Limiet voor aantal uitnodigingen overschreden."; App::$strings["%s : Not a valid email address."] = "%s : Geen geldig e-mailadres."; App::$strings["Please join us on \$Projectname"] = "Uitnodiging voor \$Projectname"; @@ -676,42 +738,239 @@ App::$strings["1. Register at any \$Projectname location (they are all inter-con App::$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:"; App::$strings["or visit"] = "of bezoek"; App::$strings["3. Click [Connect]"] = "3. Klik op [+ Verbinden]"; -App::$strings["Location not found."] = "Locatie niet gevonden."; -App::$strings["Location lookup failed."] = "Opzoeken locatie mislukt"; -App::$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."; -App::$strings["Syncing locations"] = "Locaties synchronizeren"; -App::$strings["No locations found."] = "Geen locaties gevonden."; -App::$strings["Manage Channel Locations"] = "Kanaallocaties beheren"; -App::$strings["Primary"] = "Primair"; -App::$strings["Sync Now"] = "Nu synchroniseren"; -App::$strings["Please wait several minutes between consecutive operations."] = "Wacht enkele minuten tussen opeenvolgende handelingen."; -App::$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."; -App::$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."; -App::$strings["Website:"] = "Website:"; -App::$strings["Remote Channel [%s] (not yet known on this site)"] = "Kanaal op afstand [%s] (nog niet op deze hub bekend)"; -App::$strings["Rating (this information is public)"] = "Beoordeling (deze informatie is openbaar)"; -App::$strings["Optionally explain your rating (this information is public)"] = "Verklaar jouw beoordeling (niet verplicht, deze informatie is openbaar)"; -App::$strings["Like/Dislike"] = "Leuk/niet leuk"; -App::$strings["This action is restricted to members."] = "Deze actie kan alleen door \$Projectname-leden worden uitgevoerd."; -App::$strings["Please login with your \$Projectname ID or register as a new \$Projectname member to continue."] = "Je dient in te loggen met je \$Projectname-account of een nieuw \$Projectname-account aan te maken om verder te kunnen gaan."; -App::$strings["Invalid request."] = "Ongeldig verzoek"; -App::$strings["channel"] = "kanaal"; -App::$strings["thing"] = "ding"; -App::$strings["Channel unavailable."] = "Kanaal niet beschikbaar."; -App::$strings["Previous action reversed."] = "Vorige actie omgedraaid"; -App::$strings["photo"] = "foto"; -App::$strings["status"] = "bericht"; -App::$strings["event"] = "gebeurtenis"; -App::$strings["%1\$s likes %2\$s's %3\$s"] = "%1\$s vindt %3\$s van %2\$s leuk"; -App::$strings["%1\$s doesn't like %2\$s's %3\$s"] = "%1\$s vindt %3\$s van %2\$s niet leuk"; -App::$strings["%1\$s agrees with %2\$s's %3\$s"] = "%1\$s is het eens met %2\$s's %3\$s"; -App::$strings["%1\$s doesn't agree with %2\$s's %3\$s"] = "%1\$s is het niet eens met %2\$s's %3\$s"; -App::$strings["%1\$s abstains from a decision on %2\$s's %3\$s"] = "%1\$s onthoudt zich van een besluit over %2\$s's %3\$s"; -App::$strings["%1\$s is attending %2\$s's %3\$s"] = "%1\$s is aanwezig op %2\$s's %3\$s"; -App::$strings["%1\$s is not attending %2\$s's %3\$s"] = "%1\$s is niet aanwezig op %2\$s's %3\$s"; -App::$strings["%1\$s may attend %2\$s's %3\$s"] = "%1\$s is mogelijk aanwezig op %2\$s's %3\$s"; -App::$strings["Action completed."] = "Actie voltooid"; -App::$strings["Thank you."] = "Bedankt"; +App::$strings["Block Name"] = "Bloknaam"; +App::$strings["Title (optional)"] = "Titel (optioneel)"; +App::$strings["Edit Block"] = "Blok bewerken"; +App::$strings["Privacy group created."] = "Privacygroep aangemaakt"; +App::$strings["Could not create privacy group."] = "Kon privacygroep niet aanmaken"; +App::$strings["Privacy group not found."] = "Privacygroep niet gevonden"; +App::$strings["Privacy group updated."] = "Privacygroep bijgewerkt"; +App::$strings["Create a group of channels."] = "Privacygroep met kanalen aanmaken"; +App::$strings["Privacy group name: "] = "Naam privacygroep: "; +App::$strings["Members are visible to other channels"] = "Kanalen in deze privacygroep zijn zichtbaar voor andere kanalen"; +App::$strings["Privacy group removed."] = "Privacygroep verwijderd."; +App::$strings["Unable to remove privacy group."] = "Verwijderen privacygroep mislukt"; +App::$strings["Privacy group editor"] = "Privacygroep bewerken"; +App::$strings["All Connected Channels"] = "Alle kanaalconnecties"; +App::$strings["Click on a channel to add or remove."] = "Klik op een kanaal om deze toe te voegen of te verwijderen."; +App::$strings["Invalid profile identifier."] = "Ongeldige profiel-identificator"; +App::$strings["Profile Visibility Editor"] = "Zichtbaarheid profiel "; +App::$strings["Profile"] = "Profiel"; +App::$strings["Click on a contact to add or remove."] = "Klik op een connectie om deze toe te voegen of te verwijderen"; +App::$strings["Visible To"] = "Zichtbaar voor"; +App::$strings["Hub not found."] = "Hub niet gevonden."; +App::$strings["Unable to create element."] = "Niet in staat om onderdeel aan te maken."; +App::$strings["Unable to update menu element."] = "Menu-onderdeel kan niet worden geüpdatet."; +App::$strings["Unable to add menu element."] = "Menu-onderdeel kan niet worden toegevoegd."; +App::$strings["Menu Item Permissions"] = "Permissies menu-item"; +App::$strings["(click to open/close)"] = "(klik om te openen/sluiten)"; +App::$strings["Link Name"] = "Linknaam"; +App::$strings["Link or Submenu Target"] = "Linkdoel of submenu-doel"; +App::$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"; +App::$strings["Use magic-auth if available"] = "Gebruik magic-auth wanneer beschikbaar"; +App::$strings["Open link in new window"] = "Open link in nieuw venster"; +App::$strings["Order in list"] = "Volgorde in lijst"; +App::$strings["Higher numbers will sink to bottom of listing"] = "Hogere nummers komen onderaan de lijst terecht"; +App::$strings["Submit and finish"] = "Opslaan en afsluiten"; +App::$strings["Submit and continue"] = "Opslaan en doorgaan"; +App::$strings["Menu:"] = "Menu:"; +App::$strings["Link Target"] = "Linkdoel"; +App::$strings["Edit menu"] = "Menu bewerken"; +App::$strings["Edit element"] = "Onderdeel bewerken"; +App::$strings["Drop element"] = "Onderdeel verwijderen"; +App::$strings["New element"] = "Nieuw element"; +App::$strings["Edit this menu container"] = "Deze menu-container bewerken"; +App::$strings["Add menu element"] = "Menu-element toevoegen"; +App::$strings["Delete this menu item"] = "Dit menu-item verwijderen"; +App::$strings["Edit this menu item"] = "Dit menu-item bewerken"; +App::$strings["Menu item not found."] = "Menu-item niet gevonden."; +App::$strings["Menu item deleted."] = "Menu-item verwijderd."; +App::$strings["Menu item could not be deleted."] = "Menu-item kon niet worden verwijderd."; +App::$strings["Edit Menu Element"] = "Menu-element bewerken"; +App::$strings["Link text"] = "Linktekst"; +App::$strings["No ratings"] = "Geen beoordelingen"; +App::$strings["Rating: "] = "Beoordeling: "; +App::$strings["Website: "] = "Website: "; +App::$strings["Description: "] = "Omschrijving: "; +App::$strings["Item not available."] = "Item is niet aanwezig."; +App::$strings["__ctx:mood__ %1\$s is %2\$s"] = "%1\$s is %2\$s"; +App::$strings["Mood"] = "Stemming"; +App::$strings["Set your current mood and tell your friends"] = "Noteer je huidige stemming en toon het aan je connecties"; +App::$strings["No more system notifications."] = "Geen systeemnotificaties meer."; +App::$strings["System Notifications"] = "Systeemnotificaties"; +App::$strings["Page owner information could not be retrieved."] = "Informatie over de pagina-eigenaar werd niet ontvangen."; +App::$strings["Profile Photos"] = "Profielfoto's"; +App::$strings["Album not found."] = "Album niet gevonden."; +App::$strings["Delete Album"] = "Verwijder album"; +App::$strings["Multiple storage folders exist with this album name, but within different directories. Please remove the desired folder or folders using the Files manager"] = "Er bestaan meerdere submappen met deze albumnaam, maar verspreidt over verschillende mappen. Verwijder de gewenste map(pen) met de bestandsbeheerder."; +App::$strings["Delete Photo"] = "Verwijder foto"; +App::$strings["No photos selected"] = "Geen foto's geselecteerd"; +App::$strings["Access to this item is restricted."] = "Toegang tot dit item is beperkt."; +App::$strings["%1$.2f MB of %2$.2f MB photo storage used."] = "%1$.2f MB van %2$.2f MB aan foto-opslag gebruikt."; +App::$strings["%1$.2f MB photo storage used."] = "%1$.2f MB aan foto-opslag gebruikt."; +App::$strings["Upload Photos"] = "Foto's uploaden"; +App::$strings["Enter an album name"] = "Vul een albumnaam in"; +App::$strings["or select an existing album (doubleclick)"] = "of kies een bestaand album (dubbelklikken)"; +App::$strings["Create a status post for this upload"] = "Plaats een bericht voor deze upload."; +App::$strings["Caption (optional):"] = "Bijschrift (optioneel):"; +App::$strings["Description (optional):"] = "Omschrijving (optioneel):"; +App::$strings["Album name could not be decoded"] = "Albumnaam kon niet gedecodeerd worden"; +App::$strings["Contact Photos"] = "Connectiefoto's"; +App::$strings["Show Newest First"] = "Nieuwste eerst weergeven"; +App::$strings["Show Oldest First"] = "Oudste eerst weergeven"; +App::$strings["View Photo"] = "Foto weergeven"; +App::$strings["Edit Album"] = "Album bewerken"; +App::$strings["Permission denied. Access to this item may be restricted."] = "Toegang geweigerd. Toegang tot dit item kan zijn beperkt."; +App::$strings["Photo not available"] = "Foto niet aanwezig"; +App::$strings["Use as profile photo"] = "Als profielfoto gebruiken"; +App::$strings["Use as cover photo"] = "Als omslagfoto gebruiken"; +App::$strings["Private Photo"] = "Privéfoto"; +App::$strings["Previous"] = "Vorige"; +App::$strings["View Full Size"] = "Volledige grootte weergeven"; +App::$strings["Next"] = "Volgende"; +App::$strings["Edit photo"] = "Foto bewerken"; +App::$strings["Rotate CW (right)"] = "Draai met de klok mee (naar rechts)"; +App::$strings["Rotate CCW (left)"] = "Draai tegen de klok in (naar links)"; +App::$strings["Move photo to album"] = "Verplaatst foto naar album"; +App::$strings["Enter a new album name"] = "Vul een nieuwe albumnaam in"; +App::$strings["or select an existing one (doubleclick)"] = "of kies een bestaand album (dubbelklikken)"; +App::$strings["Caption"] = "Bijschrift"; +App::$strings["Add a Tag"] = "Tag toevoegen"; +App::$strings["Example: @bob, @Barbara_Jensen, @jim@example.com"] = "Voorbeeld: @bob, @Barbara_Jansen, @jan@voorbeeld.nl"; +App::$strings["Flag as adult in album view"] = "Markeer als voor volwassenen in albumweergave"; +App::$strings["I like this (toggle)"] = "Vind ik leuk"; +App::$strings["I don't like this (toggle)"] = "Vind ik niet leuk"; +App::$strings["Share"] = "Delen"; +App::$strings["Please wait"] = "Even wachten"; +App::$strings["This is you"] = "Dit ben jij"; +App::$strings["Comment"] = "Reactie"; +App::$strings["Preview"] = "Voorvertoning"; +App::$strings["__ctx:title__ Likes"] = "vinden dit leuk"; +App::$strings["__ctx:title__ Dislikes"] = "vinden dit niet leuk"; +App::$strings["__ctx:title__ Agree"] = "eens"; +App::$strings["__ctx:title__ Disagree"] = "oneens"; +App::$strings["__ctx:title__ Abstain"] = "onthoudingen"; +App::$strings["__ctx:title__ Attending"] = "aanwezig"; +App::$strings["__ctx:title__ Not attending"] = "niet aanwezig"; +App::$strings["__ctx:title__ Might attend"] = "mogelijk aanwezig"; +App::$strings["View all"] = "Toon alles"; +App::$strings["__ctx:noun__ Like"] = array( + 0 => "vindt dit leuk", + 1 => "vinden dit leuk", +); +App::$strings["__ctx:noun__ Dislike"] = array( + 0 => "vindt dit niet leuk", + 1 => "vinden dit niet leuk", +); +App::$strings["Photo Tools"] = "Hulpmiddelen"; +App::$strings["In This Photo:"] = "Op deze foto:"; +App::$strings["Map"] = "Kaart"; +App::$strings["__ctx:noun__ Likes"] = "vinden dit leuk"; +App::$strings["__ctx:noun__ Dislikes"] = "vinden dit niet leuk"; +App::$strings["Close"] = "Sluiten"; +App::$strings["View Album"] = "Album weergeven"; +App::$strings["Recent Photos"] = "Recente foto's"; +App::$strings["\$Projectname Server - Setup"] = "\$Projectname Hub - Setup"; +App::$strings["Could not connect to database."] = "Could not connect to database."; +App::$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."; +App::$strings["Could not create table."] = "Could not create table."; +App::$strings["Your site database has been installed."] = "Your hub database has been installed."; +App::$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."; +App::$strings["Please see the file \"install/INSTALL.txt\"."] = "Please see the file \"install/INSTALL.txt\"."; +App::$strings["System check"] = "System check"; +App::$strings["Check again"] = "Check again"; +App::$strings["Database connection"] = "Database connection"; +App::$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."; +App::$strings["Please contact your hosting provider or site administrator if you have questions about these settings."] = "Please contact your hosting provider or server administrator if you have questions about these settings."; +App::$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."; +App::$strings["Database Server Name"] = "Database Server Name"; +App::$strings["Default is 127.0.0.1"] = "Default is 127.0.0.1"; +App::$strings["Database Port"] = "Database Port"; +App::$strings["Communication port number - use 0 for default"] = "Communication port number - use 0 for default"; +App::$strings["Database Login Name"] = "Database Login Name"; +App::$strings["Database Login Password"] = "Database Login Password"; +App::$strings["Database Name"] = "Database Name"; +App::$strings["Database Type"] = "Database Type"; +App::$strings["Site administrator email address"] = "Hub administrator email address"; +App::$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."; +App::$strings["Website URL"] = "Hub URL"; +App::$strings["Please use SSL (https) URL if available."] = "Please use SSL (https) URL if available."; +App::$strings["Please select a default timezone for your website"] = "Please select a default timezone for your hub"; +App::$strings["Site settings"] = "Hub settings"; +App::$strings["PHP version 5.5 or greater is required."] = "PHP version 5.5 or greater is required."; +App::$strings["PHP version"] = "PHP version"; +App::$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."; +App::$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."; +App::$strings["PHP executable path"] = "PHP executable path"; +App::$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."; +App::$strings["Command line PHP"] = "Command line PHP"; +App::$strings["Unable to check command line PHP, as shell_exec() is disabled. This is required."] = "Unable to check command line PHP, as shell_exec() is disabled. This is required."; +App::$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."; +App::$strings["This is required for message delivery to work."] = "This is required for message delivery to work."; +App::$strings["PHP register_argc_argv"] = "PHP register_argc_argv"; +App::$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."; +App::$strings["You can adjust these settings in the server php.ini file."] = "You can adjust these settings in the server php.ini file."; +App::$strings["PHP upload limits"] = "PHP upload limits"; +App::$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"; +App::$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\"."; +App::$strings["Generate encryption keys"] = "Generate encryption keys"; +App::$strings["libCurl PHP module"] = "libCurl PHP module"; +App::$strings["GD graphics PHP module"] = "GD graphics PHP module"; +App::$strings["OpenSSL PHP module"] = "OpenSSL PHP module"; +App::$strings["PDO database PHP module"] = "PDO database PHP module"; +App::$strings["mb_string PHP module"] = "mb_string PHP module"; +App::$strings["xml PHP module"] = "xml PHP module"; +App::$strings["Apache mod_rewrite module"] = "Apache mod_rewrite module"; +App::$strings["Error: Apache webserver mod-rewrite module is required but not installed."] = "Error: Apache webserver mod-rewrite module is required but not installed."; +App::$strings["exec"] = "exec"; +App::$strings["Error: exec is required but is either not installed or has been disabled in php.ini"] = "Error: exec is required but is either not installed or has been disabled in php.ini"; +App::$strings["shell_exec"] = "shell_exec"; +App::$strings["Error: shell_exec is required but is either not installed or has been disabled in php.ini"] = "Error: shell_exec is required but is either not installed or has been disabled in php.ini"; +App::$strings["Error: libCURL PHP module required but not installed."] = "Error: libCURL PHP module required but not installed."; +App::$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."; +App::$strings["Error: openssl PHP module required but not installed."] = "Error: openssl PHP module required but not installed."; +App::$strings["Error: PDO database PHP module required but not installed."] = "Error: PDO database PHP module required but not installed."; +App::$strings["Error: mb_string PHP module required but not installed."] = "Error: mb_string PHP module required but not installed."; +App::$strings["Error: xml PHP module required for DAV but not installed."] = "Error: xml PHP module required for DAV but not installed."; +App::$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."; +App::$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."; +App::$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."; +App::$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."; +App::$strings[".htconfig.php is writable"] = ".htconfig.php is writable"; +App::$strings["This software uses the Smarty3 template engine to render its web views. Smarty3 compiles templates to PHP to speed up rendering."] = "This software uses the Smarty3 template engine to render its web views. Smarty3 compiles templates to PHP to speed up rendering."; +App::$strings["In order to store these compiled templates, the web server needs to have write access to the directory %s under the top level web folder."] = "In order to store these compiled templates, the web server needs to have write access to the directory %s under the top level web folder."; +App::$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."; +App::$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."; +App::$strings["%s is writable"] = "%s is writable"; +App::$strings["This software uses the store directory to save uploaded files. The web server needs to have write access to the store directory under the top level web folder"] = "This software uses the store directory to save uploaded files. The web server needs to have write access to the store directory under the top level web folder"; +App::$strings["store is writable"] = "store is writable"; +App::$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."; +App::$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!"; +App::$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."; +App::$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."; +App::$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."; +App::$strings["Providers are available that issue free certificates which are browser-valid."] = "Providers are available that issue free certificates which are browser-valid."; +App::$strings["If you are confident that the certificate is valid and signed by a trusted authority, check to see if you have failed to install an intermediate cert. These are not normally required by browsers, but are required for server-to-server communications."] = "If you are confident that the certificate is valid and signed by a trusted authority, check to see if you have failed to install an intermediate cert. These are not normally required by browsers, but are required for server-to-server communications."; +App::$strings["SSL certificate validation"] = "SSL certificate validation"; +App::$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: "; +App::$strings["Url rewrite is working"] = "Url rewrite is working"; +App::$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."; +App::$strings["Errors encountered creating database tables."] = "Errors encountered creating database tables."; +App::$strings["

        What next

        "] = "

        What next

        "; +App::$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."; +App::$strings["Item is not editable"] = "Item is niet te bewerken"; +App::$strings["This site is not a directory server"] = "Deze hub is geen kanalengidshub (directoryserver)"; +App::$strings["Create Channel"] = "Kanaal aanmaken"; +App::$strings["A channel is your identity on this network. It can represent a person, a blog, or a forum to name a few. Channels can make connections with other channels to share information with highly detailed permissions."] = "Een kanaal is jouw identiteit in dit netwerk. Het kan bijvoorbeeld een persoon, een blog of een forum vertegenwoordigen. Door met elkaar te verbinden kunnen kanalen, met behulp van uitgebreide permissies, informatie uitwisselen."; +App::$strings["or import an existing channel from another location."] = "Of importeer een bestaand kanaal vanaf een andere locatie"; +App::$strings["Mark all system notifications seen"] = "Markeer alle systeemnotificaties als bekeken"; +App::$strings["Poke"] = "Aanstoten"; +App::$strings["Poke somebody"] = "Iemand aanstoten"; +App::$strings["Poke/Prod"] = "Aanstoten/porren"; +App::$strings["Poke, prod or do other things to somebody"] = "Iemand bijvoorbeeld aanstoten of poren"; +App::$strings["Recipient"] = "Ontvanger"; +App::$strings["Choose what you wish to do to recipient"] = "Kies wat je met de ontvanger wil doen"; +App::$strings["Make this post private"] = "Maak dit bericht privé"; App::$strings["Profile not found."] = "Profiel niet gevonden."; App::$strings["Profile deleted."] = "Profiel verwijderd."; App::$strings["Profile-"] = "Profiel-"; @@ -782,121 +1041,70 @@ App::$strings["Contact information and social networks"] = "Contactinformatie en App::$strings["My other channels"] = "Mijn andere kanalen"; App::$strings["Profile Image"] = "Profielfoto"; App::$strings["Edit Profiles"] = "Bewerk profielen"; -App::$strings["Unable to create element."] = "Niet in staat om onderdeel aan te maken."; -App::$strings["Unable to update menu element."] = "Menu-onderdeel kan niet worden geüpdatet."; -App::$strings["Unable to add menu element."] = "Menu-onderdeel kan niet worden toegevoegd."; -App::$strings["Menu Item Permissions"] = "Permissies menu-item"; -App::$strings["(click to open/close)"] = "(klik om te openen/sluiten)"; -App::$strings["Link Name"] = "Linknaam"; -App::$strings["Link or Submenu Target"] = "Linkdoel of submenu-doel"; -App::$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"; -App::$strings["Use magic-auth if available"] = "Gebruik magic-auth wanneer beschikbaar"; -App::$strings["Open link in new window"] = "Open link in nieuw venster"; -App::$strings["Order in list"] = "Volgorde in lijst"; -App::$strings["Higher numbers will sink to bottom of listing"] = "Hogere nummers komen onderaan de lijst terecht"; -App::$strings["Submit and finish"] = "Opslaan en afsluiten"; -App::$strings["Submit and continue"] = "Opslaan en doorgaan"; -App::$strings["Menu:"] = "Menu:"; -App::$strings["Link Target"] = "Linkdoel"; -App::$strings["Edit menu"] = "Menu bewerken"; -App::$strings["Edit element"] = "Onderdeel bewerken"; -App::$strings["Drop element"] = "Onderdeel verwijderen"; -App::$strings["New element"] = "Nieuw element"; -App::$strings["Edit this menu container"] = "Deze menu-container bewerken"; -App::$strings["Add menu element"] = "Menu-element toevoegen"; -App::$strings["Delete this menu item"] = "Dit menu-item verwijderen"; -App::$strings["Edit this menu item"] = "Dit menu-item bewerken"; -App::$strings["Menu item not found."] = "Menu-item niet gevonden."; -App::$strings["Menu item deleted."] = "Menu-item verwijderd."; -App::$strings["Menu item could not be deleted."] = "Menu-item kon niet worden verwijderd."; -App::$strings["Edit Menu Element"] = "Menu-element bewerken"; -App::$strings["Link text"] = "Linktekst"; -App::$strings["\$Projectname Server - Setup"] = "\$Projectname Hub - Setup"; -App::$strings["Could not connect to database."] = "Could not connect to database."; -App::$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."; -App::$strings["Could not create table."] = "Could not create table."; -App::$strings["Your site database has been installed."] = "Your hub database has been installed."; -App::$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."; -App::$strings["Please see the file \"install/INSTALL.txt\"."] = "Please see the file \"install/INSTALL.txt\"."; -App::$strings["System check"] = "System check"; -App::$strings["Next"] = "Volgende"; -App::$strings["Check again"] = "Check again"; -App::$strings["Database connection"] = "Database connection"; -App::$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."; -App::$strings["Please contact your hosting provider or site administrator if you have questions about these settings."] = "Please contact your hosting provider or server administrator if you have questions about these settings."; -App::$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."; -App::$strings["Database Server Name"] = "Database Server Name"; -App::$strings["Default is 127.0.0.1"] = "Default is 127.0.0.1"; -App::$strings["Database Port"] = "Database Port"; -App::$strings["Communication port number - use 0 for default"] = "Communication port number - use 0 for default"; -App::$strings["Database Login Name"] = "Database Login Name"; -App::$strings["Database Login Password"] = "Database Login Password"; -App::$strings["Database Name"] = "Database Name"; -App::$strings["Database Type"] = "Database Type"; -App::$strings["Site administrator email address"] = "Hub administrator email address"; -App::$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."; -App::$strings["Website URL"] = "Hub URL"; -App::$strings["Please use SSL (https) URL if available."] = "Please use SSL (https) URL if available."; -App::$strings["Please select a default timezone for your website"] = "Please select a default timezone for your hub"; -App::$strings["Site settings"] = "Hub settings"; -App::$strings["PHP version 5.5 or greater is required."] = "PHP version 5.5 or greater is required."; -App::$strings["PHP version"] = "PHP version"; -App::$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."; -App::$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."; -App::$strings["PHP executable path"] = "PHP executable path"; -App::$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."; -App::$strings["Command line PHP"] = "Command line PHP"; -App::$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."; -App::$strings["This is required for message delivery to work."] = "This is required for message delivery to work."; -App::$strings["PHP register_argc_argv"] = "PHP register_argc_argv"; -App::$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."; -App::$strings["You can adjust these settings in the servers php.ini."] = "You can adjust these settings in the servers php.ini."; -App::$strings["PHP upload limits"] = "PHP upload limits"; -App::$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"; -App::$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\"."; -App::$strings["Generate encryption keys"] = "Generate encryption keys"; -App::$strings["libCurl PHP module"] = "libCurl PHP module"; -App::$strings["GD graphics PHP module"] = "GD graphics PHP module"; -App::$strings["OpenSSL PHP module"] = "OpenSSL PHP module"; -App::$strings["mysqli or postgres PHP module"] = "mysqli or postgres PHP module"; -App::$strings["mb_string PHP module"] = "mb_string PHP module"; -App::$strings["xml PHP module"] = "xml PHP module"; -App::$strings["Apache mod_rewrite module"] = "Apache mod_rewrite module"; -App::$strings["Error: Apache webserver mod-rewrite module is required but not installed."] = "Error: Apache webserver mod-rewrite module is required but not installed."; -App::$strings["proc_open"] = "proc_open"; -App::$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"; -App::$strings["Error: libCURL PHP module required but not installed."] = "Error: libCURL PHP module required but not installed."; -App::$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."; -App::$strings["Error: openssl PHP module required but not installed."] = "Error: openssl PHP module required but not installed."; -App::$strings["Error: mysqli or postgres PHP module required but neither are installed."] = "Error: mysqli or postgres PHP module required but neither are installed."; -App::$strings["Error: mb_string PHP module required but not installed."] = "Error: mb_string PHP module required but not installed."; -App::$strings["Error: xml PHP module required for DAV but not installed."] = "Error: xml PHP module required for DAV but not installed."; -App::$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."; -App::$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."; -App::$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."; -App::$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."; -App::$strings[".htconfig.php is writable"] = ".htconfig.php is writable"; -App::$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."; -App::$strings["In order to store these compiled templates, the web server needs to have write access to the directory %s under the top level web folder."] = "In order to store these compiled templates, the web server needs to have write access to the directory %s under the top level web folder."; -App::$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."; -App::$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."; -App::$strings["%s is writable"] = "%s is writable"; -App::$strings["This software 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"] = "This software 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"; -App::$strings["store is writable"] = "store is writable"; -App::$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."; -App::$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!"; -App::$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."; -App::$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."; -App::$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."; -App::$strings["Providers are available that issue free certificates which are browser-valid."] = "Providers are available that issue free certificates which are browser-valid."; -App::$strings["If you are confident that the certificate is valid and signed by a trusted authority, check to see if you have failed to install an intermediate cert. These are not normally required by browsers, but are required for server-to-server communications."] = "If you are confident that the certificate is valid and signed by a trusted authority, check to see if you have failed to install an intermediate cert. These are not normally required by browsers, but are required for server-to-server communications."; -App::$strings["SSL certificate validation"] = "SSL certificate validation"; -App::$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: "; -App::$strings["Url rewrite is working"] = "Url rewrite is working"; -App::$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."; -App::$strings["Errors encountered creating database tables."] = "Errors encountered creating database tables."; -App::$strings["

        What next

        "] = "

        What next

        "; -App::$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."; +App::$strings["Unable to find your hub."] = "Niet in staat om je hub te vinden"; +App::$strings["Post successful."] = "Verzenden bericht geslaagd."; +App::$strings["This setting requires special processing and editing has been blocked."] = "Deze instelling vereist een speciaal proces en bewerken is geblokkeerd."; +App::$strings["Configuration Editor"] = "Configuratiebewerker"; +App::$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. "; +App::$strings["Blocks"] = "Blokken"; +App::$strings["Block Title"] = "Bloktitel"; +App::$strings["Layouts"] = "Lay-outs"; +App::$strings["Help"] = "Hulp"; +App::$strings["Comanche page description language help"] = "Hulp met de paginabeschrijvingstaal Comanche"; +App::$strings["Layout Description"] = "Lay-out-omschrijving"; +App::$strings["Download PDL file"] = "Download PDL-bestand"; +App::$strings["Website:"] = "Website:"; +App::$strings["Remote Channel [%s] (not yet known on this site)"] = "Kanaal op afstand [%s] (nog niet op deze hub bekend)"; +App::$strings["Rating (this information is public)"] = "Beoordeling (deze informatie is openbaar)"; +App::$strings["Optionally explain your rating (this information is public)"] = "Verklaar jouw beoordeling (niet verplicht, deze informatie is openbaar)"; +App::$strings["Like/Dislike"] = "Leuk/niet leuk"; +App::$strings["This action is restricted to members."] = "Deze actie kan alleen door \$Projectname-leden worden uitgevoerd."; +App::$strings["Please login with your \$Projectname ID or register as a new \$Projectname member to continue."] = "Je dient in te loggen met je \$Projectname-account of een nieuw \$Projectname-account aan te maken om verder te kunnen gaan."; +App::$strings["Invalid request."] = "Ongeldig verzoek"; +App::$strings["channel"] = "kanaal"; +App::$strings["thing"] = "ding"; +App::$strings["Channel unavailable."] = "Kanaal niet beschikbaar."; +App::$strings["Previous action reversed."] = "Vorige actie omgedraaid"; +App::$strings["photo"] = "foto"; +App::$strings["status"] = "bericht"; +App::$strings["event"] = "gebeurtenis"; +App::$strings["%1\$s likes %2\$s's %3\$s"] = "%1\$s vindt %3\$s van %2\$s leuk"; +App::$strings["%1\$s doesn't like %2\$s's %3\$s"] = "%1\$s vindt %3\$s van %2\$s niet leuk"; +App::$strings["%1\$s agrees with %2\$s's %3\$s"] = "%1\$s is het eens met %2\$s's %3\$s"; +App::$strings["%1\$s doesn't agree with %2\$s's %3\$s"] = "%1\$s is het niet eens met %2\$s's %3\$s"; +App::$strings["%1\$s abstains from a decision on %2\$s's %3\$s"] = "%1\$s onthoudt zich van een besluit over %2\$s's %3\$s"; +App::$strings["%1\$s is attending %2\$s's %3\$s"] = "%1\$s is aanwezig op %2\$s's %3\$s"; +App::$strings["%1\$s is not attending %2\$s's %3\$s"] = "%1\$s is niet aanwezig op %2\$s's %3\$s"; +App::$strings["%1\$s may attend %2\$s's %3\$s"] = "%1\$s is mogelijk aanwezig op %2\$s's %3\$s"; +App::$strings["Action completed."] = "Actie voltooid"; +App::$strings["Thank you."] = "Bedankt"; +App::$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."; +App::$strings["Use Photo for Profile"] = "Als profielfoto gebruiken"; +App::$strings["Upload Profile Photo"] = "Profielfoto uploaden"; +App::$strings["Use"] = "Gebruiken"; +App::$strings["Items tagged with: %s"] = "Items getagd met %s"; +App::$strings["Search results for: %s"] = "Zoekresultaten voor %s"; +App::$strings["No channel."] = "Geen kanaal."; +App::$strings["Common connections"] = "Veel voorkomende connecties"; +App::$strings["No connections in common."] = "Geen gemeenschappelijke connecties."; +App::$strings["Authorize application connection"] = "Geef toestemming voor applicatiekoppeling"; +App::$strings["Return to your app and insert this Security Code:"] = "Ga terug naar je app en voeg deze beveiligingscode in:"; +App::$strings["Please login to continue."] = "Inloggen om verder te kunnen gaan."; +App::$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?"; +App::$strings["sent you a private message"] = "stuurde jou een privébericht"; +App::$strings["added your channel"] = "voegde jouw kanaal toe"; +App::$strings["g A l F d"] = "G:i, l d F"; +App::$strings["[today]"] = "[vandaag]"; +App::$strings["posted an event"] = "plaatste een gebeurtenis"; +App::$strings["About this site"] = "Over deze hub"; +App::$strings["Site Name"] = "Hubnaam"; +App::$strings["Administrator"] = "Beheerder"; +App::$strings["Software and Project information"] = "Software- en projectinformatie"; +App::$strings["This site is powered by \$Projectname"] = "Dit is een \$Projectname-hub"; +App::$strings["Federated and decentralised networking and identity services provided by Zot"] = "Federatieve en gedecentraliseerde netwerk- en identiteitsdiensten, mogelijk gemaakt door Zot"; +App::$strings["Version %s"] = "Versie %s"; +App::$strings["Project homepage"] = "Projectwebsite"; +App::$strings["Developer homepage"] = "Ontwikkelaarswebsite"; App::$strings["No valid account found."] = "Geen geldige account gevonden."; App::$strings["Password reset request issued. Check your email."] = "Het verzoek om je wachtwoord opnieuw in te stellen is behandeld. Controleer je e-mail."; App::$strings["Site Member (%s)"] = "Lid van hub (%s)"; @@ -913,156 +1121,45 @@ App::$strings["Forgot your Password?"] = "Wachtwoord vergeten?"; App::$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."; App::$strings["Email Address"] = "E-mailadres"; App::$strings["Reset"] = "Opnieuw instellen"; -App::$strings["__ctx:mood__ %1\$s is %2\$s"] = "%1\$s is %2\$s"; -App::$strings["Mood"] = "Stemming"; -App::$strings["Set your current mood and tell your friends"] = "Noteer je huidige stemming en toon het aan je connecties"; -App::$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."; -App::$strings["Remove This Channel"] = "Verwijder dit kanaal"; -App::$strings["WARNING: "] = "WAARSCHUWING: "; -App::$strings["This channel will be completely removed from the network. "] = "Dit kanaal wordt volledig uit het \$Projectname-netwerk verwijderd."; -App::$strings["This action is permanent and can not be undone!"] = "Deze handeling is van permanente aard en kan niet meer worden teruggedraaid!"; -App::$strings["Please enter your password for verification:"] = "Vul je wachtwoord in ter verificatie:"; -App::$strings["Remove this channel and all its clones from the network"] = "Dit kanaal en alle klonen hiervan uit het \$Projectname-netwerk verwijderen"; -App::$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"; -App::$strings["Remove Channel"] = "Kanaal verwijderen"; -App::$strings["No more system notifications."] = "Geen systeemnotificaties meer."; -App::$strings["System Notifications"] = "Systeemnotificaties"; -App::$strings["Profile Match"] = "Profielovereenkomst"; -App::$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."; -App::$strings["is interested in:"] = "is geïnteresseerd in:"; -App::$strings["Connect"] = "Verbinden"; -App::$strings["No matches"] = "Geen overeenkomsten"; -App::$strings["This site is not a directory server"] = "Deze hub is geen kanalengidshub (directoryserver)"; +App::$strings["Select a bookmark folder"] = "Kies een bladwijzermap"; +App::$strings["Save Bookmark"] = "Bladwijzer opslaan"; +App::$strings["URL of bookmark"] = "URL van bladwijzer"; +App::$strings["Or enter new bookmark folder name"] = "Of geef de naam op van een nieuwe bladwijzermap"; App::$strings["This directory server requires an access token"] = "Deze kanalengidshub (directoryserver) heeft een toegangs-token nodig"; -App::$strings["Hub not found."] = "Hub niet gevonden."; -App::$strings["Page owner information could not be retrieved."] = "Informatie over de pagina-eigenaar werd niet ontvangen."; -App::$strings["Profile Photos"] = "Profielfoto's"; -App::$strings["Album not found."] = "Album niet gevonden."; -App::$strings["Delete Album"] = "Verwijder album"; -App::$strings["Multiple storage folders exist with this album name, but within different directories. Please remove the desired folder or folders using the Files manager"] = "Er bestaan meerdere submappen met deze albumnaam, maar verspreidt over verschillende mappen. Verwijder de gewenste map(pen) met de bestandsbeheerder."; -App::$strings["Delete Photo"] = "Verwijder foto"; -App::$strings["Public access denied."] = "Openbare toegang geweigerd."; -App::$strings["No photos selected"] = "Geen foto's geselecteerd"; -App::$strings["Access to this item is restricted."] = "Toegang tot dit item is beperkt."; -App::$strings["%1$.2f MB of %2$.2f MB photo storage used."] = "%1$.2f MB van %2$.2f MB aan foto-opslag gebruikt."; -App::$strings["%1$.2f MB photo storage used."] = "%1$.2f MB aan foto-opslag gebruikt."; -App::$strings["Upload Photos"] = "Foto's uploaden"; -App::$strings["Enter an album name"] = "Vul een albumnaam in"; -App::$strings["or select an existing album (doubleclick)"] = "of kies een bestaand album (dubbelklikken)"; -App::$strings["Create a status post for this upload"] = "Plaats een bericht voor deze upload."; -App::$strings["Caption (optional):"] = "Bijschrift (optioneel):"; -App::$strings["Description (optional):"] = "Omschrijving (optioneel):"; -App::$strings["Album name could not be decoded"] = "Albumnaam kon niet gedecodeerd worden"; -App::$strings["Contact Photos"] = "Connectiefoto's"; -App::$strings["Show Newest First"] = "Nieuwste eerst weergeven"; -App::$strings["Show Oldest First"] = "Oudste eerst weergeven"; -App::$strings["View Photo"] = "Foto weergeven"; -App::$strings["Edit Album"] = "Album bewerken"; -App::$strings["Permission denied. Access to this item may be restricted."] = "Toegang geweigerd. Toegang tot dit item kan zijn beperkt."; -App::$strings["Photo not available"] = "Foto niet aanwezig"; -App::$strings["Use as profile photo"] = "Als profielfoto gebruiken"; -App::$strings["Use as cover photo"] = "Als omslagfoto gebruiken"; -App::$strings["Private Photo"] = "Privéfoto"; -App::$strings["Previous"] = "Vorige"; -App::$strings["View Full Size"] = "Volledige grootte weergeven"; -App::$strings["Edit photo"] = "Foto bewerken"; -App::$strings["Rotate CW (right)"] = "Draai met de klok mee (naar rechts)"; -App::$strings["Rotate CCW (left)"] = "Draai tegen de klok in (naar links)"; -App::$strings["Move photo to album"] = "Verplaatst foto naar album"; -App::$strings["Enter a new album name"] = "Vul een nieuwe albumnaam in"; -App::$strings["or select an existing one (doubleclick)"] = "of kies een bestaand album (dubbelklikken)"; -App::$strings["Caption"] = "Bijschrift"; -App::$strings["Add a Tag"] = "Tag toevoegen"; -App::$strings["Example: @bob, @Barbara_Jensen, @jim@example.com"] = "Voorbeeld: @bob, @Barbara_Jansen, @jan@voorbeeld.nl"; -App::$strings["Flag as adult in album view"] = "Markeer als voor volwassenen in albumweergave"; -App::$strings["I like this (toggle)"] = "Vind ik leuk"; -App::$strings["I don't like this (toggle)"] = "Vind ik niet leuk"; -App::$strings["Share"] = "Delen"; -App::$strings["Please wait"] = "Even wachten"; -App::$strings["This is you"] = "Dit ben jij"; -App::$strings["Comment"] = "Reactie"; -App::$strings["Preview"] = "Voorvertoning"; -App::$strings["__ctx:title__ Likes"] = "vinden dit leuk"; -App::$strings["__ctx:title__ Dislikes"] = "vinden dit niet leuk"; -App::$strings["__ctx:title__ Agree"] = "eens"; -App::$strings["__ctx:title__ Disagree"] = "oneens"; -App::$strings["__ctx:title__ Abstain"] = "onthoudingen"; -App::$strings["__ctx:title__ Attending"] = "aanwezig"; -App::$strings["__ctx:title__ Not attending"] = "niet aanwezig"; -App::$strings["__ctx:title__ Might attend"] = "mogelijk aanwezig"; -App::$strings["View all"] = "Toon alles"; -App::$strings["__ctx:noun__ Like"] = array( - 0 => "vindt dit leuk", - 1 => "vinden dit leuk", -); -App::$strings["__ctx:noun__ Dislike"] = array( - 0 => "vindt dit niet leuk", - 1 => "vinden dit niet leuk", -); -App::$strings["Photo Tools"] = "Hulpmiddelen"; -App::$strings["In This Photo:"] = "Op deze foto:"; -App::$strings["Map"] = "Kaart"; -App::$strings["__ctx:noun__ Likes"] = "vinden dit leuk"; -App::$strings["__ctx:noun__ Dislikes"] = "vinden dit niet leuk"; -App::$strings["Close"] = "Sluiten"; -App::$strings["View Album"] = "Album weergeven"; -App::$strings["Recent Photos"] = "Recente foto's"; -App::$strings["Name or caption"] = "Naam"; -App::$strings["Examples: \"Bob Jameson\", \"Lisa and her Horses\", \"Soccer\", \"Aviation Group\""] = "Voorbeelden: \"Jan Pietersen\", \"Willems weblog\", \"Computerforum\""; -App::$strings["Choose a short nickname"] = "Korte bijnaam"; -App::$strings["Your nickname will be used to create an easy to remember channel address e.g. nickname%s"] = "Deze bijnaam wordt gebruikt om een makkelijk te onthouden kanaaladres van jouw kanaal aan te maken, die je dan met anderen kunt delen. Bijvoorbeeld: bijnaam%s"; -App::$strings["Channel role and privacy"] = "Kanaaltype en privacy"; -App::$strings["Select a channel role with your privacy requirements."] = "Kies een kanaaltype met het door jou gewenste privacyniveau."; -App::$strings["Read more about roles"] = "Lees meer over kanaaltypes"; -App::$strings["Create Channel"] = "Kanaal aanmaken"; -App::$strings["A channel is your identity on this network. It can represent a person, a blog, or a forum to name a few. Channels can make connections with other channels to share information with highly detailed permissions."] = "Een kanaal is jouw identiteit in dit netwerk. Het kan bijvoorbeeld een persoon, een blog of een forum vertegenwoordigen. Door met elkaar te verbinden kunnen kanalen, met behulp van uitgebreide permissies, informatie uitwisselen."; -App::$strings["or import an existing channel from another location."] = "Of importeer een bestaand kanaal vanaf een andere locatie"; -App::$strings["sent you a private message"] = "stuurde jou een privébericht"; -App::$strings["added your channel"] = "voegde jouw kanaal toe"; -App::$strings["g A l F d"] = "G:i, l d F"; -App::$strings["[today]"] = "[vandaag]"; -App::$strings["posted an event"] = "plaatste een gebeurtenis"; -App::$strings["Invalid request identifier."] = "Ongeldige verzoek identificator (request identifier)"; -App::$strings["Discard"] = "Annuleren"; -App::$strings["Mark all system notifications seen"] = "Markeer alle systeemnotificaties als bekeken"; -App::$strings["Poke"] = "Aanstoten"; -App::$strings["Poke somebody"] = "Iemand aanstoten"; -App::$strings["Poke/Prod"] = "Aanstoten/porren"; -App::$strings["Poke, prod or do other things to somebody"] = "Iemand bijvoorbeeld aanstoten of poren"; -App::$strings["Recipient"] = "Ontvanger"; -App::$strings["Choose what you wish to do to recipient"] = "Kies wat je met de ontvanger wil doen"; -App::$strings["Make this post private"] = "Maak dit bericht privé"; -App::$strings["Apps"] = "Apps"; -App::$strings["Unable to find your hub."] = "Niet in staat om je hub te vinden"; -App::$strings["Post successful."] = "Verzenden bericht geslaagd."; -App::$strings["Invalid profile identifier."] = "Ongeldige profiel-identificator"; -App::$strings["Profile Visibility Editor"] = "Zichtbaarheid profiel "; -App::$strings["Profile"] = "Profiel"; -App::$strings["Click on a contact to add or remove."] = "Klik op een connectie om deze toe te voegen of te verwijderen"; -App::$strings["Visible To"] = "Zichtbaar voor"; -App::$strings["This setting requires special processing and editing has been blocked."] = "Deze instelling vereist een speciaal proces en bewerken is geblokkeerd."; -App::$strings["Configuration Editor"] = "Configuratiebewerker"; -App::$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. "; -App::$strings["Version %s"] = "Versie %s"; -App::$strings["Installed plugins/addons/apps:"] = "Ingeschakelde plugins en apps:"; -App::$strings["No installed plugins/addons/apps"] = "Geen ingeschakelde plugins en apps"; -App::$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."; -App::$strings["Tag: "] = "Tag: "; -App::$strings["Last background fetch: "] = "Meest recente achtergrond-fetch:"; -App::$strings["Current load average: "] = "Gemiddelde systeembelasting is nu:"; -App::$strings["Running at web location"] = "Draaiend op weblocatie"; -App::$strings["Please visit hubzilla.org to learn more about \$Projectname."] = "Bezoek hubzilla.org "; -App::$strings["Bug reports and issues: please visit"] = "Bugrapporten en andere kwesties: bezoek"; -App::$strings["\$projectname issues"] = "\$projectname-issues"; -App::$strings["Suggestions, praise, etc. - please email \"redmatrix\" at librelist - dot com"] = "Voorstellen, lofbetuigingen, enz. - e-mail \"redmatrix\" at librelist - dot com"; -App::$strings["Site Administrators"] = "Hubbeheerders: "; -App::$strings["Blocks"] = "Blokken"; -App::$strings["Block Title"] = "Bloktitel"; -App::$strings["Layouts"] = "Lay-outs"; -App::$strings["Help"] = "Hulp"; -App::$strings["Comanche page description language help"] = "Hulp met de paginabeschrijvingstaal Comanche"; -App::$strings["Layout Description"] = "Lay-out-omschrijving"; -App::$strings["Download PDL file"] = "Download PDL-bestand"; +App::$strings["Authentication failed."] = "Authenticatie mislukt."; +App::$strings["Remote Authentication"] = "Authenticatie op afstand"; +App::$strings["Enter your channel address (e.g. channel@example.com)"] = "Vul jouw kanaaladres in (bijv. channel@example.com)"; +App::$strings["Authenticate"] = "Authenticeren"; +App::$strings["Please login."] = "Inloggen."; +App::$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."; +App::$strings["Remove This Account"] = "Verwijder dit account"; +App::$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."; +App::$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"; +App::$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"; +App::$strings["Remove Account"] = "Account verwijderen"; +App::$strings["Layout updated."] = "Lay-out bijgewerkt."; +App::$strings["Feature disabled."] = "Functie uitgeschakeld."; +App::$strings["Edit System Page Description"] = "Systeempagina's bewerken"; +App::$strings["Layout not found."] = "Lay-out niet gevonden."; +App::$strings["Module Name:"] = "Modulenaam:"; +App::$strings["Layout Help"] = "Lay-out-hulp"; +App::$strings["Export Channel"] = "Kanaal exporteren"; +App::$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."; +App::$strings["Export Content"] = "Inhoud exporteren"; +App::$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."; +App::$strings["Export your posts from a given year."] = "Exporteer jouw berichten uit een bepaald jaar."; +App::$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."; +App::$strings["To select all posts for a given year, such as this year, visit %2\$s"] = "Bezoek %2\$s om alle berichten van bijvoorbeeld dit jaar te selecteren. "; +App::$strings["To select all posts for a given month, such as January of this year, visit %2\$s"] = "Bezoek %2\$s om alle berichten van bijvoorbeeld januari dit jaar te selecteren."; +App::$strings["These content files may be imported or restored by visiting %2\$s 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 %2\$s te bezoeken. Voor het beste resultaat kan je de bestanden in chronologische volgorde importeren of herstellen."; +App::$strings["Permissions denied."] = "Permissies niet toegestaan"; +App::$strings["l, F j"] = "l j F"; +App::$strings["Link to Source"] = "Originele locatie"; +App::$strings["Edit Event"] = "Gebeurtenis bewerken"; +App::$strings["Create Event"] = "Gebeurtenis aanmaken"; +App::$strings["Export"] = "Exporteren"; +App::$strings["Import"] = "Importeren"; +App::$strings["Today"] = "Vandaag"; App::$strings["# Accounts"] = "# accounts"; App::$strings["# blocked accounts"] = "# geblokkeerde accounts"; App::$strings["# expired accounts"] = "# verlopen accounts"; @@ -1080,62 +1177,9 @@ App::$strings["Active plugins"] = "Ingeschakelde plugins"; App::$strings["Version"] = "Versie"; App::$strings["Repository version (master)"] = "Versie repository (master)"; App::$strings["Repository version (dev)"] = "Versie repository (dev)"; -App::$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."; -App::$strings["Upload Profile Photo"] = "Profielfoto uploaden"; -App::$strings["Permissions denied."] = "Permissies niet toegestaan"; -App::$strings["l, F j"] = "l j F"; -App::$strings["Link to Source"] = "Originele locatie"; -App::$strings["Edit Event"] = "Gebeurtenis bewerken"; -App::$strings["Create Event"] = "Gebeurtenis aanmaken"; -App::$strings["Export"] = "Exporteren"; -App::$strings["Import"] = "Importeren"; -App::$strings["Today"] = "Vandaag"; -App::$strings["No channel."] = "Geen kanaal."; -App::$strings["Common connections"] = "Veel voorkomende connecties"; -App::$strings["No connections in common."] = "Geen gemeenschappelijke connecties."; -App::$strings["No ratings"] = "Geen beoordelingen"; -App::$strings["Rating: "] = "Beoordeling: "; -App::$strings["Website: "] = "Website: "; -App::$strings["Description: "] = "Omschrijving: "; -App::$strings["Maximum daily site registrations exceeded. Please try again tomorrow."] = "Maximum toegestane dagelijkse registraties op deze \$Projectname-hub bereikt. Probeer het morgen (UTC) nogmaals."; -App::$strings["Please indicate acceptance of the Terms of Service. Registration failed."] = "Registratie mislukt. De gebruiksvoorwaarden dienen wel geaccepteerd te worden."; -App::$strings["Passwords do not match."] = "Wachtwoorden komen niet met elkaar overeen."; -App::$strings["Registration successful. Please check your email for validation instructions."] = "Registratie geslaagd. Controleer je e-mail voor instructies."; -App::$strings["Your registration is pending approval by the site owner."] = "Jouw accountregistratie wacht op goedkeuring van de beheerder van deze \$Projectname-hub."; -App::$strings["Your registration can not be processed."] = "Jouw registratie kan niet verwerkt worden."; -App::$strings["Registration on this hub is disabled."] = "Registreren van nieuwe accounts is op deze hub uitgeschakeld."; -App::$strings["Registration on this hub is by approval only."] = "Registraties op deze hub moeten eerst worden goedgekeurd."; -App::$strings["Register at another affiliated hub."] = "Registreer op een andere hub."; -App::$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."; -App::$strings["Terms of Service"] = "Gebruiksvoorwaarden"; -App::$strings["I accept the %s for this website"] = "Ik accepteer de %s van deze \$Projectname-hub"; -App::$strings["I am over 13 years of age and accept the %s for this website"] = "Ik ben 13 jaar of ouder en accepteer de %s van deze \$Projectname-hub"; -App::$strings["Your email address"] = "Jouw e-mailadres"; -App::$strings["Choose a password"] = "Geef een wachtwoord op"; -App::$strings["Please re-enter your password"] = "Geef het wachtwoord opnieuw op"; -App::$strings["Please enter your invitation code"] = "Vul jouw uitnodigingscode in"; -App::$strings["no"] = "Nee"; -App::$strings["yes"] = "Ja"; -App::$strings["Membership on this site is by invitation only."] = "Registreren op deze \$Projectname-hub kan alleen op uitnodiging."; -App::$strings["Register"] = "Registreren"; -App::$strings["This site may require email verification after submitting this form. If you are returned to a login page, please check your email for instructions."] = "Mogelijk moet op deze hub eerst jouw e-mail geverifieerd worden. Wanneer je na het indienen van dit formulier op de inlogpagina terecht komt, dan dien je jouw e-mail te controleren voor instructies. Controleer eventueel ook jouw spamfolder."; -App::$strings["Documentation Search"] = "Zoek documentatie"; -App::$strings["\$Projectname Documentation"] = "\$Projectname-documentatie"; -App::$strings["Select a bookmark folder"] = "Kies een bladwijzermap"; -App::$strings["Save Bookmark"] = "Bladwijzer opslaan"; -App::$strings["URL of bookmark"] = "URL van bladwijzer"; -App::$strings["Or enter new bookmark folder name"] = "Of geef de naam op van een nieuwe bladwijzermap"; -App::$strings["Authentication failed."] = "Authenticatie mislukt."; -App::$strings["Remote Authentication"] = "Authenticatie op afstand"; -App::$strings["Enter your channel address (e.g. channel@example.com)"] = "Vul jouw kanaaladres in (bijv. channel@example.com)"; -App::$strings["Authenticate"] = "Authenticeren"; -App::$strings["Please login."] = "Inloggen."; -App::$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."; -App::$strings["Remove This Account"] = "Verwijder dit account"; -App::$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."; -App::$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"; -App::$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"; -App::$strings["Remove Account"] = "Account verwijderen"; +App::$strings["Remote privacy information not available."] = "Privacy-informatie op afstand niet beschikbaar."; +App::$strings["Visible to:"] = "Zichtbaar voor:"; +App::$strings["No service class restrictions found."] = "Geen abonnementsbeperkingen gevonden."; App::$strings["Import Webpage Elements"] = "Webpagina-elementen importeren"; App::$strings["Import selected"] = "Importbestand geselecteerd"; App::$strings["Export Webpage Elements"] = "Webpagina-elementen exporteren"; @@ -1145,98 +1189,50 @@ App::$strings["Actions"] = "Acties"; App::$strings["Page Link"] = "Paginalink"; App::$strings["Page Title"] = "Paginatitel"; App::$strings["Invalid file type."] = "Ongeldig bestandsformaat"; -App::$strings["Error opening zip file"] = "Fout met openen zipbestand"; +App::$strings["Error opening zip file"] = "Fout tijdens openen zipbestand"; App::$strings["Invalid folder path."] = "Ongeldige maplocatie"; App::$strings["No webpage elements detected."] = "Geen webpagina-elementen gedecteerd"; App::$strings["Import complete."] = "Importeren voltooid."; -App::$strings["Export Channel"] = "Kanaal exporteren"; -App::$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."; -App::$strings["Export Content"] = "Inhoud exporteren"; -App::$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."; -App::$strings["Export your posts from a given year."] = "Exporteer jouw berichten uit een bepaald jaar."; -App::$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."; -App::$strings["To select all posts for a given year, such as this year, visit %2\$s"] = "Bezoek %2\$s om alle berichten van bijvoorbeeld dit jaar te selecteren. "; -App::$strings["To select all posts for a given month, such as January of this year, visit %2\$s"] = "Bezoek %2\$s om alle berichten van bijvoorbeeld januari dit jaar te selecteren."; -App::$strings["These content files may be imported or restored by visiting %2\$s 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 %2\$s te bezoeken. Voor het beste resultaat kan je de bestanden in chronologische volgorde importeren of herstellen."; -App::$strings["Item is not editable"] = "Item is niet te bewerken"; -App::$strings["Items tagged with: %s"] = "Items getagd met %s"; -App::$strings["Search results for: %s"] = "Zoekresultaten voor %s"; -App::$strings["Calendar entries imported."] = "Agenda-items geïmporteerd."; -App::$strings["No calendar entries found."] = "Geen agenda-items gevonden."; -App::$strings["Event can not end before it has started."] = "Gebeurtenis kan niet eindigen voordat het is begonnen"; -App::$strings["Unable to generate preview."] = "Niet in staat om voorvertoning te genereren"; -App::$strings["Event title and start time are required."] = "Titel en begintijd van gebeurtenis zijn vereist."; -App::$strings["Event not found."] = "Gebeurtenis niet gevonden"; -App::$strings["Edit event title"] = "Titel bewerken"; -App::$strings["Event title"] = "Titel"; -App::$strings["Categories (comma-separated list)"] = "Categorieën (door komma's gescheiden lijst)"; -App::$strings["Edit Category"] = "Categorie"; -App::$strings["Category"] = "Categorie"; -App::$strings["Edit start date and time"] = "Begindatum en -tijd bewerken"; -App::$strings["Start date and time"] = "Begindatum en -tijd"; -App::$strings["Finish date and time are not known or not relevant"] = "Einddatum en -tijd zijn niet bekend of niet van toepassing"; -App::$strings["Edit finish date and time"] = "Einddatum en -tijd bewerken"; -App::$strings["Finish date and time"] = "Einddatum en -tijd"; -App::$strings["Adjust for viewer timezone"] = "Aanpassen aan de tijdzone van wie deze gebeurtenis bekijkt"; -App::$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."; -App::$strings["Edit Description"] = "Omschrijving bewerken"; -App::$strings["Edit Location"] = "Locatie bewerken"; -App::$strings["Share this event"] = "Deel deze gebeurtenis"; -App::$strings["Permission settings"] = "Permissies"; -App::$strings["Advanced Options"] = "Geavanceerde opties"; -App::$strings["Edit event"] = "Gebeurtenis bewerken"; -App::$strings["Delete event"] = "Gebeurtenis verwijderen"; -App::$strings["calendar"] = "agenda"; -App::$strings["Month"] = "Maand"; -App::$strings["Week"] = "Week"; -App::$strings["Day"] = "Dag"; -App::$strings["Event removed"] = "Gebeurtenis verwijderd"; -App::$strings["Failed to remove event"] = "Verwijderen gebeurtenis mislukt"; -App::$strings["No service class restrictions found."] = "Geen abonnementsbeperkingen gevonden."; -App::$strings["Thing updated"] = "Ding bijgewerkt"; -App::$strings["Object store: failed"] = "Opslaan van ding mislukt"; -App::$strings["Thing added"] = "Ding toegevoegd"; -App::$strings["OBJ: %1\$s %2\$s %3\$s"] = "OBJ: %1\$s %2\$s %3\$s"; -App::$strings["Show Thing"] = "Ding weergeven"; -App::$strings["item not found."] = "Item niet gevonden"; -App::$strings["Edit Thing"] = "Ding bewerken"; -App::$strings["Select a profile"] = "Kies een profiel"; -App::$strings["Post an activity"] = "Plaats een bericht"; -App::$strings["Only sends to viewers of the applicable profile"] = "Toont dit alleen aan diegene die het gekozen profiel mogen zien."; -App::$strings["Name of thing e.g. something"] = "Naam van ding"; -App::$strings["URL of thing (optional)"] = "URL van ding (optioneel)"; -App::$strings["URL for photo of thing (optional)"] = "URL voor foto van ding (optioneel)"; -App::$strings["Add Thing to your Profile"] = "Ding aan je profiel toevoegen"; -App::$strings["Unable to locate original post."] = "Niet in staat om de originele locatie van het bericht te vinden. "; -App::$strings["Empty post discarded."] = "Leeg bericht geannuleerd"; -App::$strings["Executable content type not permitted to this channel."] = "Uitvoerbare bestanden zijn niet toegestaan op dit kanaal."; -App::$strings["Duplicate post suppressed."] = "Dubbel bericht tegengehouden."; -App::$strings["System error. Post not saved."] = "Systeemfout. Bericht niet opgeslagen."; -App::$strings["Unable to obtain post information from database."] = "Niet in staat om informatie over dit bericht uit de database te verkrijgen."; -App::$strings["You have reached your limit of %1$.0f top level posts."] = "Je hebt jouw limiet van %1$.0f berichten bereikt."; -App::$strings["You have reached your limit of %1$.0f webpages."] = "Je hebt jouw limiet van %1$.0f webpagina's bereikt."; +App::$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."; +App::$strings["Remove This Channel"] = "Verwijder dit kanaal"; +App::$strings["This channel will be completely removed from the network. "] = "Dit kanaal wordt volledig uit het \$Projectname-netwerk verwijderd."; +App::$strings["Remove this channel and all its clones from the network"] = "Dit kanaal en alle klonen hiervan uit het \$Projectname-netwerk verwijderen"; +App::$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"; +App::$strings["Remove Channel"] = "Kanaal verwijderen"; App::$strings["Files: shared with me"] = "Bestanden: met mij gedeeld"; App::$strings["NEW"] = "NIEUW"; App::$strings["Remove all files"] = "Verwijder alle bestanden"; App::$strings["Remove this file"] = "Verwijder dit bestand"; App::$strings["Not found"] = "Niet gevonden"; -App::$strings["Wiki"] = "Wiki"; -App::$strings["Sandbox"] = "Zandbak"; -App::$strings["\"# Wiki Sandbox\\n\\nContent you **edit** and **preview** here *will not be saved*.\""] = "\"# Wiki Sandbox\\n\\nWat er hier onder **edit** en **preview** staat *wordt niet opgeslagen*.\""; +App::$strings["Invalid channel"] = "Onbekend kanaal"; +App::$strings["Error retrieving wiki"] = "Fout tijdens ophalen wiki"; +App::$strings["Error creating zip file export folder"] = "Fout tijdens aanmaken exportmap zipbestand"; +App::$strings["Error downloading wiki: "] = "Fout tijdens downloaden wiki: "; +App::$strings["Wikis"] = "Wiki's"; +App::$strings["Download"] = "Download"; +App::$strings["Wiki name"] = "Naam wiki"; +App::$strings["Content type"] = "Opmaaktype"; +App::$strings["Create a status post for this wiki"] = "Plaats een bericht over deze wiki"; +App::$strings["Wiki not found"] = "Wiki is niet gevonden"; +App::$strings["Rename page"] = "Pagina hernoemen"; +App::$strings["Error retrieving page content"] = "Fout tijdens ophalen inhoud pagina"; App::$strings["Revision Comparison"] = "Revisies vergelijken"; App::$strings["Revert"] = "Ongedaan maken"; -App::$strings["Enter the name of your new wiki:"] = "Vul de naam in van jouw nieuwe wiki:"; -App::$strings["Enter the name of the new page:"] = "Vul de naam in van de nieuwe pagina:"; -App::$strings["Enter the new name:"] = "Vul de nieuwe naam in:"; +App::$strings["Source"] = "Bron"; +App::$strings["New page name"] = "Nieuwe paginanaam"; App::$strings["Embed image from photo albums"] = "Afbeelding uit een fotoalbum invoegen"; App::$strings["Embed an image from your albums"] = "Afbeelding uit jouw albums invoegen"; App::$strings["OK"] = "OK"; App::$strings["Choose images to embed"] = "Kies afbeeldingen om in te voegen"; App::$strings["Choose an album"] = "Kies een album"; -App::$strings["Choose a different album..."] = "Kies een ander album..."; -App::$strings["Error getting album list"] = "Fout met ophalen albumlijst"; -App::$strings["Error getting photo link"] = "Fout met ophalen fotolink"; -App::$strings["Error getting album"] = "Fout met ophalen album"; +App::$strings["Choose a different album"] = "Kies een ander album"; +App::$strings["Error getting album list"] = "Fout tijdens ophalen albumlijst"; +App::$strings["Error getting photo link"] = "Fout tijdens ophalen fotolink"; +App::$strings["Error getting album"] = "Fout tijdens ophalen album"; +App::$strings["Error creating wiki. Invalid name."] = "Fout tijdens aanmaken wiki. Ongeldige naam."; +App::$strings["Wiki created, but error creating Home page."] = "Wiki aangemaakt, maar fout tijdens aanmaken homepagina."; +App::$strings["Error creating wiki"] = "Fout tijdens aanmaken wiki."; +App::$strings["New page created"] = "Nieuwe pagina aangemaakt"; App::$strings["Failed to create source. No channel selected."] = "Aanmaken bron mislukt. Geen kanaal geselecteerd."; App::$strings["Source created."] = "Bron aangemaakt."; App::$strings["Source updated."] = "Bron aangemaakt."; @@ -1259,60 +1255,34 @@ App::$strings["%1\$s is following %2\$s's %3\$s"] = "%1\$s volgt het %3\$s van % App::$strings["%1\$s stopped following %2\$s's %3\$s"] = "%1\$s volgt het %3\$s van %2\$s niet meer"; App::$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."; App::$strings["Ignore/Hide"] = "Negeren/Verbergen"; -App::$strings["Channel Suggestions"] = "Voorgestelde kanalen"; App::$strings["post"] = "bericht"; App::$strings["comment"] = "reactie"; App::$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"; -App::$strings["Tag removed"] = "Tag verwijderd"; -App::$strings["Remove Item Tag"] = "Verwijder item-tag"; -App::$strings["Select a tag to remove: "] = "Kies een tag om te verwijderen"; -App::$strings["Channel added."] = "Kanaal toegevoegd."; -App::$strings["No connections."] = "Geen connecties."; -App::$strings["Visit %s's profile [%s]"] = "Bezoek het profiel van %s [%s]"; -App::$strings["View Connections"] = "Connecties weergeven"; -App::$strings["Source of Item"] = "Bron van item"; -App::$strings["Room not found"] = "Chatkanaal niet gevonden"; -App::$strings["Leave Room"] = "Chatkanaal verlaten"; -App::$strings["Delete Room"] = "Chatkanaal verwijderen"; -App::$strings["I am away right now"] = "Ik ben momenteel afwezig"; -App::$strings["I am online"] = "Ik ben online"; -App::$strings["Bookmark this room"] = "Chatkanaal aan bladwijzers toevoegen"; -App::$strings["New Chatroom"] = "Nieuw chatkanaal"; -App::$strings["Chatroom name"] = "Naam chatkanaal"; -App::$strings["Expiration of chats (minutes)"] = "Aantal minuten voordat chatberichten worden verwijderd"; -App::$strings["%1\$s's Chatrooms"] = "Chatkanalen van %1\$s"; -App::$strings["No chatrooms available"] = "Geen chatkanalen beschikbaar"; -App::$strings["Expiration"] = "Verloopt na"; -App::$strings["min"] = "min"; -App::$strings["Xchan Lookup"] = "Xchan opzoeken"; -App::$strings["Lookup xchan beginning with (or webbie): "] = "Zoek een xchan (of webbie) die begint met:"; -App::$strings["%d rating"] = array( - 0 => "%d beoordeling", - 1 => "%d beoordelingen", -); -App::$strings["Gender: "] = "Geslacht:"; -App::$strings["Status: "] = "Status: "; -App::$strings["Homepage: "] = "Homepage: "; -App::$strings["Age:"] = "Leeftijd:"; -App::$strings["Location:"] = "Plaats:"; -App::$strings["Description:"] = "Omschrijving:"; -App::$strings["Hometown:"] = "Oorspronkelijk uit:"; -App::$strings["About:"] = "Over:"; -App::$strings["Public Forum:"] = "Openbaar forum:"; -App::$strings["Keywords: "] = "Trefwoorden: "; -App::$strings["Don't suggest"] = "Niet voorstellen"; -App::$strings["Common connections:"] = "Gemeenschappelijke connecties:"; -App::$strings["Global Directory"] = "Volledige kanalengids"; -App::$strings["Local Directory"] = "Lokale kanalengids"; -App::$strings["Finding:"] = "Gezocht naar:"; -App::$strings["next page"] = "volgende pagina"; -App::$strings["previous page"] = "vorige pagina"; -App::$strings["Sort options"] = "Sorteeropties"; -App::$strings["Alphabetic"] = "Alfabetisch"; -App::$strings["Reverse Alphabetic"] = "Omgekeerd alfabetisch"; -App::$strings["Newest to Oldest"] = "Nieuw naar oud"; -App::$strings["Oldest to Newest"] = "Oud naar nieuw"; -App::$strings["No entries (some entries may be hidden)."] = "Niets gevonden (sommige kanalen kunnen verborgen zijn)."; +App::$strings["Additional Features"] = "Extra functies"; +App::$strings["Name is required"] = "Naam is vereist"; +App::$strings["Key and Secret are required"] = "Key en secret zijn vereist"; +App::$strings["Add application"] = "Applicatie toevoegen"; +App::$strings["Name of application"] = "Naam van applicatie"; +App::$strings["Consumer Key"] = "Consumer key"; +App::$strings["Automatically generated - change if desired. Max length 20"] = "Automatische gegenereerd - verander wanneer gewenst. Maximale lengte is 20"; +App::$strings["Consumer Secret"] = "Consumer secret"; +App::$strings["Redirect"] = "Redirect/doorverwijzing"; +App::$strings["Redirect URI - leave blank unless your application specifically requires this"] = "URI voor redirect - laat leeg, behalve wanneer de applicatie dit vereist"; +App::$strings["Icon url"] = "Pictogram-URL"; +App::$strings["Application not found."] = "Applicatie niet gevonden."; +App::$strings["Connected Apps"] = "Verbonden applicaties"; +App::$strings["Client key starts with"] = "Client key begint met"; +App::$strings["No name"] = "Geen naam"; +App::$strings["Remove authorization"] = "Autorisatie verwijderen"; +App::$strings["This channel is limited to %d tokens"] = "Dit kanaal heeft een limiet van %d tokens"; +App::$strings["Name and Password are required."] = "Naam en wachtwoord zijn vereist"; +App::$strings["Token saved."] = "Token opgeslagen."; +App::$strings["Use this form to create temporary access identifiers to share things with non-members. These identities may be used in Access Control Lists and visitors may login using these credentials to access private content."] = "Gebruik dit formulier om tijdelijke identiteiten aan te maken, waarmee je bepaalde informatie met niet-leden kan delen. Deze identiteiten kunnen onder Permissies (handmatige selectie) worden gebruikt. Gasten kunnen inloggen met onderstaande gegevens om zo toegang te krijgen tot privéinhoud."; +App::$strings["You may also provide dropbox style access links to friends and associates by adding the Login Password to any specific site URL as shown. Examples:"] = "Je kan ook dropbox-achtige links aan mensen geven door bovenstaand wachtwoord op onderstaande manier aan een hub-URL toe te voegen. Voorbeelden:"; +App::$strings["Guest Access Tokens"] = "Gasttoegang"; +App::$strings["Login Name"] = "Inlognaam"; +App::$strings["Login Password"] = "Wachtwoord:"; +App::$strings["Expires (yyyy-mm-dd)"] = "Geldig t/m (yyyy-mm-dd)"; App::$strings["Not valid email."] = "Geen geldig e-mailadres."; App::$strings["Protected email address. Cannot change to that email."] = "Beschermd e-mailadres. Kan dat e-mailadres niet gebruiken."; App::$strings["System failure storing new email. Please try again."] = "Systeemfout opslaan van nieuwe e-mail. Probeer het nog een keer."; @@ -1343,6 +1313,7 @@ App::$strings["Anybody on the internet"] = "Iedereen op het internet"; App::$strings["Publish your default profile in the network directory"] = "Publiceer je standaardprofiel in de kanalengids"; App::$strings["Allow us to suggest you as a potential friend to new members?"] = "Sta ons toe om jouw kanaal als mogelijke connectie voor te stellen aan nieuwe kanalen"; App::$strings["Your channel address is"] = "Jouw kanaaladres is"; +App::$strings["Your files/photos are accessible via WebDAV at"] = "Jouw bestanden/foto's zijn beschikbaar via WebDAV op"; App::$strings["Channel Settings"] = "Kanaal-instellingen"; App::$strings["Basic Settings"] = "Basis-instellingen"; App::$strings["Full Name:"] = "Volledige naam:"; @@ -1390,6 +1361,7 @@ App::$strings["You receive a private message"] = "Je een privé-bericht ontvangt App::$strings["You receive a friend suggestion"] = "Je een kanaalvoorstel ontvangt"; App::$strings["You are tagged in a post"] = "Je expliciet in een bericht bent genoemd"; App::$strings["You are poked/prodded/etc. in a post"] = "Je bent in een bericht aangestoten/gepord/etc."; +App::$strings["Someone likes your post/comment"] = "Iemand jouw bericht/reactie leuk vindt"; App::$strings["Show visual notifications including:"] = "Toon de volgende zichtbare notificaties:"; App::$strings["Unseen grid activity"] = "Niet bekeken grid-activiteit"; App::$strings["Unseen channel activity"] = "Niet bekeken kanaal-activiteit"; @@ -1434,6 +1406,8 @@ App::$strings["Minimum of 10 seconds, no maximum"] = "Minimaal 10 seconde, geen App::$strings["Maximum number of conversations to load at any time:"] = "Maximaal aantal conversaties die per keer geladen worden:"; App::$strings["Maximum of 100 items"] = "Maximaal 100 conversaties"; App::$strings["Show emoticons (smilies) as images"] = "Toon emoticons (smilies) als afbeeldingen"; +App::$strings["Manual conversation updates"] = "Handmatige conversatie-updates"; +App::$strings["Default is automatic, which may increase screen jumping"] = "Standaard is automatisch, maar soms kan het zorgen voor het verspringen van items"; App::$strings["Link post titles to source"] = "Berichtkoppen naar originele locatie linken"; App::$strings["System Page Layout Editor - (advanced)"] = "Lay-out bewerken van systeempagina's (geavanceerd)"; App::$strings["Use blog/list mode on channel page"] = "Gebruik blog/lijst-modus op kanaalpagina"; @@ -1444,78 +1418,106 @@ App::$strings["click to expand content exceeding this height"] = "klik om inhoud App::$strings["Grid page max height of content (in pixels)"] = "Maximale hoogte berichtinhoud op gridpagina (in pixels)"; App::$strings["No feature settings configured"] = "Geen plugin-instellingen aanwezig"; App::$strings["Feature/Addon Settings"] = "Plugin-instellingen"; -App::$strings["Additional Features"] = "Extra functies"; -App::$strings["Name is required"] = "Naam is vereist"; -App::$strings["Key and Secret are required"] = "Key en secret zijn vereist"; -App::$strings["Add application"] = "Applicatie toevoegen"; -App::$strings["Name of application"] = "Naam van applicatie"; -App::$strings["Consumer Key"] = "Consumer key"; -App::$strings["Automatically generated - change if desired. Max length 20"] = "Automatische gegenereerd - verander wanneer gewenst. Maximale lengte is 20"; -App::$strings["Consumer Secret"] = "Consumer secret"; -App::$strings["Redirect"] = "Redirect/doorverwijzing"; -App::$strings["Redirect URI - leave blank unless your application specifically requires this"] = "URI voor redirect - laat leeg, behalve wanneer de applicatie dit vereist"; -App::$strings["Icon url"] = "Pictogram-URL"; -App::$strings["Application not found."] = "Applicatie niet gevonden."; -App::$strings["Connected Apps"] = "Verbonden applicaties"; -App::$strings["Client key starts with"] = "Client key begint met"; -App::$strings["No name"] = "Geen naam"; -App::$strings["Remove authorization"] = "Autorisatie verwijderen"; -App::$strings["This channel is limited to %d tokens"] = "Dit kanaal heeft een limiet van %d tokens"; -App::$strings["Name and Password are required."] = "Naam en wachtwoord zijn vereist"; -App::$strings["Token saved."] = "Token opgeslagen."; -App::$strings["Use this form to create temporary access identifiers to share things with non-members. These identities may be used in Access Control Lists and visitors may login using these credentials to access private content."] = "Gebruik dit formulier om tijdelijke identiteiten aan te maken, waarmee je bepaalde informatie met niet-leden kan delen. Deze identiteiten kunnen onder Permissies (handmatige selectie) worden gebruikt. Gasten kunnen inloggen met onderstaande gegevens om zo toegang te krijgen tot privéinhoud."; -App::$strings["You may also provide dropbox style access links to friends and associates by adding the Login Password to any specific site URL as shown. Examples:"] = "Je kan ook dropbox-achtige links aan mensen geven door bovenstaand wachtwoord op onderstaande manier aan een hub-URL toe te voegen. Voorbeelden:"; -App::$strings["Guest Access Tokens"] = "Gasttoegang"; -App::$strings["Login Name"] = "Inlognaam"; -App::$strings["Login Password"] = "Wachtwoord:"; -App::$strings["Expires (yyyy-mm-dd)"] = "Geldig t/m (yyyy-mm-dd)"; +App::$strings["Tag removed"] = "Tag verwijderd"; +App::$strings["Remove Item Tag"] = "Verwijder item-tag"; +App::$strings["Select a tag to remove: "] = "Kies een tag om te verwijderen"; +App::$strings["Thing updated"] = "Ding bijgewerkt"; +App::$strings["Object store: failed"] = "Opslaan van ding mislukt"; +App::$strings["Thing added"] = "Ding toegevoegd"; +App::$strings["OBJ: %1\$s %2\$s %3\$s"] = "OBJ: %1\$s %2\$s %3\$s"; +App::$strings["Show Thing"] = "Ding weergeven"; +App::$strings["item not found."] = "Item niet gevonden"; +App::$strings["Edit Thing"] = "Ding bewerken"; +App::$strings["Select a profile"] = "Kies een profiel"; +App::$strings["Post an activity"] = "Plaats een bericht"; +App::$strings["Only sends to viewers of the applicable profile"] = "Toont dit alleen aan diegene die het gekozen profiel mogen zien."; +App::$strings["Name of thing e.g. something"] = "Naam van ding"; +App::$strings["URL of thing (optional)"] = "URL van ding (optioneel)"; +App::$strings["URL for photo of thing (optional)"] = "URL voor foto van ding (optioneel)"; +App::$strings["Add Thing to your Profile"] = "Ding aan je profiel toevoegen"; +App::$strings["Your service plan only allows %d channels."] = "Jouw abonnement staat maar %d kanalen toe."; +App::$strings["Cloned channel not found. Import failed."] = "Gekloond kanaal niet gevonden. Importeren mislukt."; +App::$strings["No channel. Import failed."] = "Geen kanaal. Importeren mislukt."; +App::$strings["Import completed."] = "Import voltooid."; +App::$strings["You must be logged in to use this feature."] = "Je moet ingelogd zijn om dit onderdeel te kunnen gebruiken."; +App::$strings["Import Channel"] = "Kanaal importeren"; +App::$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."; +App::$strings["Or provide the old server/hub details"] = "Of vul de gegevens van de oude hub in"; +App::$strings["Your old identity address (xyz@example.com)"] = "Jouw oude kanaaladres (xyz@example.com)"; +App::$strings["Your old login email address"] = "Het e-mailadres van je oude account"; +App::$strings["Your old login password"] = "Wachtwoord van jouw oude account"; +App::$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."; +App::$strings["Make this hub my primary location"] = "Stel deze hub als mijn primaire locatie in"; +App::$strings["Import existing posts if possible (experimental - limited by available memory"] = "Importeer bestaande berichten wanneer mogelijk (experimenteel - afhankelijk van beschikbaar servergeheugen)"; +App::$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."; +App::$strings["No connections."] = "Geen connecties."; +App::$strings["Visit %s's profile [%s]"] = "Bezoek het profiel van %s [%s]"; +App::$strings["View Connections"] = "Connecties weergeven"; +App::$strings["Source of Item"] = "Bron van item"; +App::$strings["Room not found"] = "Chatkanaal niet gevonden"; +App::$strings["Leave Room"] = "Chatkanaal verlaten"; +App::$strings["Delete Room"] = "Chatkanaal verwijderen"; +App::$strings["I am away right now"] = "Ik ben momenteel afwezig"; +App::$strings["I am online"] = "Ik ben online"; +App::$strings["Bookmark this room"] = "Chatkanaal aan bladwijzers toevoegen"; +App::$strings["New Chatroom"] = "Nieuw chatkanaal"; +App::$strings["Chatroom name"] = "Naam chatkanaal"; +App::$strings["Expiration of chats (minutes)"] = "Aantal minuten voordat chatberichten worden verwijderd"; +App::$strings["%1\$s's Chatrooms"] = "Chatkanalen van %1\$s"; +App::$strings["No chatrooms available"] = "Geen chatkanalen beschikbaar"; +App::$strings["Expiration"] = "Verloopt na"; +App::$strings["min"] = "min"; +App::$strings["Xchan Lookup"] = "Xchan opzoeken"; +App::$strings["Lookup xchan beginning with (or webbie): "] = "Zoek een xchan (of webbie) die begint met:"; +App::$strings["Calendar entries imported."] = "Agenda-items geïmporteerd."; +App::$strings["No calendar entries found."] = "Geen agenda-items gevonden."; +App::$strings["Event can not end before it has started."] = "Gebeurtenis kan niet eindigen voordat het is begonnen"; +App::$strings["Unable to generate preview."] = "Niet in staat om voorvertoning te genereren"; +App::$strings["Event title and start time are required."] = "Titel en begintijd van gebeurtenis zijn vereist."; +App::$strings["Event not found."] = "Gebeurtenis niet gevonden"; +App::$strings["Edit event title"] = "Titel bewerken"; +App::$strings["Event title"] = "Titel"; +App::$strings["Categories (comma-separated list)"] = "Categorieën (door komma's gescheiden lijst)"; +App::$strings["Edit Category"] = "Categorie"; +App::$strings["Category"] = "Categorie"; +App::$strings["Edit start date and time"] = "Begindatum en -tijd bewerken"; +App::$strings["Start date and time"] = "Begindatum en -tijd"; +App::$strings["Finish date and time are not known or not relevant"] = "Einddatum en -tijd zijn niet bekend of niet van toepassing"; +App::$strings["Edit finish date and time"] = "Einddatum en -tijd bewerken"; +App::$strings["Finish date and time"] = "Einddatum en -tijd"; +App::$strings["Adjust for viewer timezone"] = "Aanpassen aan de tijdzone van wie deze gebeurtenis bekijkt"; +App::$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."; +App::$strings["Edit Description"] = "Omschrijving bewerken"; +App::$strings["Edit Location"] = "Locatie bewerken"; +App::$strings["Permission settings"] = "Permissies"; +App::$strings["Advanced Options"] = "Geavanceerde opties"; +App::$strings["Edit event"] = "Gebeurtenis bewerken"; +App::$strings["Delete event"] = "Gebeurtenis verwijderen"; +App::$strings["calendar"] = "agenda"; +App::$strings["Month"] = "Maand"; +App::$strings["Week"] = "Week"; +App::$strings["Day"] = "Dag"; +App::$strings["Event removed"] = "Gebeurtenis verwijderd"; +App::$strings["Failed to remove event"] = "Verwijderen gebeurtenis mislukt"; App::$strings["Missing room name"] = "Naam chatkanaal ontbreekt"; App::$strings["Duplicate room name"] = "Naam chatkanaal bestaat al"; App::$strings["Invalid room specifier."] = "Ongeldige omschrijving chatkanaal"; App::$strings["Room not found."] = "Chatkanaal niet gevonden"; App::$strings["Room is full"] = "Chatkanaal is vol"; -App::$strings["\$Projectname Notification"] = "\$Projectname-notificatie"; -App::$strings["\$projectname"] = "\$projectname"; -App::$strings["Thank You,"] = "Bedankt,"; -App::$strings["%s Administrator"] = "Beheerder %s"; -App::$strings["%s "] = "%s "; -App::$strings["[\$Projectname:Notify] New mail received at %s"] = "[\$Projectname:Notificatie] Nieuw privébericht ontvangen op %s"; -App::$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."; -App::$strings["%1\$s sent you %2\$s."] = "%1\$s zond jou %2\$s."; -App::$strings["a private message"] = "een privébericht"; -App::$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."; -App::$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]"; -App::$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]"; -App::$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]"; -App::$strings["[\$Projectname:Notify] Comment to conversation #%1\$d by %2\$s"] = "[\$Projectname:Notificatie] Reactie op conversatie #%1\$d door %2\$s"; -App::$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."; -App::$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."; -App::$strings["[\$Projectname:Notify] %s posted to your profile wall"] = "[\$Projectname:Notificatie] %s heeft een bericht op jouw kanaal geplaatst"; -App::$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"; -App::$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"; -App::$strings["[\$Projectname:Notify] %s tagged you"] = "[\$Projectname:Notificatie] %s heeft jou genoemd"; -App::$strings["%1\$s, %2\$s tagged you at %3\$s"] = "%1\$s, %2\$s noemde jou op %3\$s"; -App::$strings["%1\$s, %2\$s [zrl=%3\$s]tagged you[/zrl]."] = "%1\$s, %2\$s [zrl=%3\$s]noemde jou[/zrl]."; -App::$strings["[\$Projectname:Notify] %1\$s poked you"] = "[\$Projectname:Notificatie] %1\$s heeft jou aangestoten"; -App::$strings["%1\$s, %2\$s poked you at %3\$s"] = "%1\$s, %2\$s heeft je aangestoten op %3\$s"; -App::$strings["%1\$s, %2\$s [zrl=%2\$s]poked you[/zrl]."] = "%1\$s, %2\$s [zrl=%2\$s]heeft je aangestoten[/zrl]."; -App::$strings["[\$Projectname:Notify] %s tagged your post"] = "[\$Projectname:Notificatie] %s heeft jouw bericht getagd"; -App::$strings["%1\$s, %2\$s tagged your post at %3\$s"] = "%1\$s, %2\$s heeft jouw bericht om %3\$s getagd"; -App::$strings["%1\$s, %2\$s tagged [zrl=%3\$s]your post[/zrl]"] = "%1\$s, %2\$s heeft [zrl=%3\$s]jouw bericht[/zrl] getagd"; -App::$strings["[\$Projectname:Notify] Introduction received"] = "[\$Projectname:Notificatie] Connectieverzoek ontvangen"; -App::$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"; -App::$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."; -App::$strings["You may visit their profile at %s"] = "Je kan het profiel bekijken op %s"; -App::$strings["Please visit %s to approve or reject the connection request."] = "Bezoek %s om het connectieverzoek te accepteren of af te wijzen."; -App::$strings["[\$Projectname:Notify] Friend suggestion received"] = "[\$Projectname:Notificatie] Kanaalvoorstel ontvangen"; -App::$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"; -App::$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."; -App::$strings["Name:"] = "Naam:"; -App::$strings["Photo:"] = "Foto:"; -App::$strings["Please visit %s to approve or reject the suggestion."] = "Bezoek %s om het voorstel te accepteren of af te wijzen."; -App::$strings["[\$Projectname:Notify]"] = "[\$Projectname:Notificatie]"; -App::$strings["created a new post"] = "maakte een nieuw bericht aan"; -App::$strings["commented on %s's post"] = "gaf een reactie op een bericht van %s"; +App::$strings["Visible to your default audience"] = "Voor iedereen zichtbaar, mits niet anders ingesteld"; +App::$strings["Only me"] = "Alleen ik"; +App::$strings["Public"] = "Openbaar"; +App::$strings["Anybody in the \$Projectname network"] = "Iedereen in het \$Projectname-netwerk"; +App::$strings["Any account on %s"] = "Iedereen op %s"; +App::$strings["Any of my connections"] = "Al mijn geaccepteerde connecties"; +App::$strings["Only connections I specifically allow"] = "Alleen connecties die uitdrukkelijk door jou zijn toegestaan"; +App::$strings["Anybody authenticated (could include visitors from other networks)"] = "Geauthenticeerde leden (kan bezoekers van andere netwerken bevatten)"; +App::$strings["Any connections including those who haven't yet been approved"] = "Al mijn geaccepteerde en nog niet geaccepteerde connecties"; +App::$strings["This is your default setting for the audience of your normal stream, and posts."] = "Dit is de standaard privacy-instelling voor wie jouw berichten kan bekijken"; +App::$strings["This is your default setting for who can view your default channel profile"] = "Dit is de standaard privacy-instelling voor wie jouw standaardprofiel kan bekijken"; +App::$strings["This is your default setting for who can view your connections"] = "Dit is de standaard privacy-instelling voor wie een lijst met jouw connecties kan bekijken"; +App::$strings["This is your default setting for who can view your file storage and photos"] = "Dit is de standaard privacy-instelling voor wie jouw bestanden en foto's kan bekijken"; +App::$strings["This is your default setting for the audience of your webpages"] = "Dit is de standaard privacy-instelling voor wie jouw webpagina's kan bekijken"; App::$strings["Private Message"] = "Niet voor iedereen zichtbaar"; App::$strings["Select"] = "Kies"; App::$strings["Save to Folder"] = "In map opslaan"; @@ -1549,6 +1551,10 @@ App::$strings["via Wall-To-Wall:"] = "via kanaal-naar-kanaal"; App::$strings["from %s"] = "van %s"; App::$strings["last edited: %s"] = "laatst bewerkt: %s"; App::$strings["Expires: %s"] = "Verloopt: %s"; +App::$strings["Attend"] = "Aanwezig"; +App::$strings["Attendance Options"] = "Aanwezigheidsopties"; +App::$strings["Vote"] = "Stem"; +App::$strings["Voting Options"] = "Stemopties"; App::$strings["Save Bookmarks"] = "Bladwijzers opslaan"; App::$strings["Add to Calendar"] = "Aan agenda toevoegen"; App::$strings["Mark all seen"] = "Markeer alles als bekeken"; @@ -1561,22 +1567,8 @@ App::$strings["Code"] = "Broncode"; App::$strings["Image"] = "Afbeelding"; App::$strings["Insert Link"] = "Link invoegen"; App::$strings["Video"] = "Video"; -App::$strings["Visible to your default audience"] = "Voor iedereen zichtbaar, mits niet anders ingesteld"; -App::$strings["Only me"] = "Alleen ik"; -App::$strings["Public"] = "Openbaar"; -App::$strings["Anybody in the \$Projectname network"] = "Iedereen in het \$Projectname-netwerk"; -App::$strings["Any account on %s"] = "Iedereen op %s"; -App::$strings["Any of my connections"] = "Al mijn geaccepteerde connecties"; -App::$strings["Only connections I specifically allow"] = "Alleen connecties die uitdrukkelijk door jou zijn toegestaan"; -App::$strings["Anybody authenticated (could include visitors from other networks)"] = "Geauthenticeerde leden (kan bezoekers van andere netwerken bevatten)"; -App::$strings["Any connections including those who haven't yet been approved"] = "Al mijn geaccepteerde en nog niet geaccepteerde connecties"; -App::$strings["This is your default setting for the audience of your normal stream, and posts."] = "Dit is de standaard privacy-instelling voor wie jouw berichten kan bekijken"; -App::$strings["This is your default setting for who can view your default channel profile"] = "Dit is de standaard privacy-instelling voor wie jouw standaardprofiel kan bekijken"; -App::$strings["This is your default setting for who can view your connections"] = "Dit is de standaard privacy-instelling voor wie een lijst met jouw connecties kan bekijken"; -App::$strings["This is your default setting for who can view your file storage and photos"] = "Dit is de standaard privacy-instelling voor wie jouw bestanden en foto's kan bekijken"; -App::$strings["This is your default setting for the audience of your webpages"] = "Dit is de standaard privacy-instelling voor wie jouw webpagina's kan bekijken"; App::$strings["Site Admin"] = "Hubbeheerder"; -App::$strings["Bug Report"] = "Bugrapport"; +App::$strings["Report Bug"] = "Bugrapport indienen"; App::$strings["View Bookmarks"] = "Bladwijzers bekijken"; App::$strings["My Chatrooms"] = "Mijn chatkanalen"; App::$strings["Firefox Share"] = "Firefox Share"; @@ -1584,6 +1576,7 @@ App::$strings["Remote Diagnostics"] = "Diagnose op afstand"; App::$strings["Suggest Channels"] = "Kanalen voorstellen"; App::$strings["Login"] = "Inloggen"; App::$strings["Grid"] = "Grid"; +App::$strings["Wiki"] = "Wiki"; App::$strings["Channel Home"] = "Jouw kanaal"; App::$strings["Events"] = "Agenda"; App::$strings["Directory"] = "Kanalengids"; @@ -1598,29 +1591,917 @@ App::$strings["Language"] = "Taal"; App::$strings["Post"] = "Bericht"; App::$strings["Profile Photo"] = "Profielfoto"; App::$strings["Purchase"] = "Aanschaffen"; +App::$strings["Undelete"] = "Verwijdering ongedaan maken"; +App::$strings["\$Projectname Notification"] = "\$Projectname-notificatie"; +App::$strings["\$projectname"] = "\$projectname"; +App::$strings["Thank You,"] = "Bedankt,"; +App::$strings["%s Administrator"] = "Beheerder %s"; +App::$strings["%s "] = "%s "; +App::$strings["[\$Projectname:Notify] New mail received at %s"] = "[\$Projectname:Notificatie] Nieuw privébericht ontvangen op %s"; +App::$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."; +App::$strings["%1\$s sent you %2\$s."] = "%1\$s zond jou %2\$s."; +App::$strings["a private message"] = "een privébericht"; +App::$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."; +App::$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]"; +App::$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]"; +App::$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]"; +App::$strings["[\$Projectname:Notify] Comment to conversation #%1\$d by %2\$s"] = "[\$Projectname:Notificatie] %2\$s gaf een reactie in conversatie #%1\$d"; +App::$strings["%1\$s, %2\$s commented on an item/conversation you have been following."] = "%1\$s, %2\$s gaf een reactie in een conversatie die jij volgt."; +App::$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."; +App::$strings["%1\$s, %2\$s liked [zrl=%3\$s]your %4\$s[/zrl]"] = "%1\$s, %2\$s vindt [zrl=%3\$s]jouw %4\$s[/zrl] leuk"; +App::$strings["[\$Projectname:Notify] Like received to conversation #%1\$d by %2\$s"] = "[\$Projectname:Notificatie] %2\$s vindt iets leuk in conversatie #%1\$d"; +App::$strings["%1\$s, %2\$s liked an item/conversation you created."] = "%1\$s, %2\$s vindt iets leuk in een conversatie die jij bent gestart."; +App::$strings["[\$Projectname:Notify] %s posted to your profile wall"] = "[\$Projectname:Notificatie] %s heeft een bericht op jouw kanaal geplaatst"; +App::$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"; +App::$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"; +App::$strings["[\$Projectname:Notify] %s tagged you"] = "[\$Projectname:Notificatie] %s heeft jou genoemd"; +App::$strings["%1\$s, %2\$s tagged you at %3\$s"] = "%1\$s, %2\$s noemde jou op %3\$s"; +App::$strings["%1\$s, %2\$s [zrl=%3\$s]tagged you[/zrl]."] = "%1\$s, %2\$s [zrl=%3\$s]noemde jou[/zrl]."; +App::$strings["[\$Projectname:Notify] %1\$s poked you"] = "[\$Projectname:Notificatie] %1\$s heeft jou aangestoten"; +App::$strings["%1\$s, %2\$s poked you at %3\$s"] = "%1\$s, %2\$s heeft je aangestoten op %3\$s"; +App::$strings["%1\$s, %2\$s [zrl=%2\$s]poked you[/zrl]."] = "%1\$s, %2\$s [zrl=%2\$s]heeft je aangestoten[/zrl]."; +App::$strings["[\$Projectname:Notify] %s tagged your post"] = "[\$Projectname:Notificatie] %s heeft jouw bericht getagd"; +App::$strings["%1\$s, %2\$s tagged your post at %3\$s"] = "%1\$s, %2\$s heeft jouw bericht om %3\$s getagd"; +App::$strings["%1\$s, %2\$s tagged [zrl=%3\$s]your post[/zrl]"] = "%1\$s, %2\$s heeft [zrl=%3\$s]jouw bericht[/zrl] getagd"; +App::$strings["[\$Projectname:Notify] Introduction received"] = "[\$Projectname:Notificatie] Connectieverzoek ontvangen"; +App::$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"; +App::$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."; +App::$strings["You may visit their profile at %s"] = "Je kan het profiel bekijken op %s"; +App::$strings["Please visit %s to approve or reject the connection request."] = "Bezoek %s om het connectieverzoek te accepteren of af te wijzen."; +App::$strings["[\$Projectname:Notify] Friend suggestion received"] = "[\$Projectname:Notificatie] Kanaalvoorstel ontvangen"; +App::$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"; +App::$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."; +App::$strings["Name:"] = "Naam:"; +App::$strings["Photo:"] = "Foto:"; +App::$strings["Please visit %s to approve or reject the suggestion."] = "Bezoek %s om het voorstel te accepteren of af te wijzen."; +App::$strings["[\$Projectname:Notify]"] = "[\$Projectname:Notificatie]"; +App::$strings["created a new post"] = "maakte een nieuw bericht aan"; +App::$strings["commented on %s's post"] = "gaf een reactie op een bericht van %s"; +App::$strings["Flag Adult Photos"] = "Markeer foto's als voor volwassenen"; +App::$strings["Provide photo edit option to hide inappropriate photos from default album view"] = "Zorgt voor een optie om foto's met inhoud voor volwassenen in de standaard albumweergave te verbergen"; +App::$strings["This is a fairly comprehensive and complete guitar chord dictionary which will list most of the available ways to play a certain chord, starting from the base of the fingerboard up to a few frets beyond the twelfth fret (beyond which everything repeats). A couple of non-standard tunings are provided for the benefit of slide players, etc."] = "This is a fairly comprehensive and complete guitar chord dictionary which will list most of the available ways to play a certain chord, starting from the base of the fingerboard up to a few frets beyond the twelfth fret (beyond which everything repeats). A couple of non-standard tunings are provided for the benefit of slide players, etc."; +App::$strings["Chord names start with a root note (A-G) and may include sharps (#) and flats (b). This software will parse most of the standard naming conventions such as maj, min, dim, sus(2 or 4), aug, with optional repeating elements."] = "Chord names start with a root note (A-G) and may include sharps (#) and flats (b). This software will parse most of the standard naming conventions such as maj, min, dim, sus(2 or 4), aug, with optional repeating elements."; +App::$strings["Valid examples include A, A7, Am7, Amaj7, Amaj9, Ammaj7, Aadd4, Asus2Add4, E7b13b11 ..."] = "Valid examples include A, A7, Am7, Amaj7, Amaj9, Ammaj7, Aadd4, Asus2Add4, E7b13b11 ..."; +App::$strings["Guitar Chords"] = "Gitaarakkoorden"; +App::$strings["The complete online chord dictionary"] = "Het complete online akkoordenboek"; +App::$strings["Tuning"] = "Stemmen"; +App::$strings["Chord name: example: Em7"] = "Akkoordnaam: bijvoorbeeld: Em7"; +App::$strings["Show for left handed stringing"] = "Toon voor linkshandige gitaar"; +App::$strings["Quick Reference"] = "Beknopt overzicht"; +App::$strings["Diaspora Protocol Settings updated."] = "Diaspora-protocol-instellingen bijgewerkt."; +App::$strings["Enable the Diaspora protocol for this channel"] = "Het Diaspora-protocol voor dit kanaal inschakelen"; +App::$strings["Allow any Diaspora member to comment on your public posts"] = "Geef elk Diaspora-lid toestemming om op jouw openbare berichten te reageren"; +App::$strings["Prevent your hashtags from being redirected to other sites"] = "Voorkom dat jouw hashtags naar andere websites worden doorverwezen"; +App::$strings["Followed hashtags (comma separated, do not include the #)"] = "Gevolgde hashtags (door komma's gescheiden lijst, zonder de #)"; +App::$strings["Diaspora Protocol Settings"] = "Diaspora-protocol (incl. Friendica)"; +App::$strings["Hubzilla Directory Stats"] = "Kanalengidsstatistieken Hubzilla"; +App::$strings["Total Hubs"] = "Totaal aantal hubs"; +App::$strings["Hubzilla Hubs"] = "Hubzilla-hubs"; +App::$strings["Friendica Hubs"] = "Friendica-hubs"; +App::$strings["Diaspora Pods"] = "Diaspora-pods"; +App::$strings["Hubzilla Channels"] = "Hubzilla-kanalen"; +App::$strings["Friendica Channels"] = "Friendica-kanalen"; +App::$strings["Diaspora Channels"] = "Diaspora-kanalen"; +App::$strings["Aged 35 and above"] = "Leeftijd is ouder dan 35 jaar"; +App::$strings["Aged 34 and under"] = "Leeftijd is jonger dan 34"; +App::$strings["Average Age"] = "Gemiddelde leeftijd"; +App::$strings["Known Chatrooms"] = "Bekend aantal chatkanalen"; +App::$strings["Known Tags"] = "Bekend aantal tags"; +App::$strings["Please note Diaspora and Friendica statistics are merely those **this directory** is aware of, and not all those known in the network. This also applies to chatrooms,"] = "Please note Diaspora and Friendica statistics are merely those **this directory** is aware of, and not all those known in the network. This also applies to chatrooms,"; +App::$strings["Project Servers and Resources"] = "Projectservers en -middelen"; +App::$strings["Project Creator and Tech Lead"] = "Projectgrondlegger en hoofdontwikkelaar"; +App::$strings["Admin, developer, directorymin, support bloke"] = "Beheerder, ontwikkelaar, kanalengidsbeheerder en supportgozer"; +App::$strings["And the hundreds of other people and organisations who helped make the Hubzilla possible."] = "En de honderden andere mensen en organisaties die Hubzilla mogelijk hebben gemaakt. "; +App::$strings["The Redmatrix/Hubzilla projects are provided primarily by volunteers giving their time and expertise - and often paying out of pocket for services they share with others."] = "De Hubzillaprojecten worden hoofdzakelijk aangeboden door vrijwilligers die er hun tijd en expertise insteken - en meestal zelf de diensten betalen die ze met anderen delen."; +App::$strings["There is no corporate funding and no ads, and we do not collect and sell your personal information. (We don't control your personal information - you do.)"] = "Wij worden niet gefinancierd door bedrijven en reclame, en wij verzamelen en verkopen niet jouw persoonlijke gegevens. We hebben geen controle over jouw persoonlijke gegevens - dat heb jezelf."; +App::$strings["Help support our ground-breaking work in decentralisation, web identity, and privacy."] = "Steun ons baanbrekende werk in decentralisatie, webidentiteit en privacy. "; +App::$strings["Your donations keep servers and services running and also helps us to provide innovative new features and continued development."] = "Jouw donaties laten onze servers en diensten draaien, en helpt ons om nieuwe innovatieve mogelijkheden te blijven ontwikkelen."; +App::$strings["Donate"] = "Doneer"; +App::$strings["Choose a project, developer, or public hub to support with a one-time donation"] = "Kies een project, ontwikkelaar of openbaar toegankelijke hub, die je met een eenmalige donatie wil steunen"; +App::$strings["Donate Now"] = "Doneer nu"; +App::$strings["Or become a project sponsor (Hubzilla Project only)"] = "Of wordt een projectsponsor (alleen het Hubzilla-project)"; +App::$strings["Please indicate if you would like your first name or full name (or nothing) to appear in our sponsor listing"] = "Geef aan of jouw voornaam of volledige naam (of niets) op onze sponsorlijst moet verschijnen"; +App::$strings["Sponsor"] = "Sponsor"; +App::$strings["Special thanks to: "] = "Speciale dank gaat naar: "; +App::$strings["Post to Dreamwidth"] = "Doorplaatsen naar Dreamwidth"; +App::$strings["Enable Dreamwidth Post Plugin"] = "Doorplaatsen naar Dreamwidth inschakelen"; +App::$strings["Dreamwidth username"] = "Gebruikersnaam Dreamwidth"; +App::$strings["Dreamwidth password"] = "Wachtwoord Dreamwidth"; +App::$strings["Post to Dreamwidth by default"] = "Standaard doorplaatsen naar Dreamwidth"; +App::$strings["Dreamwidth Post Settings"] = "Doorplaatsen naar Dreamwidth"; +App::$strings["Flattr this!"] = "Flattr this!"; +App::$strings["Flattr widget settings updated."] = "Instellingen Flattrwidget bijgewerkt."; +App::$strings["Flattr user"] = "Gebruikersnaam Flattr"; +App::$strings["URL of the Thing to flattr"] = "URL van het Flattr-item"; +App::$strings["If empty channel URL is used"] = "Wanneer een lege kanaal-URL wordt gebruikt"; +App::$strings["Title of the Thing to flattr"] = "Naam van het Flattr-item"; +App::$strings["If empty \"channel name on The Hubzilla\" will be used"] = "Wanneer een lege \"kanaalnaam op Hubzilla\" wordt gebruikt"; +App::$strings["Static or dynamic flattr button"] = "Statische of dynamische Flattr-knop"; +App::$strings["static"] = "statisch"; +App::$strings["dynamic"] = "dynamisch"; +App::$strings["Alignment of the widget"] = "Uitlijning van de widget"; +App::$strings["left"] = "links"; +App::$strings["right"] = "rechts"; +App::$strings["Enable Flattr widget"] = "Flattrwidget inschakelen"; +App::$strings["Flattr Widget Settings"] = "Flattrwidget"; +App::$strings["Contact not found."] = "Contact niet gevonden"; +App::$strings["This may occasionally happen if contact was requested by both persons and it has already been approved."] = "This may occasionally happen if contact was requested by both persons and it has already been approved."; +App::$strings["Response from remote site was not understood."] = "Response from remote site was not understood."; +App::$strings["Unexpected response from remote site: "] = "Unexpected response from remote site: "; +App::$strings["Confirmation completed successfully."] = "Confirmation completed successfully."; +App::$strings["Remote site reported: "] = "Remote site reported: "; +App::$strings["Temporary failure. Please wait and try again."] = "Temporary failure. Please wait and try again."; +App::$strings["Introduction failed or was revoked."] = "Introduction failed or was revoked."; +App::$strings["Unable to set contact photo."] = "Unable to set contact photo."; +App::$strings["%1\$s is now friends with %2\$s"] = "%1\$s is now friends with %2\$s"; +App::$strings["No user record found for '%s' "] = "No user record found for '%s' "; +App::$strings["Our site encryption key is apparently messed up."] = "Our site encryption key is apparently messed up."; +App::$strings["Empty site URL was provided or URL could not be decrypted by us."] = "Empty site URL was provided or URL could not be decrypted by us."; +App::$strings["Contact record was not found for you on our site."] = "Contact record was not found for you on our site."; +App::$strings["Site public key not available in contact record for URL %s."] = "Site public key not available in contact record for URL %s."; +App::$strings["The ID provided by your system is a duplicate on our system. It should work if you try again."] = "The ID provided by your system is a duplicate on our system. It should work if you try again."; +App::$strings["Unable to set your contact credentials on our system."] = "Unable to set your contact credentials on our system."; +App::$strings["Unable to update your contact profile details on our system"] = "Unable to update your contact profile details on our system"; +App::$strings["[Name Withheld]"] = "[Name Withheld]"; +App::$strings["%1\$s has joined %2\$s"] = "%1\$s has joined %2\$s"; +App::$strings["%1\$s welcomes %2\$s"] = "%1\$s welcomes %2\$s"; +App::$strings["This introduction has already been accepted."] = "This introduction has already been accepted."; +App::$strings["Profile location is not valid or does not contain profile information."] = "Profile location is not valid or does not contain profile information."; +App::$strings["Warning: profile location has no identifiable owner name."] = "Warning: profile location has no identifiable owner name."; +App::$strings["Warning: profile location has no profile photo."] = "Warning: profile location has no profile photo."; +App::$strings["%d required parameter was not found at the given location"] = array( + 0 => "%d required parameter was not found at the given location", + 1 => "%d required parameters were not found at the given location", +); +App::$strings["Introduction complete."] = "Introduction complete."; +App::$strings["Unrecoverable protocol error."] = "Unrecoverable protocol error."; +App::$strings["Profile unavailable."] = "Profile unavailable."; +App::$strings["%s has received too many connection requests today."] = "%s has received too many connection requests today."; +App::$strings["Spam protection measures have been invoked."] = "Spam protection measures have been invoked."; +App::$strings["Friends are advised to please try again in 24 hours."] = "Friends are advised to please try again in 24 hours."; +App::$strings["Invalid locator"] = "Invalid locator"; +App::$strings["Invalid email address."] = "Invalid email address."; +App::$strings["This account has not been configured for email. Request failed."] = "This account has not been configured for email. Request failed."; +App::$strings["Unable to resolve your name at the provided location."] = "Unable to resolve your name at the provided location."; +App::$strings["You have already introduced yourself here."] = "You have already introduced yourself here."; +App::$strings["Apparently you are already friends with %s."] = "Apparently you are already friends with %s."; +App::$strings["Invalid profile URL."] = "Invalid profile URL."; +App::$strings["Disallowed profile URL."] = "Disallowed profile URL."; +App::$strings["Failed to update contact record."] = "Failed to update contact record."; +App::$strings["Your introduction has been sent."] = "Your introduction has been sent."; +App::$strings["Please login to confirm introduction."] = "Please login to confirm introduction."; +App::$strings["Incorrect identity currently logged in. Please login to this profile."] = "Incorrect identity currently logged in. Please login to this profile."; +App::$strings["Confirm"] = "Confirm"; +App::$strings["Hide this contact"] = "Hide this contact"; +App::$strings["Welcome home %s."] = "Welcome home %s."; +App::$strings["Please confirm your introduction/connection request to %s."] = "Please confirm your introduction/connection request to %s."; +App::$strings["Please enter your 'Identity Address' from one of the following supported communications networks:"] = "Please enter your 'Identity Address' from one of the following supported communications networks:"; +App::$strings["If you are not yet a member of the free social web, follow this link to find a public Friendica site and join us today."] = "If you are not yet a member of the free social web, follow this link to find a public Friendica site and join us today."; +App::$strings["Friend/Connection Request"] = "Friend/Connection Request"; +App::$strings["Examples: jojo@demo.friendica.com, http://demo.friendica.com/profile/jojo, testuser@identi.ca"] = "Examples: jojo@demo.friendica.com, http://demo.friendica.com/profile/jojo, testuser@identi.ca"; +App::$strings["Please answer the following:"] = "Please answer the following:"; +App::$strings["Does %s know you?"] = "Does %s know you?"; +App::$strings["Add a personal note:"] = "Add a personal note:"; +App::$strings["Friendica"] = "Friendica"; +App::$strings["StatusNet/Federated Social Web"] = "StatusNet/Federated Social Web"; +App::$strings["Diaspora"] = "Diaspora"; +App::$strings[" - please do not use this form. Instead, enter %s into your Diaspora search bar."] = " - please do not use this form. Instead, enter %s into your Diaspora search bar."; +App::$strings["Your Identity Address:"] = "Your Identity Address:"; +App::$strings["Submit Request"] = "Submit Request"; +App::$strings["GNU-Social Protocol Settings updated."] = "GNU social-protocol-instellingen bijgewerkt."; +App::$strings["Enable the (experimental) GNU-Social protocol for this channel"] = "GNU social-protocol voor dit kanaal inschakelen (experimenteel)"; +App::$strings["GNU-Social Protocol Settings"] = "GNU social-protocol"; +App::$strings["Follow"] = "Volgen"; +App::$strings["%1\$s is now following %2\$s"] = "%1\$s volgt nu %2\$s"; +App::$strings["Friendica Photo Album Import"] = "Fotoalbums importeren vanuit Friendica"; +App::$strings["This will import all your Friendica photo albums to this Red channel."] = "Hiermee importeer je al jouw Friendica-fotoalbums in dit Hubzilla-kanaal."; +App::$strings["Friendica Server base URL"] = "Basis-URL van Friendica-server"; +App::$strings["Friendica Login Username"] = "Gebruikersnaam Friendica"; +App::$strings["Friendica Login Password"] = "Wachtwoord Friendica"; +App::$strings["Enable the GNU-Social protocol for this channel"] = "GNU social-protocol voor dit kanaal inschakelen"; +App::$strings["Send email to all members"] = "Naar alle leden e-mail versturen"; +App::$strings["$1%s Administrator"] = "Beheerder $1%s"; +App::$strings["No recipients found."] = "Geen ontvangers gevonden"; +App::$strings["%1\$d of %2\$d messages sent."] = "%1\$d van %2\$d berichten verzonden."; +App::$strings["Send email to all hub members."] = "Naar alle leden van deze hub e-mail versturen."; +App::$strings["Message subject"] = "Onderwerp e-mailbericht"; +App::$strings["Sender Email address"] = "E-mailadres afzender"; +App::$strings["Test mode (only send to hub administrator)"] = "Testmodus (alleen naar hubbeheerder sturen)"; +App::$strings["Post to Insanejournal"] = "Doorplaatsen naar InsaneJournal"; +App::$strings["Enable InsaneJournal Post Plugin"] = "Doorplaatsen naar InsaneJournal inschakelen"; +App::$strings["InsaneJournal username"] = "Gebruikersnaam InsaneJournal"; +App::$strings["InsaneJournal password"] = "Wachtwoord InsaneJournal"; +App::$strings["Post to InsaneJournal by default"] = "Standaard doorplaatsen naar InsaneJournal"; +App::$strings["InsaneJournal Post Settings"] = "Doorplaatsen naar InsaneJournal"; +App::$strings["Insane Journal Settings saved."] = "InsaneJournal-instellingen opgeslagen."; +App::$strings["Channels to auto connect"] = "Kanalen om automatisch mee te verbinden"; +App::$strings["Comma separated list"] = "Door komma's gescheiden lijst"; +App::$strings["Popular Channels"] = "Populaire chatkanalen"; +App::$strings["IRC Settings"] = "IRC"; +App::$strings["IRC settings saved."] = "IRC-instellingen opgeslagen."; +App::$strings["IRC Chatroom"] = "IRC-chatkanaal"; +App::$strings["Status:"] = "Status:"; +App::$strings["Activate addon"] = "Plugin inschakelen"; +App::$strings["Hide Jappixmini Chat-Widget from the webinterface"] = "Hide Jappixmini Chat-Widget from the webinterface"; +App::$strings["Jabber username"] = "Gebruikersnaam Jabber"; +App::$strings["Jabber server"] = "Jabberserver"; +App::$strings["Jabber BOSH host URL"] = "Jabber BOSH host URL"; +App::$strings["Jabber password"] = "Wachtwoord Jabber"; +App::$strings["Encrypt Jabber password with Hubzilla password"] = "Versleutel Jabber-wachtwoord met Hubzilla-wachtwoord"; +App::$strings["Hubzilla password"] = "Wachtwoord Hubzilla"; +App::$strings["Approve subscription requests from Hubzilla contacts automatically"] = "Approve subscription requests from Hubzilla contacts automatically"; +App::$strings["Purge internal list of jabber addresses of contacts"] = "Purge internal list of jabber addresses of contacts"; +App::$strings["Configuration Help"] = "Configuratiehulp"; +App::$strings["Add Contact"] = "Contact toevoegen"; +App::$strings["Jappix Mini Settings"] = "Jappix Mini"; +App::$strings["Upload a file"] = "Bestand uploaden"; +App::$strings["Drop files here to upload"] = "Sleep bestanden hierheen om ze te uploaden"; +App::$strings["Failed"] = "Mislukt"; +App::$strings["No files were uploaded."] = "Er zijn geen bestanden geüpload."; +App::$strings["Uploaded file is empty"] = "Geüpload bestand is leeg"; +App::$strings["Image exceeds size limit of "] = "Afbeeldingsgrootte overschrijdt het limiet van "; +App::$strings["File has an invalid extension, it should be one of "] = "Bestand heeft een ongeldige extensie. Geldige extensies zijn "; +App::$strings["Upload was cancelled, or server error encountered"] = "Upload werd geannuleerd of er was een serverfout"; +App::$strings["An account has been created for you."] = "Er is voor jou een account aangemaakt."; +App::$strings["Authentication successful but rejected: account creation is disabled."] = "Authenticatie geslaagd, maar afgekeurd: aanmaken accounts uitgeschakeld."; +App::$strings["Post to Libertree"] = "Doorplaatsen naar Libertree"; +App::$strings["Enable Libertree Post Plugin"] = "Doorplaatsen naar Libertree inschakelen"; +App::$strings["Libertree API token"] = "API-token Libertree"; +App::$strings["Libertree site URL"] = "Website-URL Libertree"; +App::$strings["Post to Libertree by default"] = "Standaard doorplaatsen naar Libertree"; +App::$strings["Libertree Post Settings"] = "Doorplaatsen naar Libertree"; +App::$strings["Libertree Settings saved."] = "Libertree-instellingen opgeslagen."; +App::$strings["Post to LiveJournal"] = "Doorplaatsen naar LiveJournal"; +App::$strings["Enable LiveJournal Post Plugin"] = "Doorplaatsen naar LiveJournal inschakelen"; +App::$strings["LiveJournal username"] = "Gebruikersnaam LiveJournal"; +App::$strings["LiveJournal password"] = "Wachtwoord LiveJournal"; +App::$strings["Post to LiveJournal by default"] = "Standaard doorplaatsen naar "; +App::$strings["LiveJournal Post Settings"] = "Doorplaatsen naar LiveJournal"; +App::$strings["LiveJournal Settings saved."] = "LiveJournal-instellingen opgeslagen."; +App::$strings["Logfile archive directory"] = "Logbestand archiefmap"; +App::$strings["Directory to store rotated logs"] = "Map om geroteerde logbestanden in op te slaan"; +App::$strings["Logfile size in bytes before rotating"] = "Grootte van logbestand in bytes, voordat het wordt geroteerd"; +App::$strings["Number of logfiles to retain"] = "Aantal te behouden logbestanden"; +App::$strings["Email notification hub"] = "Hub voor e-mailnotificaties"; +App::$strings["Hostname"] = "Hostnaam"; +App::$strings["Mailhost Settings"] = "Mailhost"; +App::$strings["MAILHOST Settings saved."] = "Mailhost-instellingen opgeslagen."; +App::$strings["lonely"] = "Eenzaam"; +App::$strings["drunk"] = "dronken"; +App::$strings["horny"] = "geil"; +App::$strings["stoned"] = "stoned"; +App::$strings["fucked up"] = "opgefokt"; +App::$strings["clusterfucked"] = "clusterfucked"; +App::$strings["crazy"] = "gek"; +App::$strings["hurt"] = "gekwetst"; +App::$strings["sleepy"] = "slaperig"; +App::$strings["grumpy"] = "chagrijnig"; +App::$strings["high"] = "high"; +App::$strings["semi-conscious"] = "half bij kennis"; +App::$strings["in love"] = "verliefd"; +App::$strings["in lust"] = "wellustig"; +App::$strings["naked"] = "naakt"; +App::$strings["stinky"] = "stinkend"; +App::$strings["sweaty"] = "zweterig"; +App::$strings["bleeding out"] = "aan het doodbloeden"; +App::$strings["victorious"] = "zegevierend"; +App::$strings["defeated"] = "verslagen"; +App::$strings["envious"] = "jaloers"; +App::$strings["jealous"] = "jaloers"; +App::$strings["bitchslap"] = "bitchslappen"; +App::$strings["bitchslapped"] = "bitchslapped"; +App::$strings["shag"] = "wippen"; +App::$strings["shagged"] = "wipte met"; +App::$strings["patent"] = "patent"; +App::$strings["patented"] = "patented"; +App::$strings["hug"] = "knuffelen"; +App::$strings["hugged"] = "knuffelde"; +App::$strings["murder"] = "vermoorden"; +App::$strings["murdered"] = "vermoorde"; +App::$strings["worship"] = "aanbidden"; +App::$strings["worshipped"] = "aanbad"; +App::$strings["kiss"] = "kussen"; +App::$strings["kissed"] = "kuste"; +App::$strings["tempt"] = "verleiden"; +App::$strings["tempted"] = "verleidde"; +App::$strings["raise eyebrows at"] = "wenkbrauwen optrekken"; +App::$strings["raised their eyebrows at"] = "trok zijn/haar wenkbrauwen op naar"; +App::$strings["insult"] = "beledigen"; +App::$strings["insulted"] = "beledigde"; +App::$strings["praise"] = "prijzen"; +App::$strings["praised"] = "prees"; +App::$strings["be dubious of"] = "twijfels hebben"; +App::$strings["was dubious of"] = "had twijfels over"; +App::$strings["eat"] = "opeten"; +App::$strings["ate"] = "at"; +App::$strings["giggle and fawn at"] = "giechelen en vleien"; +App::$strings["giggled and fawned at"] = "giechelde naar en vleide met"; +App::$strings["doubt"] = "betwijfelen"; +App::$strings["doubted"] = "betwijfelde"; +App::$strings["glare"] = "boos kijken"; +App::$strings["glared at"] = "keek boos naar"; +App::$strings["fuck"] = "neuken"; +App::$strings["fucked"] = "neukte"; +App::$strings["bonk"] = "naaien"; +App::$strings["bonked"] = "naaide"; +App::$strings["declare undying love for"] = "eeuwige liefde verklaren"; +App::$strings["declared undying love for"] = "verklaarde de eeuwige liefde aan"; +App::$strings["Save Settings"] = "Instellingen opslaan"; +App::$strings["text to include in all outgoing posts from this site"] = "tekst om onderaan elk uitgaand bericht van deze hub te plaatsen"; +App::$strings["Federate"] = "Federeren"; +App::$strings["nofed Settings saved."] = "Geen federatie-instellingen opgeslagen."; +App::$strings["Allow Federation Toggle"] = "Federatie toestaan?"; +App::$strings["Federate posts by default"] = "Standaard berichten federeren"; +App::$strings["NoFed Settings"] = "Geen federatie"; +App::$strings["Nsabait Settings updated."] = "NSAbait-instellingen bijgewerkt."; +App::$strings["Enable NSAbait Plugin"] = "NSAbait inschakelen"; +App::$strings["NSAbait Settings"] = "NSAbait"; +App::$strings["This plugin looks in posts for the words/text you specify below, and collapses any content containing those keywords so it is not displayed at inappropriate times, such as sexual innuendo that may be improper in a work setting. It is polite and recommended to tag any content containing nudity with #NSFW. This filter can also match any other word/text you specify, and can thereby be used as a general purpose content filter."] = "Deze plug-in controleert berichten op woorden die je hieronder kunt opgeven en klapt berichten in die deze woorden bevatten, zodat die berichten niet worden weergegeven op ongeschikte momenten. Denk hierbij aan berichten met erotische afbeeldingen, die waarschijnlijk niet geschikt zijn binnen (bijvoorbeeld) een werkomgeving. Het is beleefd en het wordt aangeraden om zulke berichten met #NSFW te taggen. Dit filter kan ook gebruikt worden met andere woorden en is dus voor alles inzetbaar."; +App::$strings["Enable Content filter"] = "Inhoudsfilter inschakelen"; +App::$strings["Comma separated list of keywords to hide"] = "Door komma's gescheiden lijst met woorden die gefilterd moeten worden."; +App::$strings["Use /expression/ to provide regular expressions"] = "Gebruik /expressie/ voor reguliere expressies"; +App::$strings["Not Safe For Work Settings"] = "Not Safe For Work (inhoudsfilter)"; +App::$strings["General Purpose Content Filter"] = "Voor alles te gebruiken inhoudsfilter"; +App::$strings["NSFW Settings saved."] = "NSFW-instellingen opgeslagen."; +App::$strings["Possible adult content"] = "Mogelijk inhoud voor volwassenen"; +App::$strings["%s - click to open/close"] = "%s - Klik om te openen of te sluiten"; +App::$strings["System defaults:"] = "Systeemstandaarden:"; +App::$strings["Preferred Clipart IDs"] = "Voorkeursclipart"; +App::$strings["List of preferred clipart ids. These will be shown first."] = "Lijst met clipartnummers die als eerste moeten worden getoond."; +App::$strings["Default Search Term"] = "Standaard zoekterm"; +App::$strings["The default search term. These will be shown second."] = "Standaard zoekterm. Deze worden als tweede getoond."; +App::$strings["Return After"] = "Ga na afloop naar"; +App::$strings["Page to load after image selection."] = "Pagina die na het kiezen van een afbeelding moet laden."; +App::$strings["Edit Profile"] = "Profiel bewerken"; +App::$strings["Profile List"] = "Profiellijst"; +App::$strings["Order of Preferred"] = "Voorkeursclipart sorteren op"; +App::$strings["Sort order of preferred clipart ids."] = "Als eerste getoonde clipart hierop sorteren."; +App::$strings["Newest first"] = "Nieuwste eerst"; +App::$strings["As entered"] = "Zoals ingevoerd"; +App::$strings["Order of other"] = "Overige clipart sorteren op"; +App::$strings["Sort order of other clipart ids."] = "Overige clipart hierop sorteren."; +App::$strings["Most downloaded first"] = "Meest gedownload eerst"; +App::$strings["Most liked first"] = "Meest geliked eerst"; +App::$strings["Preferred IDs Message"] = "Tekst voorkeursclipart"; +App::$strings["Message to display above preferred results."] = "Tekst die bovenaan de resultaten met voorkeursclipart moet worden getoond."; +App::$strings["Uploaded by: "] = "Geüpload door: "; +App::$strings["Drawn by: "] = "Getekend door: "; +App::$strings["Or select from a free OpenClipart.org image:"] = "Of kies uit een vrije OpenClipart.org-afbeelding:"; +App::$strings["Search Term"] = "Zoekterm"; +App::$strings["Unknown error. Please try again later."] = "Onbekende fout. Probeer later nog eens."; +App::$strings["Profile photo updated successfully."] = "Bijwerken profielfoto geslaagd."; +App::$strings["View Larger"] = "Groter tonen"; +App::$strings["Tile Server URL"] = "URL tile-server"; +App::$strings["A list of public tile servers"] = "Een lijst met openbare tile-servers"; +App::$strings["Nominatim (reverse geocoding) Server URL"] = "Server-URL Nominatim (reverse geocoding)"; +App::$strings["A list of Nominatim servers"] = "Een lijst met Nominatim-servers"; +App::$strings["Default zoom"] = "Standaard zoomniveau"; +App::$strings["The default zoom level. (1:world, 18:highest, also depends on tile server)"] = "Standaard zoomniveau. Van 1 (wereld) t/m 18 (maximaal). Is ook afhankelijk van tile-server."; +App::$strings["Include marker on map"] = "Markering op kaart plaatsen"; +App::$strings["Include a marker on the map."] = "Plaatst een markering op de kaart."; +App::$strings["Message to display on every page on this server"] = "Bericht om op elke pagina van deze hub weer te geven"; +App::$strings["Pageheader Settings"] = "Pageheader"; +App::$strings["pageheader Settings saved."] = "Pageheader-instellingen opgeslagen."; +App::$strings["This website is tracked using the Piwik analytics tool."] = "Het bezoek aan deze website wordt gemeten door Piwik."; +App::$strings["If you do not want that your visits are logged this way you can set a cookie to prevent Piwik from tracking further visits of the site (opt-out)."] = "Wanneer je niet wil dat jouw bezoek aan deze website wordt bijgehouden, kan je een cookie achterlaten om te verhinderen dat Piwik jou op deze website blijft volgen (opt-out)."; +App::$strings["Piwik Base URL"] = "Basis-URL Piwik"; +App::$strings["Absolute path to your Piwik installation. (without protocol (http/s), with trailing slash)"] = "Absoluut pad naar jouw Piwik-installatie (zonder protocol (http/s), met een slash op het einde)"; +App::$strings["Site ID"] = "Site ID"; +App::$strings["Show opt-out cookie link?"] = "Toon opt-out cookie-link?"; +App::$strings["Asynchronous tracking"] = "Asynchroon volgen"; +App::$strings["Enable frontend JavaScript error tracking"] = "Volgen van front-end JavaScript-fouten inschakelen"; +App::$strings["This feature requires Piwik >= 2.2.0"] = "Deze functie vereist Piwik >= 2.2.0"; +App::$strings["Planets Settings updated."] = "Planets-instellingen opgeslagen."; +App::$strings["Enable Planets Plugin"] = "Planets inschakelen"; +App::$strings["Planets Settings"] = "Planets"; +App::$strings["You are now authenticated to pumpio."] = "De verbinding met pump.io is geverifieerd"; +App::$strings["return to the featured settings page"] = "Ga terug naar pagina met plugin-instellingen"; +App::$strings["Post to Pump.io"] = "Doorplaatsen naar Pump.io"; +App::$strings["Pump.io servername"] = "Pump.io-servernaam"; +App::$strings["Without \"http://\" or \"https://\""] = "Zonder \"http://\" of \"https://\""; +App::$strings["Pump.io username"] = "Gebruikersnaam Pump.io"; +App::$strings["Without the servername"] = "Zonder servernaam"; +App::$strings["You are not authenticated to pumpio"] = "De verbinding met pump.io is niet geverifieerd"; +App::$strings["(Re-)Authenticate your pump.io connection"] = "Verifieer (opnieuw) jouw pump.io-verbinding"; +App::$strings["Enable pump.io Post Plugin"] = "Doorplaatsen naar Pump.io inschakelen"; +App::$strings["Post to pump.io by default"] = "Standaard doorplaatsen naar Pump.io"; +App::$strings["Should posts be public"] = "Moeten berichten openbaar zijn"; +App::$strings["Mirror all public posts"] = "Alle openbare berichten doorplaatsen"; +App::$strings["Pump.io Post Settings"] = "Doorplaatsen naar Pump.io"; +App::$strings["PumpIO Settings saved."] = "Pump.io-instellingen opgeslagen."; +App::$strings["QR code"] = "QR-code"; +App::$strings["QR Generator"] = "QR-code-generator"; +App::$strings["Enter some text"] = "Vul wat tekst in"; +App::$strings["Enable Rainbowtag"] = "Rainbowtag inschakelen"; +App::$strings["Rainbowtag Settings"] = "Rainbowtag"; +App::$strings["Rainbowtag Settings saved."] = "Rainbowtag-instellingen opgeslagen."; +App::$strings["You're welcome."] = "Je bent van harte welkom."; +App::$strings["Ah shucks..."] = "Hé verdorie..."; +App::$strings["Don't mention it."] = "Graag gedaan."; +App::$strings["<blush>"] = ""; +App::$strings["Redmatrix File Storage Import"] = "Importeer bestanden vanuit Redmatrix"; +App::$strings["This will import all your Redmatrix cloud files to this channel."] = "Hiermee importeer je al jouw Redmatrix-bestanden in dit kanaal."; +App::$strings["Redmatrix Server base URL"] = "Basis-URL van Redmatrix-hub"; +App::$strings["Redmatrix Login Username"] = "Gebruikersnaam Redmatrix"; +App::$strings["Redmatrix Login Password"] = "Wachtwoord Redmatrix"; +App::$strings["file"] = "bestand"; +App::$strings["Photos imported"] = "Foto's geïmporteerd"; +App::$strings["Redmatrix Photo Album Import"] = "Fotoalbums importeren vanuit Redmatrix"; +App::$strings["This will import all your Redmatrix photo albums to this channel."] = "Hiermee importeer je al jouw Redmatrix-fotoalbums in dit Hubzilla-kanaal."; +App::$strings["Import just this album"] = "Alleen dit album importeren"; +App::$strings["Leave blank to import all albums"] = "Laat leeg om alle albums te importeren"; +App::$strings["Maximum count to import"] = "Maximaal aantal om te importeren"; +App::$strings["0 or blank to import all available"] = "0 of leeg om alles te importeren"; +App::$strings["Post to Red"] = "Doorplaatsen naar Hubzilla"; +App::$strings["Channel is required."] = "Een kanaal is vereist."; +App::$strings["Invalid channel."] = "Onbekend kanaal."; +App::$strings["redred Settings saved."] = "RedRed-instellingen opgeslagen."; +App::$strings["Allow posting to another Hubzilla Channel"] = "Doorplaatsen naar een ander Hubzilla-kanaal toestaan"; +App::$strings["Send public postings to Hubzilla channel by default"] = "Standaard doorplaatsen naar een ander Hubzilla-kanaal toestaan"; +App::$strings["Hubzilla API Path"] = "API-pad Hubzilla"; +App::$strings["https://{sitename}/api"] = "https://{hubnaam}/api"; +App::$strings["Hubzilla login name"] = "Gebruikersnaam Hubzilla"; +App::$strings["Hubzilla channel name"] = "Kanaalnaam Hubzilla"; +App::$strings["Nickname"] = "Bijnaam"; +App::$strings["Hubzilla Crosspost Settings"] = "Doorplaatsen naar Hubzilla"; +App::$strings["Post to Friendica"] = "Doorplaatsen naar Friendica"; +App::$strings["rtof Settings saved."] = "RTOF-instellingen opgeslagen."; +App::$strings["Allow posting to Friendica"] = "Doorplaatsen naar Friendica toestaan"; +App::$strings["Send public postings to Friendica by default"] = "Standaard doorplaatsen naar Friendica"; +App::$strings["Friendica API Path"] = "API-pad Friendica"; +App::$strings["Friendica login name"] = "Gebruikersnaam Friendica"; +App::$strings["Friendica password"] = "Wachtwoord Friendica"; +App::$strings["Hubzilla to Friendica Post Settings"] = "Doorplaatsen naar Friendica"; +App::$strings["Extended Identity Sharing"] = "Uitgebreid identiteit delen"; +App::$strings["Share your identity with all websites on the internet. When disabled, identity is only shared with sites in the matrix."] = "Deel jouw Hubzilla-identiteit met alle websites op het internet. Wanneer dit is uitgeschakeld wordt je identiteit alleen binnen het Hubzilla-netwerk gedeeld. Schakel dit alleen in als je weet wat je doet."; +App::$strings["Some setting"] = "Een of andere instelling"; +App::$strings["A setting"] = "Een instelling"; +App::$strings["Skeleton Settings"] = "Plugin-skeleton"; +App::$strings["Deactivate the feature"] = "Deze functie uitschakelen"; +App::$strings["Hide the button and show the smilies directly."] = "Verberg de knop en toon de smilies direct."; +App::$strings["Smileybutton Settings"] = "Smileyknop"; +App::$strings["Page to load after login"] = "Pagina die na het inloggen getoond moet worden"; +App::$strings["Examples: "apps", "network?f=&gid=37" (privacy collection), "channel" or "notifications/system" (leave blank for default network page (grid)."] = "Voorbeelden: "apps", "network?f=&gid=37" (privacygroep), "channel" of "notifications/system" (laat leeg voor de standaard netwerkpagina (grid)."; +App::$strings["Startpage Settings"] = "Startpagina"; +App::$strings["Post to GNU social"] = "Doorplaatsen naar GNU social"; +App::$strings["Please contact your site administrator.
        The provided API URL is not valid."] = "De verstrekte API-URL is ongeldig.
        Neem contact op met jouw hubbeheerder."; +App::$strings["We could not contact the GNU social API with the Path you entered."] = "Wij konden de GNU social-API niet bereiken door middel van het ingevulde pad."; +App::$strings["GNU social settings updated."] = "GNU social-instellingen bijgewerkt."; +App::$strings["Globally Available GNU social OAuthKeys"] = "Op de gehele hub te gebruiken GNU social OAuthkeys."; +App::$strings["There are preconfigured OAuth key pairs for some GNU social servers available. If you are using one of them, please use these credentials.
        If not feel free to connect to any other GNU social instance (see below)."] = "Er zijn op deze hub enkele voorgeconfigureerde OAuthkey-paren voor GNU social servers beschikbaar. Wanneer je een van deze servers gebruikt, gebruik dan deze voorgeconfigureerde gegevens.
        Wanneer dit niet het geval is, maak dan gerust met een andere GNU social-server verbinding (zie hieronder)."; +App::$strings["Provide your own OAuth Credentials"] = "Verstrek jouw eigen OAuth-gegevens"; +App::$strings["No consumer key pair for GNU social found. Register your Hubzilla Account as an desktop client on your GNU social account, copy the consumer key pair here and enter the API base root.
        Before you register your own OAuth key pair ask the administrator if there is already a key pair for this Hubzilla installation at your favourite GNU social installation."] = "Geen consumerkey voor GNU social gevonden. Registreer jouw Hubzilla-account als een desktopclient in jouw GNU-social-account, kopieer en plak hier de consumerkey en de consumersecret, en vul de API-base-root in.
        Voordat je jouw eigen OAuthkey-paar registreert, vraag dan eerst aan jouw hubbeheerder of er al een key-paar voor deze hub op jouw favoriete GNU social-server bestaat."; +App::$strings["OAuth Consumer Key"] = "OAuth-consumerkey"; +App::$strings["OAuth Consumer Secret"] = "Oauth-consumersecret"; +App::$strings["Base API Path"] = "Basispad API"; +App::$strings["Remember the trailing /"] = "Vergeet niet de afsluitende /"; +App::$strings["GNU social application name"] = "Naam GNU social-applicatie"; +App::$strings["To connect to your GNU social account click the button below to get a security code from GNU social which you have to copy into the input box below and submit the form. Only your public posts will be posted to GNU social."] = "Om jouw GNU social-account te koppelen klik je op de knop hieronder. Je krijgt dan een veiligheidscode van GNU social die je kan kopiëren en dan hieronder in het invulveld kan plakken. Vervolgens klik je op Opslaan. Alleen jouw openbare berichten kunnen worden doorgeplaatst naar GNU social."; +App::$strings["Log in with GNU social"] = "Inloggen op "; +App::$strings["Copy the security code from GNU social here"] = "Plak de veiligheidscode van GNU social hier"; +App::$strings["Cancel Connection Process"] = "Annuleer het verbindingsproces"; +App::$strings["Current GNU social API is"] = "Huidige GNU social-API is"; +App::$strings["Cancel GNU social Connection"] = "Annuleer de GNU social-verbinding"; +App::$strings["Currently connected to: "] = "Momenteel gekoppeld aan: "; +App::$strings["Note: Due your privacy settings (Hide your profile details from unknown viewers?) the link potentially included in public postings relayed to GNU social will lead the visitor to a blank page informing the visitor that the access to your profile has been restricted."] = "Opmerking: In verband met jouw privacyinstellingen (wanneer jouw kanaalprofiel voor onbekenden is verborgen) leidt de profiellink die mogelijk in jouw naar GNU social doorgestuurde openbare berichten staat, naar een lege pagina met de melding dat toegang tot jouw kanaalprofiel is beperkt."; +App::$strings["Allow posting to GNU social"] = "Doorplaatsen naar GNU social toestaan"; +App::$strings["If enabled your public postings can be posted to the associated GNU-social account"] = "Wanneer dit is ingeschakeld kunnen jouw openbare berichten naar het gekoppelde Twitter-account worden doorgeplaatst"; +App::$strings["Post to GNU social by default"] = "Standaard doorplaatsen naar GNU social"; +App::$strings["If enabled your public postings will be posted to the associated GNU-social account by default"] = "Wanneer dit is ingeschakeld worden al jouw openbare berichten standaard naar het gekoppelde GNU social-account doorgeplaatst"; +App::$strings["Clear OAuth configuration"] = "OAuth-configuratie wissen"; +App::$strings["GNU social Post Settings"] = "Doorplaatsen naar GNU social"; +App::$strings["API URL"] = "API-URL"; +App::$strings["Application name"] = "Naam applicatie"; +App::$strings["Currently blocked"] = "Momenteel geblokkeerd"; +App::$strings["No channels currently blocked"] = "Momenteel geen kanalen geblokkeerd"; +App::$strings["\"Superblock\" Settings"] = "Superblock"; +App::$strings["Block Completely"] = "Volledig blokkeren"; +App::$strings["superblock settings updated"] = "Superblock-instellingen bijgewerkt"; +App::$strings["Your account on %s will expire in a few days."] = "Jouw account op %s verloopt over een paar dagen. "; +App::$strings["Your $Productname test account is about to expire."] = "Jouw $Productname-testaccount staat op het punt om te verlopen."; +App::$strings["Three Dimensional Tic-Tac-Toe"] = "Driedimensionaal Boter-kaas-en-eieren"; +App::$strings["3D Tic-Tac-Toe"] = "Boter-kaas-en-eieren in 3D"; +App::$strings["New game"] = "Nieuw spel"; +App::$strings["New game with handicap"] = "Nieuw spel met handicap"; +App::$strings["Three dimensional tic-tac-toe is just like the traditional game except that it is played on multiple levels simultaneously. "] = "Driedimensionaal Boter-kaas-en-eieren is hetzelfde als het klassieke spel, behalve dat het gelijktijdig op meerdere hoogtes wordt gespeeld."; +App::$strings["In this case there are three levels. You win by getting three in a row on any level, as well as up, down, and diagonally across the different levels."] = "In dit geval zijn er drie hoogtes. Je wint wanneer je drie op een rij hebt op een van de drie hoogtes, van boven naar beneden of diagonaal."; +App::$strings["The handicap game disables the center position on the middle level because the player claiming this square often has an unfair advantage."] = "Het spel met een handicap schakelt de middelste positie op de middelste hoogte uit, omdat de speler die deze positie krijgt vaak een oneerlijk voordeel geniet."; +App::$strings["You go first..."] = "Jij bent eerst..."; +App::$strings["I'm going first this time..."] = "Ik ga deze keer eerst..."; +App::$strings["You won!"] = "Jij wint!"; +App::$strings["\"Cat\" game!"] = "Gelijkspel!"; +App::$strings["I won!"] = "Ik win!"; +App::$strings["Edit your profile and change settings."] = "Jouw profiel bewerken en instellingen veranderen."; +App::$strings["Click here to see activity from your connections."] = "Klik hier voor een tijdlijn met berichten en overige activiteiten van jouw connecties."; +App::$strings["Click here to see your channel home."] = "Klik hier voor de tijdlijn van jouw eigen kanaal."; +App::$strings["You can access your private messages from here."] = "Hiermee krijg je toegang tot jouw privéberichten."; +App::$strings["Create new events here."] = "Nieuwe gebeurtenissen kan je hier aanmaken."; +App::$strings["You can accept new connections and change permissions for existing ones here. You can also e.g. create groups of contacts."] = "Hier kan je nieuwe connecties accepteren en instellingen van bestaande connecties wijzigen. Je kan hier bijv. ook privacygroepen aanmaken."; +App::$strings["System notifications will arrive here"] = "Systeemnotificaties komen hier tevoorschijn"; +App::$strings["Search for content and users"] = "Zoek hier naar tekst in berichten of naar andere kanalen."; +App::$strings["Browse for new contacts"] = "Blader hier in een gids met kanalen, die je toe kan voegen als connectie."; +App::$strings["Launch installed apps"] = "Open (op deze hub) geïnstalleerde apps."; +App::$strings["Looking for help? Click here."] = "Zoek je hulp? Klik dan hier."; +App::$strings["New events have occurred in your network. Click here to see what has happened!"] = "Er is iets nieuws gebeurd in jouw netwerk. Klik hier om te zien wat precies."; +App::$strings["You have received a new private message. Click here to see from who!"] = "Je hebt een nieuw privébericht ontvangen. Klik hier om te zien van wie."; +App::$strings["There are events this week. Click here too see which!"] = "Er vinden deze week gebeurtenissen plaats. Klik hier om te zien welke dit zijn."; +App::$strings["You have received a new introduction. Click here to see who!"] = "Je hebt een nieuw connectieverzoek ontvangen. Klik hier om te kijken van wie."; +App::$strings["There is a new system notification. Click here to see what has happened!"] = "Er is een nieuwe systeemnotificatie. Klik hier om te zien wat er aan de hand is."; +App::$strings["Click here to share text, images, videos and sound."] = "Klik hier om tekst, afbeeldingen, video en audio te delen."; +App::$strings["You can write an optional title for your update (good for long posts)."] = "Je kan optioneel een titel voor je nieuwe bericht verzinnen. Vooral goed voor langere berichten."; +App::$strings["Entering some categories here makes it easier to find your post later."] = "Het invullen van enkele categorieën, maakt het later terugvinden van je berichten gemakkelijker. Dit is niet verplicht."; +App::$strings["Share photos, links, location, etc."] = "Deel foto's, links, locaties, enz."; +App::$strings["Only want to share content for a while? Make it expire at a certain date."] = "Wil je alleen iets tot een bepaald moment delen? Dan kan je het hiermee op een bepaalde datum en tijd laten verlopen."; +App::$strings["You can password protect content."] = "Je kan met een wachtwoord gegevens beveiligen."; +App::$strings["Choose who you share with."] = "Kies met wie je dit wil delen. "; +App::$strings["Click here when you are done."] = "Klik hier wanneer je klaar bent."; +App::$strings["Adjust from which channels posts should be displayed."] = "Aanpassen van welke kanalen berichten moeten worden getoond. "; +App::$strings["Only show posts from channels in the specified privacy group."] = "Toon alleen berichten van kanalen in de hier gekozen privacygroep."; +App::$strings["Easily find posts containing tags (keywords preceded by the \"#\" symbol)."] = "Vind gemakkelijk berichten met tags (trefwoorden die beginnen met een \"#\")."; +App::$strings["Easily find posts in given category."] = "Vind gemakkelijk berichten in een bepaalde categorie."; +App::$strings["Easily find posts by date."] = "Vind gemakkelijk berichten op datum."; +App::$strings["Suggested users who have volounteered to be shown as suggestions, and who we think you might find interesting."] = "Voorstellen voor kanalen die wellicht interessant voor jou zijn en hier ook vrijwillig voor hebben gekozen."; +App::$strings["Here you see channels you have connected to."] = "Hier kan je zien met welke kanalen je bent verbonden (connecties)."; +App::$strings["Save your search so you can repeat it at a later date."] = "Sla jouw zoekopdracht op, zodat je het later opnieuw kan gebruiken."; +App::$strings["If you see this icon you can be sure that the sender is who it say it is. It is normal that it is not always possible to verify the sender, so the icon will be missing sometimes. There is usually no need to worry about that."] = "Wanneer je dit pictogram ziet, kan je er van uitgaan dat de afzender is wie hij/zij beweert te zijn. Het is niet altijd mogelijk om de afzender te verifiëren, waardoor het pictogram soms ontbreekt. Dit is meestal geen reden voor ongerustheid."; +App::$strings["Danger! It seems someone tried to forge a message! This message is not necessarily from who it says it is from!"] = "Gevaar! Het lijkt er op dat iemand een bericht heeft proberen te vervalsen! Dit bericht is mogelijk niet afkomstig van de vermelde afzender!"; +App::$strings["Welcome to Hubzilla! Would you like to see a tour of the UI?

        You can pause it at any time and continue where you left off by reloading the page, or navigting to another page.

        You can also advance by pressing the return key"] = "Welkom op Hubzilla! Wil jij een rondleiding hebben langs de gebruikersinterface?

        Je kan dit op elk moment pauzeren en weer hervatten door de pagina te herladen of naar een andere pagina te gaan.

        Je kan ook vooruitgaan met behulp van de entertoets."; +App::$strings["Post to Twitter"] = "Doorplaatsen naar Twitter"; +App::$strings["Twitter settings updated."] = "Twitter-instellingen bijgewerkt."; +App::$strings["No consumer key pair for Twitter found. Please contact your site administrator."] = "Geen consumerkeys voor Twitter gevonden. Neem contact op met jouw hubbeheerder."; +App::$strings["At this Hubzilla instance the Twitter plugin was enabled but you have not yet connected your account to your Twitter account. To do so click the button below to get a PIN from Twitter which you have to copy into the input box below and submit the form. Only your public posts will be posted to Twitter."] = "De Twitter-plugin is op deze Hubzilla-hub ingeschakeld, maar je hebt nog niet jouw Hubzilla-kanaal met jouw Twitter-account gekoppeld. Om dit te doen klik je op de knop hieronder om een PIN-code van Twitter te krijgen. Deze dien je te kopiëren en in het invoegveld beneden te plakken. Vervolgens klik je op Opslaan. Alleen jouw openbare berichten kunnen op Twitter worden geplaatst."; +App::$strings["Log in with Twitter"] = "Op Twitter inloggen"; +App::$strings["Copy the PIN from Twitter here"] = "Plak of type de PIN-code hier"; +App::$strings["Note: Due your privacy settings (Hide your profile details from unknown viewers?) the link potentially included in public postings relayed to Twitter will lead the visitor to a blank page informing the visitor that the access to your profile has been restricted."] = "Opmerking: In verband met jouw privacyinstellingen (wanneer jouw kanaalprofiel voor onbekenden is verborgen) leidt de profiellink die mogelijk in jouw naar Twitter doorgestuurde openbare berichten staat, naar een lege pagina met de melding dat toegang tot jouw kanaalprofiel is beperkt."; +App::$strings["Allow posting to Twitter"] = "Doorplaatsen naar Twitter toestaan"; +App::$strings["If enabled your public postings can be posted to the associated Twitter account"] = "Wanneer dit is ingeschakeld kunnen jouw openbare berichten naar het gekoppelde Twitter-account worden doorgeplaatst"; +App::$strings["Send public postings to Twitter by default"] = "Standaard doorplaatsen naar Twitter"; +App::$strings["If enabled your public postings will be posted to the associated Twitter account by default"] = "Wanneer dit is ingeschakeld worden al jouw openbare berichten standaard naar het gekoppelde Twitter-account doorgeplaatst"; +App::$strings["Twitter Post Settings"] = "Doorplaatsen naar Twitter"; +App::$strings["Submit Settings"] = "Instellingen toepassen"; +App::$strings["Show Upload Limits"] = "Uploadlimieten tonen"; +App::$strings["Hubzilla configured maximum size: "] = "Op Hubzilla configureerde maximale grootte: "; +App::$strings["PHP upload_max_filesize: "] = "PHP upload_max_filesize: "; +App::$strings["PHP post_max_size (must be larger than upload_max_filesize): "] = "PHP post_max_size (moet hoger zijn dan upload_max_filesize): "; +App::$strings["Recent Channel/Profile Viewers"] = "Recente bezoekers van jouw kanaal/profiel"; +App::$strings["This plugin/addon has not been configured."] = "Deze plugin is niet geconfigureerd. "; +App::$strings["Please visit the Visage settings on %s"] = "Bezoek de Visage-instellingen op %s"; +App::$strings["your feature settings page"] = "Jouw plugin-instellingen"; +App::$strings["No entries."] = "Niets aanwezig."; +App::$strings["Enable Visage Visitor Logging"] = "Visage inschakelen "; +App::$strings["Visage Settings"] = "Visage"; +App::$strings["Who likes me?"] = "Wie vindt mij leuk?"; +App::$strings["Post to WordPress"] = "Doorplaatsen naar WordPress"; +App::$strings["Enable WordPress Post Plugin"] = "Doorplaatsen naar WordPress inschakelen"; +App::$strings["WordPress username"] = "Gebruikersnaam WordPress"; +App::$strings["WordPress password"] = "Wachtwoord WordPress"; +App::$strings["WordPress API URL"] = "API-URL WordPress"; +App::$strings["Typically https://your-blog.tld/xmlrpc.php"] = "Meestal https://jouw-blog.tld/xmlrpc.php"; +App::$strings["WordPress blogid"] = "Blog ID WordPress"; +App::$strings["For multi-user sites such as wordpress.com, otherwise leave blank"] = "Voor websites met meerdere gebruikers, zoals wordpress.com. Anders leeg laten."; +App::$strings["Post to WordPress by default"] = "Standaard naar WordPress doorplaatsen"; +App::$strings["Forward comments (requires hubzilla_wp plugin)"] = "Reacties doorplaatsen (Hubzilla_WP-plugin vereist)"; +App::$strings["WordPress Post Settings"] = "Doorplaatsen naar WordPress"; +App::$strings["Wordpress Settings saved."] = "WordPress-instellingen opgeslagen."; +App::$strings["XMPP settings updated."] = "XMPP-instellingen bijgewerkt."; +App::$strings["Enable Chat"] = "Chatten inschakelen"; +App::$strings["Individual credentials"] = "Individuele credentials"; +App::$strings["Jabber BOSH server"] = "BOSH-server van Jabber"; +App::$strings["XMPP Settings"] = "XMPP"; +App::$strings["Jabber BOSH host"] = "BOSH-host van Jabber"; +App::$strings["Use central userbase"] = "Gebruik een centrale gebruikersgroep"; +App::$strings["If enabled, members will automatically login to an ejabberd server that has to be installed on this machine with synchronized credentials via the \"auth_ejabberd.php\" script."] = "Wanneer ingeschakeld worden leden automatisch op een Ejabberd-server ingelogd. Deze dient wel op deze machine te zijn geïnstalleerd met zgn. 'synchronized credentials' via het 'auth_ejabberd.php'-script."; +App::$strings["Select Channel"] = "Kies een kanaal"; +App::$strings["Read-write"] = "Lees- en schrijfrechten"; +App::$strings["Read-only"] = "Alleen leesrechten"; +App::$strings["My Calendars"] = "Mijn agenda's"; +App::$strings["Shared Calendars"] = "Gedeelde agenda's"; +App::$strings["Share this calendar"] = "Agenda delen"; +App::$strings["Calendar name and color"] = "Naam en kleur agenda"; +App::$strings["Create new calendar"] = "Nieuwe agenda aanmaken"; +App::$strings["Calendar Name"] = "Naam agenda"; +App::$strings["Calendar Tools"] = "Agenda-hulpmiddelen"; +App::$strings["Import calendar"] = "Importeren"; +App::$strings["Select a calendar to import to"] = "Kies een agenda om te importeren"; +App::$strings["Addressbooks"] = "Adresboeken"; +App::$strings["Addressbook name"] = "Naam adresboek"; +App::$strings["Create new addressbook"] = "Nieuw adresboek aanmaken"; +App::$strings["Addressbook Name"] = "Naam adresboek"; +App::$strings["Addressbook Tools"] = "Adresboek-hulpmiddelen"; +App::$strings["Import addressbook"] = "Importeren"; +App::$strings["Select an addressbook to import to"] = "Kies een adresboek om te importeren"; +App::$strings["Errors encountered creating database table: "] = "Fouten opgetreden tijdens aanmaken databasetabel: "; +App::$strings["Default Calendar"] = "Standaard agenda"; +App::$strings["Default Addressbook"] = "Standaard adresboek"; +App::$strings["CalDAV/CardDAV Settings saved."] = "CalDAV/CardDAV-instellingen opgeslagen."; +App::$strings["Enable CalDAV/CardDAV Server for this channel"] = "CalDAV/CardDAV-server voor dit kanaal inschakelen"; +App::$strings["Your CalDAV resources are located at %s "] = "Jouw CalDAV-URL is %s "; +App::$strings["Your CardDAV resources are located at %s "] = "Jouw CardDAV-URL is %s "; +App::$strings["CalDAV/CardDAV Settings"] = "CalDAV/CardDAV"; +App::$strings["Mobile"] = "Mobiel"; +App::$strings["Home"] = "Thuis"; +App::$strings["Home, Voice"] = "Thuis, spraak"; +App::$strings["Home, Fax"] = "Thuis, fax"; +App::$strings["Work"] = "Werk"; +App::$strings["Work, Voice"] = "Werk, spraak"; +App::$strings["Work, Fax"] = "Werk, fax"; +App::$strings["INVALID EVENT DISMISSED!"] = "ONGELDIGE GEBEURTENIS VERWIJDERD!"; +App::$strings["Summary: "] = "Samenvatting: "; +App::$strings["Date: "] = "Datum: "; +App::$strings["Reason: "] = "Reden: "; +App::$strings["INVALID CARD DISMISSED!"] = "ONGELDIGE CONTACTKAART VERWIJDERD!"; +App::$strings["Name: "] = "Naam: "; +App::$strings["You have to enable this plugin in Feature/Addon Settings > CalDAV/CardDAV Settings before you can use it."] = "Voordat je dit kunt gebruiken dien je eerst deze plugin onder 'Plugin-instellingen > CalDAV/CardDAV' in te schakelen."; +App::$strings["Example: YYYY-MM-DD HH:mm"] = "Bijvoorbeeld: JJJJ-MM-DD UU:mm"; +App::$strings["End date and time"] = "Einddatum en -tijd"; +App::$strings["List month"] = "Maand tonen"; +App::$strings["List week"] = "Week tonen"; +App::$strings["List day"] = "Dag tonen"; +App::$strings["More"] = "Meer"; +App::$strings["Less"] = "Minder"; +App::$strings["Select calendar"] = "Kies agenda"; +App::$strings["Delete all"] = "Alles verwijderen"; +App::$strings["Sorry! Editing of recurrent events is not yet implemented."] = "Excuses! Bewerken van herhalende gebeurtenissen is nog niet geïmplementeerd."; +App::$strings["Organisation"] = "Organisatie"; +App::$strings["Title"] = "Titel"; +App::$strings["Phone"] = "Telefoon"; +App::$strings["Instant messenger"] = "Instant messenger"; +App::$strings["Website"] = "Website"; +App::$strings["Note"] = "Opmerking"; +App::$strings["Add Field"] = "Veld toevoegen"; +App::$strings["P.O. Box"] = "Postbus"; +App::$strings["Additional"] = "Extra"; +App::$strings["Street"] = "Straat en huisnummer"; +App::$strings["Locality"] = "Plaats"; +App::$strings["Region"] = "Provincie/staat/regio/enz."; +App::$strings["ZIP Code"] = "Postcode"; +App::$strings["Invalid game."] = "Ongeldig spel."; +App::$strings["You are not a player in this game."] = "Jij doet niet aan dit speel mee."; +App::$strings["You must be a local channel to create a game."] = "Je moet een lokaal kanaal zijn om een spel aan te maken."; +App::$strings["You must select one opponent that is not yourself."] = "Je moet één tegenstander uitkiezen, maar niet jezelf."; +App::$strings["Creating new game..."] = "Nieuw spel wordt aangemaakt..."; +App::$strings["You must select white or black."] = "Je moet wit of zwart kiezen."; +App::$strings["Error creating new game."] = "Fout tijdens aanmaken nieuw spel."; +App::$strings["Requested channel is not available."] = "Opgevraagd kanaal is niet beschikbaar."; +App::$strings["You must select a local channel /chess/channelname"] = "Je moet een lokaal kanaal kiezen: .../chess/kanaalnaam"; +App::$strings["Enable notifications"] = "Notificaties inschakelen"; +App::$strings["Your Webbie:"] = "Jouw kanaaladres:"; +App::$strings["Fontsize (px):"] = "Tekengrootte (px):"; +App::$strings["Link:"] = "Link:"; +App::$strings["Like us on Hubzilla"] = "Like ons op Hubzilla"; +App::$strings["Embed:"] = "Insluiten (embed):"; +App::$strings["Male"] = "Man"; +App::$strings["Female"] = "Vrouw"; +App::$strings["OpenID protocol error. No ID returned."] = "OpenID-protocolfout. Geen ID terugontvangen."; +App::$strings["Login failed."] = "Inloggen mislukt."; +App::$strings["First Name"] = "Voornaam"; +App::$strings["Last Name"] = "Achternaam"; +App::$strings["Full Name"] = "Volledige naam"; +App::$strings["Profile Photo 16px"] = "Profielfoto 16px"; +App::$strings["Profile Photo 32px"] = "Profielfoto 32px"; +App::$strings["Profile Photo 48px"] = "Profielfoto 48px"; +App::$strings["Profile Photo 64px"] = "Profielfoto 64px"; +App::$strings["Profile Photo 80px"] = "Profielfoto 80px"; +App::$strings["Profile Photo 128px"] = "Profielfoto 128px"; +App::$strings["Timezone"] = "Tijdzone"; +App::$strings["Birth Year"] = "Geboortejaar"; +App::$strings["Birth Month"] = "Geboortemaand"; +App::$strings["Birth Day"] = "Geboortedag"; +App::$strings["Birthdate"] = "Geboortedatum"; +App::$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."; +App::$strings["The error message was:"] = "Foutmelding was:"; +App::$strings["Reconnecting %d connections"] = "%d connecties opnieuw aan het verbinden"; +App::$strings["Diaspora Reconnect"] = "Diaspora opnieuw verbinden"; +App::$strings["Use this form to re-establish Diaspora connections which were initially made from a different hub."] = "Gebruik dit formulier om opnieuw met Diaspora-connecties te verbinden, die oorspronkelijk op een andere hub waren verbonden."; +App::$strings["Reconnect"] = "Opnieuw verbinden"; +App::$strings["Send test email"] = "Test-e-mail versturen"; +App::$strings["Mail sent."] = "E-mail verzonden."; +App::$strings["Sending of mail failed."] = "Verzenden van e-mail mislukt."; +App::$strings["Mail Test"] = "E-mailtest"; +App::$strings["Errors encountered deleting database table "] = "Fouten opgetreden tijdens verwijderen databasetabel "; +App::$strings["Drop tables when uninstalling?"] = "Verwijder tabellen tijdens uitschakelen plugin?"; +App::$strings["If checked, the Rendezvous database tables will be deleted when the plugin is uninstalled."] = "Wanneer dit is aangevinkt worden de tabellen in de Rendezvous-database verwijderd wanneer de plugin wordt uitgeschakeld."; +App::$strings["Mapbox Access Token"] = "Toegangstoken "; +App::$strings["If you enter a Mapbox access token, it will be used to retrieve map tiles from Mapbox instead of the default OpenStreetMap tile server."] = "De Mapbox-toegangstoken wordt gebruikt om kaarttegels (tiles) van Mapbox op te halen in plaats van de standaard tile-server van OpenStreetMap."; +App::$strings["Rendezvous"] = "Rendezvous"; +App::$strings["This identity has been deleted by another member due to inactivity. Please press the \"New identity\" button or refresh the page to register a new identity. You may use the same name."] = "Deze identiteit is door een ander lid verwijderd als gevolg van inactiviteit. Klik op de knop \"Nieuwe identiteit\" of herlaad de pagina om een nieuwe identiteit aan te maken. Je kan eventueel dezelfde naam gebruiken."; +App::$strings["Welcome to Rendezvous!"] = "Welkom bij Rendezvous!"; +App::$strings["Enter your name to join this rendezvous. To begin sharing your location with the other members, tap the GPS control. When your location is discovered, a red dot will appear and others will be able to see you on the map."] = "Vul je naam in om deel te nemen aan deze rendezvous. Om met het delen van je locatie met de andere leden te beginnen, klik je op de locatieknop van je webbrowser. Nadat jouw locatie is gevonden verschijnt er een rode stip en kunnen andere leden jou zien op de kaart."; +App::$strings["Let's meet here"] = "Laten we elkaar hier ontmoeten"; +App::$strings["New marker"] = "Nieuwe markering"; +App::$strings["Edit marker"] = "Markering bewerken"; +App::$strings["New identity"] = "Nieuwe identiteit"; +App::$strings["Delete marker"] = "Markering verwijderen"; +App::$strings["Delete member"] = "Lid verwijderen"; +App::$strings["Edit proximity alert"] = "Nabijheidswaarschuwing bewerken"; +App::$strings["A proximity alert will be issued when this member is within a certain radius of you.

        Enter a radius in meters (0 to disable):"] = "Een nabijheidswaarschuwing wordt actief wanneer dit lid zich binnen een bepaalde straal bevindt.

        Voer het aantal meters van de straal in (0 om uit te schakelen):"; +App::$strings["distance"] = "afstand"; +App::$strings["Add new rendezvous"] = "Nieuwe rendezvous toevoegen"; +App::$strings["Create a new rendezvous and share the access link with those you wish to invite to the group. Those who open the link become members of the rendezvous. They can view other member locations, add markers to the map, or share their own locations with the group."] = "Maak een nieuwe rendezvous aan en deel de toegangslink met wie je wil uitnodigen voor de groep. Wie op de link klikt wordt lid van rendezvous. Zij kunnen dan de locaties zien van andere leden, markeringen aan de kaart toevoegen of hun eigen locaties met de groep delen."; App::$strings["No username found in import file."] = "Geen gebruikersnaam in het importbestand gevonden."; App::$strings["Unable to create a unique channel address. Import failed."] = "Niet in staat om een uniek kanaaladres aan te maken. Importeren is mislukt."; App::$strings["Cannot locate DNS info for database server '%s'"] = "Kan DNS-informatie voor databaseserver '%s' niet vinden"; -App::$strings["Can view my normal stream and posts"] = "Kan mijn normale kanaalstream en berichten bekijken"; -App::$strings["Can view my webpages"] = "Kan mijn pagina's bekijken"; -App::$strings["Can post on my channel page (\"wall\")"] = "Kan een bericht in mijn kanaal plaatsen"; -App::$strings["Can like/dislike stuff"] = "Kan dingen leuk of niet leuk vinden"; -App::$strings["Profiles and things other than posts/comments"] = "Profielen en dingen, buiten berichten en reacties"; -App::$strings["Can forward to all my channel contacts via post @mentions"] = "Kan naar al mijn kanaalconnecties berichten doorsturen met behulp van @vermeldingen+"; -App::$strings["Advanced - useful for creating group forum channels"] = "Geavanceerd - nuttig voor groepforums"; -App::$strings["Can chat with me (when available)"] = "Kan met mij chatten (wanneer beschikbaar)"; -App::$strings["Can write to my file storage and photos"] = "Kan foto's en andere bestanden aan mijn bestandsopslag toevoegen"; -App::$strings["Can edit my webpages"] = "Kan mijn pagina's bewerken"; -App::$strings["Somewhat advanced - very useful in open communities"] = "Enigszins geavanceerd (erg nuttig voor kanalen van forums/groepen)"; -App::$strings["Can administer my channel resources"] = "Kan mijn kanaal beheren"; -App::$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."; -App::$strings["Image exceeds website size limit of %lu bytes"] = "Afbeelding is groter dan op deze hub toegestane limiet van %lu bytes"; -App::$strings["Image file is empty."] = "Afbeeldingsbestand is leeg"; -App::$strings["Photo storage failed."] = "Foto kan niet worden opgeslagen"; -App::$strings["a new photo"] = "een nieuwe foto"; -App::$strings["__ctx:photo_upload__ %1\$s posted %2\$s to %3\$s"] = "%1\$s plaatste %2\$s op %3\$s"; -App::$strings["Photo Albums"] = "Fotoalbums"; -App::$strings["Upload New Photos"] = "Nieuwe foto's uploaden"; +App::$strings["Birthday"] = "Verjaardag of geboortedatum"; +App::$strings["Age: "] = "Leeftijd:"; +App::$strings["YYYY-MM-DD or MM-DD"] = "JJJJ-MM-DD of MM-DD"; +App::$strings["never"] = "nooit"; +App::$strings["less than a second ago"] = "minder dan een seconde geleden"; +App::$strings["__ctx:e.g. 22 hours ago, 1 minute ago__ %1\$d %2\$s ago"] = "%1\$d %2\$s geleden"; +App::$strings["__ctx:relative_date__ year"] = array( + 0 => "jaar", + 1 => "jaren", +); +App::$strings["__ctx:relative_date__ month"] = array( + 0 => "maand", + 1 => "maanden", +); +App::$strings["__ctx:relative_date__ week"] = array( + 0 => "week", + 1 => "weken", +); +App::$strings["__ctx:relative_date__ day"] = array( + 0 => "dag", + 1 => "dagen", +); +App::$strings["__ctx:relative_date__ hour"] = array( + 0 => "uur", + 1 => "uren", +); +App::$strings["__ctx:relative_date__ minute"] = array( + 0 => "minuut", + 1 => "minuten", +); +App::$strings["__ctx:relative_date__ second"] = array( + 0 => "seconde", + 1 => "seconden", +); +App::$strings["%1\$s's birthday"] = "Verjaardag van %1\$s"; +App::$strings["Happy Birthday %1\$s"] = "Gefeliciteerd met je verjaardag %1\$s"; +App::$strings["Not a valid email address"] = "Geen geldig e-mailadres"; +App::$strings["Your email domain is not among those allowed on this site"] = "Jouw e-maildomein is op deze hub niet toegestaan"; +App::$strings["Your email address is already registered at this site."] = "Jouw e-mailadres is al op deze hub geregistreerd."; +App::$strings["An invitation is required."] = "Een uitnodiging is vereist"; +App::$strings["Invitation could not be verified."] = "Uitnodiging kon niet geverifieerd worden"; +App::$strings["Please enter the required information."] = "Vul de vereiste informatie in."; +App::$strings["Failed to store account information."] = "Account-informatie kon niet opgeslagen worden."; +App::$strings["Registration confirmation for %s"] = "Registratiebevestiging voor %s"; +App::$strings["Registration request at %s"] = "Registratiebevestiging voor %s"; +App::$strings["your registration password"] = "jouw registratiewachtwoord"; +App::$strings["Registration details for %s"] = "Registratiegegevens voor %s"; +App::$strings["Account approved."] = "Account goedgekeurd"; +App::$strings["Registration revoked for %s"] = "Registratie ingetrokken voor %s"; +App::$strings["Click here to upgrade."] = "Klik hier om te upgraden."; +App::$strings["This action exceeds the limits set by your subscription plan."] = "Deze handeling overschrijdt de beperkingen die voor jouw abonnement gelden."; +App::$strings["This action is not available under your subscription plan."] = "Deze handeling is niet mogelijk met jouw abonnement."; +App::$strings["Frequently"] = "Regelmatig"; +App::$strings["Hourly"] = "Elk uur"; +App::$strings["Twice daily"] = "Twee keer per dag"; +App::$strings["Daily"] = "Dagelijks"; +App::$strings["Weekly"] = "Wekelijks"; +App::$strings["Monthly"] = "Maandelijks"; +App::$strings["Currently Male"] = "Momenteel man"; +App::$strings["Currently Female"] = "Momenteel vrouw"; +App::$strings["Mostly Male"] = "Voornamelijk man"; +App::$strings["Mostly Female"] = "Voornamelijk vrouw"; +App::$strings["Transgender"] = "Transgender"; +App::$strings["Intersex"] = "Interseksueel"; +App::$strings["Transsexual"] = "Transseksueel"; +App::$strings["Hermaphrodite"] = "Hermafrodiet"; +App::$strings["Neuter"] = "Genderneutraal"; +App::$strings["Non-specific"] = "Niet gespecificeerd"; +App::$strings["Undecided"] = "Nog niet beslist"; +App::$strings["Males"] = "Mannen"; +App::$strings["Females"] = "Vrouwen"; +App::$strings["Gay"] = "Homoseksueel"; +App::$strings["Lesbian"] = "Lesbisch"; +App::$strings["No Preference"] = "Geen voorkeur"; +App::$strings["Bisexual"] = "Biseksueel"; +App::$strings["Autosexual"] = "Autoseksueel"; +App::$strings["Abstinent"] = "Seksuele onthouding"; +App::$strings["Virgin"] = "Maagd"; +App::$strings["Deviant"] = "Afwijkend"; +App::$strings["Fetish"] = "Fetisj"; +App::$strings["Oodles"] = "Veel"; +App::$strings["Nonsexual"] = "Aseksueel"; +App::$strings["Single"] = "Alleen"; +App::$strings["Lonely"] = "Eenzaam"; +App::$strings["Available"] = "Beschikbaar"; +App::$strings["Unavailable"] = "Niet beschikbaar"; +App::$strings["Has crush"] = "Heeft een oogje op iemand"; +App::$strings["Infatuated"] = "Smoorverliefd"; +App::$strings["Dating"] = "Aan het daten"; +App::$strings["Unfaithful"] = "Ontrouw"; +App::$strings["Sex Addict"] = "Seksverslaafd"; +App::$strings["Friends/Benefits"] = "Vriendschap plus"; +App::$strings["Casual"] = "Ongebonden/vluchtig"; +App::$strings["Engaged"] = "Verloofd"; +App::$strings["Married"] = "Getrouwd"; +App::$strings["Imaginarily married"] = "Denkbeeldig getrouwd"; +App::$strings["Partners"] = "Partners"; +App::$strings["Cohabiting"] = "Samenwonend"; +App::$strings["Common law"] = "Common-law-huwelijk"; +App::$strings["Happy"] = "Gelukkig"; +App::$strings["Not looking"] = "Niet op zoek"; +App::$strings["Swinger"] = "Swinger"; +App::$strings["Betrayed"] = "Verraden"; +App::$strings["Separated"] = "Uit elkaar"; +App::$strings["Unstable"] = "Onstabiel"; +App::$strings["Divorced"] = "Gescheiden"; +App::$strings["Imaginarily divorced"] = "Denkbeeldig gescheiden"; +App::$strings["Widowed"] = "Weduwnaar/weduwe"; +App::$strings["Uncertain"] = "Onzeker"; +App::$strings["It's complicated"] = "Het is ingewikkeld"; +App::$strings["Don't care"] = "Maakt mij niks uit"; +App::$strings["Ask me"] = "Vraag het me"; +App::$strings["Unable to obtain identity information from database"] = "Niet in staat om identiteitsinformatie uit de database te verkrijgen"; +App::$strings["Empty name"] = "Ontbrekende naam"; +App::$strings["Name too long"] = "Naam te lang"; +App::$strings["No account identifier"] = "Geen account-identificator"; +App::$strings["Nickname is required."] = "Bijnaam is verplicht"; +App::$strings["Reserved nickname. Please choose another."] = "Deze naam is gereserveerd. Kies een andere."; +App::$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."; +App::$strings["Unable to retrieve created identity"] = "Niet in staat om aangemaakte identiteit te vinden"; +App::$strings["Default Profile"] = "Standaardprofiel"; +App::$strings["Create New Profile"] = "Nieuw profiel aanmaken"; +App::$strings["Visible to everybody"] = "Voor iedereen zichtbaar"; +App::$strings["Gender:"] = "Geslacht:"; +App::$strings["Homepage:"] = "Homepagina:"; +App::$strings["Online Now"] = "Nu online"; +App::$strings["Like this channel"] = "Vind dit kanaal leuk"; +App::$strings["j F, Y"] = "F j Y"; +App::$strings["j F"] = "F j"; +App::$strings["Birthday:"] = "Geboortedatum:"; +App::$strings["for %1\$d %2\$s"] = "voor %1\$d %2\$s"; +App::$strings["Sexual Preference:"] = "Seksuele voorkeur:"; +App::$strings["Tags:"] = "Tags:"; +App::$strings["Political Views:"] = "Politieke overtuigingen:"; +App::$strings["Religion:"] = "Religie:"; +App::$strings["Hobbies/Interests:"] = "Hobby's/interesses:"; +App::$strings["Likes:"] = "Houdt van:"; +App::$strings["Dislikes:"] = "Houdt niet van:"; +App::$strings["Contact information and Social Networks:"] = "Contactinformatie en sociale netwerken:"; +App::$strings["My other channels:"] = "Mijn andere kanalen"; +App::$strings["Musical interests:"] = "Muzikale interesses:"; +App::$strings["Books, literature:"] = "Boeken, literatuur:"; +App::$strings["Television:"] = "Televisie:"; +App::$strings["Film/dance/culture/entertainment:"] = "Films/dansen/cultuur/vermaak:"; +App::$strings["Love/Romance:"] = "Liefde/romantiek:"; +App::$strings["Work/employment:"] = "Werk/beroep:"; +App::$strings["School/education:"] = "School/opleiding:"; +App::$strings["Like this thing"] = "Vind dit ding leuk"; +App::$strings["New window"] = "Nieuw venster"; +App::$strings["Open the selected location in a different window or browser tab"] = "Open de geselecteerde locatie in een ander venster of tab"; +App::$strings["User '%s' deleted"] = "Account '%s' verwijderd"; +App::$strings["Directory Options"] = "Opties kanalengids"; +App::$strings["Safe Mode"] = "Veilig zoeken"; +App::$strings["Public Forums Only"] = "Alleen openbare forums"; +App::$strings["This Website Only"] = "Alleen deze hub"; +App::$strings["Logout"] = "Uitloggen"; +App::$strings["End this session"] = "Beëindig deze sessie"; +App::$strings["Your posts and conversations"] = "Jouw kanaal"; +App::$strings["Your profile page"] = "Jouw profielpagina"; +App::$strings["Manage/Edit profiles"] = "Beheer/wijzig profielen"; +App::$strings["Edit your profile"] = "Jouw profiel bewerken"; +App::$strings["Your photos"] = "Jouw foto's"; +App::$strings["Your files"] = "Jouw bestanden"; +App::$strings["Your chatrooms"] = "Jouw chatkanalen"; +App::$strings["Bookmarks"] = "Bladwijzers"; +App::$strings["Your bookmarks"] = "Jouw bladwijzers"; +App::$strings["Your webpages"] = "Jouw webpagina's"; +App::$strings["Your wikis"] = "Jouw wiki's"; +App::$strings["Sign in"] = "Inloggen"; +App::$strings["Remote authentication"] = "Authenticatie op afstand"; +App::$strings["Click to authenticate to your home hub"] = "Authenticeer jezelf via (bijvoorbeeld) jouw hub"; +App::$strings["Get me home"] = "Terug naar mijn hub"; +App::$strings["Log me out of this site"] = "Uitloggen op deze hub"; +App::$strings["Create an account"] = "Maak een account aan"; +App::$strings["Help and documentation"] = "Hulp en documentatie"; +App::$strings["Applications, utilities, links, games"] = "Apps"; +App::$strings["Search site @name, #tag, ?docs, content"] = "Zoek een @kanaal, doorzoek inhoud hub met tekst en #tags, of doorzoek ?documentatie "; +App::$strings["Channel Directory"] = "Kanalengids"; +App::$strings["Your grid"] = "Jouw grid"; +App::$strings["Mark all grid notifications seen"] = "Markeer alle gridnotificaties als bekeken"; +App::$strings["Channel home"] = "Jouw kanaal"; +App::$strings["Mark all channel notifications seen"] = "Alle kanaalnotificaties als gelezen markeren"; +App::$strings["Notices"] = "Notificaties"; +App::$strings["Notifications"] = "Notificaties"; +App::$strings["See all notifications"] = "Alle notificaties weergeven"; +App::$strings["Private mail"] = "Privéberichten"; +App::$strings["See all private messages"] = "Alle privéberichten weergeven"; +App::$strings["Mark all private messages seen"] = "Markeer alle privéberichten als bekeken"; +App::$strings["Inbox"] = "Postvak IN"; +App::$strings["Outbox"] = "Postvak UIT"; +App::$strings["New Message"] = "Nieuw bericht"; +App::$strings["Event Calendar"] = "Agenda"; +App::$strings["See all events"] = "Alle gebeurtenissen weergeven"; +App::$strings["Mark all events seen"] = "Markeer alle gebeurtenissen als bekeken"; +App::$strings["Manage Your Channels"] = "Beheer je kanalen"; +App::$strings["Account/Channel Settings"] = "Account-/kanaal-instellingen"; +App::$strings["Admin"] = "Beheer"; +App::$strings["Site Setup and Configuration"] = "Hub instellen en beheren"; +App::$strings["Loading..."] = "Aan het laden..."; +App::$strings["@name, #tag, ?doc, content"] = "@kanaal, #tag, inhoud, ?hulp"; +App::$strings["Please wait..."] = "Wachten aub..."; App::$strings["General Features"] = "Algemene functies"; App::$strings["Multiple Profiles"] = "Meerdere profielen"; App::$strings["Ability to create multiple profiles"] = "Mogelijkheid om meerdere profielen aan te maken"; @@ -1694,9 +2575,126 @@ App::$strings["Tag Cloud"] = "Tagwolk"; App::$strings["Provide a personal tag cloud on your channel page"] = "Zorgt voor een persoonlijke wolk met tags op jouw kanaalpagina"; App::$strings["Premium Channel"] = "Premiumkanaal"; App::$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"; +App::$strings["Attachments:"] = "Bijlagen:"; +App::$strings["l F d, Y \\@ g:i A"] = "l d F Y \\@ G:i"; +App::$strings["\$Projectname event notification:"] = "Notificatie \$Projectname-gebeurtenis:"; +App::$strings["Starts:"] = "Start:"; +App::$strings["Finishes:"] = "Einde:"; +App::$strings["%1\$s's bookmarks"] = "Bladwijzers van %1\$s"; App::$strings["Help:"] = "Hulp:"; -App::$strings["guest:"] = "gast:"; -App::$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. "; +App::$strings["Not Found"] = "Niet gevonden"; +App::$strings["Different viewers will see this text differently"] = "Deze tekst wordt per persoon anders weergeven."; +App::$strings["Invalid data packet"] = "Datapakket ongeldig"; +App::$strings["Unable to verify channel signature"] = "Kanaalkenmerk kon niet worden geverifieerd. "; +App::$strings["Unable to verify site signature for %s"] = "Hubkenmerk voor %s kon niet worden geverifieerd"; +App::$strings["invalid target signature"] = "ongeldig doelkenmerk"; +App::$strings["New Page"] = "Nieuwe pagina"; +App::$strings["Unable to determine sender."] = "Afzender kan niet bepaald worden."; +App::$strings["No recipient provided."] = "Geen ontvanger opgegeven."; +App::$strings["[no subject]"] = "[geen onderwerp]"; +App::$strings["Stored post could not be verified."] = "Opgeslagen bericht kon niet worden geverifieerd."; +App::$strings["%d invitation available"] = array( + 0 => "%d uitnodiging beschikbaar", + 1 => "%d uitnodigingen beschikbaar", +); +App::$strings["Find Channels"] = "Kanalen vinden"; +App::$strings["Enter name or interest"] = "Vul naam of interesse in"; +App::$strings["Connect/Follow"] = "Verbinden/volgen"; +App::$strings["Examples: Robert Morgenstein, Fishing"] = "Voorbeeld: Robert Morgenstein, vissen"; +App::$strings["Random Profile"] = "Willekeurig profiel"; +App::$strings["Invite Friends"] = "Vrienden uitnodigen"; +App::$strings["Advanced example: name=fred and country=iceland"] = "Geavanceerd voorbeeld (Engels): name=jan en country=nederland"; +App::$strings["Everything"] = "Alles"; +App::$strings["Categories"] = "Categorieën"; +App::$strings["%d connection in common"] = array( + 0 => "%d gemeenschappelijke connectie", + 1 => "%d gemeenschappelijke connecties", +); +App::$strings["show more"] = "meer connecties weergeven"; +App::$strings["Delete this item?"] = "Dit item verwijderen?"; +App::$strings["%s show less"] = "%s minder reacties weergeven"; +App::$strings["%s expand"] = "%s uitklappen"; +App::$strings["%s collapse"] = "%s inklappen"; +App::$strings["Password too short"] = "Wachtwoord te kort"; +App::$strings["Passwords do not match"] = "Wachtwoorden komen niet overeen"; +App::$strings["everybody"] = "iedereen"; +App::$strings["Secret Passphrase"] = "Geheim wachtwoord"; +App::$strings["Passphrase hint"] = "Wachtwoordhint"; +App::$strings["Notice: Permissions have changed but have not yet been submitted."] = "Mededeling: de permissies zijn veranderd, maar zijn nog niet opgeslagen."; +App::$strings["close all"] = "Alles sluiten"; +App::$strings["Nothing new here"] = "Niets nieuw hier"; +App::$strings["Rate This Channel (this is public)"] = "Beoordeel dit kanaal (dit is openbaar)"; +App::$strings["Describe (optional)"] = "Omschrijving (optioneel)"; +App::$strings["Please enter a link URL"] = "Vul een URL in:"; +App::$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?"; +App::$strings["timeago.prefixAgo"] = "timeago.prefixAgo"; +App::$strings["timeago.prefixFromNow"] = "timeago.prefixFromNow"; +App::$strings["ago"] = "geleden"; +App::$strings["from now"] = "vanaf nu"; +App::$strings["less than a minute"] = "minder dan een minuut"; +App::$strings["about a minute"] = "ongeveer een minuut"; +App::$strings["%d minutes"] = "%d minuten"; +App::$strings["about an hour"] = "ongeveer een uur"; +App::$strings["about %d hours"] = "ongeveer %d uren"; +App::$strings["a day"] = "een dag"; +App::$strings["%d days"] = "%d dagen"; +App::$strings["about a month"] = "ongeveer een maand"; +App::$strings["%d months"] = "%d maanden"; +App::$strings["about a year"] = "ongeveer een jaar"; +App::$strings["%d years"] = "%d jaren"; +App::$strings[" "] = " "; +App::$strings["timeago.numbers"] = "timeago.numbers"; +App::$strings["January"] = "januari"; +App::$strings["February"] = "februari"; +App::$strings["March"] = "maart"; +App::$strings["April"] = "april"; +App::$strings["__ctx:long__ May"] = "mei"; +App::$strings["June"] = "juni"; +App::$strings["July"] = "juli"; +App::$strings["August"] = "augustus"; +App::$strings["September"] = "september"; +App::$strings["October"] = "oktober"; +App::$strings["November"] = "november"; +App::$strings["December"] = "december"; +App::$strings["Jan"] = "jan"; +App::$strings["Feb"] = "feb"; +App::$strings["Mar"] = "mrt"; +App::$strings["Apr"] = "apr"; +App::$strings["__ctx:short__ May"] = "mei"; +App::$strings["Jun"] = "jun"; +App::$strings["Jul"] = "jul"; +App::$strings["Aug"] = "aug"; +App::$strings["Sep"] = "sep"; +App::$strings["Oct"] = "okt"; +App::$strings["Nov"] = "nov"; +App::$strings["Dec"] = "dec"; +App::$strings["Sunday"] = "zondag"; +App::$strings["Monday"] = "maandag"; +App::$strings["Tuesday"] = "dinsdag"; +App::$strings["Wednesday"] = "woensdag"; +App::$strings["Thursday"] = "donderdag"; +App::$strings["Friday"] = "vrijdag"; +App::$strings["Saturday"] = "zaterdag"; +App::$strings["Sun"] = "zo"; +App::$strings["Mon"] = "ma"; +App::$strings["Tue"] = "di"; +App::$strings["Wed"] = "wo"; +App::$strings["Thu"] = "do"; +App::$strings["Fri"] = "vr"; +App::$strings["Sat"] = "za"; +App::$strings["__ctx:calendar__ today"] = "vandaag"; +App::$strings["__ctx:calendar__ month"] = "maand"; +App::$strings["__ctx:calendar__ week"] = "week"; +App::$strings["__ctx:calendar__ day"] = "dag"; +App::$strings["__ctx:calendar__ All day"] = "hele dag"; +App::$strings["Tags"] = "Tags"; +App::$strings["Keywords"] = "Trefwoorden"; +App::$strings["have"] = "heb"; +App::$strings["has"] = "heeft"; +App::$strings["want"] = "wil"; +App::$strings["wants"] = "wil"; +App::$strings["likes"] = "vindt dit leuk"; +App::$strings["dislikes"] = "vindt dit niet leuk"; App::$strings["prev"] = "vorige"; App::$strings["first"] = "eerste"; App::$strings["last"] = "laatste"; @@ -1738,25 +2736,7 @@ App::$strings["depressed"] = "gedeprimeerd"; App::$strings["motivated"] = "gemotiveerd"; App::$strings["relaxed"] = "ontspannen"; App::$strings["surprised"] = "verrast"; -App::$strings["Monday"] = "maandag"; -App::$strings["Tuesday"] = "dinsdag"; -App::$strings["Wednesday"] = "woensdag"; -App::$strings["Thursday"] = "donderdag"; -App::$strings["Friday"] = "vrijdag"; -App::$strings["Saturday"] = "zaterdag"; -App::$strings["Sunday"] = "zondag"; -App::$strings["January"] = "januari"; -App::$strings["February"] = "februari"; -App::$strings["March"] = "maart"; -App::$strings["April"] = "april"; App::$strings["May"] = "mei"; -App::$strings["June"] = "juni"; -App::$strings["July"] = "juli"; -App::$strings["August"] = "augustus"; -App::$strings["September"] = "september"; -App::$strings["October"] = "oktober"; -App::$strings["November"] = "november"; -App::$strings["December"] = "december"; App::$strings["Unknown Attachment"] = "Onbekende bijlage"; App::$strings["unknown"] = "onbekend"; App::$strings["remove category"] = "categorie verwijderen"; @@ -1764,8 +2744,7 @@ App::$strings["remove from file"] = "uit map verwijderen"; App::$strings["default"] = "standaard"; App::$strings["Page layout"] = "Pagina-lay-out"; App::$strings["You can create your own with the layouts tool"] = "Je kan jouw eigen lay-out ontwerpen onder lay-outs"; -App::$strings["Page content type"] = "Opmaaktype pagina"; -App::$strings["Select an alternate language"] = "Kies een andere taal"; +App::$strings["Page content type"] = "Opmaaktype"; App::$strings["activity"] = "activiteit"; App::$strings["Design Tools"] = "Ontwerp-hulpmiddelen"; App::$strings["Pages"] = "Pagina's"; @@ -1784,262 +2763,55 @@ App::$strings["Export to cloud files"] = "Naar de cloud exporteren"; App::$strings["/path/to/export/folder"] = "/locatie/van/export/map"; App::$strings["Enter a path to a cloud files destination."] = "Voer de locatie in van de cloudbestemming"; App::$strings["Specify folder"] = "Selecteer een map"; -App::$strings["Invalid data packet"] = "Datapakket ongeldig"; -App::$strings["Unable to verify channel signature"] = "Kanaalkenmerk kon niet worden geverifieerd. "; -App::$strings["Unable to verify site signature for %s"] = "Hubkenmerk voor %s kon niet worden geverifieerd"; -App::$strings["invalid target signature"] = "ongeldig doelkenmerk"; -App::$strings["Not a valid email address"] = "Geen geldig e-mailadres"; -App::$strings["Your email domain is not among those allowed on this site"] = "Jouw e-maildomein is op deze hub niet toegestaan"; -App::$strings["Your email address is already registered at this site."] = "Jouw e-mailadres is al op deze hub geregistreerd."; -App::$strings["An invitation is required."] = "Een uitnodiging is vereist"; -App::$strings["Invitation could not be verified."] = "Uitnodiging kon niet geverifieerd worden"; -App::$strings["Please enter the required information."] = "Vul de vereiste informatie in."; -App::$strings["Failed to store account information."] = "Account-informatie kon niet opgeslagen worden."; -App::$strings["Registration confirmation for %s"] = "Registratiebevestiging voor %s"; -App::$strings["Registration request at %s"] = "Registratiebevestiging voor %s"; -App::$strings["Administrator"] = "Beheerder"; -App::$strings["your registration password"] = "jouw registratiewachtwoord"; -App::$strings["Registration details for %s"] = "Registratiegegevens voor %s"; -App::$strings["Account approved."] = "Account goedgekeurd"; -App::$strings["Registration revoked for %s"] = "Registratie ingetrokken voor %s"; -App::$strings["Click here to upgrade."] = "Klik hier om te upgraden."; -App::$strings["This action exceeds the limits set by your subscription plan."] = "Deze handeling overschrijdt de beperkingen die voor jouw abonnement gelden."; -App::$strings["This action is not available under your subscription plan."] = "Deze handeling is niet mogelijk met jouw abonnement."; -App::$strings["No recipient provided."] = "Geen ontvanger opgegeven."; -App::$strings["[no subject]"] = "[geen onderwerp]"; -App::$strings["Unable to determine sender."] = "Afzender kan niet bepaald worden."; -App::$strings["Stored post could not be verified."] = "Opgeslagen bericht kon niet worden geverifieerd."; -App::$strings["Frequently"] = "Regelmatig"; -App::$strings["Hourly"] = "Elk uur"; -App::$strings["Twice daily"] = "Twee keer per dag"; -App::$strings["Daily"] = "Dagelijks"; -App::$strings["Weekly"] = "Wekelijks"; -App::$strings["Monthly"] = "Maandelijks"; -App::$strings["Male"] = "Man"; -App::$strings["Female"] = "Vrouw"; -App::$strings["Currently Male"] = "Momenteel man"; -App::$strings["Currently Female"] = "Momenteel vrouw"; -App::$strings["Mostly Male"] = "Voornamelijk man"; -App::$strings["Mostly Female"] = "Voornamelijk vrouw"; -App::$strings["Transgender"] = "Transgender"; -App::$strings["Intersex"] = "Interseksueel"; -App::$strings["Transsexual"] = "Transseksueel"; -App::$strings["Hermaphrodite"] = "Hermafrodiet"; -App::$strings["Neuter"] = "Genderneutraal"; -App::$strings["Non-specific"] = "Niet gespecificeerd"; -App::$strings["Undecided"] = "Nog niet beslist"; -App::$strings["Males"] = "Mannen"; -App::$strings["Females"] = "Vrouwen"; -App::$strings["Gay"] = "Homoseksueel"; -App::$strings["Lesbian"] = "Lesbisch"; -App::$strings["No Preference"] = "Geen voorkeur"; -App::$strings["Bisexual"] = "Biseksueel"; -App::$strings["Autosexual"] = "Autoseksueel"; -App::$strings["Abstinent"] = "Seksuele onthouding"; -App::$strings["Virgin"] = "Maagd"; -App::$strings["Deviant"] = "Afwijkend"; -App::$strings["Fetish"] = "Fetisj"; -App::$strings["Oodles"] = "Veel"; -App::$strings["Nonsexual"] = "Aseksueel"; -App::$strings["Single"] = "Alleen"; -App::$strings["Lonely"] = "Eenzaam"; -App::$strings["Available"] = "Beschikbaar"; -App::$strings["Unavailable"] = "Niet beschikbaar"; -App::$strings["Has crush"] = "Heeft een oogje op iemand"; -App::$strings["Infatuated"] = "Smoorverliefd"; -App::$strings["Dating"] = "Aan het daten"; -App::$strings["Unfaithful"] = "Ontrouw"; -App::$strings["Sex Addict"] = "Seksverslaafd"; -App::$strings["Friends/Benefits"] = "Vriendschap plus"; -App::$strings["Casual"] = "Ongebonden/vluchtig"; -App::$strings["Engaged"] = "Verloofd"; -App::$strings["Married"] = "Getrouwd"; -App::$strings["Imaginarily married"] = "Denkbeeldig getrouwd"; -App::$strings["Partners"] = "Partners"; -App::$strings["Cohabiting"] = "Samenwonend"; -App::$strings["Common law"] = "Common-law-huwelijk"; -App::$strings["Happy"] = "Gelukkig"; -App::$strings["Not looking"] = "Niet op zoek"; -App::$strings["Swinger"] = "Swinger"; -App::$strings["Betrayed"] = "Verraden"; -App::$strings["Separated"] = "Uit elkaar"; -App::$strings["Unstable"] = "Onstabiel"; -App::$strings["Divorced"] = "Gescheiden"; -App::$strings["Imaginarily divorced"] = "Denkbeeldig gescheiden"; -App::$strings["Widowed"] = "Weduwnaar/weduwe"; -App::$strings["Uncertain"] = "Onzeker"; -App::$strings["It's complicated"] = "Het is ingewikkeld"; -App::$strings["Don't care"] = "Maakt mij niks uit"; -App::$strings["Ask me"] = "Vraag het me"; -App::$strings["Unable to obtain identity information from database"] = "Niet in staat om identiteitsinformatie uit de database te verkrijgen"; -App::$strings["Empty name"] = "Ontbrekende naam"; -App::$strings["Name too long"] = "Naam te lang"; -App::$strings["No account identifier"] = "Geen account-identificator"; -App::$strings["Nickname is required."] = "Bijnaam is verplicht"; -App::$strings["Reserved nickname. Please choose another."] = "Deze naam is gereserveerd. Kies een andere."; -App::$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."; -App::$strings["Unable to retrieve created identity"] = "Niet in staat om aangemaakte identiteit te vinden"; -App::$strings["Default Profile"] = "Standaardprofiel"; -App::$strings["Requested channel is not available."] = "Opgevraagd kanaal is niet beschikbaar."; -App::$strings["Create New Profile"] = "Nieuw profiel aanmaken"; -App::$strings["Edit Profile"] = "Profiel bewerken"; -App::$strings["Visible to everybody"] = "Voor iedereen zichtbaar"; -App::$strings["Gender:"] = "Geslacht:"; -App::$strings["Status:"] = "Status:"; -App::$strings["Homepage:"] = "Homepagina:"; -App::$strings["Online Now"] = "Nu online"; -App::$strings["Like this channel"] = "Vind dit kanaal leuk"; -App::$strings["j F, Y"] = "F j Y"; -App::$strings["j F"] = "F j"; -App::$strings["Birthday:"] = "Geboortedatum:"; -App::$strings["for %1\$d %2\$s"] = "voor %1\$d %2\$s"; -App::$strings["Sexual Preference:"] = "Seksuele voorkeur:"; -App::$strings["Tags:"] = "Tags:"; -App::$strings["Political Views:"] = "Politieke overtuigingen:"; -App::$strings["Religion:"] = "Religie:"; -App::$strings["Hobbies/Interests:"] = "Hobby's/interesses:"; -App::$strings["Likes:"] = "Houdt van:"; -App::$strings["Dislikes:"] = "Houdt niet van:"; -App::$strings["Contact information and Social Networks:"] = "Contactinformatie en sociale netwerken:"; -App::$strings["My other channels:"] = "Mijn andere kanalen"; -App::$strings["Musical interests:"] = "Muzikale interesses:"; -App::$strings["Books, literature:"] = "Boeken, literatuur:"; -App::$strings["Television:"] = "Televisie:"; -App::$strings["Film/dance/culture/entertainment:"] = "Films/dansen/cultuur/vermaak:"; -App::$strings["Love/Romance:"] = "Liefde/romantiek:"; -App::$strings["Work/employment:"] = "Werk/beroep:"; -App::$strings["School/education:"] = "School/opleiding:"; -App::$strings["Like this thing"] = "Vind dit ding leuk"; -App::$strings["Who can see this?"] = "Wie kan dit zien?"; -App::$strings["Custom selection"] = "Handmatige selectie"; -App::$strings["Select \"Show\" to allow viewing. \"Don't show\" lets you override and limit the scope of \"Show\"."] = "Kies \"Tonen\" om weergave toe te staan. Met \"Niet tonen\" kan je uitzonderingen maken op \"Tonen\"."; -App::$strings["Show"] = "Tonen"; -App::$strings["Don't show"] = "Niet tonen"; -App::$strings["Post permissions %s cannot be changed %s after a post is shared.
        These permissions set who is allowed to view the post."] = "Permissies van berichten %s zijn niet meer te veranderen %s nadat een bericht is gedeeld.
        Met deze permissies bepaal je wie het bericht kan zien."; -App::$strings["%1\$s's bookmarks"] = "Bladwijzers van %1\$s"; -App::$strings["A deleted group with this name was revived. Existing item permissions may 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 kunnen 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."; -App::$strings["Add new connections to this privacy group"] = "Voeg nieuwe connecties aan deze privacygroep toe"; -App::$strings["edit"] = "bewerken"; -App::$strings["Edit group"] = "Privacygroep bewerken"; -App::$strings["Add privacy group"] = "Privacygroep toevoegen"; -App::$strings["Channels not in any privacy group"] = "Kanalen die zich in geen enkele privacygroep bevinden"; -App::$strings["add"] = "toevoegen"; -App::$strings["New window"] = "Nieuw venster"; -App::$strings["Open the selected location in a different window or browser tab"] = "Open de geselecteerde locatie in een ander venster of tab"; -App::$strings["User '%s' deleted"] = "Account '%s' verwijderd"; -App::$strings["New Page"] = "Nieuwe pagina"; -App::$strings["Title"] = "Titel"; -App::$strings["Different viewers will see this text differently"] = "Deze tekst wordt per persoon anders weergeven."; -App::$strings["Logout"] = "Uitloggen"; -App::$strings["End this session"] = "Beëindig deze sessie"; -App::$strings["Home"] = "Home"; -App::$strings["Your posts and conversations"] = "Jouw kanaal"; -App::$strings["Your profile page"] = "Jouw profielpagina"; -App::$strings["Manage/Edit profiles"] = "Beheer/wijzig profielen"; -App::$strings["Edit your profile"] = "Jouw profiel bewerken"; -App::$strings["Your photos"] = "Jouw foto's"; -App::$strings["Your files"] = "Jouw bestanden"; -App::$strings["Your chatrooms"] = "Jouw chatkanalen"; -App::$strings["Bookmarks"] = "Bladwijzers"; -App::$strings["Your bookmarks"] = "Jouw bladwijzers"; -App::$strings["Your webpages"] = "Jouw webpagina's"; -App::$strings["Your wiki"] = "Jouw wiki"; -App::$strings["Sign in"] = "Inloggen"; -App::$strings["%s - click to logout"] = "%s - klik om uit te loggen"; -App::$strings["Remote authentication"] = "Authenticatie op afstand"; -App::$strings["Click to authenticate to your home hub"] = "Authenticeer jezelf via (bijvoorbeeld) jouw hub"; -App::$strings["Home Page"] = "Homepage"; -App::$strings["Create an account"] = "Maak een account aan"; -App::$strings["Help and documentation"] = "Hulp en documentatie"; -App::$strings["Applications, utilities, links, games"] = "Apps"; -App::$strings["Search site @name, #tag, ?docs, content"] = "Zoek een @kanaal, doorzoek inhoud hub met tekst en #tags, of doorzoek ?documentatie "; -App::$strings["Channel Directory"] = "Kanalengids"; -App::$strings["Your grid"] = "Jouw grid"; -App::$strings["Mark all grid notifications seen"] = "Markeer alle gridnotificaties als bekeken"; -App::$strings["Channel home"] = "Jouw kanaal"; -App::$strings["Mark all channel notifications seen"] = "Alle kanaalnotificaties als gelezen markeren"; -App::$strings["Notices"] = "Notificaties"; -App::$strings["Notifications"] = "Notificaties"; -App::$strings["See all notifications"] = "Alle notificaties weergeven"; -App::$strings["Private mail"] = "Privéberichten"; -App::$strings["See all private messages"] = "Alle privéberichten weergeven"; -App::$strings["Mark all private messages seen"] = "Markeer alle privéberichten als bekeken"; -App::$strings["Inbox"] = "Postvak IN"; -App::$strings["Outbox"] = "Postvak UIT"; -App::$strings["New Message"] = "Nieuw bericht"; -App::$strings["Event Calendar"] = "Agenda"; -App::$strings["See all events"] = "Alle gebeurtenissen weergeven"; -App::$strings["Mark all events seen"] = "Markeer alle gebeurtenissen als bekeken"; -App::$strings["Manage Your Channels"] = "Beheer je kanalen"; -App::$strings["Account/Channel Settings"] = "Account-/kanaal-instellingen"; -App::$strings["Admin"] = "Beheer"; -App::$strings["Site Setup and Configuration"] = "Hub instellen en beheren"; -App::$strings["Loading..."] = "Aan het laden..."; -App::$strings["@name, #tag, ?doc, content"] = "@kanaal, #tag, inhoud, ?hulp"; -App::$strings["Please wait..."] = "Wachten aub..."; -App::$strings["Attachments:"] = "Bijlagen:"; -App::$strings["l F d, Y \\@ g:i A"] = "l d F Y \\@ G:i"; -App::$strings["\$Projectname event notification:"] = "Notificatie \$Projectname-gebeurtenis:"; -App::$strings["Starts:"] = "Start:"; -App::$strings["Finishes:"] = "Einde:"; -App::$strings["Delete this item?"] = "Dit item verwijderen?"; -App::$strings["%s show less"] = "%s minder reacties weergeven"; -App::$strings["%s expand"] = "%s uitklappen"; -App::$strings["%s collapse"] = "%s inklappen"; -App::$strings["Password too short"] = "Wachtwoord te kort"; -App::$strings["Passwords do not match"] = "Wachtwoorden komen niet overeen"; -App::$strings["everybody"] = "iedereen"; -App::$strings["Secret Passphrase"] = "Geheim wachtwoord"; -App::$strings["Passphrase hint"] = "Wachtwoordhint"; -App::$strings["Notice: Permissions have changed but have not yet been submitted."] = "Mededeling: de permissies zijn veranderd, maar zijn nog niet opgeslagen."; -App::$strings["close all"] = "Alles sluiten"; -App::$strings["Nothing new here"] = "Niets nieuw hier"; -App::$strings["Rate This Channel (this is public)"] = "Beoordeel dit kanaal (dit is openbaar)"; -App::$strings["Describe (optional)"] = "Omschrijving (optioneel)"; -App::$strings["Please enter a link URL"] = "Vul een URL in:"; -App::$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?"; -App::$strings["timeago.prefixAgo"] = "timeago.prefixAgo"; -App::$strings["timeago.prefixFromNow"] = "timeago.prefixFromNow"; -App::$strings["ago"] = "geleden"; -App::$strings["from now"] = "vanaf nu"; -App::$strings["less than a minute"] = "minder dan een minuut"; -App::$strings["about a minute"] = "ongeveer een minuut"; -App::$strings["%d minutes"] = "%d minuten"; -App::$strings["about an hour"] = "ongeveer een uur"; -App::$strings["about %d hours"] = "ongeveer %d uren"; -App::$strings["a day"] = "een dag"; -App::$strings["%d days"] = "%d dagen"; -App::$strings["about a month"] = "ongeveer een maand"; -App::$strings["%d months"] = "%d maanden"; -App::$strings["about a year"] = "ongeveer een jaar"; -App::$strings["%d years"] = "%d jaren"; -App::$strings[" "] = " "; -App::$strings["timeago.numbers"] = "timeago.numbers"; -App::$strings["__ctx:long__ May"] = "mei"; -App::$strings["Jan"] = "jan"; -App::$strings["Feb"] = "feb"; -App::$strings["Mar"] = "mrt"; -App::$strings["Apr"] = "apr"; -App::$strings["__ctx:short__ May"] = "mei"; -App::$strings["Jun"] = "jun"; -App::$strings["Jul"] = "jul"; -App::$strings["Aug"] = "aug"; -App::$strings["Sep"] = "sep"; -App::$strings["Oct"] = "okt"; -App::$strings["Nov"] = "nov"; -App::$strings["Dec"] = "dec"; -App::$strings["Sun"] = "zo"; -App::$strings["Mon"] = "ma"; -App::$strings["Tue"] = "di"; -App::$strings["Wed"] = "wo"; -App::$strings["Thu"] = "do"; -App::$strings["Fri"] = "vr"; -App::$strings["Sat"] = "za"; -App::$strings["__ctx:calendar__ today"] = "vandaag"; -App::$strings["__ctx:calendar__ month"] = "maand"; -App::$strings["__ctx:calendar__ week"] = "week"; -App::$strings["__ctx:calendar__ day"] = "dag"; -App::$strings["__ctx:calendar__ All day"] = "hele dag"; +App::$strings["Cannot create a duplicate channel identifier on this system. Import failed."] = "Kan geen dubbele kanaal-identificator op deze hub aanmaken. Importeren mislukt."; +App::$strings["Channel clone failed. Import failed."] = "Het klonen van het kanaal is mislukt. Importeren mislukt."; +App::$strings["Unable to import element \""] = "Niet in staat om dit element te importeren: \""; +App::$strings["guest:"] = "gast:"; +App::$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. "; +App::$strings["(Unknown)"] = "(Onbekend)"; +App::$strings["Visible to anybody on the internet."] = "Voor iedereen op het internet zichtbaar."; +App::$strings["Visible to you only."] = "Alleen voor jou zichtbaar."; +App::$strings["Visible to anybody in this network."] = "Voor iedereen in dit netwerk zichtbaar."; +App::$strings["Visible to anybody authenticated."] = "Voor iedereen die geauthenticeerd is zichtbaar."; +App::$strings["Visible to anybody on %s."] = "Voor iedereen op %s zichtbaar."; +App::$strings["Visible to all connections."] = "Voor alle connecties zichtbaar."; +App::$strings["Visible to approved connections."] = "Voor alle geaccepteerde connecties zichtbaar."; +App::$strings["Visible to specific connections."] = "Voor specifieke connecties zichtbaar."; +App::$strings["Privacy group is empty."] = "Privacygroep is leeg"; +App::$strings["Privacy group: %s"] = "Privacygroep: %s"; +App::$strings["Connection not found."] = "Connectie niet gevonden."; +App::$strings["profile photo"] = "profielfoto"; +App::$strings["[Edited %s]"] = "[%s bewerkt]"; +App::$strings["__ctx:edit_activity__ Post"] = "Bericht"; +App::$strings["__ctx:edit_activity__ Comment"] = "Reactie"; +App::$strings["Logged out."] = "Uitgelogd."; +App::$strings["Failed authentication"] = "Mislukte authenticatie"; +App::$strings[" and "] = " en "; +App::$strings["public profile"] = "openbaar profiel"; +App::$strings["%1\$s changed %2\$s to “%3\$s”"] = "%1\$s veranderde %2\$s naar “%3\$s”"; +App::$strings["Visit %1\$s's %2\$s"] = "Bezoek het %2\$s van %1\$s"; +App::$strings["%1\$s has an updated %2\$s, changing %3\$s."] = "%1\$s heeft een aangepaste %2\$s, %3\$s veranderd."; +App::$strings["Item was not found."] = "Item niet gevonden"; +App::$strings["No source file."] = "Geen bronbestand."; +App::$strings["Cannot locate file to replace"] = "Kan het te vervangen bestand niet vinden"; +App::$strings["Cannot locate file to revise/update"] = "Kan het bestand wat aangepast moet worden niet vinden"; +App::$strings["File exceeds size limit of %d"] = "Bestand is groter dan de toegelaten %d"; +App::$strings["You have reached your limit of %1$.0f Mbytes attachment storage."] = "Je hebt jouw limiet van %1$.0f MB opslagruimte voor bijlagen bereikt."; +App::$strings["File upload failed. Possible system limit or action terminated."] = "Uploaden van bestand mislukt. Mogelijk systeemlimiet bereikt of actie afgebroken."; +App::$strings["Stored file could not be verified. Upload failed."] = "Opgeslagen bestand kon niet worden geverifieerd. Uploaden mislukt."; +App::$strings["Path not available."] = "Locatie niet beschikbaar."; +App::$strings["Empty pathname"] = "Ontbrekende locatienaam"; +App::$strings["duplicate filename or path"] = "dubbele bestandsnaam of locatie"; +App::$strings["Path not found."] = "Locatie niet gevonden"; +App::$strings["mkdir failed."] = "directory aanmaken (mkdir) mislukt."; +App::$strings["database storage failed."] = "opslag in database mislukt."; +App::$strings["Empty path"] = "Ontbrekende locatie"; +App::$strings["This event has been added to your calendar."] = "Dit evenement is aan jouw agenda toegevoegd."; +App::$strings["Not specified"] = "Niet aangegeven"; +App::$strings["Needs Action"] = "Actie vereist"; +App::$strings["Completed"] = "Voltooid"; +App::$strings["In Process"] = "In behandeling"; +App::$strings["Cancelled"] = "Geannuleerd"; App::$strings["Channel is blocked on this site."] = "Kanaal is op deze hub geblokkeerd."; App::$strings["Channel location missing."] = "Ontbrekende kanaallocatie."; App::$strings["Response from remote channel was incomplete."] = "Antwoord van het kanaal op afstand was niet volledig."; @@ -2047,200 +2819,31 @@ App::$strings["Channel was deleted and no longer exists."] = "Kanaal is verwijde App::$strings["Protocol disabled."] = "Protocol uitgeschakeld."; App::$strings["Channel discovery failed."] = "Kanaal ontdekken mislukt."; App::$strings["Cannot connect to yourself."] = "Kan niet met jezelf verbinden"; -App::$strings["Image/photo"] = "Afbeelding/foto"; -App::$strings["Encrypted content"] = "Versleutelde inhoud"; -App::$strings["Install %s element: "] = "Installeer %s-element: "; -App::$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."; -App::$strings["%1\$s wrote the following %2\$s %3\$s"] = "%1\$s schreef het volgende %2\$s %3\$s"; -App::$strings["Click to open/close"] = "Klik om te openen of te sluiten"; -App::$strings["spoiler"] = "spoiler"; -App::$strings["$1 wrote:"] = "$1 schreef:"; -App::$strings["%1\$s is now connected with %2\$s"] = "%1\$s is nu met %2\$s verbonden"; -App::$strings["%1\$s poked %2\$s"] = "%1\$s heeft %2\$s aangestoten"; -App::$strings["poked"] = "aangestoten"; -App::$strings["View %s's profile @ %s"] = "Bekijk het profiel van %s @ %s"; -App::$strings["Categories:"] = "Categorieën:"; -App::$strings["Filed under:"] = "Bewaard onder:"; -App::$strings["View in context"] = "In context bekijken"; -App::$strings["remove"] = "verwijderen"; -App::$strings["Loading..."] = "Aan het laden..."; -App::$strings["Delete Selected Items"] = "Verwijder de geselecteerde items"; -App::$strings["View Source"] = "Bron weergeven"; -App::$strings["Follow Thread"] = "Conversatie volgen"; -App::$strings["Unfollow Thread"] = "Conversatie niet meer volgen"; -App::$strings["Activity/Posts"] = "Activiteit/berichten connectie"; -App::$strings["Edit Connection"] = "Connectie bewerken"; -App::$strings["Message"] = "Bericht"; -App::$strings["%s likes this."] = "%s vindt dit leuk."; -App::$strings["%s doesn't like this."] = "%s vindt dit niet leuk."; -App::$strings["%2\$d people like this."] = array( - 0 => "%2\$d persoon vindt dit leuk.", - 1 => "%2\$d personen vinden dit leuk.", -); -App::$strings["%2\$d people don't like this."] = array( - 0 => "%2\$d persoon vindt dit niet leuk.", - 1 => "%2\$d personen vinden dit niet leuk.", -); -App::$strings["and"] = "en"; -App::$strings[", and %d other people"] = array( - 0 => ", en %d ander persoon", - 1 => ", en %d andere personen", -); -App::$strings["%s like this."] = "%s vinden dit leuk."; -App::$strings["%s don't like this."] = "%s vinden dit niet leuk."; -App::$strings["Set your location"] = "Locatie instellen"; -App::$strings["Clear browser location"] = "Locatie van webbrowser wissen"; -App::$strings["Tag term:"] = "Tag:"; -App::$strings["Where are you right now?"] = "Waar bevind je je op dit moment?"; -App::$strings["Comments enabled"] = "Reacties ingeschakeld"; -App::$strings["Comments disabled"] = "Reacties uitgeschakeld"; -App::$strings["Page link name"] = "Linknaam pagina"; -App::$strings["Post as"] = "Bericht plaatsen als"; -App::$strings["Toggle voting"] = "Peiling in- of uitschakelen"; -App::$strings["Disable comments"] = "Reacties uitschakelen"; -App::$strings["Toggle comments"] = "Reacties in- of uitschakelen"; -App::$strings["Categories (optional, comma-separated list)"] = "Categorieën (optioneel, door komma's gescheiden lijst)"; -App::$strings["Other networks and post services"] = "Andere netwerken en diensten"; -App::$strings["Set publish date"] = "Publicatiedatum instellen"; -App::$strings["Discover"] = "Ontdekken"; -App::$strings["Imported public streams"] = "Openbare streams importeren"; -App::$strings["Commented Order"] = "Nieuwe reacties bovenaan"; -App::$strings["Sort by Comment Date"] = "Berichten met nieuwe reacties bovenaan"; -App::$strings["Posted Order"] = "Nieuwe berichten bovenaan"; -App::$strings["Sort by Post Date"] = "Nieuwe berichten bovenaan"; -App::$strings["Posts that mention or involve you"] = "Alleen berichten die jou vermelden of waar je op een andere manier bij betrokken bent"; -App::$strings["Activity Stream - by date"] = "Activiteitenstroom - volgens datum"; -App::$strings["Starred"] = "Met ster"; -App::$strings["Favourite Posts"] = "Favoriete berichten"; -App::$strings["Spam"] = "Spam"; -App::$strings["Posts flagged as SPAM"] = "Berichten gemarkeerd als SPAM"; -App::$strings["Status Messages and Posts"] = "Berichten in dit kanaal"; -App::$strings["About"] = "Over"; -App::$strings["Profile Details"] = "Profiel"; -App::$strings["Files and Storage"] = "Bestanden en opslagruimte"; -App::$strings["Chatrooms"] = "Chatkanalen"; -App::$strings["Saved Bookmarks"] = "Opgeslagen bladwijzers"; -App::$strings["Manage Webpages"] = "Webpagina's beheren"; -App::$strings["__ctx:noun__ Attending"] = array( - 0 => "aanwezig", - 1 => "aanwezig", -); -App::$strings["__ctx:noun__ Not Attending"] = array( - 0 => "niet aanwezig", - 1 => "niet aanwezig", -); -App::$strings["__ctx:noun__ Undecided"] = array( - 0 => "nog niet beslist", - 1 => "nog niet beslist", -); -App::$strings["__ctx:noun__ Agree"] = array( - 0 => "eens", - 1 => "eens", -); -App::$strings["__ctx:noun__ Disagree"] = array( - 0 => "oneens", - 1 => "oneens", -); -App::$strings["__ctx:noun__ Abstain"] = array( - 0 => "onthouding", - 1 => "onthoudingen", -); -App::$strings["Birthday"] = "Verjaardag of geboortedatum"; -App::$strings["Age: "] = "Leeftijd:"; -App::$strings["YYYY-MM-DD or MM-DD"] = "JJJJ-MM-DD of MM-DD"; -App::$strings["never"] = "nooit"; -App::$strings["less than a second ago"] = "minder dan een seconde geleden"; -App::$strings["__ctx:e.g. 22 hours ago, 1 minute ago__ %1\$d %2\$s ago"] = "%1\$d %2\$s geleden"; -App::$strings["__ctx:relative_date__ year"] = array( - 0 => "jaar", - 1 => "jaren", -); -App::$strings["__ctx:relative_date__ month"] = array( - 0 => "maand", - 1 => "maanden", -); -App::$strings["__ctx:relative_date__ week"] = array( - 0 => "week", - 1 => "weken", -); -App::$strings["__ctx:relative_date__ day"] = array( - 0 => "dag", - 1 => "dagen", -); -App::$strings["__ctx:relative_date__ hour"] = array( - 0 => "uur", - 1 => "uren", -); -App::$strings["__ctx:relative_date__ minute"] = array( - 0 => "minuut", - 1 => "minuten", -); -App::$strings["__ctx:relative_date__ second"] = array( - 0 => "seconde", - 1 => "seconden", -); -App::$strings["%1\$s's birthday"] = "Verjaardag van %1\$s"; -App::$strings["Happy Birthday %1\$s"] = "Gefeliciteerd met je verjaardag %1\$s"; -App::$strings["Directory Options"] = "Opties kanalengids"; -App::$strings["Safe Mode"] = "Veilig zoeken"; -App::$strings["Public Forums Only"] = "Alleen openbare forums"; -App::$strings["This Website Only"] = "Alleen deze hub"; -App::$strings["This event has been added to your calendar."] = "Dit evenement is aan jouw agenda toegevoegd."; -App::$strings["Not specified"] = "Niet aangegeven"; -App::$strings["Needs Action"] = "Actie vereist"; -App::$strings["Completed"] = "Voltooid"; -App::$strings["In Process"] = "In behandeling"; -App::$strings["Cancelled"] = "Geannuleerd"; -App::$strings["Cannot create a duplicate channel identifier on this system. Import failed."] = "Kan geen dubbele kanaal-identificator op deze hub aanmaken. Importeren mislukt."; -App::$strings["Channel clone failed. Import failed."] = "Het klonen van het kanaal is mislukt. Importeren mislukt."; -App::$strings["Unable to import element \""] = "Niet in staat om dit element te importeren: \""; -App::$strings["Logged out."] = "Uitgelogd."; -App::$strings["Failed authentication"] = "Mislukte authenticatie"; -App::$strings["Login failed."] = "Inloggen mislukt."; -App::$strings[" and "] = " en "; -App::$strings["public profile"] = "openbaar profiel"; -App::$strings["%1\$s changed %2\$s to “%3\$s”"] = "%1\$s veranderde %2\$s naar “%3\$s”"; -App::$strings["Visit %1\$s's %2\$s"] = "Bezoek het %2\$s van %1\$s"; -App::$strings["%1\$s has an updated %2\$s, changing %3\$s."] = "%1\$s heeft een aangepaste %2\$s, %3\$s veranderd."; -App::$strings["view full size"] = "volledige grootte tonen"; -App::$strings["Administrator"] = "Beheerder"; -App::$strings["No Subject"] = "Geen onderwerp"; -App::$strings["Friendica"] = "Friendica"; -App::$strings["OStatus"] = "OStatus"; -App::$strings["GNU-Social"] = "GNU social"; -App::$strings["RSS/Atom"] = "RSS/Atom"; -App::$strings["Diaspora"] = "Diaspora"; -App::$strings["Facebook"] = "Facebook"; -App::$strings["Zot"] = "Zot"; -App::$strings["LinkedIn"] = "LinkedIn"; -App::$strings["XMPP/IM"] = "XMPP/IM"; -App::$strings["MySpace"] = "MySpace"; -App::$strings["Categories"] = "Categorieën"; -App::$strings["Tags"] = "Tags"; -App::$strings["Keywords"] = "Trefwoorden"; -App::$strings["have"] = "heb"; -App::$strings["has"] = "heeft"; -App::$strings["want"] = "wil"; -App::$strings["wants"] = "wil"; -App::$strings["likes"] = "vindt dit leuk"; -App::$strings["dislikes"] = "vindt dit niet leuk"; -App::$strings["%d invitation available"] = array( - 0 => "%d uitnodiging beschikbaar", - 1 => "%d uitnodigingen beschikbaar", -); -App::$strings["Find Channels"] = "Kanalen vinden"; -App::$strings["Enter name or interest"] = "Vul naam of interesse in"; -App::$strings["Connect/Follow"] = "Verbinden/volgen"; -App::$strings["Examples: Robert Morgenstein, Fishing"] = "Voorbeeld: Robert Morgenstein, vissen"; -App::$strings["Random Profile"] = "Willekeurig profiel"; -App::$strings["Invite Friends"] = "Vrienden uitnodigen"; -App::$strings["Advanced example: name=fred and country=iceland"] = "Geavanceerd voorbeeld (Engels): name=jan en country=nederland"; -App::$strings["Everything"] = "Alles"; -App::$strings["%d connection in common"] = array( - 0 => "%d gemeenschappelijke connectie", - 1 => "%d gemeenschappelijke connecties", -); -App::$strings["show more"] = "meer connecties weergeven"; +App::$strings["A deleted group with this name was revived. Existing item permissions may 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 kunnen 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."; +App::$strings["Add new connections to this privacy group"] = "Voeg nieuwe connecties aan deze privacygroep toe"; +App::$strings["edit"] = "bewerken"; +App::$strings["Edit group"] = "Privacygroep bewerken"; +App::$strings["Add privacy group"] = "Privacygroep toevoegen"; +App::$strings["Channels not in any privacy group"] = "Kanalen die zich in geen enkele privacygroep bevinden"; +App::$strings["add"] = "toevoegen"; +App::$strings["Select an alternate language"] = "Kies een andere taal"; +App::$strings["Image exceeds website size limit of %lu bytes"] = "Afbeelding is groter dan op deze hub toegestane limiet van %lu bytes"; +App::$strings["Image file is empty."] = "Afbeeldingsbestand is leeg"; +App::$strings["Photo storage failed."] = "Foto kan niet worden opgeslagen"; +App::$strings["a new photo"] = "een nieuwe foto"; +App::$strings["__ctx:photo_upload__ %1\$s posted %2\$s to %3\$s"] = "%1\$s plaatste %2\$s op %3\$s"; +App::$strings["Photo Albums"] = "Fotoalbums"; +App::$strings["Upload New Photos"] = "Nieuwe foto's uploaden"; +App::$strings["Who can see this?"] = "Wie kan dit zien?"; +App::$strings["Custom selection"] = "Handmatige selectie"; +App::$strings["Select \"Show\" to allow viewing. \"Don't show\" lets you override and limit the scope of \"Show\"."] = "Kies \"Tonen\" om weergave toe te staan. Met \"Niet tonen\" kan je uitzonderingen maken op \"Tonen\"."; +App::$strings["Show"] = "Tonen"; +App::$strings["Don't show"] = "Niet tonen"; +App::$strings["Post permissions %s cannot be changed %s after a post is shared.
        These permissions set who is allowed to view the post."] = "Permissies van berichten %s zijn niet meer te veranderen %s nadat een bericht is gedeeld.
        Met deze permissies bepaal je wie het bericht kan zien."; +App::$strings[" by "] = " door "; +App::$strings[" on "] = " op "; +App::$strings["Embedded content"] = "Ingesloten (embedded) inhoud"; +App::$strings["Embedding disabled"] = "Insluiten (embedding) uitgeschakeld"; App::$strings["System"] = "Systeem"; App::$strings["New App"] = "Nieuwe app"; App::$strings["Suggestions"] = "Voorgestelde kanalen"; @@ -2272,10 +2875,13 @@ App::$strings["Delete conversation"] = "Verwijder conversatie"; App::$strings["Events Tools"] = "Agenda-hulpmiddelen"; App::$strings["Export Calendar"] = "Exporteren"; App::$strings["Import Calendar"] = "Importeren"; +App::$strings["Chatrooms"] = "Chatkanalen"; App::$strings["Overview"] = "Overzicht"; App::$strings["Chat Members"] = "Chatleden"; App::$strings["Wiki List"] = "Wiki's"; App::$strings["Wiki Pages"] = "Wikipagina's"; +App::$strings["Add new page"] = "Nieuwe pagina toevoegen"; +App::$strings["Page name"] = "Paginanaam"; App::$strings["Bookmarked Chatrooms"] = "Bladwijzers van chatkanalen"; App::$strings["Suggested Chatrooms"] = "Voorgestelde chatkanalen"; App::$strings["photo/image"] = "foto/afbeelding"; @@ -2285,44 +2891,129 @@ App::$strings["Rate Me"] = "Beoordeel mij"; App::$strings["View Ratings"] = "Bekijk beoordelingen"; App::$strings["Forums"] = "Forums"; App::$strings["Tasks"] = "Taken"; -App::$strings["Documentation"] = "Documentatie"; App::$strings["Member registrations waiting for confirmation"] = "Accounts die op goedkeuring wachten"; App::$strings["Inspect queue"] = "Inspecteer berichtenwachtrij"; App::$strings["DB updates"] = "Database-updates"; App::$strings["Plugin Features"] = "Plugin-opties"; -App::$strings["Public Timeline"] = "Openbare tijdlijn"; -App::$strings[" by "] = " door "; -App::$strings[" on "] = " op "; -App::$strings["Embedded content"] = "Ingesloten (embedded) inhoud"; -App::$strings["Embedding disabled"] = "Insluiten (embedding) uitgeschakeld"; -App::$strings["(Unknown)"] = "(Onbekend)"; -App::$strings["Visible to anybody on the internet."] = "Voor iedereen op het internet zichtbaar."; -App::$strings["Visible to you only."] = "Alleen voor jou zichtbaar."; -App::$strings["Visible to anybody in this network."] = "Voor iedereen in dit netwerk zichtbaar."; -App::$strings["Visible to anybody authenticated."] = "Voor iedereen die geauthenticeerd is zichtbaar."; -App::$strings["Visible to anybody on %s."] = "Voor iedereen op %s zichtbaar."; -App::$strings["Visible to all connections."] = "Voor alle connecties zichtbaar."; -App::$strings["Visible to approved connections."] = "Voor alle geaccepteerde connecties zichtbaar."; -App::$strings["Visible to specific connections."] = "Voor specifieke connecties zichtbaar."; -App::$strings["Privacy group is empty."] = "Privacygroep is leeg"; -App::$strings["Privacy group: %s"] = "Privacygroep: %s"; -App::$strings["Connection not found."] = "Connectie niet gevonden."; -App::$strings["profile photo"] = "profielfoto"; -App::$strings["Item was not found."] = "Item niet gevonden"; -App::$strings["No source file."] = "Geen bronbestand."; -App::$strings["Cannot locate file to replace"] = "Kan het te vervangen bestand niet vinden"; -App::$strings["Cannot locate file to revise/update"] = "Kan het bestand wat aangepast moet worden niet vinden"; -App::$strings["File exceeds size limit of %d"] = "Bestand is groter dan de toegelaten %d"; -App::$strings["You have reached your limit of %1$.0f Mbytes attachment storage."] = "Je hebt jouw limiet van %1$.0f MB opslagruimte voor bijlagen bereikt."; -App::$strings["File upload failed. Possible system limit or action terminated."] = "Uploaden van bestand mislukt. Mogelijk systeemlimiet bereikt of actie afgebroken."; -App::$strings["Stored file could not be verified. Upload failed."] = "Opgeslagen bestand kon niet worden geverifieerd. Uploaden mislukt."; -App::$strings["Path not available."] = "Locatie niet beschikbaar."; -App::$strings["Empty pathname"] = "Ontbrekende locatienaam"; -App::$strings["duplicate filename or path"] = "dubbele bestandsnaam of locatie"; -App::$strings["Path not found."] = "Locatie niet gevonden"; -App::$strings["mkdir failed."] = "directory aanmaken (mkdir) mislukt."; -App::$strings["database storage failed."] = "opslag in database mislukt."; -App::$strings["Empty path"] = "Ontbrekende locatie"; +App::$strings["view full size"] = "volledige grootte tonen"; +App::$strings["No Subject"] = "Geen onderwerp"; +App::$strings["OStatus"] = "OStatus"; +App::$strings["GNU-Social"] = "GNU social"; +App::$strings["RSS/Atom"] = "RSS/Atom"; +App::$strings["Facebook"] = "Facebook"; +App::$strings["Zot"] = "Zot"; +App::$strings["LinkedIn"] = "LinkedIn"; +App::$strings["XMPP/IM"] = "XMPP/IM"; +App::$strings["MySpace"] = "MySpace"; +App::$strings["Can view my normal stream and posts"] = "Kan mijn normale kanaalstream en berichten bekijken"; +App::$strings["Can view my webpages"] = "Kan mijn pagina's bekijken"; +App::$strings["Can post on my channel page (\"wall\")"] = "Kan een bericht in mijn kanaal plaatsen"; +App::$strings["Can like/dislike stuff"] = "Kan dingen leuk of niet leuk vinden"; +App::$strings["Profiles and things other than posts/comments"] = "Profielen en dingen, buiten berichten en reacties"; +App::$strings["Can forward to all my channel contacts via post @mentions"] = "Kan naar al mijn kanaalconnecties berichten doorsturen met behulp van @vermeldingen+"; +App::$strings["Advanced - useful for creating group forum channels"] = "Geavanceerd - nuttig voor groepforums"; +App::$strings["Can chat with me (when available)"] = "Kan met mij chatten (wanneer beschikbaar)"; +App::$strings["Can write to my file storage and photos"] = "Kan foto's en andere bestanden aan mijn bestandsopslag toevoegen"; +App::$strings["Can edit my webpages"] = "Kan mijn pagina's bewerken"; +App::$strings["Somewhat advanced - very useful in open communities"] = "Enigszins geavanceerd (erg nuttig voor kanalen van forums/groepen)"; +App::$strings["Can administer my channel resources"] = "Kan mijn kanaal beheren"; +App::$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."; +App::$strings["%1\$s is now connected with %2\$s"] = "%1\$s is nu met %2\$s verbonden"; +App::$strings["%1\$s poked %2\$s"] = "%1\$s heeft %2\$s aangestoten"; +App::$strings["View %s's profile @ %s"] = "Bekijk het profiel van %s @ %s"; +App::$strings["Categories:"] = "Categorieën:"; +App::$strings["Filed under:"] = "Bewaard onder:"; +App::$strings["View in context"] = "In context bekijken"; +App::$strings["remove"] = "verwijderen"; +App::$strings["Delete Selected Items"] = "Verwijder de geselecteerde items"; +App::$strings["View Source"] = "Bron weergeven"; +App::$strings["Follow Thread"] = "Conversatie volgen"; +App::$strings["Unfollow Thread"] = "Conversatie niet meer volgen"; +App::$strings["Activity/Posts"] = "Activiteit/berichten connectie"; +App::$strings["Edit Connection"] = "Connectie bewerken"; +App::$strings["Message"] = "Bericht"; +App::$strings["%s likes this."] = "%s vindt dit leuk."; +App::$strings["%s doesn't like this."] = "%s vindt dit niet leuk."; +App::$strings["%2\$d people like this."] = array( + 0 => "%2\$d persoon vindt dit leuk.", + 1 => "%2\$d personen vinden dit leuk.", +); +App::$strings["%2\$d people don't like this."] = array( + 0 => "%2\$d persoon vindt dit niet leuk.", + 1 => "%2\$d personen vinden dit niet leuk.", +); +App::$strings["and"] = "en"; +App::$strings[", and %d other people"] = array( + 0 => ", en %d ander persoon", + 1 => ", en %d andere personen", +); +App::$strings["%s like this."] = "%s vinden dit leuk."; +App::$strings["%s don't like this."] = "%s vinden dit niet leuk."; +App::$strings["Set your location"] = "Locatie instellen"; +App::$strings["Clear browser location"] = "Locatie van webbrowser wissen"; +App::$strings["Tag term:"] = "Tag:"; +App::$strings["Where are you right now?"] = "Waar bevind je je op dit moment?"; +App::$strings["Choose a different album..."] = "Kies een ander album..."; +App::$strings["Comments enabled"] = "Reacties ingeschakeld"; +App::$strings["Comments disabled"] = "Reacties uitgeschakeld"; +App::$strings["Page link name"] = "Linknaam pagina"; +App::$strings["Post as"] = "Bericht plaatsen als"; +App::$strings["Toggle voting"] = "Peiling in- of uitschakelen"; +App::$strings["Disable comments"] = "Reacties uitschakelen"; +App::$strings["Toggle comments"] = "Reacties in- of uitschakelen"; +App::$strings["Categories (optional, comma-separated list)"] = "Categorieën (optioneel, door komma's gescheiden lijst)"; +App::$strings["Other networks and post services"] = "Andere netwerken en diensten"; +App::$strings["Set publish date"] = "Publicatiedatum instellen"; +App::$strings["Discover"] = "Ontdekken"; +App::$strings["Imported public streams"] = "Openbare streams importeren"; +App::$strings["Commented Order"] = "Nieuwe reacties bovenaan"; +App::$strings["Sort by Comment Date"] = "Berichten met nieuwe reacties bovenaan"; +App::$strings["Posted Order"] = "Nieuwe berichten bovenaan"; +App::$strings["Sort by Post Date"] = "Nieuwe berichten bovenaan"; +App::$strings["Posts that mention or involve you"] = "Alleen berichten die jou vermelden of waar je op een andere manier bij betrokken bent"; +App::$strings["Activity Stream - by date"] = "Activiteitenstroom - volgens datum"; +App::$strings["Starred"] = "Met ster"; +App::$strings["Favourite Posts"] = "Favoriete berichten"; +App::$strings["Spam"] = "Spam"; +App::$strings["Posts flagged as SPAM"] = "Berichten gemarkeerd als SPAM"; +App::$strings["Status Messages and Posts"] = "Berichten in dit kanaal"; +App::$strings["Profile Details"] = "Profiel"; +App::$strings["Files and Storage"] = "Bestanden en opslagruimte"; +App::$strings["Saved Bookmarks"] = "Opgeslagen bladwijzers"; +App::$strings["Manage Webpages"] = "Webpagina's beheren"; +App::$strings["__ctx:noun__ Attending"] = array( + 0 => "aanwezig", + 1 => "aanwezig", +); +App::$strings["__ctx:noun__ Not Attending"] = array( + 0 => "niet aanwezig", + 1 => "niet aanwezig", +); +App::$strings["__ctx:noun__ Undecided"] = array( + 0 => "nog niet beslist", + 1 => "nog niet beslist", +); +App::$strings["__ctx:noun__ Agree"] = array( + 0 => "eens", + 1 => "eens", +); +App::$strings["__ctx:noun__ Disagree"] = array( + 0 => "oneens", + 1 => "oneens", +); +App::$strings["__ctx:noun__ Abstain"] = array( + 0 => "onthouding", + 1 => "onthoudingen", +); +App::$strings["Image/photo"] = "Afbeelding/foto"; +App::$strings["Encrypted content"] = "Versleutelde inhoud"; +App::$strings["Install %s element: "] = "Installeer %s-element: "; +App::$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."; +App::$strings["%1\$s wrote the following %2\$s %3\$s"] = "%1\$s schreef het volgende %2\$s %3\$s"; +App::$strings["Click to open/close"] = "Klik om te openen of te sluiten"; +App::$strings["spoiler"] = "spoiler"; +App::$strings["$1 wrote:"] = "$1 schreef:"; +App::$strings["Source channel not found."] = "Bron van kanaal niet gevonden"; App::$strings["Focus (Hubzilla default)"] = "Focus (Hubzilla-standaard)"; App::$strings["Theme settings"] = "Thema-instellingen"; App::$strings["Narrow navbar"] = "Smalle navigatiebalk"; diff --git a/view/pdl/mod_wiki.pdl b/view/pdl/mod_wiki.pdl index 76ed1c70c..052ae61a1 100644 --- a/view/pdl/mod_wiki.pdl +++ b/view/pdl/mod_wiki.pdl @@ -1,4 +1,4 @@ [region=aside] -[widget=wiki_list][/widget] +[widget=vcard][/widget] [widget=wiki_pages][/widget] [/region] diff --git a/view/php/default.php b/view/php/default.php index f5be4fa35..839a36b5b 100644 --- a/view/php/default.php +++ b/view/php/default.php @@ -10,7 +10,7 @@

        - +
        diff --git a/view/php/theme_init.php b/view/php/theme_init.php index 46aadaa7d..85da4d782 100644 --- a/view/php/theme_init.php +++ b/view/php/theme_init.php @@ -26,6 +26,7 @@ head_add_js('library/jquery-textcomplete/jquery.textcomplete.js'); //head_add_js('library/colorbox/jquery.colorbox.js'); head_add_js('library/jquery.timeago.js'); head_add_js('library/readmore.js/readmore.js'); +head_add_js('library/sticky-kit/sticky-kit.js'); //head_add_js('library/jquery_ac/friendica.complete.js'); //head_add_js('library/tiptip/jquery.tipTip.minified.js'); head_add_js('library/jgrowl/jquery.jgrowl_minimized.js'); diff --git a/view/theme/redbasic/css/style.css b/view/theme/redbasic/css/style.css index a6d1d2a7e..7254be552 100644 --- a/view/theme/redbasic/css/style.css +++ b/view/theme/redbasic/css/style.css @@ -22,6 +22,7 @@ body { color: $font_colour; margin: 0px; height: 100%; + overflow-x: hidden; } aside { @@ -30,24 +31,56 @@ aside { max-width: $aside_widthpx; } +aside #region_1 { + border-right: 1px solid transparent; +} + +aside #left_aside_wrapper { + margin-bottom: 10px; +} + main { margin-left: auto; margin-right: auto; max-width: $main_widthpx; } -h1, .h1, h2, .h2 { +#overlay { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + cursor: pointer; + z-index: 1029; +} + +h1, .h1 { + font-size: 2em; +} + +h2, .h2 { font-size: 1.667em; } -h3, .h3, h4, .h4 { +h3, .h3 { font-size: 1.334em; } -h5, .h5, h6, .h6 { - font-size: 0.75rem; +h4, .h4 { + font-size: 1em; + font-weight: bold; } +h5, .h5 { + font-size: 1em; +} + +h6, .h6 { + font-size: 0.75em; +} + + .jslider { font-family: sans-serif, arial, freesans; } @@ -109,6 +142,11 @@ input, optgroup, select, textarea { resize: vertical; } +#help-content pre code { + overflow-x: auto; + white-space: pre; +} + pre code { border: none; } @@ -468,7 +506,6 @@ footer { #contact-block { width: 100%; - float: left; } #contact-block-numcontacts { @@ -477,12 +514,10 @@ footer { } .contact-block-div { - float: left; - width: 50px; - height: 50px; + display: inline; } + .contact-block-textdiv { - float: left; width: 150px; height: 34px; } @@ -490,12 +525,11 @@ footer { #contact-block-end { clear: both; } -.contact-block-link { - float: left; -} + .contact-block-img { - width:48px; - height:48px; + width:47px; + height:47px; + margin-bottom: 3px; } #tag-remove { @@ -1515,7 +1549,11 @@ nav .dropdown-menu { color: $nav_icon_colour; } -#avatar:hover + #usermenu-caret { +.usermenu-head { + float: left; +} + +.usermenu-head:hover #usermenu-caret { color: $nav_active_icon_colour; } @@ -1645,6 +1683,7 @@ main.fullscreen .section-content-wrapper-np { .atoken-index-row:hover td, .chatroom-index-row:hover td, +.wikis-index-row:hover td, .locs-index-row:hover td, [id^="cloud-index-"]:hover td, .cloud-index-active { @@ -1778,6 +1817,7 @@ nav .badge.mail-update:hover { #expand-aside, #expand-tabs, +#doco-return-to-top-btn, #context-help-btn { color: $nav_active_icon_colour; padding: 7px 10px; @@ -1825,10 +1865,6 @@ nav .badge.mail-update:hover { border-right: 1px solid $nav_bd; } - main { - transition: all 0.25s ease-in-out; - } - main { left: -$aside_widthpx; width: calc( 100% + $aside_widthpx ); @@ -2021,11 +2057,34 @@ dl.bb-dl > dd > li { } .embed-photo-selected-photo { - border-color: blue; - border-style: solid; - border-width: 5px; + border-color: blue; + border-style: solid; + border-width: 5px; } #wiki-preview img { - max-width: 100%; + max-width: 100%; +} + +#ace-editor, +#editor { + border-bottom-left-radius: $radiuspx; + border-bottom-right-radius: $radiuspx; +} + +.sub-menu { + margin-top: 10px; + padding-left: 15px; + border-left: 3px solid #eee; +} + +.nav-pills-stacked-icons { + padding: 6px 10px; + float: right; + position: relative; + z-index:1; +} + +.nav-pills-stacked-icons:hover + a { + background-color: #eee; } diff --git a/view/theme/redbasic/js/redbasic.js b/view/theme/redbasic/js/redbasic.js index 999b46268..e31458b4e 100644 --- a/view/theme/redbasic/js/redbasic.js +++ b/view/theme/redbasic/js/redbasic.js @@ -8,7 +8,7 @@ $(document).ready(function() { if( $('#css3-calc').width() == 10) { $(window).resize(function() { if($(window).width() < 767) { - $('main').css('width', $(window).width() + 287 ); + $('main').css('width', $(window).width() + $('aside').outerWidth() ); } else { $('main').css('width', '100%' ); } @@ -16,9 +16,25 @@ $(document).ready(function() { } $('#css3-calc').remove(); // Remove the test element - $('#expand-aside').click(function() { - $('#expand-aside-icon').toggleClass('fa-arrow-circle-right').toggleClass('fa-arrow-circle-left'); - $('main').toggleClass('region_1-on'); + if($(window).width() > 767) { + $('#left_aside_wrapper').stick_in_parent({ + offset_top: $('nav').outerHeight(true) + }); + } + + $('#expand-aside').on('click', toggleAside); + + $('section').on('click', function() { + if($('main').hasClass('region_1-on')){ + toggleAside(); + } + }); + + $(window).on('scroll', function() { + if($('main').hasClass('region_1-on') && $(window).scrollLeft() > 5){ + $(window).scrollLeft(0); + toggleAside(); + } }); if($('aside').length && $('aside').html().length === 0) { @@ -32,6 +48,12 @@ $(document).ready(function() { $('#expand-tabs-icon').toggleClass('fa-arrow-circle-down').toggleClass('fa-arrow-circle-up'); }); + $('.usermenu-head').click(function() { + if($('#navbar-collapse-1').hasClass('in')){ + $('#navbar-collapse-1').removeClass('in'); + } + }); + if($('#tabs-collapse-1').length === 0) { $('#expand-tabs').hide(); } @@ -66,5 +88,22 @@ function makeFullScreen(full) { $('#tabs-collapse-1').css({'visibility': ''}); $('#inline-btn').hide(); $('main').css({'transition': ''}); + $(document.body).trigger("sticky_kit:recalc"); + } +} + +function toggleAside() { + $('#expand-aside-icon').toggleClass('fa-arrow-circle-right').toggleClass('fa-arrow-circle-left'); + if($('main').hasClass('region_1-on')){ + $('main').removeClass('region_1-on') + $('#overlay').remove(); + $('#left_aside_wrapper').trigger("sticky_kit:detach"); + } + else { + $('main').addClass('region_1-on') + $('
        ').appendTo('section'); + $('#left_aside_wrapper').stick_in_parent({ + offset_top: $('nav').outerHeight(true) + }); } } diff --git a/view/theme/redbasic/php/style.php b/view/theme/redbasic/php/style.php index 2db0d4c44..9b994ebdf 100644 --- a/view/theme/redbasic/php/style.php +++ b/view/theme/redbasic/php/style.php @@ -165,7 +165,7 @@ if(file_exists('view/theme/redbasic/css/style.css')) { $x .= $schemecss; } - $aside_width = 287; + $aside_width = 288; // left aside and right aside are 285px + converse width if($align_left) { diff --git a/view/tpl/abook_edit.tpl b/view/tpl/abook_edit.tpl index 835948096..2e02de33b 100755 --- a/view/tpl/abook_edit.tpl +++ b/view/tpl/abook_edit.tpl @@ -1,21 +1,33 @@
        {{if $notself}} -